Verilog中给某一个位宽大于1的变量赋值,在时序仿真波形中变量的变化是一位一位变化,这样对吗

比如给一个3位宽且初始值为000的信号赋值为111,在仿真波形中看到信号是000,100,110,111这样变化的(在很短的时间内变化完,小于半个周期),而不是一次全部变化完的,这样对吗
在rtl中仿真不是这样的,是一次所有的位都同时变化为111

仿真波形是没有问题的,你既然做了时序仿真就应该知道和rtl的区别吧?rtl是不考虑延迟的,延迟来自很多种,最直观的一种就是走完一段距离总是会需要一些时间的,虽然你同时对3条线赋值或驱动,但这三条线的长短不同,导致时延不一致。当然,有时延是正常的,但是如果时延超过了一定的范围那就会出问题,这就是静态时序分析里的建立保持时间。追问

哦,原来是这样啊,谢谢你,还问您一下,时序仿真过程中有什么办法看到内部信号的波形吗

追答

你如果只是看内部信号的话,用modelsim做rtl仿真保证逻辑正确就行了;如果是想看到时延有没有改变逻辑的话,一般没必要通过时序仿真去做,在静态时序分析里面出现报错的时候针对关键路径做优化就足够了。

温馨提示:答案为网友推荐,仅供参考
相似回答