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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[原创] VCS与Vivado仿真差异问题

[复制链接]
发表于 2023-9-7 20:58:34 | 显示全部楼层 |阅读模式

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

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

x
大家好,最近将在vivado上仿真正常的verilog代码使用VCS+Verdi联合仿真,他两仿真的结果居然是不一样的……具体代码与波形图如下:
代码片段:

                               
登录/注册后可看大图


Vivado仿真波形:

                               
登录/注册后可看大图

可见Vivado中thre_plus等获取的值是loadthrehold跳变为高电平之前的值。
VCS仿真波形:

                               
登录/注册后可看大图

可见VCS中仿真,thre_plus等寄存器获取值是在loadthrehold跳变为高电平之后,才从threhold寄存器中读取。

这是咋回事啊,好离谱。我的VCS编译命令是这样:
vcs -full64 -top ECG_Top_tb -f VCS_ECG_9160.scr -o VCS_ECG_9160  -full64  -debug_access+all -v2005 -j8  -fsdb



发表于 2023-9-7 23:56:55 | 显示全部楼层
这种问题多半是跟tb里面的赋值写法不规范有关,应该是跟事件驱动先后有关系,几家仿真tool的优先级不一样
发表于 2023-9-8 17:45:29 | 显示全部楼层
楼上说的对,要看看你的load***和thre**这些输入条件是怎么激励的。
发表于 2023-9-13 09:37:15 | 显示全部楼层
二楼正解
发表于 2024-8-29 17:41:36 | 显示全部楼层
同一个tb,同一个dut,同一个仿真器,偶然会出现不同的结果,是什么原因呢?
发表于 2024-9-4 19:27:38 | 显示全部楼层


小兔子宝宝哒 发表于 2024-8-29 17:41
同一个tb,同一个dut,同一个仿真器,偶然会出现不同的结果,是什么原因呢? ...


没有遵守语言规范,有些特殊情况属于工具自定义的,语言没定义

比如在两个initial里面在同一时刻对同一变量赋值,这个是看仿真工具怎么处理,每家不一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-26 15:20 , Processed in 0.021594 second(s), 7 queries , Gzip On, Redis On.

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