VCS-verilog compiled simulator是synopsys公司的产品.其仿真速度相当快,而且支持多种调用方式;使用的步骤和modelsim类似,都要先做编译,再调用仿真.
Vcs包括两种调试界面:Text-based:Command Line InteRFace(CLI) 和 GUI-based(VirSim);仿真主要的两个步骤是编译,运行:
>vcs design.v
//编译verilog的源文件并且生成一个可执行文件simv
>simv
//运行simv
一般情况下都存在vcs 做编译的时候的compile_time_options和运行时候的run_time_options,这些我们在下面再具体介绍.
一.VCS的三种调试模式
使用vcs存在三种调试模式:CLI调试模式,VirSim交互调试模式和VirSim后处理调试模式.下面举例说明:
1. CLI调试模式
CLI调试模式存在两种调用方法,一种是编译后马上执行,一种是把编译执行分开处理
>vcs source.v +cli+3 –R –s
或者
>vcs source.v +cli+3
>simv source.v –s
其中 +cli+[1 2 3 4]是指调试时候交互调试的能力.
+cli+[<module_name>=]1|2|3|4
Enable CLI debugging.
1 enables you to see the values of nets and registers and deposit values to registers.
2 also enables breakpoints on value changes of nets and registers.
3 also enables you to force a value on nets.
4 also enables you to force a value on a register.
You can specify a module to enable CLI debugging only for instances of the module.
-line 能够支持单步调试 但是这些都是会增加运行时间的.
这里不详细介绍CLI 命令具体可以参考usrerguide.注意我们也可以把CLI的命令写成一个script的文件在vcs编译时调用.
>vcs source.v –R –s –include script_file
或者在cli下调用cli>source script_file
2. VirSim交互调试模式
启动VirSim交互调试模式和调用CLI一样也是有两中方法.
>vcs source.v –RI –line +vcsd +cfgfile+filename
或者
>vcs source.v –I –line +vcsd
>vcs source.v -RIG +cfgfile+filename
其中-RI 作用有两个:编译生成可以在VirSim中可执行的文件并且编译后马上启动Virsim;
要编译成可以在VirSim中可执行的文件必须在编译阶段加-I,在要生成vcd或vpd时这个参数一定要添加;-RIG通过一个已编译完成的默认的simv文件启动Virsim,在启动之前一定要通过vcs –RI或者-I对源文件做过编译.
使用vcs编译源文件之后会发现目录下多了simv和/csrc等文件,其中simv是默认的可执行文件,可以在vcs做编译的时候 –o filename改变输出的名字,/csrc是存的增量编译的结果,/simv.daidir如果设置中使用到了PLI就会创建.
具体如何使用VirSim做交互调试这里也不具体介绍,可以参考VirSim的userguide和vcs安装下面的doc的tutorial.
3. VirSim的后处理调试模式
注意什么时候用后处理调试模式,什么时候使用交换模式那?在初步仿真的过程使用交互模式,若是调试一个成熟的设计或者很多人一起做调试这样子可以使用post-processing mode.其主要的方法是通过仿真运行dump数据在vcd或者vpd文件中,运行结束后通过vcd或者vpd观察运行过程的情况,交互调试能力相对较差,但是通过记录的数据可以观察出其中异常的地方;也就是包括两个步骤Write VCD+ file,View result.
>vcs source.v –line –R -PP +vcsd