標籤:
要求:
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。
第一講:vcs simulation basic