受約束的隨機化

受約束的隨機化

ID:42172908

大?。?25.36 KB

頁數(shù):33頁

時間:2019-09-09

受約束的隨機化_第1頁
受約束的隨機化_第2頁
受約束的隨機化_第3頁
受約束的隨機化_第4頁
受約束的隨機化_第5頁
資源描述:

《受約束的隨機化》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、SystemVerilog中受約束的隨機化薛曉軍xueislark@hotmail.com中科院自動化所集成中心2014-02-25為何要引入受約束的隨機測試方法CRT原因:產(chǎn)生完整的激勵集測試設計的功能越來越困難,編寫足夠的定向測試集變得不可能功能項的關系是大多錯誤的來源,而這種錯誤很難通過清單檢查方法排查與定向測試環(huán)境的不同:受約束測試環(huán)境需要通過參考模型、傳輸函數(shù)或其他方法預測結(jié)果需要對待測設計的所有關鍵點(控制路徑的每一個分支)都采用隨機化測試提高效率,充分利用計算機來節(jié)省人工檢查和驗證時間需隨機化的設計配置:器件配置環(huán)境配置原始輸

2、入封裝后的輸入數(shù)據(jù)協(xié)議異常延時事務狀態(tài)錯誤和違規(guī)隨機約束的簡介隨機約束目的:使用隨機激勵能夠節(jié)省人力和時間,但是純粹的隨機激勵是接近無限空間的,沒有實際使用價值。所以限制和規(guī)定隨機激勵的自由度,以產(chǎn)生既隨機又讓人感興趣的測試場景隨機約束特點:能夠表達復雜的場景可以靈活地、動態(tài)地控制隨機數(shù)可以產(chǎn)生組合的或者序列的約束組合的約束舉例:以太網(wǎng)中payload等于13-14個字節(jié)序列的約束舉例:當一個申請之后,應答需要在4-10個周期內(nèi)給出簡單的例子例子說明:隨機變量使用rand/randc修飾詞使用約束constraint確定變量的范圍調(diào)用類的r

3、andomize函數(shù)來執(zhí)行隨機化,如果遇到隨機化問題,randomize函數(shù)返回0普通隨機數(shù)rand循環(huán)隨機數(shù)randcclassTransaction;randbit[15:0]addr;randbit[31:0]data;randbit[2:0]port;randbitrequest;randbit[1:0]grant;constraintword_align{addr[1:0]==2'b0;}endclassmoduletop;Transactiontr=new;initialbegin:random_repeat#20repeat(

4、32)beginif(tr.randomize()==1)$display("addr=%16hdata=%h",tr.addr,tr.data);else$display("Randomizationfailed.");endend:random_repeatendmodulerandcbit[1:0]y;初始序列:0?3?2?1下一個序列:2?1?3?0下一個序列:2?0?1?3…隨機變量約束設置的方式普通方式:typedefenum{low,mid,high}AddrType;classMyBusextendsBus;rand

5、AddrTypeatype;constraintaddr_range{(atype==low)->addrinside{[0:15]};(atype==mid)->addrinside{[16:127]};(atype==high)->addrinside{[128:255]};}endclasstaskexercise_bus(MyBusbus);intres;//EXAMPLE1:restricttolowaddressesres=bus.randomize()with{atype==low;};//EXAMPLE2:restrictt

6、oaddressbetween10and20res=bus.randomize()with{10<=addr&&addr<=20;};//EXAMPLE3:restrictdatavaluestopowers-of-twores=bus.randomize()with{data&(data-1)==0;};endtask內(nèi)嵌方式:這種定義方法的好處:每個不同測試定義的約束的不同版本以產(chǎn)生不同的激勵壞處:約束過于分散,有潛在風險//packet.svtypedefenum{low,mid,high}AddrType;classMyBusext

7、endsBus;randAddrTypeatype;constraintaddr_rangeendclass//test.svprogrameautomatictest;include“packet.sv”constraintMyBus::addr_range{(atype==low)->addrinside{[0:15]};(atype==mid)->addrinside{[16:127]};(atype==high)->addrinside{[128:255]};}…endprograme隨機約束塊的格式constraint_decla

8、ration::=[static]constraintconstraint_identifierconstraint_blockconstraint_block::={{cons

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。