數(shù)據(jù)項(xiàng):
作為DUT的激勵(lì)對象。
表示驗(yàn)證環(huán)境處理的transactions。
用于 transaction-level的覆蓋率收集和功能比對。
UVM類庫提供uvm_sequence_item基類。每個(gè)用戶定義的數(shù)據(jù)項(xiàng)都應(yīng)該直接或間接地派生自這個(gè)基類。
要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)項(xiàng),需要:
分析DUT的transaction規(guī)格,確定屬性、約束、task和function。
從uvm_sequence_item基類(或它的派生類)派生出一個(gè)數(shù)據(jù)項(xiàng)類。
為數(shù)據(jù)項(xiàng)定義一個(gè)new函數(shù)。
為步驟(a)中確定的項(xiàng)目增加控制字段("旋鈕"),以便于編寫測試。
使用UVM field macros來實(shí)現(xiàn)打印、復(fù)制、比較等,UVM允許單獨(dú)指定每個(gè)字段所需的自動化。
定義do_*函數(shù),用于創(chuàng)建、比較、打印、packing和unpacking所需的transaction數(shù)據(jù)。
為了幫助debugging和tracking transaction,uvm_transaction基類通過get_transaction_id()成員函數(shù)獲取唯一的transaction number。因?yàn)閡vm_sequence_item基類從uvm_transaction擴(kuò)展而來,所以也包括get_transaction_id()成員函數(shù)。
下例中的simple_item類定義了幾個(gè)隨機(jī)變量和約束。UVM的宏實(shí)現(xiàn)了對這個(gè)類進(jìn)行操作的各種方法,如復(fù)制、比較、打印等等。特別是,`uvm_object_utils宏將類的類型注冊到factory。
第1行 從uvm_sequence_item派生出數(shù)據(jù)項(xiàng),以便它們可以在sequence中生成。
第5行和第6行向數(shù)據(jù)項(xiàng)添加約束條件,以便:
指定數(shù)據(jù)項(xiàng)規(guī)格。
指定生成數(shù)據(jù)項(xiàng)的默認(rèn)分布。
第7行-第12行 使用UVM的宏來自動實(shí)現(xiàn)諸如copy(), compare(), print(), pack()等函數(shù)。
繼承和約束分層
在驗(yàn)證過程中,驗(yàn)證組件用戶可能需要通過在類定義中添加更多的約束來調(diào)整數(shù)據(jù)項(xiàng)的生成。在SystemVerilog中 ,這是用繼承(inheritance)來完成的。下面的例子顯示了一個(gè)派生的數(shù)據(jù)項(xiàng)word_aligned_item,它包括一個(gè)額外的約束條件,只選擇word對齊的地址。
為了實(shí)現(xiàn)這種數(shù)據(jù)項(xiàng)類型的可擴(kuò)展性:
數(shù)據(jù)項(xiàng)的基類(本例中的simple_item)應(yīng)該使用virtual methods,以允許派生類重寫功能。
確保約束塊的組織方式,使其能夠覆蓋或禁用隨機(jī)變量的約束,而不必重寫更多的代碼。
字段可以用protected或local關(guān)鍵字聲明,以限制對屬性的訪問。
定義控制字段("旋鈕")。
產(chǎn)生輸入空間的所有數(shù)值往往是不可能的,通常也沒有必要。能夠從范圍或類別的值中生成部分值是很重要的。在上述simple_item例子中,delay屬性可以隨機(jī)化為0和最大無符號整數(shù)之間的任何值。
覆蓋整個(gè)合法空間是沒有必要的(也不實(shí)際),但是嘗試背靠背、短、中、大延遲,以及所有這些delay模式的組合是很重要的。為了做到這一點(diǎn),需要定義控制字段(通常稱為 "旋鈕"),使用例編寫者能夠控制這些變量。
這些控制旋鈕也可以用于覆蓋率的收集。為了提高可讀性,使用枚舉類型來表示各種生成的類別。
使用這種方法可以創(chuàng)建更加抽象的測試。例如,你可以指定分布為:
在創(chuàng)建數(shù)據(jù)項(xiàng)時(shí),要牢記經(jīng)常使用什么范圍的值,或者哪些類別是該數(shù)據(jù)項(xiàng)所需要關(guān)注的。然后給數(shù)據(jù)項(xiàng)添加旋鈕,以簡化對這些數(shù)據(jù)項(xiàng)類別的控制和覆蓋收集。
審核編輯:湯梓紅
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62573 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19167 -
驗(yàn)證
+關(guān)注
關(guān)注
0文章
61瀏覽量
15187
原文標(biāo)題:UVM驗(yàn)證環(huán)境開發(fā)之建模激勵(lì)數(shù)據(jù)
文章出處:【微信號:芯片驗(yàn)證工程師,微信公眾號:芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論