VCS
The Verilog Compiler
Simulator
仿真的过程
编译Compile
VCS对源文件进行编译,生成中间文件和可执行文件
仿真Simulate
运行可执行文件,对设计进行仿真
调试
通过观察波形、设置断点、追踪信号、查看schematic等来
发现错误,并进行纠正
覆盖率测试
通过在编译时,加入覆盖率测试的选项、仿真后,生成包
含覆盖率信息的中间文件来显示测试平台的正确性和完备性。
一、编译:VCS
一个常见的编译命令如下:
vcs design.v -f file.f -y lib_dir +libext+.v -v lib_file pli.c \
-P pli.tab -Mupdate -o bin_name -l log_file +v2k -R -RI -s \
-debug_all +vcsd +define+m1+m2 +timopt+<period>-line \
+incdir+dir1+dir2 +memopt[+2] -sverilog -mhdl +ad \
-full64 -comp64 +nospecify +notimingcheck -ntb +race \
-ova_file file_ova +vpdfile+file_vpd +vpdfilesize+nMB \
+vpdupdate +cli+1|2|3|4 +vcs+initmem+0|1|x|z \
+vcs+initreg+0|1|x|z +vc
-cm line|tgl|cond|fsm|path|branch -cm_dir dir \
一、编译:VCS
-v
lib_file
lib_file是Verilog文件,包含了引用的module的定义,可以
是绝对路径,也可以是相对路劲。
-y
lib_dir
lib_dir是参考库的目录,vcs从该目录下寻找包含引用的
module的Verilog文件,这些文件的文件名必须和引用的module的名一样
+libext
+.v+.vhd
+... vcs在参考库目录下寻找以.v和.vhd为扩展名的文件。
多个扩展名之间用“+”连接。
+incdir+
dir1
+
dir2
+… vcs从dir1和dir2等目录下寻找源代码中`include指
示的文件。
-full64
vcs以64位模式编译,生成64位的simv。
-comp64
vcs以64位模式编译,生成32位的simv。
-file
list_file
list_file文件中式源文件的列表以及编译选项。
-debug_pp
产生vpd文件,enable DVE for post-processing。
-debug
相对于-debug_pp,多了UCLI调试功能。
-debug_all
相对于-debug,多了单步调试功能。
-gui
在仿真时,使用dve调试
-assert dve
enable Systemverilog assertion tracing in the VPD file
-R
编译后立即进行仿真
-pvalue+
parameter_hierarchical_name
=
value
改变设计中的参数值,例如:
vcs -pvalue+test.d1.param1=33
-parameters
filename
更改
filename
中的参数值
-notice
给出详细的编译信息
-q
不在终端输出编译时的信息
-l
log_file
将日志写入制定的l
og_file
中
+define+
macro1=value
+macro2=value+… 将
macro1
和
macro2
,…传给源文件
中同名的宏,如果value是字符串的话,要用双引号括起来
-o
bin_name
产生
bin_name
的可执行文件,而不产生simv
+v2k
支持Verilog 2001标准
+vcs+initmem+0|1|x|z
初始化存储器和多位寄存器数组
+vcs+initreg+0|1|x|z
初始化reg变量,不初始化其他寄存器型变量
-xzcheck
当一个条件等于x、z值时,VCS给出警告信息,可以在某些模
块中加入$xzcheckoff和$xzcheckon来屏蔽该选项
-RI
执行完编译后,立即运行VirSim,该选项不能和+vcds联
用
-s
编译之后,运行simv时,仿真时刻停止0处
+define+
macro1
+… 将宏
macro1
传给源代码。
-sverilog
提供对SystemVerilog的支持
一、编译:VCS