0 前言
博主我查了很多资料,虽然会使用Verilog的readmemh和readmemh和readmemh和readmemb函数,可是,在vivado软件中怎么用?文件放在哪里?没有一篇文章提及。
花了几个小时,终于研究明白了,特此记录下来,也希望为后来者提供帮助。
对于函数使用的讲解,不再赘述,其他博主写的很好了,点此查看即可。
这里重点强调,文件放在哪里!
1. 两种文件访问方式
1.1 默认路径访问
reg [31:0] rom [31:0];initial $readmemh ( "rom.txt",rom);
对于上述表示方式rom.txt,这个文件的位置,必须放在指定文件夹内
- 打开vivado工程文件的路径

进入sim文件夹,然后依次进入sim_1,behav,xsim - 在此文件夹内,建立
rom.txt文件

在这里建立rom.txt文件即可,之后仿真的时候,就可以正常调用数据了。
1.2 绝对路径访问
reg [31:0] rom [31:0];initial $readmemh ( "D:/myCollege/ComputerOrganization/VerilogDesign/test_readmemh/rom.txt",rom);
如上所示,直接给出文件的绝对路径,这样就可以任意设定rom.txt文件的位置。
补充学习链接
注意:斜杠一定要是/,直接复制过来的win路径不是这个,需要修改。
1.3 相对路径访问
这个与win和Linux的cd命令,访问文件的方式一样,不再多说。

通过上面的指令,你就可以把数据文件放在最表面的位置,好找。

2 教训


- 大小写错了
- 报错没看懂
- 报错一直在找文件位置的问题,但是这玩意之前解决过阿……
首先,大小写不该错,但是真错了,是很难看的出来……
其次,报错含义:dataROm未声明可能C++能看到,到Verilog咋就看不懂了??以后心态放平和。
找错注意:2个属性,这个不是,那就是另外一个
最后,文件位置之前解决了,还记录在本文,第31行一共就2个属性,非抓第一个不放干嘛。
好了,以后不要再犯这种愚蠢的错误了。