在FIFO属性对话框中,从 类别 列表中选择 常规 ,可显示该页。

使用该页编辑 FIFO

该选项页包括以下部分:

选项 说明
名称 指定 项目浏览器 窗口或窗口中显示的FIFO的名称。VI定义的FIFO配置 节点。该名称也出现在 FIFO方法节点 程序框图上的FIFO方法节点,可在FIFO名称控件和常量中使用该节点访问终端范围的FIFO。
类型 指定要使用的FIFO的类型。该选项不适用于 VI定义的FIFO
  • 终端范围-FIFO可在FPGA VI内以及在同一终端下的FPGA VI之间传输数据。 项目浏览器 窗口。
  • 主机至终端 - DMA终端至主机 - DMADMA FIFO 可在主机VI和终端之间传输数据。
  • Peer to Peer WriterPeer to Peer Reader-FIFO可以使用 点对点流
禁用上溢 指定在写入方FIFO尝试写入数据流失败时禁用点对点数据流。该选项仅对点对点写入方FIFO有效。
禁用下溢 读取方FIFO不从数据流接收数据时,指定禁用点对点数据流。该选项仅对点对点读取方FIFO有效。
请求元素数量 指定FIFO可包含的所需元素数量。

FIFO可保留的最大元素数量取决于选择的执行方式及FPGA的可用于该执行方式的资源量。如FIFO使用内置控件逻辑,最大元素数量还取决于数据类型。内置FIFO的宽度必须小于或等于1024。

如FPGA的资源不足以处理用户输入的请求的元素数量,FPGA VI编译将失败。如在类型下拉菜单中选择主机至终端-DMA终端至主机-DMA请求的元素数量将指定DMA通道的FPGA FIFO大小。最大DMA FIFO容量随终端变化。参考特定的FPGA终端 有关DMA FIFO大小限制的详细信息,请参阅硬件文档。

如在 实现 控件中选择 块存储器FIFO可容纳的元素数量存在限制。实际元素数量指示了FIFO中的元素数量。其与请求的元素数量可能不一致。

注: 如在从FPGA到主机的DMA传输过程中发生超时,请使用 FIFO.Configure 方法 调用方法 函数并增加 深度 参数,而不是增加 请求的元素数量。增加深度参数值将增加主机端缓冲区大小,这更易于解决超时问题且不会增加FPGA设备的使用量。
实现 指定 FIFO在FPGA上实现的存储类型。仅可指定终端范围和VI定义的FIFO的实现。包含下列选项:
  • 触发器-在FPGA上可用的触发器内存储数据以提供最佳性能。对于较小的FIFO使用该选项,最大字节数为100。FIFO不能 与触发器配合 使用 跨多个时钟域
  • 查找表-在FPGA上可用的查找表内存储数据。Xilinx文献将此实现方式描述为分布式RAM或LUT RAM。建议此选项用于100~300字节大小的FIFO。FIFO不能与 查找表实现 结合使用 跨多个时钟域
  • 存储器块-使用嵌入式内存块存储数据。Xilinx文献将此实现方式描述为块RAM或BRAM。建议此选项用于大于300字节的FIFO。
    注: 选择存储器块选项时,写入数据至FIFO后至少要经过6个时钟周期,才能在终端范围或通过VI定义的FIFO中读取数据。如果您 选择超时界面,使用 超时? 的输出 FIFO方法节点 ,用于调用读取方法以确定上行数据何时就绪。如果您 选择握手接口,通过调用读取方法的FIFO方法节点的 有效 输出端判断上行数据是否就绪。
  • UltraRAM—将UltraRAM资源的可用数据存储在大多数Xilinx UltraScale+终端上。Xilinx文献将此实现方式描述为URAM。只有选择类型通过终端确定范围时,该选项才可用。FIFO不能与 UltraRAM实现 结合使用 跨多个时钟域
    注:获取要读取的元素数量获取要写入的元素数量 方法不支持使用UltraRAM实现的FIFO。

所有上述执行选项均包含下列组件:

  • 实际元素数量-返回配置的元素数量。元素的请求数量可能与FIFO配置无法兼容。在该情况下,LabVIEW将把请求的元素数量强制转换为兼容的值,实际元素数量将返回该值。

    如选择内置或终端优化控制逻辑,实际元素数量将返回多个数值。请按下列方式解释这些数字:

  • 内置实际元素数返回两个数字,分别用于握手接口禁用和启用的情况。
    注: (Xilinx Vivado)配置时,FIFO中的实际元素数量未知。实际元素数只返回一个数,是大于且最接近请求的元素数的二次幂。该数是一个最小的保证值,可能小于FIFO的实际元素数。
  • 终端优化—LabVIEW根据时钟域和终端类型,使用片式结构或内置控制逻辑实现FIFO。实际元素数返回两个或三个数值:第一个用于片式结构控制逻辑,其他数值用于内置控制逻辑。

控制逻辑-指定FPGA如何实现FIFO。

  • SliceFabric-指定FPGA使用 触发器、LUT和块存储器 ,用于实现FIFO的控制逻辑。
  • TargetOptimal-指定FPGA使用内置FIFO控制逻辑或Slice架构控制逻辑, 取决于终端和应用程序
  • 内置-指定FPGA使用内置FIFO控制逻辑。并非所有FPGA都支持内置FIFO控制逻辑和 限制适用
    注: (Xilinx Vivado)如选择内置控制逻辑,则无法将该FIFO与 获取要读取的元素数量获取要写入的元素数量 方法,因为FIFO中的实际元素数量在配置时未知。在仿真模式下, 超时? 的输出值 读取写入 方法可能无法反映硬件的实际行为,因为这些方法使用 实际元素 数量中的保守数值作为FIFO深度,该数值可能小于FIFO中的实际元素数量。