精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

UVM學習筆記(一)

冬至子 ? 來源:多讀點書 ? 作者:夕文x ? 2023-05-26 14:38 ? 次閱讀

第1章與UVM的第一次接觸

基本沒有感興趣的內容,推薦直接從第2章開始,防止勸退。

第2章一個簡單的UVM驗證平臺

2.1 驗證平臺的組成

圖片

圖片

2.2 只有driver的驗證平臺

2.2.1 最簡單的驗證平臺

driver應該派生自uvm_driver,而uvm_driver派生自uvm_component。相關派生關系如下圖所示:

圖片

2.2.2 加入factory機制

factory機制的實現被集成在了一個宏中:uvm_component_utils。它可以將my_driver注冊在UVM內部的一張表中。只要在定義一個新的類時使用這個宏,就相當于把這個類注冊到了這張表中。然后使用run_test時,可以自動創建一個類的實例并調用其中函數main_phase。其中uvm_component_utils的入參是類名my_driver,而run_test入參為在UVM內部表中注冊的字符串名(注意:這里的字符串名必須和類名相同)。

圖片

2.2.3 加入objection機制

objection機制用來控制仿真的開始和結束。在每個phase中,UVM會檢查是否有objection被提起(raise_objection),如果有,那么等待這個objection被撤銷(drop_objection)后停止仿真;如果沒有,則馬上結束當前phase。

圖片

2.2.4 加入virtual interface

目的:杜絕在驗證平臺中使用絕對路徑,從而增強驗證平臺的可移植性。

SV和UVM中端口使用的比對:

  • sv中
    • 使用interface,通過對top_tb.my_driver.xxx的引用實現賦值。
  • UVM中
    • 引入virtual interface:解決UVM類中無法實例化接口的問題。
    • 引入config_db機制:解決top中無法通過實例模塊引用內部接口的問題(UVM通過run_test語句實例化了一個脫離了top_tb層次結構的實例,建立了一個新的層次結構,導致top_tb.my_dut.xxx可以,但top_tb.my_driver.xxx不可以)。具體而言分為set和get兩步操作
    • 引入了build_phase:為config_db機制的實現服務。它也是UVM中內建的一個phase,在new函數之后main_phase之前執行(是一個函數phase,不消耗仿真時間)。通過config_db的set和get操作來傳遞一些數據,以及實例化成員變量等。

config_db機制中set方法的使用

圖片

  • 第一個參數:目標get所在實例的參考路徑索引(舉例:“null”,“this”)。在top_tb中設置virtual interface時,由于top_tb不是一個類,無法使用this指針,所以設置set的第一個參數為null。
  • 第二個參數:目標get所在實例的路徑索引,它是相對于第一個參數的相對路徑(舉例:"uvm_test_top"、"uvm_test_top.drv")
  • 第三個參數:一個名字,建立set與get之間的對應關系
  • 第四個參數:set要傳遞個get的信號,信號為uvm_config_db#(xxx)中xxx的實例。

進一步解釋:

  • 無論傳遞給run_test的參數是什么,創建的實例的名字都為uvm_test_top。
  • 由于set操作的目標是my_driver,所以set函數的第二個參數就是uvm_test_top。
  • set函數與get函數使用雙冒號是因為這兩個函數都是靜態函數,而uvm_config_db#( virtual my_if)則是一個參數化的類,其參數就是要寄信的類型。

uvm_fatal宏的理解

  • 類似于斷言,條件為假時,結束仿真。

路徑索引的概念:

  • UVM采用樹形結構,對于樹中任何一個結點,都有一個與其相應的字符串類型的路徑索引。路徑索引可以通過get_full_name函數來獲取,把下列代碼加入任何UVM樹的結點中就可以得知當前結點的路徑索引:
$display("the full name of current component is: %s", get_full_name());
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    577

    瀏覽量

    20485
  • UVM
    UVM
    +關注

    關注

    0

    文章

    181

    瀏覽量

    19139
  • PHASE
    +關注

    關注

    0

    文章

    10

    瀏覽量

    10837
收藏 人收藏

    評論

    相關推薦

    新手學習System Verilog & UVM指南

    新手學習SystemVerilog & UVM指南 從剛接觸System Verilog以及后來的VMM,OVM,UVM已經有很多年了,隨著電子工業的逐步發展,國內對驗證人才的需求也會急劇
    發表于 03-11 16:24

    IC驗證"為什么要學習UVM呢"

    推出了RGM,補上了這短板。只是很遺憾的是,RGM并沒有成為OVM的部分,要想使用RGM,需要額外下載。現在OVM已經停止更新,完全被UVM代替。UVM(Universal
    發表于 12-01 15:09

    IC驗證"個簡單的UVM驗證平臺"是如何搭建的(六)

    連載....小編考慮到個好的連續劇不能沒有結尾,所以后期會持續更新ic驗證的UVM相關內容.......今天更新個最簡單的驗證平臺,只有driver的驗證平臺.....driver是驗證平臺最基本
    發表于 12-04 15:48

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

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

    什么是uvmuvm的特點有哪些呢

    大家好,我是哥,上章內容我們介紹什么是uvmuvm的特點以及uvm為用戶提供了哪些資源?本章內容我們來看
    發表于 02-14 06:46

    請問下在UVM中的UVMsequences是什么意思啊

    UVM方法學中,UVMsequences 是壽命有限的對象。UVM sequences從uvm_sequence_item基類擴展得到,uvm_sequence_item進
    發表于 04-11 16:43

    談談UVM中的uvm_info打印

    uvm_report_info(xxx)函數調用當前m_rh的report(xxx)函數來打印message。但在m_rh.report(xxx)內部其實是調用uvm_report_server class來打印消息的。uvm
    發表于 03-17 16:41

    UVM中seq.start()和default_sequence執行順序

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

    我的第UVM代碼——Hello world

    `uvm_component_utils有關 仿真命令: irun -sv -uvmhome \\\\ /.../ies/tools/methodology/UVM/CDNS-1.2/sv \\\\ hello_world.sv 仿真結果如下: 最后,再用
    發表于 11-03 10:18

    Modelsim uvm庫編譯及執行

    句話是設置uvm環境變量,指定uvm的dpi位置。 第二句話是創建work工作目錄。 第三句話是編譯源文件,并且通過-L指定幾個編譯庫。 第三句是執行仿真,調用uvm
    的頭像 發表于 12-01 11:25 ?3830次閱讀
    Modelsim <b class='flag-5'>uvm</b>庫編譯及執行

    學習筆記】單片機匯編學習

    學習筆記】單片機匯編學習
    發表于 11-14 18:21 ?15次下載
    【<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】單片機匯編<b class='flag-5'>學習</b>

    什么是UVM environment?

    UVM environment**包含多個可重用的驗證組件,并根據test case的需求進行相應的配置。例如,UVM environment可能具有多個agent(對應不同的interface)、scoreboard、functional coverage collec
    的頭像 發表于 03-21 11:35 ?1050次閱讀
    什么是<b class='flag-5'>UVM</b> environment?

    UVMuvm_config_db機制背后的大功臣

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

    UVMuvm_config_db機制背后的大功臣

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

    文詳解UVM設計模式

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