|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
请教一些关于verilog testbench的文件操作
之前一直用的VHDL的文件的数据读出,写入操作。想用一用verilog的命令。
ISE 用的版本是12.4
Modelsim用的是6.5c
在ISE中调用modelsim仿真
在F盘文件夹data下面有两个文件分别为memoryb.txt和memoryh.txt
里面数据分别为
memoryb.txt文件内容
10101101 00011101 01101111 01100001
00000001 11111110 11111111 11101110
memoryh.txt文件内容
ef ab 3e 4f
在testbench文件中代码如下
reg [7:0] mem[7:0];
reg [2:0] i;
integer file;
initial
begin
$readmemb("F:\data\memoryb.txt",mem,4,0);// 从文本的读取数据向mem[4]开始写入,直到写到mem[0]
file = $fopen("f:\data\memory.txt","w");
for(i =0;i<7;i= i+1)
begin
$display("mem[%d] = %b",i,mem[i]);
$fdisplay(file,"mem[%d] = %b",i,mem[i]);
end
$readmemh("F:\data\memoryh.txt",mem);//如果没有地址的限制,就默认从//mem[0]到mem定义的最大地址。
for(i =0;i<7;i= i+1)
begin
$display("mem[%d] = %h",i,mem[i]);
$fdisplay(file,"mem[%d] = %h",i,mem[i]);
end
$fclose(file);
end
--------------------------------------------------------------------
modelsim的仿真结果如下:
# ** Warning: (vsim-7) Failed to open readmem file "F:datamemoryb.txt" in read mode.
# No such file or directory. (errno = ENOENT) : Tst_iqsin.v(61)
# Time: 0 ps Iteration: 0 Instance: /Tst_iqsin
# mem[0] = xxxxxxxx
# mem[1] = xxxxxxxx
# mem[2] = xxxxxxxx
# mem[3] = xxxxxxxx
# mem[4] = xxxxxxxx
# mem[5] = xxxxxxxx
# mem[6] = xxxxxxxx
# ** Warning: (vsim-7) Failed to open readmem file "F:datamemoryh.txt" in read mode.
# No such file or directory. (errno = ENOENT) : Tst_iqsin.v(69)
# Time: 0 ps Iteration: 0 Instance: /Tst_iqsin
# mem[0] = xx
# mem[1] = xx
# mem[2] = xx
# mem[3] = xx
# mem[4] = xx
# mem[5] = xx
# mem[6] = xx
--------------------------------------------------------------------------------------
问题:
file = $fopen("f:\data\memory.txt","w");
如果指定路劲为f:\data\memory.txt,memory.txt文档是空的
如果不指定路径就会在ISE的工程目录里面新建一个文件memory.txt里面内容为
mem[0] = xxxxxxxx
mem[1] = xxxxxxxx
mem[2] = xxxxxxxx
mem[3] = xxxxxxxx
mem[4] = xxxxxxxx
mem[5] = xxxxxxxx
mem[6] = xxxxxxxx
mem[0] = xx
mem[1] = xx
mem[2] = xx
mem[3] = xx
mem[4] = xx
mem[5] = xx
mem[6] = xx
不清楚读入文件的文档放置路径有什么联系?为什么不能读入数据。 |
|