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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2445|回复: 5

[求助] 为何将modelsim中的memory型存入txt中,第一个存入值为0

[复制链接]
发表于 2013-1-16 15:44:03 | 显示全部楼层 |阅读模式

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

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

x
top端口定义有data_out,finish,done。data_out为数据输出端口,finish为是否开始存入txt的使能端口,done为全部存入的结束使能端口。
data_out初始为0,mem【】内已存入值




  1. always @ (posedge clk)
  2. ...(初始化)
  3. else
  4. begin
  5.     if(finish)//开始传数据
  6.       begin
  7.                   data_out <= mem[cnt];
  8.            if(cnt == 17'd76799)//数据完全导出
  9.            begin
  10.                  done <= 1'b1;
  11.             end
  12.             else
  13.                cnt <= cnt + 1'b1;
  14.        endend


复制代码


在testbench中




  1.         integer w_file;
  2.         initial
  3.         begin
  4.                 w_file = $fopen("result.txt");
  5.         end
  6.        
  7.         always @(posedge clk)
  8.         begin
  9.                 if(finish)
  10.                         $fdisplay(w_file,"%d",data_out);
  11.                 if(done)
  12.                         $stop;
  13.         end



复制代码

为何存入的第一个值一直是0
发表于 2013-1-16 16:36:44 | 显示全部楼层
因为第一个clk上升沿的时候data_out是0
 楼主| 发表于 2013-1-16 19:49:31 | 显示全部楼层
回复 2# falloutmx


    可是怎么修改呢??
发表于 2013-1-16 20:28:25 | 显示全部楼层
发表于 2013-1-16 22:29:32 | 显示全部楼层
在某个上升沿,if(finish)  data_out <= mem[cnt];同时$fdisplay(w_file,"%d",data_out),但此时输出的是上一个时钟周期时的data_out,正确输出应该延迟一个周期输出
always @(posedge clk)
begin
finish_d1<=finish;
if(fiish_d1)
$fdisplay(w_file,"%d",data_out);
end
 楼主| 发表于 2013-1-17 15:22:51 | 显示全部楼层
回复 5# wlyj000


    明白了,谢谢了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-13 00:56 , Processed in 0.042079 second(s), 12 queries , Gzip On, MemCached On.

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