Xilinx,Zynq,AXI4互连。配置寄存器片和数据FIFO选项对性能有何影响?

时间:2018-12-26 11:58:31

标签: xilinx vivado zynq axi4

请考虑在PL(FPGA)端进行AXI4互连。

AXI Interconnect Block

当我双击以查看可用选项时,从接口中会出现一个选项卡。包含以下选项。

enter image description here

启用寄存器片的目的是什么?外部是否引用二级缓存?汽车是什么意思?

启用数据FIFO的目的是什么?对于突发交易? DMA控制器没有自己的FIFO吗?

1 个答案:

答案 0 :(得分:1)

注册切片

启用寄存器片AXI Interconnect v2.1 - pg. 93)基本上会在AXI主从连接之间建立一条流水线,以中断关键的时序路径。它似乎没有与L2缓存有关的任何内容。可用选项为您提供以下内容(第113页):

  • 如果选择“无(0)”,则不会插入任何寄存器片。
  • 如果选择了外部(1),则会在SI耦合器单元层次结构的SI侧插入一个寄存器片。
  • 如果选择了“自动(2)”,则如果检测到具有公共时序路径的SI耦合器单元,则会在SI耦合器单元层次结构中自动插入一个寄存器片。
  • 如果选择“外部和自动(3)”,则在SI耦合器单元层次结构的SI侧插入一个寄存器片,如果检测到具有公共定时路径的SI耦合器单元,则可以插入一个附加的寄存器片。

AXI Reference Guide在第91页上提供了AXI系统优化的指南。例如,它指出:“大型和复杂的IP块,例如处理器,DDR3内存控制器和PCIe桥接器都是很好的选择。启用了寄存器片。寄存器片打破了时序路径,并为放置和布线(PAR)工具提供了更大的自由度,可将大型IP块移离互连核心和其他IP逻辑的拥塞。” 建议阅读整节内容,因为过度使用寄存器片可能会适得其反。” 这确实取决于您的系统设计。

数据FIFO

启用数据FIFO 的目的是提供数据缓冲并提高吞吐量。 32深度模式选项提供基于32位深度的LUT-RAM的FIFO(仅数据通道),而 512深度(分组模式)提供基于512位深度的Block RAM数据包FIFO。数据包FIFO模式在相应的地址通道上提供了一个额外的32位深的FIFO,以避免突发中间的完全/空停顿。 基本上会增加读取/写入操作的延迟,从而避免停顿。阅读以下页面以获取更多详细信息。 (AXI Interconnect v2.1 - pg. 94)。这些选项提供以下内容:

  • 如果参数值为0,则不插入数据FIFO。
  • 如果参数值为1,则插入32个深度的数据FIFO。
  • 如果参数值为2,则插入512级深度的数据FIFO,并启用其数据包模式功能。

最后,我不知道Xilinx的DMA实现的确切方法,但是我相信,如果您的接收模块不如您的DMA 快,那么包含缓冲区的意图就会出现。也就是说,DMA提供的数据量超过模块读取的数据量,因此缓冲其输出可以提高通信速度(在某些情况下可以更快地释放DMA)。 >