0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

uvm中的Scoreboards介紹

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 2023-06-20 09:19 ? 次閱讀

在驗證過程中讓DUT進入特定場景只是驗證的重要部分之一,驗證環(huán)境還應該檢查來自DUT的輸出響應。可以使用兩種類型的自動檢查機制:

斷言--源于規(guī)范或設計實現,確保正確的時序行為。斷言通常側重于信號級。可重用的斷言也是可重用驗證組件的一部分,當然設計也可以將斷言放在DUT RTL中。

數據檢查器-確保DUT整體的正確性。

Scoreboards

self-checking驗證環(huán)境的一個重要部分是Scoreboards。通常情況下,Scoreboards在功能層面上驗證設計的正確操作。Scoreboards承擔的責任因實現方式而異。下面展示一個Scoreboards的例子,它驗證了一個UBus slave interface。

UBus Scoreboard 示例

寫到一個地址的數據應該在讀取該地址時返回,驗證環(huán)境的拓撲結構如下圖所示:

4e5cf8ac-0ebb-11ee-962d-dac502259ad0.png

在這個例子中,創(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





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59797
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19171
  • TLM
    TLM
    +關注

    關注

    1

    文章

    32

    瀏覽量

    24750
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12386

原文標題:uvm中的Scoreboards

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載...

    原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內容主要講述兩個內容,芯片驗證以及驗證計劃。那本章我們主要講述的內容有介紹什么是uvm
    發(fā)表于 01-21 16:00

    數字IC驗證之“典型的UVM平臺結構”(3)連載...

      大家好,我是一哥,上章內容我們介紹什么是uvm?uvm的特點以及uvm為用戶提供了哪些資源?  本章內容我們來看一看一個典型的uvm驗證
    發(fā)表于 01-22 15:32

    什么是uvm?uvm的特點有哪些呢

    大家好,我是一哥,上章內容我們介紹什么是uvmuvm的特點以及uvm為用戶提供了哪些資源?本章內容我們來看一看一個典型的uvm驗證平臺應該
    發(fā)表于 02-14 06:46

    如何構建UVM寄存器模型并將寄存器模型集成到驗證環(huán)境

    ),通常也叫寄存器模型,顧名思義就是對寄存器這個部件的建模。本文要介紹的內容,包括對UVM寄存器模型的概述,如何構建寄存器模型,以及如何將寄存器模型集成到驗證環(huán)境。篇幅原因,將在下一篇文章再給出寄存器
    發(fā)表于 09-23 14:29

    談談UVMuvm_info打印

    uvm_report_enabled(xxx),會分析傳過來的severity和id的配置verbosity要大于傳過來的verbosity,(get_report_verbosity_level(severity, id
    發(fā)表于 03-17 16:41

    UVMseq.start()和default_sequence執(zhí)行順序

      1. 問題  假如用以下兩種方式啟動sequence,方法1用sequence的start()方法啟動seq1,方法2用UVM的default_sequence機制啟動seq2。那么seq1
    發(fā)表于 04-04 17:15

    數字IC驗證之“典型的UVM平臺結構”(3)連載...

    大家好,我是一哥,上章內容我們介紹什么是uvm?uvm的特點以及uvm為用戶提供了哪些資源?本章內容我們來看一看一個典型的uvm驗證平臺應該
    發(fā)表于 12-09 13:36 ?7次下載
    數字IC驗證之“典型的<b class='flag-5'>UVM</b>平臺結構”(3)連載<b class='flag-5'>中</b>...

    UVM TLM的基本概念介紹

    UVM,transaction 是一個類對象,它包含了建模兩個驗證組件之間的通信所需的任何信息。
    的頭像 發(fā)表于 05-24 09:17 ?1789次閱讀
    <b class='flag-5'>UVM</b> TLM的基本概念<b class='flag-5'>介紹</b>

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內部數據庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-20 17:28 ?1426次閱讀

    如何用Verdi查看UVM環(huán)境的變量?

    我們常用的debug UVM的方法是通過打印log實現。有沒有辦法像 debug RTL代碼一樣將 UVM 變量拉到波形上看呢?答案是有的,下面讓我們看看是怎么做到的。
    的頭像 發(fā)表于 06-25 16:01 ?1744次閱讀
    如何用Verdi查看<b class='flag-5'>UVM</b>環(huán)境<b class='flag-5'>中</b>的變量?

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內部數據庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-29 16:57 ?1305次閱讀

    一文詳解UVM設計模式

    本篇是對UVM設計模式 ( 二 ) 參數化類、靜態(tài)變量/方法/類、單例模式、UVM_ROOT、工廠模式、UVM_FACTORY[1]單例模式的補充,分析靜態(tài)類的使用,
    的頭像 發(fā)表于 08-06 10:38 ?1816次閱讀
    一文詳解<b class='flag-5'>UVM</b>設計模式

    行為型設計模式在UVM的應用

    接下來介紹行為型設計模式在UVM的應用。
    的頭像 發(fā)表于 08-09 14:01 ?713次閱讀
    行為型設計模式在<b class='flag-5'>UVM</b><b class='flag-5'>中</b>的應用

    迭代模式在UVM的應用有哪些

    行為型設計模式數量較多,上一篇介紹了模板模式和策略模式,下面對迭代模式進行介紹,挖掘其在UVM的應用。
    的頭像 發(fā)表于 08-14 17:15 ?620次閱讀
    迭代模式在<b class='flag-5'>UVM</b><b class='flag-5'>中</b>的應用有哪些

    UVM設計的sequence啟動方式有哪幾種呢?

    本篇介紹UVM的sequence,這是UVM中最基礎的部分。對于前面介紹uvm_callba
    的頭像 發(fā)表于 08-17 10:07 ?4333次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的sequence啟動方式有哪幾種呢?