使用先進技術(shù)來加速SoC驗證
(1)盡量只保存需要的層次結(jié)構(gòu)的波形而不要總是保存所有芯片的波形
(a)FSDB波形保存
$fsdbDumpvars(1, tb_top);
$fsdbDumpvars(2, tb_top.design_inst);
(b)VPD波形保存
$vcdpluson (level|"LVL=integer",scope*,signal*);
(2)可以指定波形保存的時間來進行波形保存
(a)在VCS運行時參數(shù)行進行指定(以FSDB為例)
+fsdb+dumpon+time[+htime ]
+fsdb+dumpoff+time[+htime]
(b)在驗證環(huán)境中進行指定(以VPD為例)
$vcdpluson; // Enable Dumping
#5 $vcdplusoff; //Disable Dumping after 5ns
測試場景和結(jié)果
為了能找到最適合我們驗證環(huán)境的性能仿真模式(包括編譯、執(zhí)行和仿真),以使得我們能得到最大的性能提升增益,我們定義了三種場景模式進行測試,三種模式是:不保存波形、保存FSDB波形和保存VPD波形。然后每種模式下我們還會分為做覆蓋率收集和不做覆蓋率收集兩種情況。
在模式1(不保存波形中)我們有四個基礎(chǔ)場景,然后針對著四個基礎(chǔ)場景,來進行了如下的組合,編譯:是否開啟快速編譯,運行是否開啟debug_all/debug_pp,是非開啟覆蓋率ALP,共擴展運行為24個場景。
在模式2(保存vpd波形)針對兩個基礎(chǔ)場景,選擇是否開啟和模式1類似的參數(shù),同時還選擇是否進行vpd波形ALP,總共運行16個場景。
模式3(保存fsdb波形)針對兩個基礎(chǔ)場景,在進行和模式2類似的組合之后還組合了是使用verdi3進行波形并行保存還是FSDB ALP,用于比較二者的性能差別。
模式1下各場景仿真性能比較
模式1下的性能比較如表3所示,從表3的運行結(jié)果可以看到快速編譯有10%~40%的性能提升,多核技術(shù)的使用有最多20+%的速度提升,使用了性能參數(shù)之后整體仿真有最大20%的性能提升。
模式2下各場景仿真性能比較
在模式2下的各場景性能比較如表4所示。
(1)不做覆蓋率分析
快速編譯會有最多2倍左右的編譯時間提升,并行VPD保存會有最多20%的仿真時間提升。對于內(nèi)存空間最多有1.5倍的虛擬內(nèi)存空間減少以及3倍的memory空間減少。
(2)做覆蓋率分析
快速編譯會有大概2倍左右的編譯時間提升,就總的仿真時間,大概提升1%左右。
多核并行VPD保存以及并行覆蓋率分析對于正常用例仿真時間有1%~9%的提升,會有2倍~3倍的內(nèi)存使用減少。
評論