VCS是編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉(zhuǎn)化為C文件,在linux下編譯生成的可執(zhí)行文./simv即可得到仿真結(jié)果。
vcs編譯后,生成可執(zhí)行二進(jìn)制文件simv:執(zhí)行./simv進(jìn)行仿真;
vcs常用選項(xiàng)
vcs -help :列出所有vcs編譯運(yùn)行選項(xiàng)
-Mupdate :增量編譯
-R:編譯后立即執(zhí)行仿真
-l:輸出編譯log的文件
-sverilog:支持systemverilog
+v2k:支持2001 verilog標(biāo)準(zhǔn)
-f:指定包含文件列表的filelist
-o:修改可執(zhí)行文件simv文件名
-full64:支持64位模式下的編譯仿真
-fsdb:dump fsdb波形
-ucli:在UCLI命令行模式下執(zhí)行simv
-gui :DVE 界面運(yùn)行
-work library:將設(shè)計(jì)庫(kù)名稱映射到接收vlogan輸出的邏輯庫(kù)名稱work
-v lib_flie:搜索指定lib庫(kù)文件
-y lib_dir:搜索指定lib庫(kù)路徑
+libext+ext:搜索具有指定文件擴(kuò)展名的文件,如+libext+.v +.sv
+incdir+directory:搜索指定include文件路徑
+define+macro:使用源代碼中`ifdef所定義的宏或者define源代碼中的宏
-parameters filename:將filename文件中指定的參數(shù)更改為此時(shí)指定的值
-timescale=1ns/1ns:設(shè)置仿真精度
-debug、debug_all、debug_pp:打開debug開關(guān)
vcs仿真流程
編寫makefie腳本運(yùn)行仿真:
makefie
執(zhí)行下面編譯仿真:
makevcs makesim
1.DVE圖形界面打開
在編譯時(shí),使用 +vpdfile+filename 可以更改生成 VPD 文件的文件名,默認(rèn)為vpdplus.vpd。
makefile中添加:
ALL_DEFINE=+define+DUMP_VPD VPD_NAME=+vpdfile+simv.vpd
仿真文件tb.v中添加:
`ifdefDUMP_VPD initialbegin $display("DumpVPDwave!"); $vcdpluson(); //$vcdpluson(0,tb);//記錄tb及其所有子模塊的波形。 //$vcdpluson(1,tb );//只記錄tb層的波形 //$vcdpluson(2,tb );//記錄tb層和tb下一層的波形 end `endif
在仿真完成后,生成了simv.vpd 這個(gè)文件,這個(gè)文件記錄了仿真過(guò)程中所有信號(hào)的波形,
可以使用dve打開:
dve-vpdsimv.vpd&
選中所有信號(hào) --> 右鍵Add to Waves --> New Wave View
2.verdi圖形界面打開
通常使用VCS生成fsdb格式的波形文件,將其導(dǎo)入另一個(gè)軟件Verdi查看波形,代替DVE進(jìn)行聯(lián)合仿真;
vcs選項(xiàng)加上-fsdb,仿真文件tb.v中添加:
initialbegin $display("Dumpfsdbwave!"); $fsdbDumpfile("tb.fsdb"); $fsdbDumpvars; end
仿真完成后執(zhí)行下面命令打開verdi:
makeverdi
推薦查看verdi實(shí)用技巧和fsdb實(shí)用技巧
代碼覆蓋率
在一個(gè)芯片驗(yàn)證的工程中,通常以代碼覆蓋率和功能覆蓋率來(lái)體現(xiàn)驗(yàn)證是否完備;
功能覆蓋率就是檢查設(shè)計(jì)的功能是否完善,需要考慮很多不同的情況,是使用SV的重點(diǎn)內(nèi)容。
代碼覆蓋率是檢查代碼是否存在冗余,檢查所有的代碼是否都已經(jīng)執(zhí)行,包括:行,狀態(tài)機(jī),翻轉(zhuǎn),條件,分支覆蓋率等,這里只討論代碼覆蓋率。
VCS在統(tǒng)計(jì)代碼覆蓋率的過(guò)程中,需要在編譯和仿真命令上添加對(duì)應(yīng)的開關(guān)選項(xiàng),生成.vdb文件記錄覆蓋率情況。
再使用dve打開該文件進(jìn)行查看覆蓋率。
代碼覆蓋率選項(xiàng)
-cm
-cm_name:統(tǒng)計(jì)覆蓋率文件名字。
-cm_dir:指定生成.vdb文件目錄。
-cm_log+filename.log:記錄仿真過(guò)程中l(wèi)og信息。
-cm_nocasedef: 在統(tǒng)計(jì)case語(yǔ)句的條件覆蓋率時(shí),不考慮default條件未達(dá)到的情況。
-cm_hier xxx.cfg:通過(guò).cfg文件選擇要查看覆蓋率的模塊或文件。
通過(guò)DVE查看覆蓋率(方法1)
仿真完成后執(zhí)行下面命令dve -covdir *.vdb &打開dve查看覆蓋率:
makedve_cov
代碼覆蓋到的為綠色,沒(méi)有覆蓋到的為紅色:
通過(guò)URG查看覆蓋率(方法2)
可以以文本格式或者網(wǎng)頁(yè)格式顯示覆蓋率;
或者:
urg-dir*.vdb-reporturgReport
進(jìn)入urgReport目錄,執(zhí)行下面命令打開網(wǎng)頁(yè)版,查看覆蓋率報(bào)告
firefox*.html
綜合后仿真
推薦查看綜合與時(shí)序分析
推薦查看后仿及反標(biāo)
vcs門級(jí)網(wǎng)表仿真
當(dāng)RTL功能仿真通過(guò)之后,DC工具中進(jìn)行邏輯綜合,在邏輯綜合完成之后,需要對(duì)綜合生成的網(wǎng)表再進(jìn)行仿真驗(yàn)證。
綜合后包含電路的實(shí)際信息,如映射的門電路信息、寄生參數(shù)、.v的網(wǎng)表、SDF標(biāo)準(zhǔn)延時(shí)信息、SDC約束、工作條件等信息。
后仿選項(xiàng)
后仿不需要的選項(xiàng)
帶時(shí)序的后仿,一定要注意仿真器是否關(guān)閉了notimingcheck和nospecify的選項(xiàng)。
如果有-nospecify,那么SDF中的時(shí)序信息就反標(biāo)不到仿真模型中;
如果有-notimingcheck,那么后仿過(guò)程中就不檢查時(shí)序違例,后仿就失去了意義。
后仿添加選項(xiàng)
+neg_tchk:若要使用負(fù)延時(shí)檢查,在編譯后仿時(shí)必須包含+neg_tchk選項(xiàng)。如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。
-negdelay:用于SDF文件中有負(fù)延遲,如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。
sdf_annotate反標(biāo)
使用$sdf_annotate將SDF文件反標(biāo)到網(wǎng)表中:
$sdf_annotate("sdf_file"[,module_instance][,"sdf_configfile"][,"sdf_logfile"][,"mtm_spec"][,"scale_factors"][,"scale_type"]);
在tb中加載sdf文件,指定反標(biāo)模塊:
`ifdefGLS_SIM initialbegin $sdf_annotate("../../netlist_sim/sdf/TOP.sdf",tb.U_TOP,,"sdf.log","TYPICAL"); end `endif
修改makefie腳本運(yùn)行仿真:
LIB_NET_FILE指定的是基本的工藝庫(kù)單元,因?yàn)榫W(wǎng)表文件netlist_TOP.v中包括綜合后的由門電路和觸發(fā)器等例化形成的verilog文件,所以需要基本的工藝庫(kù)單元。
makefile
rtl仿真和netlist仿真結(jié)果對(duì)比:
可以看到netlist仿真的輸出信號(hào)存在一些毛刺及延遲,與理想的沒(méi)有延遲信息的rtl仿真不同。
rtl仿真
netlist仿真
圖一樂(lè)技巧
display打印彩色字/背景
可在仿真中加入顏色顯示case的情況,如:
紅色:前景色31,背景色41:
$display("?33[31;41mHelloerror!?33[0m");
綠色:前景色32,背景色42:
$display("?33[32;42mHellopass!?33[0m");
黃色:前景色33,背景色43:
$display("?33[33;43mHellowarning!?33[0m");
涉及的顏色:
涉及的顏色
審核編輯:劉清
-
仿真器
+關(guān)注
關(guān)注
14文章
1014瀏覽量
83591 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
590瀏覽量
27317 -
VCS
+關(guān)注
關(guān)注
0文章
78瀏覽量
9581 -
芯片驗(yàn)證
+關(guān)注
關(guān)注
5文章
34瀏覽量
47180
原文標(biāo)題:VCS 實(shí)用技巧
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論