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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1961|回复: 1

[求助] modelsim优化后仿真 和 不优化的仿真结果不一样?

[复制链接]
发表于 2013-3-15 21:42:04 | 显示全部楼层 |阅读模式

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

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

x
小弟最近在忙实验室一个项目,RTL模型写完了,正在仿真验证,关于优化仿真和不优化仿真遇到一点问题:

先把modelsim官方教程中相关部分贴出来:
“三步流程仿真方法“ 中两种类型
(1)Performing a simulation for debug — preserve the highest level of visibility by
       specifying the +acc argument to vopt. For example:

            vlog -work <required_files>
            vopt +acc top -o dbugver
            vsim dbugver

(2)Performing a simulation for regression — reduce the amount of visibility because you
       are not as concerned about debugging. For example:

            vlog -work <required_files>
            vopt top -o optver
            vsim optver

我的testbench中输出结果部分代码如下:
//**************** write output ***************
always @(posedge da_clk) begin
    if( !empty_3 )
       $fwrite(fid_out,"%0d        %0d\n",real_final_out,imag_final_out);
end

integer num;
always @(posedge wclk) begin
    if(winc && !wfull_1 ) begin
         $fwrite(fid_mapout,"%0d        %0d\n",map_real,map_imag);
         num=num+1;
         end
    else if(!frame)
            num=0;
       else
           num=num;
end

现在出现的问题是:

大量case仿真时,为加快速度,使用(2)方法:   fid_out文件中输出的数据全是0(数量正确,只是数据是0),fid_mapout文件输出正确
debug时,使用(1)方法:            fid_out文件和fid_mapout文件输出都正确

先用(2)仿真,发现fid_out有问题,然后(1)debug仿真,又发现输出正确,当然波形也正确,这是怎么回事?跟哥玩捉迷藏?

我在想是不是两种仿真的结果一样,只不过输出部分代码在两种方法下有不同的行为?但是看看上面代码又找不到问题,为什么fid_mapout就不会有这个问题呢?

一开始觉得是不是第一个always块中少了else,补上一个else  begin  end 还是不行。  

求大神指点!!!优化过程中到底发生了什么?
 楼主| 发表于 2013-3-16 21:33:43 | 显示全部楼层
没人啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-3-29 18:45 , Processed in 0.031945 second(s), 8 queries , Gzip On, Redis On.

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