HDL Source文件的編譯
針對Verilog文件的編譯:
使用vericom工具,將verilog source文件寫入一個run.f中,如:
system.v
pram.v
TopModule.v
對於include的文件,通過+incdir+引入文件夾。
-v +文件名,表示lib的design。
invoke方式:vericom -lib <libname> -f run.f
如果verilog source文件中,包含2001的一些結構,需要加-2001 option
可以選擇加+verilog2001ext+.v+.v2k+的option來識別可能的verilog 2001的extension
如果design中包含多種文件,像verilog-95,verilog-2001,systemverilog,這時不推薦使用 -sv,-2001的option。
因為只有最后一個有效。
每個design file也可以單獨列在vericom cmd line中。每次vericom都會將design增加編譯到libname中。
所以需要保證libname不變。
如果libname對應的是一個logic library location,
在Verdi平台中被映射到physical location 如果沒有libname被指定,design unit被編譯到默認的library,work.lib++
在文件novas.rc中設置addr map
vericom -lib <libName> system.v pram.v TopModule.v
vericom -lib <libName> ALUB.v CCU.v
VHDL文件的編譯: 在VHDL文件編譯之前,必須添加library map到novas.rc文件中。
invoke方式:
vhdlcom -lib <libName> <vhdl_design_files>
vhdlcom -lib <libName> foo1.vhd foo2.vhd
vhdlcom -lib <libName> goo1.vhd goo2.vhd
如果沒有libName被指定,默認編譯到work.lib++
當design中有很多VHDL文件時,需要注意編譯的順序,vhdlcom提供了兩個option -smartorder和-smartscript
SystemVerilog文件的編譯:
使用vericom來invoke,
vericom -lib <libName> -sv -f run.f
使用+systemverilogext+sv來進行sv的擴展識別。
SystemVerilog Pragmas的編譯,
必須是顯示的調用-sv -sv_pragma來編譯 vericom -lib <libName> -sv -sv_pragma -f run.f
對於VHDL和Verilog的混合編譯,先用vhdlcom編譯所有的VHDL文件,再用vericom編譯所有的Verilog文件。
Verilog和SystemVerilog的混合編譯,使用顯示的文件名擴展來進行識別。run.f文件
system.v
pram.sv
ALUB.v2k
vericom -lib <libName> -f run.f +verilog2001ext+.v2k+ +systemverilogext+.sv+
或者分別編譯:
vericom -f run_verilog_files.f
vericom -2001 -f run_v2k_files.f
vericom -sv -f run_sv_files.f
文件編譯好之后,通過verdi -lib mylib -top mytop來打開verdi
也可以直接使用verdi來編譯文件並打開,
Verilog文件:
verdi -f run.f +verilog2001ext+.v2k+
verdi -sv -f run.f verdi system.v ... alu.v -v lib.v -y ../special
VHDL文件:
verdi -vhdl -f run.f -top <TopDesign>
或者通過verdi打開gui之后,load design。
混合lib打開:
verdi -lib <VHDLlibName1> -lib <VHDLlibName2> -top <designTop>
打開verdi gui的env options
-envinfo,dump env variable的描述
-envmap,顯示所有env variable的mapping情況
-sdfDelay[Min|Typ|Max],指定sdf反標的delay type
Sim options
+define+<macro>,用來定義宏,如果source code中也有定義,則被覆蓋
+incdir+<directoryname>,指定search path
+libext+<extensionname>,指定verilog library的extension文件
-f <filename>.f,加載文件,其中包含source file和simulation option
-i,使能interactive debug mode
-ovm[-<version>],加載默認的OVM lib,如果-ovm和-ovmhome都被指定,則-ovm被忽略
默認加載的ovm版本-2.1.2
-ovmhome,指定ovm安裝路徑
-simOpt "<options>"/{<options>},指定仿真options
verdi -sv f.sv -simOpt "+vcs+lic+wait"
verdi -sv f.sv -simOpt {+vcs+lic+wait}
-simType <VCS|ModelSim|NC>,指定simulator
-uvm [-<version>],加載默認的UVM lib,如果-uvm和-uvmhome都指定的話,-uvm被忽略
-uvmhome <path>,指定UVM的安裝路徑
-v <filename>.v,在指定文件中的module,被當作library cell
-y <directoryname>,指定library cell
還可以設置的其他option,
Siloti Options
Behavior Analysis Options設置tools---preferences
Power Manager Options
-cpf1.0/cpf1.1/cpf_filename
-upf1.0/upf2.0/upf_filename
-lps_cpf cpf_filename
-lps_iso_off
-lps_off
-lps_rtn_off
-powerLib libFile
-powerModel NLP|MVSim|ModelSim|NCSim
nWave的gui的Invoke
-h|help,打印help信息
-nogui,在batch mode下運行
-ssf fastFile|dumpFile|fastFile list,直接打開.fsdb/.vf/.fsdb.gz/.vcd/.vcd.gz文件
-ssi,打開interactive mode
aasertEval,可以通過指定design和FSDB文件,在batch mode下計算assert
assertEval -sv dut.sv +define+sva -ssf dut.fsdb,默認設置下計算assert,保存結果到默認的文件中。
./assertEvalLog/evaluate_result.fsdb