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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8379|回复: 16

[求助] 同样的verilog代码在modelsim10.4和vcs2016中仿真结果不一样

[复制链接]
发表于 2018-2-2 18:25:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 qhesen 于 2018-2-2 18:27 编辑

大家好,目前我正在做一个数字前端设计,可是有一段verilog代码在modelsim10.4和vcs2016中仿真得到的结果不同


modelsim仿真部分结果图:
屏幕快照 2018-02-02 下午6.10.12.png


vcs仿真部分结果图:
屏幕快照 2018-02-02 下午6.02.38.png


相关代码如下:
屏幕快照 2018-02-02 下午6.13.01.png


重点代码如下:
屏幕快照 2018-02-02 下午6.14.03.png



delta_odd和delta_even是在时钟的上升沿根据其他信号产生的信号。上面的图中可以看到temp_error_flag的产生时间不一样。

其中modelsim仿真结果是我的预期,我不知道为什么两种工具得到的结果不一样,请教一下大家。
我想要知道为什么会出现不一致,如何修改代码使得到的结果一致。
发表于 2018-2-2 19:18:12 | 显示全部楼层
temp_error_flag <= #1 1;把时序进程里的全部非阻塞赋值,加一个单位延迟。应该能解决。
可能你的代码中,有另外一个由byte_clk触发的进程,生成delta_odd,delta_even。两个都是硬件并发过程。但是软件仿真却是顺序执行的,可能modelsim vcs实现的方式不同。所以建议,加个单位延迟。可以增加代码在不同仿真软件间的可移植性。
发表于 2018-2-2 19:21:55 | 显示全部楼层
应该跟你的delta_odd信号怎么产生的有关,你的目的是应该modelsim这个波形是你想要的

那delta_odd这个信号必须是用byte_clk打出来的数据
 楼主| 发表于 2018-2-5 09:38:31 | 显示全部楼层
回复 3# rvisk
delta_odd和delta_e号的确是在byte_clk上升沿产生,可是在modelsim和vcs中在时钟上升沿读到的信号却是不同的,modelsim中读出的是上升沿之前产生的delta_odd和delta_even,vcs却是上升沿之后的delta_odd和delta_even,所以出现不同,现在我将delta_odd和delta_even的产生在上升沿之后延迟了一个周期,这样两个软件仿真得到的结果是一样的,可是这样做是不是不好?最后这个设计还需要通过fpga测试
发表于 2018-2-5 15:42:28 | 显示全部楼层
本帖最后由 rvisk 于 2018-2-5 16:32 编辑

回复 4# qhesen

   你这个方法我没看懂

   1、你试试2楼的办法;台湾那边的IC公司一般寄存器都写成这样的赋值方式  temp_error_flag <= #1  XXX
   2、你测试环境有问题,按道理不应该出现这样的错误
发表于 2018-2-5 15:45:49 | 显示全部楼层
delta_odd和delta_even也是RTL中上一级寄存器产生的吗?还是testbench里写出来的?
都是用的<=赋值吗?有=和<=混用的情况吗?
 楼主| 发表于 2018-2-5 17:35:50 | 显示全部楼层
回复 5# rvisk
感谢回复,我就是应用了2楼的方法,将代码中一些信号的产生加入了#1延迟,使得之后在clock的上升沿采集到的数据是我想要的,这样得到的结果可以符合预期。我现在的疑问是,这样加入延迟是不可综合的,如果将这些延迟去除再综合得到的结果是否还是正确的,是否可以符合预期。再次感谢
发表于 2018-2-6 09:48:31 | 显示全部楼层
回复 7# qhesen


   是正确的
   综合工具自动忽略 #1 语法
发表于 2018-2-6 12:35:42 | 显示全部楼层
2楼正解
发表于 2018-3-3 19:12:51 | 显示全部楼层
建议你的在非阻塞赋值<=之间增加一个#1。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 01:25 , Processed in 0.022406 second(s), 7 queries , Gzip On, Redis On.

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