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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10085|回复: 32

[原创] modelsim版本不同仿真不同吗

[复制链接]
发表于 2012-7-14 13:09:43 | 显示全部楼层 |阅读模式

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

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

x
本来一直在用6.5的在仿真,前几天老师说用新版本,于是装了10.0的。可是仿真结果竟然与6.5的不太一样。而我用ISIM仿真的结果却和6.5的一样,不知道什么原因,是不是10.0的版本对于verilog语法要求更严格呢?望指点!
发表于 2012-7-14 21:18:07 | 显示全部楼层
确实是如此的,还是需要就具体问题来具体分析。
发表于 2012-7-14 22:15:28 | 显示全部楼层
个人认为这种情况不应该出现,这样不就说明至少有一个软件有问题了吗!
 楼主| 发表于 2012-7-15 09:38:31 | 显示全部楼层
回复 3# 小小子


    恩,我也是这么觉得。我觉得ISIM肯定不会有问题,那么就说明10.0c的有问题
 楼主| 发表于 2012-7-15 09:39:33 | 显示全部楼层
回复 2# gaurson


    但是我感觉不应该啊,应该是软件的不稳定或者其他原因吧
发表于 2012-7-15 18:20:43 | 显示全部楼层
ISE1.24不支持modelsim10.0,ISE10.0能调用modelsim10.1,但结果有时候出错!如果用modelsim10.1,最好用ISE13.4,回答完毕,我也遇到过类似问题。
发表于 2012-7-15 19:52:23 | 显示全部楼层
modelsim的仿真结果跟ise的版本没有一点关系。
再说用ise调用modelsim实在不是一个好的选择。

碰到这种情况最好保存一下波形,然后比较一下,modelsim是可以比较波形文件的。
也不好说哪个对那个错,最好实际情况实际分析。一般来说高版本错误的可能性稍微小一点。


另外一个可能性就是楼主的代码有问题。比方说下面的语法在不同的仿真器就有不同的行为。
代码综合没有问题,仿真有可能有问题。一般认为是编码风格问题 。


always @(posedge clk or posedge rst)
begin
    if(rst)
         a = 0;
   else
         a = b;
end

老版本的modelsim认为这个是一个非阻塞赋值,仿真没有问题。貌似ncsim也认为没有问题。
vcs就把这个认为是一个阻塞赋值。仿真结果和老版本的modelsim查一拍。
 楼主| 发表于 2012-7-15 21:41:55 | 显示全部楼层
回复 7# tiangua


    谢谢你的回答啊。我现在的问题是这样的,在modelsim6.5和ISIM中仿真图是这样的 DJ8)8(S4SQW}PQ@PV`@%O8E.jpg
     而在modelsim10.0c中是这样的 B]@(HT4VE)ZPK30GKF~QQ3C.jpg
     我本来设计的代码是希望按modelsim6.5显示的那样的结果。代码如下:
    always@(posedge CLK)
    if(zhuanzhi_enable)
       begin
       ram1_ena<=(ram1_addra==17'd65280)?1'b0:1'b1;
      if(cntt==17'd256)
       begin
      ram1_addra<=ram1_addra+17'd257;
      cntt<=17'd1;
     end
    else
       begin
       ram1_addra<=ram1_addra+1;
       cntt<=cntt+1;
      end
  end
   else
        ram1_ena<=1'b0;


always@(posedge CLK)
   if(addr_reset_write)
    begin
  ram1_addra<=ram1_addra;

在ram1_addra到65280的时候,之后一直是65280。不知到是不 是放在两个alway模块中了,10.0版本就出现问题了
发表于 2012-7-15 22:03:19 | 显示全部楼层
看起来6.5是错的。不太确定,
你在代码中没有限定ram1_addra到65280以后就不继续增加了。

第二个always块是什么意思,ram1_addra <= ram1_addra ???
发表于 2012-7-15 23:09:02 | 显示全部楼层
不至于吧,我没有试过,是不是因为其它设置不一样呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 12:23 , Processed in 0.027549 second(s), 8 queries , Gzip On, Redis On.

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