理解可用的FIFO实现选项能够帮助您创建更高效的FPGA设计。FIFO实现选项指定FPGA在硬件中表示终端范围和通过VI定义FIFO的方法。可通过FIFO属性对话框选择FIFO实现选项。

注: DMA和P2P FIFO始终使用块存储器。

下表能够帮助您判定适合自身应用的FIFO实现方式。

实现 实现内容 注意事项
触发器 触发器触发器是可用于存储数据或执行其他任务(例如,加法和减法)的FPGA资源。因此触发器通常为移动或存储数据的紧缺FPGA资源。 不能使用通过跨多个时钟域的触发器实现的FIFO。
LUT(查找表) LUT(即分布式RAM)由FPGA上硬连线的逻辑门组成。与触发器一样,LUT也可以作为FPGA的资源。 不能使用通过跨多个时钟域的查找表实现的FIFO。
块存储器 块存储器(也称为块RAM、BRAM)是专门用于数据存储的FPGA资源。关于配合使用块存储器和内置控制逻辑的详细信息,请参考实现块存储器FIFO。使用存储器块配置终端范围或VI定义的FIFO时,可配置控制逻辑。DMA和P2P FIFO只能使用存储器块。 选择块存储器选项时,写入数据至FIFO后至少要经过6个时钟周期,才能读取在终端范围或通过VI定义的FIFO中读取数据。选择超时接口时,连接FIFO方法节点(配置为读取方法)的超时?输出,以判定上游数据是否已就绪。选择握手接口时,连接FIFO方法节点(配置为读取方法)的输出有效输出,以判定上游数据是否已就绪。
UltraRAM UltraRAM (URAM)是一种高度灵活的低密度大容量存储块,可用于大多数Xilinx UltraScale+终端。UltraRAM的容量是块存储器的8倍,但数据宽度和地址空间配置的灵活性不如块存储器。UltraRAM可用于存储较大的本地FIFO。 不能跨多个时钟域使用实现方式为UltraRAM的FIFO。“获取读取元素数量”、“获取写入元素数量”方法不支持实现方式为UltraRAM的FIFO。