FPGA硬件终端上的块内存可部署内置FIFO控制逻辑,从而节省大量的FPGA资源。另外,这些专用的电路可支持比使用片式结构创建的控制逻辑更高的时钟速率。

注: 关于终端上FPGA属性的详细信息,请参考Xilinx文档 。

使用内置FIFO控制逻辑的注意事项

以下列表概述了使用内置FIFO的注意事项。

  • FPGA的每个块内存必须有一个专门的FIFO控制器。
  • 内置FIFO的时钟域必须有稳定的和自由运行的时钟。
  • (Xilinx Vivado) 下列方法不支持具有内置控制逻辑的FIFO:
    • 获取待读取元素数量
    • 获取待写入元素数量
  • 使用下列方法会增加读写操作的资源使用和降低时钟域的频率:
    • 获取待读取元素数量
    • 获取待写入元素数量
    • 清除
  • “清除”方法将使用多个时钟周期。因为它要依次清除元素而非同步清除元素。
  • 在部分终端上,仿真导出不支持内置和终端优化的FIFO控制逻辑。用户可使用条件禁用结构实现用于仿真输出的片式FIFO控制逻辑。
  • 启用写入方法的握手接口将增加一个FIFO深度。
  • 当内置FIFO完全充满后,必须等到FIFO中至少有两个空白元素才能继续写入FIFO。“获取要写入元素数量”和“写入(FIFO方法)”指示FIFO已满,直到至少有两个空元素。
  • 强制转换的请求的元素数量的计算随FPGA设备系列变化。

利用目标优化选项优化FIFO控制逻辑

如要使用内置FIFO,但是不保证应用程序满足使用内置FIFO的所有条件,可配置FIFO使用最优配置。在FIFO属性对话框的常规页面上,从控制逻辑下拉菜单中选择终端优化

终端优化选项根据终端和应用程序的功能,选择逻辑片架构内置选项。当终端支持内置FIFO,且重置时时钟域不停止时,应用程序使用内置FIFO。否则,应用程序使用逻辑片结构来创建控制逻辑。

注: 选择终端优化表示FIFO中元素的实际数量根据应用中FIFO的目标和位置而变化。实际元素数量的值始终大于或等于请求的元素数量的值。