VCS逻辑仿真工具-03——后处理:VCD+文件

内容:
VCS逻辑仿真工具-03——后处理:VCD+文件
交互式:仿真中断了或者停下来了去处理一些问题
后处理模式:先仿真——产生波形——保存下来——再打开
将波形文件在仿真的时候记录下来,之后再把波形文件打开查看一下。
vcd+文件:
对于大型的Soc项目来说,波形文件会非常大,打开会非常慢。
Dump波形:在testbench里面嵌入一些开关函数,执行编译仿真,仿真结束之后,才能得到一个波形文件。
一般在仿真过程中,人是不会去干预的。
在仿真之后,结合着波形文件和log文档,找出问题所在。
(需要设计人员和验证人员的配合。)

【后处理需要考虑的一些问题】
VCS逻辑仿真工具-03——后处理:VCD+文件
1、 速度:记录波形会严重影响速度
2、 可见性:波形给出的一些信息
3、 可追踪性:获得信息之后反推问题所在
4、 Usability:实用性,图形界面更加方便使用

VCS逻辑仿真工具-03——后处理:VCD+文件
VCS逻辑仿真工具-03——后处理:VCD+文件
一般来说在testbench里面嵌入一个函数:vcdpluson
可以加入一些选项,如果不带选项,默认把所有的波形文件都记录下来。
【vcdpluson的一些参数选项】
VCS逻辑仿真工具-03——后处理:VCD+文件
因为是一种层次化的设计,可以指定层数。
比如有A(B(C))这样一个层次,vcdpluson(2,A)ABvcdpluson(2,A),记录A、B的波形 如果写vcdpluson(0,A)表示这个module的全都记录下来。
$vcdplusoff(module_instance ,…):终止记录
一般来讲,会记录模块级,不会记录一根线

【其它一些关于vcd+的系统函数】
VCS逻辑仿真工具-03——后处理:VCD+文件
vcdplusautoflushonVCSvcdplusautoflushon:指示VCS当遇到中断情况(比如说stop系统函数)时,把它记录到文件里。
相应地有off

$vcdplushflush:手动指示VCS把内存里的结果写到VCD+文件中去

【还有一些用的不多的选项】
VCS逻辑仿真工具-03——后处理:VCD+文件

【使用系统函数的一些例子】
VCS逻辑仿真工具-03——后处理:VCD+文件
vcdpluson:把所有的波形都记录下来

注意readmemb
$readmemb(“”, )
把这个文件里的东西加载到这个数组里面去

VCS逻辑仿真工具-03——后处理:VCD+文件
在编译的时候会加入一些选项
vcdplus_switches :指示波形的一些选项

-debug_all包含了这些选项
默认的波形文件名叫vcdplus.vpd

【常见的一些开关选项】
VCS逻辑仿真工具-03——后处理:VCD+文件
-debug_all -debug_pp
+vpdfile+可以指定文件名(给vpd重新起个名字)
下面的用的不多

VCS逻辑仿真工具-03——后处理:VCD+文件

【Tips】
VCS逻辑仿真工具-03——后处理:VCD+文件
通过宏定义来注释掉dump的系统函数
在仿真的时候加入命令+define+来定义宏

【VCS的Makefile】
VCS逻辑仿真工具-03——后处理:VCD+文件
VCS逻辑仿真工具-03——后处理:VCD+文件
OUTPUT 默认产生simv可执行文件,起个名字
ALL_DEFINE 宏定义
CM:跟覆盖率相关的

VCS
+notimingcheck 不要做时序检查
+nospecify
+vcs+flush+all 控制读写文件的

一般是不会将数组文件记录下来的。
如何将数组的内容记录下来:
$vcdplusmemon();
VCS逻辑仿真工具-03——后处理:VCD+文件

关于readmemh:
VCS逻辑仿真工具-03——后处理:VCD+文件
把这个文件读进来,然后display

这个txt文件长这样:
VCS逻辑仿真工具-03——后处理:VCD+文件

两个非常重要的宏:
VCS逻辑仿真工具-03——后处理:VCD+文件
把打印这一句的对应的文件名(相对路径)和行号也打印出来
VCS逻辑仿真工具-03——后处理:VCD+文件
(在UVM里用的很多)