ico是vcs提供的用于優(yōu)化覆蓋率的feature;一般用戶通過distsolver bofore等約束了變量的隨機(jī)概率,而ico會(huì)在用戶約束的基礎(chǔ)上,做一些自動(dòng)“修正”,以此來優(yōu)化隨機(jī)激勵(lì),提高隨機(jī)多樣性,加速覆蓋率收斂,縮短 turn-around timeTAT。主要功能包含如下幾部分:
1.Prognosis: 用于查看當(dāng)前平臺(tái)是否適用ico,對(duì)于都是直接用例測(cè)試,沒有隨機(jī)策略的平臺(tái),ico并不適用;
2.Auto Bias:利用設(shè)定策略,ico會(huì)改變?cè)衏onstraint solver的行為,施加一定bias修正隨機(jī)值;
3.RCA: root cause trace, 用于診斷變量未隨機(jī)到的bins,是否存在過約束等;
4.Delta-debug: 提供replay復(fù)現(xiàn)功能,對(duì)比兩次結(jié)果間的差異;
5.AutoPurge: 當(dāng)前回歸得到的ico database可以用于下一次回歸,多次迭代;
ico最主要的功能就是Auto Bias,宣稱使用了AI,機(jī)器學(xué)習(xí)ML,增強(qiáng)學(xué)習(xí)EL等手段,在回歸過程中,利用共享case之間的ico database,提高隨機(jī)多樣性;通過一個(gè)簡(jiǎn)單例子演示下:
covergroupcg_datawithfunctionsample(inputlogicvalid,logic[7:0]data); cpt_value:coverpointdataiff(valid){ binszero={0}; binsothers[]={[1:31]}; illegal_binsinvalid={[32:255]}; } endgroup classtrextendsuvm_transaction; randlogic[7:0]data; constraintc_tr{datainside{[0:31]}; datadist{0:=1,[1:31]:=100}; } endclass
如上,對(duì)data的約束中,data=0這一條件的概率很低;
PRJ:=$(shellecho$(CURDIR)|sed-r's|/ico_test/.*|/ico_test|')
exportPRJ
all:comprun
all_ico:comprun_ico
SEED:=${SEED}
regress_ico:clean
mkdir-p${PRJ}/comp_src;
cd${PRJ}/comp_src;
cp${PRJ}/Makefile${PRJ}/comp_src;
makecomp;
foriin12;do
mkdir-p${PRJ}/test_$${i};
cp${PRJ}/Makefile${PRJ}/test_$${i};
cd${PRJ}/test_$${i};
ln-s${PRJ}/comp_src/simv.daidirsimv.daidir;
ln-s${PRJ}/comp_src/csrccsrc;
ln-s${PRJ}/comp_src/simvsimv;
makerun_icoSEED=$${i};
done
makecov_merge;
makecrg_report;
regress:clean
mkdir-p${PRJ}/comp_src;
cd${PRJ}/comp_src;
cp${PRJ}/Makefile${PRJ}/comp_src;
makecomp;
foriin12;do
mkdir-p${PRJ}/test_$${i};
cp${PRJ}/Makefile${PRJ}/test_$${i};
cd${PRJ}/test_$${i};
ln-s${PRJ}/comp_src/simv.daidirsimv.daidir;
ln-s${PRJ}/comp_src/csrccsrc;
ln-s${PRJ}/comp_src/simvsimv;
makerunSEED=$${i};
done
makecov_merge;
comp:
vcs-full64
-kdb-lca
-debug_access+all
-ntb_optsuvm
-sverilog
-timescale=1ns/1ns
${PRJ}/dut.sv
${PRJ}/top_tb.sv
+incdir+${PRJ}
-lcomp.log
run_ico:
./simv-lsim.log+ntb_random_seed=${SEED}
+ntb_solver_bias_mode_auto_config=2
+ntb_solver_bias_shared_record=${PRJ}/shared_record
+ntb_solver_bias_wdir=ico_work
+ntb_solver_bias_test_type=uvm
+ntb_solver_bias_diag=3
crg_report:
crg-dir${PRJ}/shared_record-reportrpt-auto-formatboth-mergemerged_db-zip1-illegal_group-illegal_attr
run:
./simv-lsim.log+ntb_random_seed=${SEED}
verdi:
verdi-ssftop_tb.fsdb&
cov_open:
verdi-cov-covdirsimv_merge.vdb&
cov_merge:
urg-dir${PRJ}/test_1/simv.vdb-dir${PRJ}/test_2/simv.vdb-dbname${PRJ}/simv_merge.vdb
clean:
-rm-rfshared_record/simv*test_*WORK/*logurgReport/vdCovLog/rpt-auto/merged_db/comp_src/novas.*
make regress跑了兩個(gè)case,第一個(gè)caseseed=1,第二個(gè)caseseed=2; 通過verdi查看覆蓋率報(bào)告:跑了兩次的回歸merge結(jié)果:87.5%

make regress_ico是使能icofeature,結(jié)果:100%

+ntb_solver_bias_diag使能debug信息,默認(rèn)debug log放在+ntb_solver_bias_wdir指定的ico database下:隨機(jī)32次,ico影響constrain solver,bias了29次的隨機(jī)結(jié)果;所以對(duì)于data=0這樣的小概率事件,也隨機(jī)到了;

因?yàn)閕co會(huì)影響constrain solver的隨機(jī)結(jié)果,所以復(fù)現(xiàn)時(shí),不僅要保證seed一樣,還需要額外指定ico database,這樣才能正確復(fù)現(xiàn)隨機(jī)結(jié)果。生成當(dāng)前回歸所有用例的merge report: html report會(huì)羅列所有隨機(jī)變量:DIVERSITY通過shannon entropy香農(nóng)熵衡量變量的“多樣性”;
在這里插入圖片描述
每個(gè)變量,ico會(huì)自動(dòng)的劃分bins,顯示隨機(jī)詳細(xì)結(jié)果;
ico支持同一個(gè)case內(nèi)多次randomize之間相互影響,也支持一次回歸不同case之間相互影響,也可以將本次回歸的database作用于下一次回歸;
對(duì)于ico加速覆蓋率收斂的實(shí)際效果,博主使用一個(gè)block tb親測(cè)效果不太顯著;從他人的presentation上看,大概有10%-15%的提升;但是ico對(duì)于隨機(jī)多樣性確實(shí)是有一定效果的,+ntb_solver_bias_mode_auto可以指定ico對(duì)隨機(jī)的bias力度。


如果ico可以通過AI,EL等對(duì)功能覆蓋率進(jìn)行反推,縮減重復(fù)隨機(jī)值,那將會(huì)大大提高覆蓋率收斂,期待后續(xù)EDA進(jìn)一步的"進(jìn)化”吧。
審核編輯:劉清
-
VCS
+關(guān)注
關(guān)注
0文章
80瀏覽量
10247 -
RCA
+關(guān)注
關(guān)注
0文章
45瀏覽量
9216 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8541瀏覽量
136236
原文標(biāo)題:VCS ICO - Intelligent Coverage Optimization
文章出處:【微信號(hào):數(shù)字芯片設(shè)計(jì)工程師,微信公眾號(hào):數(shù)字芯片設(shè)計(jì)工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
醫(yī)院專用數(shù)據(jù)記錄儀主要功能有哪些
電子學(xué)綜合實(shí)訓(xùn)臺(tái)QY-DQJ05裝置主要功能有哪些?
軟啟動(dòng)器的主要功能有哪些呢
操作系統(tǒng)內(nèi)核的主要功能有哪些
電池bms主要功能有哪些?bms主要有哪六個(gè)功能
bms主要功能有哪些

VCS ICO的主要功能有哪些呢?
評(píng)論