第一讲:vcs simulation basic

要求:

    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。

原文地址:https://www.cnblogs.com/chip/p/4780108.html