在FPGA设计中采用写testbench想要导入自己的数据作为输入信号,Verilog程序可以用两个系统任务(命令)分别是$readmemb(二进制数据文件)和$readmemh(十六进制数据文件),书上和网上的资料大部分给的参考语句都是类似$readmemb("init.dat",memory),我试了一下导入txt文件发现没问题,有几个注意点我记录一下,也希望大家看了有帮助。
1.注意语句文件位置目录要用“/”而不用“\”,我直接复制我的txt文件位置,结果失败,检查发现斜杠的问题,修改后直接搞定。
$readmemh("C:\Users\67\Desktop\tt.txt",mem);
改为
$readmemh("C:/Users/XX/Desktop/tt.txt",mem);
2.因为我的数据是ADC采样的12位数据,所以先添加一个12位的寄存器如下:
reg [11:0] mem [4095:0](tt.txt文件里有4096个十六进制数据)
接着就是每个触发时钟把寄存器的一个数据赋值给输入信号就可以了,如下:
always @(posedge clk)
begin
base_data<=mem;
i<=i+1;
if(i==4095)
i<=0;
end
|