热度 6| ||
VCS是仿真验证工具,Verdi是debug工具。
VCS支持两种主要flow:2-step flow和3-step flow。
2-step flow主要用于pure-verilog场景:
先编译(Compilation):
> vcs <options> <file.v>
后仿真(simulation):
> simv <options>
3-step flow主要用于mixed-language场景:
(Map Logical Librarie: sysnopsys_sim.setup)
先分析(analysis):
analysis verilog source command:
> vlogan <file.v>
analysis Vhdl source command:
> vhdlan <file.vhd>
analysis system C source command:
> syscan <file.cpp>
再编译(compilation):
> vcs <options> <file.v>
后仿真(simulation):
> simv <options>
编译(compilation)
编译一次,可运行仿真多次
-full64 64位模式(分析,编译过程可用)
编译产生的文件包括:
(1)仿真器可执行文件:simv
(2)仿真器数据库(database)文件夹:simv.daidir/ 和simv.db.dir/
(3)用于重新编译的数据文件夹:csrc/
可能产生:
(4)GUI debug数据库文件夹:DVEFiles/
(5)输出日志文件(output log files)
编译(compilation)语法详解
(1)vcs \
-o ./simv \ 注:指定可执行输出文件名称,默认位simv
-v /path/to/verilog/library/lib.v \
-y /path/to/verilog/library/dir/ \
+incdir+/path/to/verilog/include/dir \ 注:以上三行为文件解析选项(Files parsing options)
-sverilog +verilog2001ext+.v \ 注:语言解析器选择(Language Parser Choices)
+lint=all \ 注:静态检查(static checks)
file.v \ 注:单个源文件(source code)
-file ./files.f \ 注:.f文件为多个.v文件列表
[-debug_access+pp | -debug_access | -debug_access+all] \ 注:debugging/GUI options
[-cm assert+line+fsm+cond] \ 注:代码覆盖率设置(code coverage option)
(2)编译-调试选项(debugging/GUI options)的作用是让设计可视化并产生波形。
VCS支持两种调试模式:post-simulation debug和interactive debug
(a)Typical compile for post-simulation debug:
> vcs -debug_access+pp <option>
——可生成波形文件:VPD、VCD、FSDB等
——需要在testbench文件中添加$dumpvars or $vcdpluson语句
(b)Typical compile for interactive debug
> vcs -debug_access <option>
(c)此外还支持full source-linedebugging(不明白啥意思)
> vcs -debug_access+all <option> 注:所有debug信息都产生
(3)FSDB dump:将FSDB文件输入到Verdi中,可查看仿真数据
(a)环境设置:为license,tool path设置环境变量
(b)Add fsdb dump tasks to source:
initial
begin
$fsdbDumpvars; 注:默认文件名novas.fsdb
end
(c)编译设置选项
> vcs [design_files] [other_desired_vcs_options] -debug_access -kdb -lca
运行仿真即可得到FSDB文件。
(4)编译-覆盖率选项(coverage)
(待补充)
仿真(simulation)语法详解
VCS支持两种仿真模式:batch/regression mode和Interactive mode
(1)Interactive mode:with Verdi simulation GUI
> ./simv -gui=verdi
或者
> ./simv -verdi
(2)batch/regression mode
(待补充)
使用Verdi进行debug需要进行那些VCS设置?
(1)2-step compilation:
> vcs -sverilog -kdb -lca top.v
(2)3-step compilation:
> vlogan top.v -kdb -lca
> vcs top -debug_access+r -kdb -lca
(3)用Verdi读入KDB database:
> verdi -simflow -dbdir <path> -top top -nologo &
(4)用interactive mode调用Verdi:
>./simv -verdi
或者
>./simv -gui=verdi
(5)用post-p'rocessing mode调用Verdi打开FSDB文件:
> verdi -ssf novas.fsdb -nologo &