Intel® Stratix® 10嵌入式存储器用户指南

ID 683423
日期 11/19/2019
Public
文档目录

4.4. FIFO2 Intel® FPGA IP

Intel® 提供FIFO2 Intel® FPGA IP core作为FIFO Intel® FPGA IP core的替代解决方案,用于宽数据和高工作频率(Fmax)的应用,以实现高数据带宽。

FIFO2 Intel® FPGA IP core中的FIFO功能主要应用于符合同步或异步时钟域中的先进先出数据流的数据缓冲应用。

注: FIFO2 Intel® FPGA IP core不能向后兼容FIFO Intel® FPGA IP core。
表 50.  FIFO和FIFO2 Intel® FPGA IP core之间的区别
特性 Intel® FPGA IP Cores
FIFO FIFO2
读延迟 rdreq信号置位后的0 - 1个时钟周期。 rdreq信号置位后的3 - 4个时钟周期。
Read valid when r_empty信号为低 r_valid信号为高
显示提前模式(Show-ahead mode) 支持 不支持
深度(D)和宽度(W)配置 根据用户要求 多个硬核存储器模块(32W x 512D for M20K, 20W x 32D for MLAB)
输出数据初始状态 0 未知
Flushing 不需要 需要最少32个慢时钟周期flushing

在读出操作之前,首先将应用数据写入(部分或全部)到FIFO2 Intel® FPGA IP core中。数据读取操作可以在长时间的连续突发或单个时钟读取中。虽然没有特定的写入或读取限制,但由于延迟的出现,对于短的写操作和/或读操作,带宽使用的效率都会很低。

FIFO2 Intel® FPGA IP core的读接口适用于那些不执行反压(back-pressure)的应用,或者下游还有“级联”缓冲器的应用。

例如,

  • 在MAC RX用户接口上,此接口通常不能被反压,相当于总是读取。
  • 到硬化Native PHY FIFO的MAX TX内部数据路径上。然后可以从Native PHY FIFO部分满状态导出FIFO读操作。

用户应用程序可以直接连接到FIFO2 Intel® FPGA IP core的读接口到外部小型SCFIFO(或者类似的存储缓冲器),以将read-to-data延迟改为零,但要以Fmax和资源为代价。

实际上,所有时钟都运行在几百MHz上。这是因为FIFO2 Intel® FPGA IP core被高度流水线化以运行在非常高的Fmax上,由于较长的延迟FIFO2 Intel® FPGA IP core不适合慢速时钟。