vivado(verilog)中的双时钟FIFO

Dual clock FIFO in vivado (verilog)

我想在项目中使用 FIFO,其中状态机将尽可能多的数据缓冲到 FIFO,然后由 DSP 块处理。为了最大化数据吞吐量,我想使用多个 QSPI 或闪存模块作为具有宽数据总线的 ROM。 DSP 模块每个周期可以执行 1 个操作,这意味着数据输入宽度必须大于输出宽度(因为传输数据需要 8 个时钟周期)。例如,我想要一个具有 32 位输入和 8 位输出的 FIFO,但据我所知,这在 vivado 中不受支持。我尝试了各种 FIFO 块生成器,甚至尝试使用宏,但我运气不佳。

请告诉我如何生成输入宽度大于输出宽度的双时钟 FIFO。

在Vivado中使用FIFO Generator IP核,为FIFO Implementation选择Independent Clocks Block RAM,然后您将能够为写入端口设置比读取端口更大的数据宽度。