FPGA如何调用存储器IP
1、建立好工程后,点击左侧红色箭头:
2、然后右侧弹出的窗口,搜索block,选择蓝色箭头所指:
然后在弹出的如下窗口:
红色箭头:选择native,这个接口比较少,简单一点。
蓝色箭头:single port rom,只能读取存储器的内容,不能写入。(此次只学读取)
最上面是所用存储器的名称,这里我没改,默认blk_mem_gen_0。
可以在左下角看到这个存储器,有一个使能端ena、一个时钟输入clka、一个地址输入addra、一个数据输出douta。
由于这次设计的简约CPU是32位,所以下面数据宽度设置为32,深度1024:
3、接下来按下图设置,添加coe文件
(个人理解coe文件里存储了memory里的数据,以及格式等,若是学校做实验,老师应该会提供coe文件的,若没有,可关注微信公众号: 数字自修 ,后台回复 coe 即可。)
然后点ok,弹出下面窗口,里面这些设置具体什么意思不太清楚,我也没管,实际上也不需要管,直接点Generate:
然后在source窗口就出现了这个memory:
4、那么怎么调用呢?看如下操作:
依次点击红色、蓝色箭头所指地方,然后双击绿色箭头的veo文件,打开:
可发现上面这块代码,这是例化存储器的模板,直接复制到你的顶层文件就可以调用了。
之后,用拨码开关给存储器模块的addra地址端送10bits的地址,在douta端就可以输出对应地址内存放的数了。