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

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

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

3天內不再提示

基于base test如何來構造測試用例

lhl545545 ? 來源:FPGA學姐 ? 作者:FPGA學姐 ? 2022-09-19 09:16 ? 次閱讀

在設計仿真用例時,有限制條件的激勵相比漫無目的的仿真更加有效的找出RTL的bug。因此,同一份測試方案,不同的sequence往往代表著不同的test_case。真正的測試用例都是基于base_test派生的一個類。

第一,在這么多不同的case下,我們可以設置一個base_case,base_case將環境env,cfg等一些東西包進去;

第二,需要幾個不同的sequence就寫幾個sequence,sequence之間沒有聯系,繼承于uvm_sequence;

第三,在每個具體的執行case下,可以用asserte插入具體的配置參數,并且每個case設置自己獨立的default_sequence;

第四,在終端指定不同的case_name跑不同的case;

文件:src/base_test.svclass base_test extends uvm_test;my_envenv;functionnew(stringname="base_test",uvm_componentparent=null);super.new(name,parent);endfunction
externvirtualfunctionvoidbuild_phase(uvm_phasephase);externvirtualfunctionvoidreport_phase(uvm_phasephase);`uvm_component_utils(base_test) //使用uvm_component_utils宏來注冊到factory中endclass
//在build_phase中實例化my_env,并設置sequencer的default_sequence來啟動my_sequencefunctionvoidbase_test::build_phase(uvm_phasephase);super.build_phase(phase);env=my_env::create("env",this);uvm_config_db#(uvm_object_wrapper)::set(this,"env.i_agt.sqr.main_phase","default_sequence",my_sequence::get());endfunction//根據UVM_ERROR的數量來打印不同的信息,一些日志分析工具functionvoidbase_test::report_phase(uvm_phasephase);uvm_report_serverserver;interr_num;super.report_phase(phase);server=get_report_server();err_num=server.get_severity_count(UVM_ERROR);if(err_num!=0)begin$display("TESTCASEFAILED");endelsebegin$display("TESTCASEPASSED");endendfunction

代碼中的super.new(name,parent)是繼承基類的構造函數的寫法,包括下面的 super.build_phase(phase)也是繼承基類的表現。

除了上述操作外,還通常在base_test中做如下事情:

第一,設置整個驗證平臺的超時退出時間;

第二,通過config_db設置驗證平臺中某些參數的值。這些根據不同的驗證平臺及不同的公司而不同,沒有統一的答案

下面介紹基于上面定義的basetest如何來構造測試用例呢

首先構造用例case0的激勵sequence

然后基于base case構造自己的case來啟動自己的激勵sequence

文件:src/my_case0.sv class case0_sequence extends uvm_sequence #(my_transaction); my_transaction m_trans; …virtual task body();if(starting_phase != null)starting_phase.raise_objection(this);//啟動仿真repeat (10) begin `uvm_do(m_trans)//發送此transaction。 end #100; if(starting_phase != null) starting_phase.drop_objection(this);//仿真結束 endtask … endclass  class my_case0 extends base_test; function new(string name = "my_case0", uvm_component parent = null); super.new(name,parent); endfunction extern virtual function void build_phase(uvm_phase phase); `uvm_component_utils(my_case0) endclass //通過設置默認sequence來啟動case0_sequence function void my_case0::build_phase(uvm_phase phase); super.build_phase(phase);uvm_config_db#(uvm_object_wrapper)::set(this,"env.i_agt.sqr.main_phase","default_sequence",case0_sequence::get());endfunction

UVM會利用UVM_TEST_NAME從命令行中尋找測試用例的名字,創建它的實例并運行

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

    關注

    1626

    文章

    21678

    瀏覽量

    602040
  • 仿真
    +關注

    關注

    50

    文章

    4048

    瀏覽量

    133431
  • 終端
    +關注

    關注

    1

    文章

    1117

    瀏覽量

    29834

原文標題:仿真驗證之base test

文章出處:【微信號:FPGA學姐,微信公眾號:FPGA學姐】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于pCTL的循環優化測試用自動生成方法

    【作者】:余俠;薛云志;陶秋銘;【來源】:《小型微型計算機系統》2010年03期【摘要】:循環優化測試對保證現代編譯器質量有著重要作用.傳統手工構造測試用方法面臨著效率低的問題,而目
    發表于 04-24 09:51

    如何編寫測試用

    我們如何在訪問儀器庫的工具中編寫任何測試用。 以上來自于谷歌翻譯 以下為原文how we need to write any test case in tool which access the instrument lib
    發表于 11-09 10:34

    修改自測試用run_test遇到的問題求解

    我修改了add.S文件,想讓make run_test SIM=iverilog后出現file.可是編譯不了,add.S文件也沒顯示更新。 可是我在測試測試用的時候,make
    發表于 08-12 06:50

    基于UML的生成場景測試用研究

    使用UML生成場景測試用,有利于測試者設計測試用。使用UML的類圖、狀態圖和順序圖來說明DHCP實例的場景
    發表于 03-31 09:49 ?15次下載

    手機硬件測試用

    手機硬件測試用 1.RF 測試 2.BB測試 3.Audio 測試 4.EMC測試
    發表于 04-28 16:59 ?56次下載

    基于跨平臺系統中測試用復用的解決方法

    在軟件開發過程中,測試做為一種保障產品質量的有效手段,被越來越多的人所重視。測試通常需要依據若干已經設計好的測試用逐步展開,使用測試用
    發表于 11-14 15:55 ?10次下載
    基于跨平臺系統中<b class='flag-5'>測試用</b><b class='flag-5'>例</b>復用的解決方法

    基于DSEA的弱變異測試用集生成方法

    為解決基于集合進化算法(SEA)的弱變異測試用集生成過程中個體規模固定和執行開銷大的問題,提出一種基于動態集合進化算法( DSEA)的弱變異測試用集生成方法。以
    發表于 11-28 16:11 ?0次下載

    數據測試:輸入數據的設計方法和測試用設計方法

    測試用的設計是測試設計的重要內容,關于測試用的設計方法,當前不少出版的測試書和發表的
    的頭像 發表于 06-29 10:22 ?2899次閱讀

    詳談Web測試中的界面測試用設計

    詳談Web測試中的界面測試用設計
    的頭像 發表于 06-29 10:48 ?2084次閱讀

    測試用的管理 介紹測試用的幾種管理方法

    摘要 隨著軟件系統規模的持續增大,業務復雜度的持續增加,軟件測試的復雜度也隨之越來越大。而軟件測試工作復雜度的直接體現,就是測試用編寫、維護、執行和管理,所以編寫易讀、易維護和易管理
    的頭像 發表于 11-26 15:13 ?6658次閱讀
    <b class='flag-5'>測試用</b><b class='flag-5'>例</b>的管理 介紹<b class='flag-5'>測試用</b><b class='flag-5'>例</b>的幾種管理方法

    測試用質量的重要性

    在進行測試時,通常會花很多精力選擇“正確”的測試工具。這其實只是為了實現次要目標。當然,一個適合開發環境、項目和流程的工具是重要的。然而,對于良好測試而言,最重要的是測試用
    的頭像 發表于 09-03 15:13 ?837次閱讀
    <b class='flag-5'>測試用</b><b class='flag-5'>例</b>質量的重要性

    篇 | 單元測試用復用到集成測試?Testlet Library來助力!(上)

    作者:fox小編:吃不飽作為一名測試工程師,在做MiL測試時,編寫測試用的效率影響整個測試項目的進度,如何有效提升編寫
    的頭像 發表于 11-04 10:14 ?826次閱讀
    用<b class='flag-5'>例</b>篇 | 單元<b class='flag-5'>測試用</b><b class='flag-5'>例</b>復用到集成<b class='flag-5'>測試</b>?Testlet Library來助力!(上)

    磁盤eCryptfs加密測試用

    apt安裝用戶態工具ecryptfs-utils即可。 4.1、測試用 下圖是一個腳本基礎測試用。先創建test目錄和文件hello,
    的頭像 發表于 11-29 11:27 ?1133次閱讀
    磁盤eCryptfs加密<b class='flag-5'>測試用</b><b class='flag-5'>例</b>

    DEKRA被CSA指定為Zigbee統一測試工具開發和優化新功能和測試用

    DEKRA德凱被CSA聯盟(Connectivity Standards Alliance,CSA)指定負責為Zigbee統一測試工具(Zigbee Unified Test Harness,ZUTH)開發和優化新功能和測試用
    的頭像 發表于 04-09 14:10 ?486次閱讀

    端到端測試用怎么寫

    編寫端到端測試用是確保軟件系統從頭到尾能夠正常工作的關鍵步驟。以下是一個詳細的指南,介紹如何編寫端到端測試用: 一、理解端到端測試 端到
    的頭像 發表于 09-20 10:29 ?345次閱讀