為了實現(xiàn)驗證目標(biāo),測試用例開發(fā)者需要控制測試激勵的生成以覆蓋特定的場景。測試用例開發(fā)者可以用下面這些方法控制測試激勵的創(chuàng)建:
添加約束條件來控制單個數(shù)據(jù)項。
使用UVM sequences來控制多個數(shù)據(jù)項的順序。這種方法提供了更多的靈活性和控制。
約束數(shù)據(jù)項
默認(rèn)情況下,sequencers會生成完全隨機(jī)的數(shù)據(jù)項。測試用例編寫者可以控制生成的數(shù)據(jù)項數(shù)量,并向數(shù)據(jù)項添加約束。為了約束數(shù)據(jù)項,需要:
識別驗證組件中的數(shù)據(jù)項類和它們的字段。
創(chuàng)建一個數(shù)據(jù)項類的派生,增加或覆蓋默認(rèn)約束。
在測試用例中,調(diào)整環(huán)境以使用新定義的數(shù)據(jù)項。
使用命令行選項指定測試用例名稱來運(yùn)行仿真。
數(shù)據(jù)項類的定義
派生類中的幾個字段來自于DUT規(guī)格。例如,一個幀(frame)應(yīng)該有一個payload被發(fā)送到DUT。其他字段的存在是為了幫助測試用例開發(fā)者控制激勵數(shù)據(jù)的生成。例如,字段parity_type不被發(fā)送到DUT,但它允許測試用例開發(fā)者輕松地指定和控制奇偶分布。這樣的控制字段被稱為 "旋鈕knobs"。
驗證組件的文檔應(yīng)該列出數(shù)據(jù)項的旋鈕、它們的作用和合法范圍。
數(shù)據(jù)項約束可以來自DUT的規(guī)范,例如一個合法的幀必須有不等于0的error_bits_c。數(shù)據(jù)項中不同類型的約束對數(shù)據(jù)項的生成進(jìn)行約束。例如,在約束塊default_parity_type中,奇偶校驗位被約束為90%合法(good parity)和10%非法(bad parity)。
創(chuàng)建一個特定的測試用例
在測試用例中,用戶可能希望改變數(shù)據(jù)項的生成方式。例如,測試用例開發(fā)者可能希望有short delays,這可以通過派生一個新的數(shù)據(jù)項類并根據(jù)需要添加約束或其他類成員來實現(xiàn)。
UVM類庫的factory機(jī)制可以用來將派生類(short_delay_frame)引入到環(huán)境中。
調(diào)用factory函數(shù)set_type_override_by_type(),指示環(huán)境使用short-delay幀。有時,測試用例可能想向某一個接口發(fā)送特殊的流量,同時繼續(xù)向其他接口發(fā)送常規(guī)流量。這可以通過在一個UVM組件中使用set_inst_override_by_type()來實現(xiàn)。
set_inst_override_by_type("uart_env0.master.sequencer.*", uart_frame::get_type(), short_delay_frame::get_type());
通配符也可以用來覆蓋一些組件的實例,例如:
set_inst_override_by_type("uart_env*.master.sequencer.*", uart_frame::get_type(), short_delay_frame::get_type());
責(zé)任編輯:彭菁
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7232瀏覽量
90714 -
仿真
+關(guān)注
關(guān)注
51文章
4207瀏覽量
135035 -
DUT
+關(guān)注
關(guān)注
0文章
190瀏覽量
12747
原文標(biāo)題:創(chuàng)建約束隨機(jī)測試用例
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
怎么創(chuàng)建時序約束?
設(shè)計驗證中的隨機(jī)約束
如何創(chuàng)建目標(biāo)數(shù)據(jù)庫
基于約束修補(bǔ)的多目標(biāo)優(yōu)化算法
如何創(chuàng)建和管理約束密集型、高度約束的PCB設(shè)計
PADS約束管理系統(tǒng)創(chuàng)建、審查和驗證PCB設(shè)計約束
如何使用隨機(jī)模擬技術(shù)和神經(jīng)網(wǎng)絡(luò)講解隨機(jī)機(jī)會約束的規(guī)劃問題

創(chuàng)建輸入輸出接口時序約束的竅門

簡述SystemVerilog的隨機(jī)約束方法
SystemVerilog中“軟約束”與“硬約束”的應(yīng)用示例
受約束隨機(jī)驗證的效果真的比直接用例測試好嗎?
SystemVerilog的隨機(jī)約束方法
SV約束隨機(jī)化總結(jié)

評論