色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

創建UVM Testcase的步驟

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

在UVM中,Testcase是一個類,它封裝了測試用例開發者編寫的特定激勵序列。

創建Base Test

下面首先開發了一個Base Test。這個Base Test是所有基于ubus_example_env開發的測試用例的一個起點。

108a8c2e-0ace-11ee-962d-dac502259ad0.png

base test的build_phase()創建了ubus_example_env。任何從ubus_example_base_test派生的Testcase都會繼承ubus_example_base_test中的所有定義,這意味著如果派生的Testcase調 用 super.build_phase() , 也會將構建top-levelenvironment。

Base Test基類創建測試用例

測試用例編寫者可以從Base Test派生出使用相同驗證環境的測試用例。top-level environment是由Base Test的build_phase()創建的,派生測試用例可 以 對run_phase()做一些 調 整 ( 例 如,改變環境中執行的 default sequence ) 。下 面 是一 個繼 承 自ubus_example_base_test 的簡單測試用例。

10b0acc4-0ace-11ee-962d-dac502259ad0.png

這個測 試 用例改變了由masters[0] agent和slaves[0]agent執 行 的default sequence。

通過基類super.build_phase(),將創建驗證環境ubus_example_env0以及它的所有驗證子組件。因此,任何會影響這些驗證組件構建的配置(比如要創建多少個masters)都必須在調用super.build_phase()之前設置好。

對于這個例子,由于sequences要到后面的phase才開始獲取,所以可以在調用super.build_phase()之后再調用uvm_config_db::set。

選擇測試用例

在定義了擴展測試用例后,需要調用uvm_pkg::run_test()任務來選擇一個要執行仿真的測試用例。它的原型是:

task run_test(string test_name="");

UVM支持通過兩種不同的機制指明要運行的測試用例。

測試用例(即已經向factory注冊的測試用例名稱)可以直接傳遞給run_test()任務,也可以通過+UVM_TESTNAME在命令行中聲明。

如果兩種機制都使用,命令行優先。一旦選擇了一個測試用例名稱,run_test()任務就會調用factory機制來創建一個測試用例的實例,實例名稱為uvm_test_top。最后,run_test()通過執行各個phase來啟動測試。

下面的例子顯示了如何通過仿真器的命令行參數向run_test()任務提供類型名為test_read_modify_write的測試。使用命令行參數可以避免在調用run_test()的任務中hardcode指定testcase名稱。在一個initial語句中,調用run_test()如下:

// DUT, interfaces, and all non-UVM code
initial
uvm_pkg::run_test();

使用仿真器命令行選項選擇一個test_read_modify_write類型的測試用例,使用以下命令:

% simulator-command other-options +UVM_TESTNAME=test_read_modify_write

如果提供給run_test()的測試用例名稱不存在,仿真器將立即調用$fatal報錯退出。如果發生這種情況,很可能是名字打錯了或者是`uvm_component_utils宏沒有被使用注冊這個testcase。

通過使用這種方法,只改變+UVM_TESTNAME參數,可以運行多個測試,而不必重新編譯測試平臺。

??


審核編輯:劉清

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

    關注

    14

    文章

    1017

    瀏覽量

    83722
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19167

原文標題:創建UVM Testcase

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

收藏 人收藏

    評論

    相關推薦

    數字IC驗證之“構成uvm測試平臺的主要組件”(4)連載中...

    擴展于uvm component。下面的類都是以它為基類擴展而來的。  uvm test,對應著testcase測試案例,驗證工程師的測試案例都是從這個基類擴展而來。  uvm env
    發表于 01-22 15:33

    UVM代碼如何把testcase與driver分開

    UVM代碼如何把testcase與driver分開
    發表于 03-11 07:58

    什么是uvmuvm的特點有哪些呢

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

    談談UVM中的uvm_info打印

    , this);  endfunction  m_rh是uvm_report_handler class類型的。在1個基于uvm_report_object繼承過來的class在new的時候,會自動創建出m_rh
    發表于 03-17 16:41

    我的第一個UVM代碼——Hello world

    run_test調用了uvm_test派生出來的testcase(hello_world)。 為什么run_test能夠通過字符串\"hello_world\"找到testcase?與宏定義
    發表于 11-03 10:18

    Modelsim uvm庫編譯及執行

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

    allegro與PADS的區別及創建PCB封裝的步驟

    allegro與PADS的區別及創建PCB封裝的步驟
    發表于 03-27 10:56 ?66次下載
    allegro與PADS的區別及<b class='flag-5'>創建</b>PCB封裝的<b class='flag-5'>步驟</b>

    多負載電源解決方案的創建步驟

    多負載電源解決方案的創建步驟
    發表于 05-28 10:03 ?14次下載

    典型的UVM Testbench架構

    UVM類庫提供了通用的代碼功能,如component hierarchy、transaction level model(TLM),configuration database等等,使用戶能夠創建任何類型的Testbench架構。
    的頭像 發表于 05-22 10:14 ?2106次閱讀
    典型的<b class='flag-5'>UVM</b> Testbench架構

    UVM學習筆記(一)

    driver應該派生自uvm_driver,而uvm_driver派生自uvm_component。
    的頭像 發表于 05-26 14:38 ?1385次閱讀
    <b class='flag-5'>UVM</b>學習筆記(一)

    創建UVM Driver的步驟

    Driver的作用是從sequencer中獲得數據項,按照接口協議將數據項驅動到總線上。
    的頭像 發表于 05-30 09:22 ?1011次閱讀
    <b class='flag-5'>創建</b><b class='flag-5'>UVM</b> Driver的<b class='flag-5'>步驟</b>

    創建UVM Driver

    Driver的作用是從sequencer中獲得數據項,按照接口協議將數據項驅動到總線上。UVM類庫提供了uvm_driver基類,所有的Driver類都應該直接或間接地從該類中擴展出來。Driver有一個TLM port,通過它與sequencer進行通信。
    的頭像 發表于 05-30 16:17 ?794次閱讀
    <b class='flag-5'>創建</b><b class='flag-5'>UVM</b> Driver

    UVM中的uvm_do宏簡析

    uvm_do宏及其變體提供了創建、隨機化和發送transaction items或者sequence的方法。
    的頭像 發表于 06-09 09:36 ?4954次閱讀
    <b class='flag-5'>UVM</b>中的<b class='flag-5'>uvm</b>_do宏簡析

    我的第三個UVM代碼—把testcase與driver分開

    testcase里驅動interface,當代碼越來越多,需要考慮把環境拆分成多個小的環境,便于修改和維護。
    的頭像 發表于 06-15 10:54 ?648次閱讀
    我的第三個<b class='flag-5'>UVM</b>代碼—把<b class='flag-5'>testcase</b>與driver分開

    Testcase在芯片驗證中的作用

    隨著半導體技術的快速發展,集成電路芯片的復雜度日益增加,芯片設計中的驗證工作變得越來越重要。驗證的目的是確保芯片在各種工況下的功能正確性和性能穩定性。在這個過程中,testcase(測試用例)扮演著關鍵角色。本文將簡要介紹 testcase 的基本概念、設計方法和在芯片驗
    的頭像 發表于 09-09 09:32 ?1353次閱讀
    主站蜘蛛池模板: 91福利国产在线观看网站| 51精品少妇人妻AV一区二区| 国产精品在线手机视频| 亚洲欧美日韩高清专区| 久久草这里全是精品香蕉频线观| 在线播放国产视频| 男人有噶坏| 国产乱人伦AV麻豆网| 最近免费中文字幕MV免费高清| 免费视频久久只有精品| 国产精品免费观看视频播放| 一受多攻高h| 外女思春台湾三级| 美国xaxwaswaskino| 国产亚洲精品久久777777| 69式国产真人免费视频| 亚洲AV久久久噜噜噜噜| 欧美精品做人一级爱免费| 嘿嘿视频在线观看 成人| 超碰97av 在线人人操| 一边啪啪的一边呻吟声口述| 日本一卡精品视频免费| 精品含羞草免费视频观看| 国产传媒在线播放| 成人无码精品一区二区在线观看| 伊人亚洲综合青草青草久热| 小草高清视频免费直播| 日本浴室日产在线系列 | 久久热这里只有 精品| 国产午夜电影院| 国产精品久久久久久免费字体 | 精品日韩欧美一区二区三区| 丰满老熟好大bbbxxx| PORN白嫩内射合集| 2019午夜福利757视频第12集| 亚洲欧美另类无码专区| 偷窥欧美wc经典tv| 熟女少妇内射日韩亚洲| 色哒哒影院| 特级毛片AAAAAA| 午夜精品久久久久久久99蜜桃|