本篇随笔参照vcs user guide,并进行了一个小实验用以加深理解。
在芯片前端开发的后期,验证工程师需要进行xprop仿真验证,之前我只是简单的打开xprop的功能,去回归一些case看会不会fail并进行debug。但是对为什么要进行xprop验证理解的并不是很清楚。
下面是一些我自己的理解:
1. xprop 仿真适用于前期的rtl仿真,对于gate-level仿真是没有任何作用的(下面的例子我会讲到)
2. 在不开xprop的情况下,rtl仿真会忽略掉控制信号中的不定态,给输出赋予一个确定的值。控制信号指的是 :always中的 posege clk,if(clk==1).
Standard RTL simulations ignore the uncertainty of X-valued control signals and assign predictable output values. As a result, RTL simulations often fail to detect design problems related to the lack of X-Propagation. However, the same design problems can be detected in gate-level simulations. With X-Propagation support in RTL simulations, engineers can save time and effort in debugging differences between RTL and gate-level simulation results —摘抄自vcs 官方user guide
3. xprop的功能就是提前在rtl仿真的过程中可以提前发现gate-level仿真中的一些bug。rtl仿真 with xprop可以节省部分人力去debug rtl 仿真结果与gate 仿真结果的差异。
4.也就是说gate 仿真如果确认没有问题的话,xprop是可以不做的。毕竟xprop发现的问题,gate仿真也是可以发现的。但是目前的情况是一个芯片规模非常大,导致对整个芯片进行gate仿真不现实,这种情况下可以使用xprop,这是xprop 仿真模型的用处所在。
下面的例子可以直观的看到开xprop前后仿真结果的不同.
DUT 代码:
在经过DC工具对 test module 综合之后,网表中是没有always块的,故 xprop对网表仿真没有任何实际用处。
波形:
xprop off
xprop on:
xprop 关闭时,clk 0->x翻转以及x->1翻转 posedge clk会判定为 true;1->x翻转以及x->0翻转 negedge clk 会判定为true。
xprop 打开时,clk如果为x,输出结果也会是X。
发现一个目前不理解的情况:
当DUT中的第15行和23行不被注释掉的时候,仿真器的xprop功能是被disable掉了。xprop.log 提示:
当 这两行代码被注释掉之后 xprop.log :
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/271481.html