0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VCS ICO的主要功能有哪些呢?

rfdqdzdg ? 來源:IC Verification Club ? 2023-09-19 14:59 ? 次閱讀

ico是vcs提供的用于優(yōu)化覆蓋率的feature;一般用戶通過distsolver bofore等約束了變量的隨機概率,而ico會在用戶約束的基礎(chǔ)上,做一些自動“修正”,以此來優(yōu)化隨機激勵,提高隨機多樣性,加速覆蓋率收斂,縮短 turn-around timeTAT。主要功能包含如下幾部分:

1.Prognosis: 用于查看當(dāng)前平臺是否適用ico,對于都是直接用例測試,沒有隨機策略的平臺,ico并不適用;

2.Auto Bias:利用設(shè)定策略,ico會改變原有constraint solver的行為,施加一定bias修正隨機值;

3.RCA: root cause trace, 用于診斷變量未隨機到的bins,是否存在過約束等;

4.Delta-debug: 提供replay復(fù)現(xiàn)功能,對比兩次結(jié)果間的差異;

5.AutoPurge: 當(dāng)前回歸得到的ico database可以用于下一次回歸,多次迭代;

ico最主要的功能就是Auto Bias,宣稱使用了AI,機器學(xué)習(xí)ML,增強學(xué)習(xí)EL等手段,在回歸過程中,利用共享case之間的ico database,提高隨機多樣性;通過一個簡單例子演示下:

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

如上,對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跑了兩個case,第一個caseseed=1,第二個caseseed=2; 通過verdi查看覆蓋率報告:跑了兩次的回歸merge結(jié)果:87.5%

331651d4-569f-11ee-939d-92fbcf53809c.png

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

33275df8-569f-11ee-939d-92fbcf53809c.png

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

333f0250-569f-11ee-939d-92fbcf53809c.png

因為ico會影響constrain solver的隨機結(jié)果,所以復(fù)現(xiàn)時,不僅要保證seed一樣,還需要額外指定ico database,這樣才能正確復(fù)現(xiàn)隨機結(jié)果。生成當(dāng)前回歸所有用例的merge report: html report會羅列所有隨機變量:DIVERSITY通過shannon entropy香農(nóng)熵衡量變量的“多樣性”;

335e27fc-569f-11ee-939d-92fbcf53809c.png在這里插入圖片描述

每個變量,ico會自動的劃分bins,顯示隨機詳細結(jié)果;

ico支持同一個case內(nèi)多次randomize之間相互影響,也支持一次回歸不同case之間相互影響,也可以將本次回歸的database作用于下一次回歸;

對于ico加速覆蓋率收斂的實際效果,博主使用一個block tb親測效果不太顯著;從他人的presentation上看,大概有10%-15%的提升;但是ico對于隨機多樣性確實是有一定效果的,+ntb_solver_bias_mode_auto可以指定ico對隨機的bias力度。

336bdec4-569f-11ee-939d-92fbcf53809c.png
337c14f6-569f-11ee-939d-92fbcf53809c.png

如果ico可以通過AI,EL等對功能覆蓋率進行反推,縮減重復(fù)隨機值,那將會大大提高覆蓋率收斂,期待后續(xù)EDA進一步的"進化”吧。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    9561
  • RCA
    RCA
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    8759
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132165

原文標(biāo)題:VCS ICO - Intelligent Coverage Optimization

文章出處:【微信號:數(shù)字芯片設(shè)計工程師,微信公眾號:數(shù)字芯片設(shè)計工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問TIMx有哪些主要功能?

    TIMx簡介TIMx主要功能
    發(fā)表于 11-09 08:56

    MusrLicManage的主要功能

    MusrLicManage簡介MusrLicManage主要功能
    發(fā)表于 12-16 07:22

    ECC是什么?有什么主要功能?

    ECC是什么?有什么主要功能?
    發(fā)表于 06-21 07:00

    軟啟動器的主要功能有哪些

    器的主要功能有哪些?1.過載保護功能:軟起動器引進了電流控制環(huán),因而隨時跟蹤檢測電機電流的變化狀況。通過增加過載電流的設(shè)定和反時限控制模式,實現(xiàn)了過載保護功能,使電機過載時,關(guān)斷晶閘
    發(fā)表于 09-13 06:19

    操作系統(tǒng)內(nèi)核的主要功能有哪些

    什么是操作系統(tǒng)?操作系統(tǒng)內(nèi)核的主要功能有哪些?Linux是什么?什么是軟件移植?
    發(fā)表于 10-19 07:46

    網(wǎng)卡實現(xiàn)的主要功能是什么

    從介質(zhì)訪問控制方法的角度局域網(wǎng)可分為哪幾類?以太網(wǎng)交換機是根據(jù)什么去轉(zhuǎn)發(fā)數(shù)據(jù)幀的?網(wǎng)卡實現(xiàn)的主要功能是什么?
    發(fā)表于 10-20 06:24

    DC的主要功能或者主要作用是什么

    什么是DC?DC能接受多少種輸入格式?DC的主要功能或者主要作用是什么?如何配置DC?
    發(fā)表于 10-20 07:02

    STM32定時器的主要功能有哪些差異

    Stm32定時器一共分為幾種?STM32定時器的主要功能有哪些差異?
    發(fā)表于 11-17 06:56

    Linux內(nèi)核主要功能包括哪些

    Linux內(nèi)核是什么?Linux內(nèi)核主要功能包括哪些?
    發(fā)表于 02-28 08:44

    基于Android 9.0最新系統(tǒng)的SDK主要功能有哪些

    基于Android 9.0最新系統(tǒng)的SDK主要功能有哪些?
    發(fā)表于 03-04 07:40

    數(shù)碼錄音筆主要功能有哪些?

    數(shù)碼錄音筆主要功能有哪些?    
    發(fā)表于 12-22 11:27 ?1118次閱讀

    網(wǎng)絡(luò)電話的主要功能

     網(wǎng)絡(luò)電話的主要功能         
    發(fā)表于 12-31 14:53 ?719次閱讀

    直線導(dǎo)軌的主要功能

    直線導(dǎo)軌的主要功能
    的頭像 發(fā)表于 07-26 17:42 ?1027次閱讀
    直線導(dǎo)軌的<b class='flag-5'>主要功能</b>

    電池bms主要功能有哪些?bms主要有哪六個功能

    電池bms主要功能有哪些?bms主要有哪六個功能 電池管理系統(tǒng)(BMS)是為了保護電池并確保其操作安全而使用的一種電子裝置。BMS不僅可以監(jiān)控電池的性能和狀態(tài),而且可以提供有關(guān)如何改進電池性能和維護
    的頭像 發(fā)表于 10-16 15:42 ?7934次閱讀

    bms主要功能有哪些

    、儲能系統(tǒng)等新能源領(lǐng)域的關(guān)鍵部件,其主要功能是對電池組進行實時監(jiān)控、保護和管理,以保證電池組的安全、穩(wěn)定和高效運行。本文將對BMS的主要功能進行詳細介紹。 數(shù)據(jù)采集:BMS通過傳感器對電池組的電壓、電流、溫度等關(guān)鍵參數(shù)進行實時采集,以便對電池組的工作狀態(tài)進行全面了解。這些
    的頭像 發(fā)表于 01-05 18:09 ?7756次閱讀
    bms<b class='flag-5'>主要功能有</b>哪些