我正在尝试将一个模块(我们称之为main_module)与Xilinx核心生成器生成的双端口块RAM内存接口。两个模块相互发送和接收数据,并以明显不同的时钟速度运行。为了解决接口中面临的同步问题,我决定使用异步FIFO (也是由Xilinx核心生成器生成)。关于这一点,我有些困惑:

发布于 2017-08-10 06:45:57
按优先顺序考虑了三个备选方案:
1)在BRam接口中切换到AXI,使用AXI组件和协议进行多主内存访问。乍一看,这似乎有点过分,但无论你从零开始做什么,都需要在临时的基础上朝着类似的原则努力,这通常比使用目的构建的行业标准方法花费更多的时间。
( 2) (重新)架构设计,以便不需要共享一个BRam端口。例如,复制数据,以便每个端口总是只有一个时钟,即写入两个BRams是双方需要的数据。
3)如您所建议的,对于本地端口中没有使用的时钟,有一个Fifo。您需要在这个Fifo中同时拥有数据和地址。因此,写是相当紧张的向前,但对于读,您还需要Fifo (或XMP时钟域交叉同步器)的返回通道和一些协议来处理读取。
https://stackoverflow.com/questions/45294753
复制相似问题