实现存储器块FIFO时,FIFO可容量的实际元素数量取决于下文提及的因素。

通过逻辑架构控制逻辑实现FIFO

如使用通过逻辑片架构控制逻辑实现的存储器块实现FIFO,下表中因素将影响FIFO可容纳的实际元素数量:

FIFO类型 待指定大小 考虑因素
终端范围的FIFO 2的幂加少量元素 常规页显示2^M+5,M是地址宽度。LabVIEW强制转换请求的元素数量为最接近2^M+5的值。例如,请求的元素数量为1,000,LabVIEW强制转换该值为1,029。如FPGA没有足够的资源来强制转换请求的单元数量,FPGA VI将编译失败。
DMA FIFO
  • 终端至主机 - DMA的大小为2的幂减1
  • 主机至终端 - DMA的大小为2的幂加上6倍数待读取元素数量值减1
常规页显示2^M-1或2^M+(6 × 待读取元素数量)-1,M是地址宽度。LabVIEW将请求元素数量强制向上转换为最近有效值。如FPGA没有足够的资源来强制转换请求的单元数量,FPGA VI将编译失败。必须使用通过逻辑片架构控制逻辑实现的存储器块来实现DMA FIFO。最大DMA FIFO容量随终端变化。关于DMA FIFO大小限制的详细信息,见指定FPGA终端的硬件文档。
点对点FIFO
  • 写入方FIFO的大小为2的幂减1
  • 读取方FIFO的大小为2的幂加上6倍数待读取元素数量值减1
常规页显示2^M-1或2^M+(6 × 待读取元素数量)-1,M是地址宽度。LabVIEW将请求元素数量强制向上转换为最近有效值。如FPGA没有足够的资源来强制转换请求的单元数量,FPGA VI将编译失败。必须使用通过逻辑片架构控制逻辑实现的存储器块来实现点对点FIFO。

通过内置控制逻辑实现FIFO

如使用通过内置控制逻辑实现的存储器块实现FIFO,FIFO可容量的实际元素数量受到下列限制:

  • 启用写入方法的握手接口将增加一个FIFO深度。
  • 终端范围的FIFO - LabVIEW强制转换请求的元素数量为可使用内置FIFO实现的深度。强制转换的请求的元素数量的计算随FPGA设备系列变化。如FPGA没有足够的资源来强制转换请求的单元数量,FPGA VI将编译失败。
注: 仿真输出不支持内置的FIFO和终端优化的FIFO。用户可使用条件禁用结构实现用于仿真输出的逻辑片架构FIFO。

实现带终端优化控制逻辑的FIFO

如使用通过终端优化控制逻辑实现的存储器块实现FIFO,本主题提及的全部限制均会影响FIFO可容量的实际元素数量。因为终端优化控制逻辑为内置逻辑和逻辑片架构控制逻辑的组合。