在驗證過程中讓DUT進入特定場景只是驗證的重要部分之一,驗證環(huán)境還應該檢查來自DUT的輸出響應。可以使用兩種類型的自動檢查機制:
斷言--源于規(guī)范或設計實現,確保正確的時序行為。斷言通常側重于信號級。可重用的斷言也是可重用驗證組件的一部分,當然設計也可以將斷言放在DUT RTL中。
數據檢查器-確保DUT整體的正確性。
Scoreboards
self-checking驗證環(huán)境的一個重要部分是Scoreboards。通常情況下,Scoreboards在功能層面上驗證設計的正確操作。Scoreboards承擔的責任因實現方式而異。下面展示一個Scoreboards的例子,它驗證了一個UBus slave interface。
UBus Scoreboard 示例
寫到一個地址的數據應該在讀取該地址時返回,驗證環(huán)境的拓撲結構如下圖所示:
在這個例子中,創(chuàng)建了一個top-level environment,其中有一個UBus environment,包含bus monitor,一個master agent,和一個slave agent。
定義Scoreboard:
添加必要的TLM export,以便與monitor進行通信。
執(zhí)行TLM export的方法,定義export被調用時的行為。
向uvm_scoreboard添加Exports :
在上圖的例子中,monitors提供了一個TLM uvm_analysis_port(s)接口, scoreboard需要提供TLM uvm_analysis_imp。
1 classubus_example_scoreboardextendsuvm_scoreboard; 2 uvm_analysis_imp#(ubus_transfer,ubus_example_scoreboard) 3 item_collected_export; 4 ... 5 function new (string name, uvm_component parent); 6 super.new(name, parent); 7 endfunction : new 8 function void build_phase(uvm_phase phase); 9 item_collected_export = new("item_collected_export", this); 10 endfunction 11 ...
第2行聲明了uvm_analysis_export。第一個參數ubus_transfer,定義了通過這個TLM接口通信的uvm_object。第二個參數定義了父類類型。
第9行創(chuàng)建item_collected_export實例。
由于scoreboard提供了一個 uvm_analysis_imp,scoreboard必須實現該export所要求的所有方法。這意味著需要定義write virtual function的實現:
virtual function void write(ubus_transfer trans); if (!disable_scoreboard) memory_verify(trans); endfunction : write
write()的實現定義了在這個接口上接收到數據時的行為。如果disable_scoreboard為0,就會以transaction為參數調用memory_verify()函數。
將Scoreboard添加到Environment中
一旦定義好scoreboard,就可以添加到UBus的 top-level environment中。首先,在ubus_example_env類中聲明ubus_example_scoreboard。
ubus_example_scoreboard scoreboard0;
scoreboard可以在build() phase構建:
function ubus_example_env::build_phase(uvm_phase phase); ... scoreboard0 = ubus_example_scoreboard::create("scoreboard0", this); ... endfunction
在UBus environment中連接slaves[0] monitor到scoreboard的export上。
function ubus_example_env::connect_phase(uvm_phase phase); ... ubus0.slaves[0].monitor.item_collected_port.connect( scoreboard0.item_collected_export); ... endfunction
總結下,添加scoreboard的過程:
聲明scoreboard組件
添加必要的exports。
實現所需的方法來執(zhí)行特定的功能。
將scoreboard添加到environment中
聲明并實例化scoreboard組件。
連接TLM port
審核編輯:劉清
-
RTL
+關注
關注
1文章
385瀏覽量
59797 -
UVM
+關注
關注
0文章
182瀏覽量
19171 -
TLM
+關注
關注
1文章
32瀏覽量
24750 -
DUT
+關注
關注
0文章
189瀏覽量
12386
原文標題:uvm中的Scoreboards
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論