數(shù)據(jù)項:
作為DUT的激勵對象。
表示驗證環(huán)境處理的transactions。
用于 transaction-level的覆蓋率收集和功能比對。
UVM類庫提供uvm_sequence_item基類。每個用戶定義的數(shù)據(jù)項都應該直接或間接地派生自這個基類。
要創(chuàng)建一個數(shù)據(jù)項,需要:
分析DUT的transaction規(guī)格,確定屬性、約束、task和function。
從uvm_sequence_item基類(或它的派生類)派生出一個數(shù)據(jù)項類。
為數(shù)據(jù)項定義一個new函數(shù)。
為步驟(a)中確定的項目增加控制字段("旋鈕"),以便于編寫測試。
使用UVM field macros來實現(xiàn)打印、復制、比較等,UVM允許單獨指定每個字段所需的自動化。
定義do_*函數(shù),用于創(chuàng)建、比較、打印、packing和unpacking所需的transaction數(shù)據(jù)。
為了幫助debugging和tracking transaction,uvm_transaction基類通過get_transaction_id()成員函數(shù)獲取唯一的transaction number。因為uvm_sequence_item基類從uvm_transaction擴展而來,所以也包括get_transaction_id()成員函數(shù)。
下例中的simple_item類定義了幾個隨機變量和約束。UVM的宏實現(xiàn)了對這個類進行操作的各種方法,如復制、比較、打印等等。特別是,`uvm_object_utils宏將類的類型注冊到factory。

第1行 從uvm_sequence_item派生出數(shù)據(jù)項,以便它們可以在sequence中生成。
第5行和第6行向數(shù)據(jù)項添加約束條件,以便:
指定數(shù)據(jù)項規(guī)格。
指定生成數(shù)據(jù)項的默認分布。
第7行-第12行 使用UVM的宏來自動實現(xiàn)諸如copy(), compare(), print(), pack()等函數(shù)。
繼承和約束分層
在驗證過程中,驗證組件用戶可能需要通過在類定義中添加更多的約束來調整數(shù)據(jù)項的生成。在SystemVerilog中 ,這是用繼承(inheritance)來完成的。下面的例子顯示了一個派生的數(shù)據(jù)項word_aligned_item,它包括一個額外的約束條件,只選擇word對齊的地址。


為了實現(xiàn)這種數(shù)據(jù)項類型的可擴展性:
數(shù)據(jù)項的基類(本例中的simple_item)應該使用virtual methods,以允許派生類重寫功能。
確保約束塊的組織方式,使其能夠覆蓋或禁用隨機變量的約束,而不必重寫更多的代碼。
字段可以用protected或local關鍵字聲明,以限制對屬性的訪問。
定義控制字段("旋鈕")。
產生輸入空間的所有數(shù)值往往是不可能的,通常也沒有必要。能夠從范圍或類別的值中生成部分值是很重要的。在上述simple_item例子中,delay屬性可以隨機化為0和最大無符號整數(shù)之間的任何值。
覆蓋整個合法空間是沒有必要的(也不實際),但是嘗試背靠背、短、中、大延遲,以及所有這些delay模式的組合是很重要的。為了做到這一點,需要定義控制字段(通常稱為 "旋鈕"),使用例編寫者能夠控制這些變量。
這些控制旋鈕也可以用于覆蓋率的收集。為了提高可讀性,使用枚舉類型來表示各種生成的類別。

使用這種方法可以創(chuàng)建更加抽象的測試。例如,你可以指定分布為:

在創(chuàng)建數(shù)據(jù)項時,要牢記經常使用什么范圍的值,或者哪些類別是該數(shù)據(jù)項所需要關注的。然后給數(shù)據(jù)項添加旋鈕,以簡化對這些數(shù)據(jù)項類別的控制和覆蓋收集。
審核編輯:湯梓紅
-
函數(shù)
+關注
關注
3文章
4421瀏覽量
67822 -
UVM
+關注
關注
0文章
183瀏覽量
20095 -
驗證
+關注
關注
0文章
69瀏覽量
15746
原文標題:UVM驗證環(huán)境開發(fā)之建模激勵數(shù)據(jù)
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
NVMe高速傳輸之擺脫XDMA設計18:UVM驗證平臺
NVMe高速傳輸之擺脫XDMA設計23:UVM驗證平臺
NVMe高速傳輸之擺脫XDMA設計24: UVM 驗證包設計
IC驗證"UVM驗證平臺"組成(三)
數(shù)字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...
數(shù)字IC驗證之“構成uvm測試平臺的主要組件”(4)連載中...
如何構建UVM寄存器模型并將寄存器模型集成到驗證環(huán)境中
UVM驗證平臺執(zhí)行硬件加速
ASIC芯片設計之UVM驗證
Easier UVM Code Generator Part 4:生成層次化的驗證環(huán)境
NVMe高速傳輸之擺脫XDMA設計24: UVM 驗證包設計
UVM驗證環(huán)境開發(fā)之建模激勵數(shù)據(jù)
評論