在前面的课程我们学习了RAM,接下来我们一起来学习另外一个IP核,双口RAM的使用。 首先新建一个工程 接着调出我们需要的双口RAM,点击TOOL→
点击NEXT 按上图选择后就可以点击NEXT 按上图选择后就可以点击NEXT 按上图选择后就可以点击NEXT(选择RAM的地址深度是1024与数据位宽是8) 按上图选择后就可以点击NEXT(选择读跟写拥有自己的独立时钟) 按上图选择后就可以连续点击2次Finsh(输出不带寄存器输出)
由于RAM是可读写的存储器,所以我们可以建立一个RAM控制器,先把数据写入到RAM,然后再读出来,仿真验证读写是否正确,控制器具体代码如下:
接着通过顶层调用两个模块: 测试程序如下: 编译整个工程 由于没有输出信号,所以可以发现我们FPGA的逻辑占用资源是0的。
仿真波形图: 由上图可以发现,双口RAM的结构,是可以解决跨时钟域的问题,在a_clk的时钟下,a端口的数据不断写入,而b_clk的时钟下,b端口不断把数据读出来,而且跟a端口写入的数据是相同的。
|