要求:
1.complie a verilog/systemverilog design using vcs
2.simulate a verilog/systemverilog design
vcs ===> c===>binary(编译之后有一个目录csrc生成)
step1 : compile
step2: simv
link
verilog/sv files ==> c files ==> object files ====> simv(executable)
PLI code links to simv not to vcs
vcs source_files [compile_time_options] <==generate simv binary executable file
command line options:
-Mupdate //incremental compilation ***
-R //Run after compile
-gui
-l <filename> //set log file name ***
-sverilog //enable sv ***
+v2k //verilog 2001 support **
-v lib_file //search unresolveed module reference in file lib_file ***
-y lib_dir //search unresolved module reference in files residing in directory lib_dir ***
+libext+lib_ext //use file extension lib_ext when searching for files in lib dir ***
NOTE: -v lib_files -y lib_dir +libext lib_ext 一般三个一起使用的,其实就是想让VCS解析引用某个module,必须告诉他到那个目录(-y lib_dir)下的某一个文件(-v lib_file),而且此文件的扩张名为lib_ext(+libext lib_ext)
+incdir+inc_dir //search include files ****
-f filelist //可以放置所有的src或者vcs options ****
-o filename //指定可执行文件名字,取代 simv (一般不用)
+define+<macro_name> = <value> // 这个可以增加验证平台的灵活,经常用***
simv [run_time_options]
-s //一般不用
- E echo //一般不用
- l logname //必用***
$plusargs() switch //有时会用的
这里有个疑问:系统函数的调用好像是在simv时,难道这是造成Verdi无法拉出task中信号值得原因吗???
关于如何在项目中加 define,还有很多种方式的,值得总结一下,总体1.命令行中 +define+DEFINE_NAME 2.文件中直接'define DEFINE_NAME 3.文件中`include "define.v"然后命令行中设置 +incdir includ_dir。