為了實(shí)現(xiàn)驗(yàn)證目標(biāo),測(cè)試用例開發(fā)者需要控制測(cè)試激勵(lì)的生成以覆蓋特定的場(chǎng)景。測(cè)試用例開發(fā)者可以用下面這些方法控制測(cè)試激勵(lì)的創(chuàng)建:
添加約束條件來控制單個(gè)數(shù)據(jù)項(xiàng)。
使用UVM sequences來控制多個(gè)數(shù)據(jù)項(xiàng)的順序。這種方法提供了更多的靈活性和控制。
約束數(shù)據(jù)項(xiàng)
默認(rèn)情況下,sequencers會(huì)生成完全隨機(jī)的數(shù)據(jù)項(xiàng)。測(cè)試用例編寫者可以控制生成的數(shù)據(jù)項(xiàng)數(shù)量,并向數(shù)據(jù)項(xiàng)添加約束。為了約束數(shù)據(jù)項(xiàng),需要:
識(shí)別驗(yàn)證組件中的數(shù)據(jù)項(xiàng)類和它們的字段。
創(chuàng)建一個(gè)數(shù)據(jù)項(xiàng)類的派生,增加或覆蓋默認(rèn)約束。
在測(cè)試用例中,調(diào)整環(huán)境以使用新定義的數(shù)據(jù)項(xiàng)。
使用命令行選項(xiàng)指定測(cè)試用例名稱來運(yùn)行仿真。
數(shù)據(jù)項(xiàng)類的定義
派生類中的幾個(gè)字段來自于DUT規(guī)格。例如,一個(gè)幀(frame)應(yīng)該有一個(gè)payload被發(fā)送到DUT。其他字段的存在是為了幫助測(cè)試用例開發(fā)者控制激勵(lì)數(shù)據(jù)的生成。例如,字段parity_type不被發(fā)送到DUT,但它允許測(cè)試用例開發(fā)者輕松地指定和控制奇偶分布。這樣的控制字段被稱為 "旋鈕knobs"。
驗(yàn)證組件的文檔應(yīng)該列出數(shù)據(jù)項(xiàng)的旋鈕、它們的作用和合法范圍。
數(shù)據(jù)項(xiàng)約束可以來自DUT的規(guī)范,例如一個(gè)合法的幀必須有不等于0的error_bits_c。數(shù)據(jù)項(xiàng)中不同類型的約束對(duì)數(shù)據(jù)項(xiàng)的生成進(jìn)行約束。例如,在約束塊default_parity_type中,奇偶校驗(yàn)位被約束為90%合法(good parity)和10%非法(bad parity)。
創(chuàng)建一個(gè)特定的測(cè)試用例
在測(cè)試用例中,用戶可能希望改變數(shù)據(jù)項(xiàng)的生成方式。例如,測(cè)試用例開發(fā)者可能希望有short delays,這可以通過派生一個(gè)新的數(shù)據(jù)項(xiàng)類并根據(jù)需要添加約束或其他類成員來實(shí)現(xiàn)。
UVM類庫(kù)的factory機(jī)制可以用來將派生類(short_delay_frame)引入到環(huán)境中。
調(diào)用factory函數(shù)set_type_override_by_type(),指示環(huán)境使用short-delay幀。有時(shí),測(cè)試用例可能想向某一個(gè)接口發(fā)送特殊的流量,同時(shí)繼續(xù)向其他接口發(fā)送常規(guī)流量。這可以通過在一個(gè)UVM組件中使用set_inst_override_by_type()來實(shí)現(xiàn)。
set_inst_override_by_type("uart_env0.master.sequencer.*", uart_frame::get_type(), short_delay_frame::get_type());
通配符也可以用來覆蓋一些組件的實(shí)例,例如:
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文章
7002瀏覽量
88942 -
仿真
+關(guān)注
關(guān)注
50文章
4070瀏覽量
133552 -
DUT
+關(guān)注
關(guān)注
0文章
189瀏覽量
12373
原文標(biāo)題:創(chuàng)建約束隨機(jī)測(cè)試用例
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論