在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 8095|回复: 9

[求助] 请教一些关于verilog testbench的文件操作

[复制链接]
发表于 2013-8-6 15:54:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
请教一些关于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


不清楚读入文件的文档放置路径有什么联系?为什么不能读入数据。
 楼主| 发表于 2013-8-7 10:55:23 | 显示全部楼层
回复 2# mballack


谢谢
盘符改为f:\data\memoryb.txt
$readmemb("f:/data/memoryb.txt",mem);
还是这个警告
# ** Warning: (vsim-7) Failed to open readmem file "f:/data/memoryb.txt" in read mode.
# No such file or directory. (errno = ENOENT)    : Tst_iqsin.v(61)
是不是输入文件只能放在工程目录下面啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 10:55:49 | 显示全部楼层
回复 2# mballack


谢谢
盘符改为f:\data\memoryb.txt
$readmemb("f:/data/memoryb.txt",mem);
还是这个警告
# ** Warning: (vsim-7) Failed to open readmem file "f:/data/memoryb.txt" in read mode.
# No such file or directory. (errno = ENOENT)    : Tst_iqsin.v(61)
是不是输入文件只能放在工程目录下面啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-10-16 23:51 , Processed in 0.015053 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表