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

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

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

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

rfdqdzdg ? 來(lái)源:IC Verification Club ? 2023-09-19 14:59 ? 次閱讀

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

1.Prognosis: 用于查看當(dāng)前平臺(tái)是否適用ico,對(duì)于都是直接用例測(cè)試,沒(méi)有隨機(jī)策略的平臺(tái),ico并不適用;

2.Auto Bias:利用設(shè)定策略,ico會(huì)改變?cè)衏onstraint solver的行為,施加一定bias修正隨機(jī)值;

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

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等手段,在回歸過(guò)程中,利用共享case之間的ico database,提高隨機(jī)多樣性;通過(guò)一個(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; 通過(guò)verdi查看覆蓋率報(bào)告:跑了兩次的回歸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信息,默認(rèn)debug log放在+ntb_solver_bias_wdir指定的ico database下:隨機(jī)32次,ico影響constrain solver,bias了29次的隨機(jī)結(jié)果;所以對(duì)于data=0這樣的小概率事件,也隨機(jī)到了;

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

因?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通過(guò)shannon entropy香農(nóng)熵衡量變量的“多樣性”;

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

每個(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力度。

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

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






審核編輯:劉清

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

    關(guān)注

    0

    文章

    78

    瀏覽量

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

    關(guān)注

    0

    文章

    27

    瀏覽量

    8767
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8349

    瀏覽量

    132315

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)TIMx有哪些主要功能?

    TIMx簡(jiǎn)介T(mén)IMx主要功能
    發(fā)表于 11-09 08:56

    MusrLicManage的主要功能

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

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

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

    電子學(xué)綜合實(shí)訓(xùn)臺(tái)QY-DQJ05裝置主要功能有哪些?

    電子學(xué)綜合實(shí)訓(xùn)臺(tái)QY-DQJ05裝置主要由哪幾部分組成?電子學(xué)綜合實(shí)訓(xùn)臺(tái)QY-DQJ05裝置主要功能有哪些?
    發(fā)表于 07-11 06:10

    軟啟動(dòng)器的主要功能有哪些

    器的主要功能有哪些?1.過(guò)載保護(hù)功能:軟起動(dòng)器引進(jìn)了電流控制環(huán),因而隨時(shí)跟蹤檢測(cè)電機(jī)電流的變化狀況。通過(guò)增加過(guò)載電流的設(shè)定和反時(shí)限控制模式,實(shí)現(xiàn)了過(guò)載保護(hù)功能,使電機(jī)過(guò)載時(shí),關(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)卡實(shí)現(xiàn)的主要功能是什么

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

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

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

    STM32定時(shí)器的主要功能有哪些差異

    Stm32定時(shí)器一共分為幾種?STM32定時(shí)器的主要功能有哪些差異?
    發(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 ?1119次閱讀

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

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

    電池bms主要功能有哪些?bms主要有哪六個(gè)功能

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

    bms主要功能有哪些

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