在vivado下使用bram的文章很多,这里我想用的bram作为ROM使用。在zc702开发板上实现。
首先在vivado的block design中添加IP,选择axi bram进行搜索,选择“AXI BRAM Controller”,如下图所示
然后输入blk,进行搜索,选择“Block Memory Generator”
然后使用推荐的连接自动化“Run Connection Automation”,进行连接。
在“AXI BRAM Controller”的设置中,设置BRAM接口为1个,如下图所示
然后双击“blk mem”模块,进行属性编辑,在“Basic”标签下设置为single port ROM模式
然后在“Other Options”标签下,选择“Load Init File”,如下图所示
xilinx支持的ROM初始化文件格式为.coe文件。
coe文件的格式如下,第一行为设置数据的进制,如下图为10进制,然后是数据,以逗号分隔,以分号结尾。
在“Other Options”标签下的“Edit”可以对coe文件的有效性(格式)进行验证,验证成功后,再“generate output products”,生成bit文件。需要说明一下,最终起作用的是.mif文件;
在vivado的“Address Editor”中查看一下bram对应的ROM的地址,便于在sdk中通过代码读取数据。
将生成的bit文件导入SDK,新建sdk工程,由于以前建立的基于ucos的工程,所以在hello world的工程模板中,增加了读取ROM的代码,如下
sdk中调试运行结果如下