vcs xprop 仿真的一些理解

本篇随笔参照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 :

 

posted @ 2022-07-04 15:51  学号党  阅读(4018)  评论(0编辑  收藏  举报