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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于base test如何來(lái)構(gòu)造測(cè)試用例

lhl545545 ? 來(lái)源:FPGA學(xué)姐 ? 作者:FPGA學(xué)姐 ? 2022-09-19 09:16 ? 次閱讀

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

第一,在這么多不同的case下,我們可以設(shè)置一個(gè)base_case,base_case將環(huán)境env,cfg等一些東西包進(jìn)去;

第二,需要幾個(gè)不同的sequence就寫幾個(gè)sequence,sequence之間沒有聯(lián)系,繼承于uvm_sequence;

第三,在每個(gè)具體的執(zhí)行case下,可以用asserte插入具體的配置參數(shù),并且每個(gè)case設(shè)置自己獨(dú)立的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宏來(lái)注冊(cè)到factory中endclass
//在build_phase中實(shí)例化my_env,并設(shè)置sequencer的default_sequence來(lái)啟動(dòng)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//根據(jù)UVM_ERROR的數(shù)量來(lái)打印不同的信息,一些日志分析工具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)是繼承基類的構(gòu)造函數(shù)的寫法,包括下面的 super.build_phase(phase)也是繼承基類的表現(xiàn)。

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

第一,設(shè)置整個(gè)驗(yàn)證平臺(tái)的超時(shí)退出時(shí)間;

第二,通過config_db設(shè)置驗(yàn)證平臺(tái)中某些參數(shù)的值。這些根據(jù)不同的驗(yàn)證平臺(tái)及不同的公司而不同,沒有統(tǒng)一的答案

下面介紹基于上面定義的basetest如何來(lái)構(gòu)造測(cè)試用例呢

首先構(gòu)造用例case0的激勵(lì)sequence

然后基于base case構(gòu)造自己的case來(lái)啟動(dòng)自己的激勵(lì)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);//啟動(dòng)仿真repeat (10) begin `uvm_do(m_trans)//發(fā)送此transaction。 end #100; if(starting_phase != null) starting_phase.drop_objection(this);//仿真結(jié)束 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 //通過設(shè)置默認(rèn)sequence來(lái)啟動(dòng)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會(huì)利用UVM_TEST_NAME從命令行中尋找測(cè)試用例的名字,創(chuàng)建它的實(shí)例并運(yùn)行

 … +UVM_TEST_NAME=my_case0
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598940
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3972

    瀏覽量

    132963
  • 終端
    +關(guān)注

    關(guān)注

    1

    文章

    1080

    瀏覽量

    29725

原文標(biāo)題:仿真驗(yàn)證之base test

文章出處:【微信號(hào):FPGA學(xué)姐,微信公眾號(hào):FPGA學(xué)姐】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于pCTL的循環(huán)優(yōu)化測(cè)試用自動(dòng)生成方法

    【作者】:余俠;薛云志;陶秋銘;【來(lái)源】:《小型微型計(jì)算機(jī)系統(tǒng)》2010年03期【摘要】:循環(huán)優(yōu)化測(cè)試對(duì)保證現(xiàn)代編譯器質(zhì)量有著重要作用.傳統(tǒng)手工構(gòu)造測(cè)試用方法面臨著效率低的問題,而目
    發(fā)表于 04-24 09:51

    如何編寫測(cè)試用

    我們?nèi)绾卧谠L問儀器庫(kù)的工具中編寫任何測(cè)試用。 以上來(lái)自于谷歌翻譯 以下為原文how we need to write any test case in tool which access the instrument lib
    發(fā)表于 11-09 10:34

    修改自測(cè)試用run_test遇到的問題求解

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

    基于UML的生成場(chǎng)景測(cè)試用研究

    使用UML生成場(chǎng)景測(cè)試用,有利于測(cè)試者設(shè)計(jì)測(cè)試用。使用UML的類圖、狀態(tài)圖和順序圖來(lái)說(shuō)明DHCP實(shí)例的場(chǎng)景
    發(fā)表于 03-31 09:49 ?15次下載

    手機(jī)硬件測(cè)試用

    手機(jī)硬件測(cè)試用 1.RF 測(cè)試 2.BB測(cè)試 3.Audio 測(cè)試 4.EMC測(cè)試
    發(fā)表于 04-28 16:59 ?55次下載

    基于跨平臺(tái)系統(tǒng)中測(cè)試用復(fù)用的解決方法

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

    基于DSEA的弱變異測(cè)試用集生成方法

    為解決基于集合進(jìn)化算法(SEA)的弱變異測(cè)試用集生成過程中個(gè)體規(guī)模固定和執(zhí)行開銷大的問題,提出一種基于動(dòng)態(tài)集合進(jìn)化算法( DSEA)的弱變異測(cè)試用集生成方法。以
    發(fā)表于 11-28 16:11 ?0次下載

    數(shù)據(jù)測(cè)試:輸入數(shù)據(jù)的設(shè)計(jì)方法和測(cè)試用設(shè)計(jì)方法

    測(cè)試用的設(shè)計(jì)是測(cè)試設(shè)計(jì)的重要內(nèi)容,關(guān)于測(cè)試用的設(shè)計(jì)方法,當(dāng)前不少出版的測(cè)試書和發(fā)表的
    的頭像 發(fā)表于 06-29 10:22 ?2833次閱讀

    詳談Web測(cè)試中的界面測(cè)試用設(shè)計(jì)

    詳談Web測(cè)試中的界面測(cè)試用設(shè)計(jì)
    的頭像 發(fā)表于 06-29 10:48 ?2011次閱讀

    測(cè)試用的管理 介紹測(cè)試用的幾種管理方法

    摘要 隨著軟件系統(tǒng)規(guī)模的持續(xù)增大,業(yè)務(wù)復(fù)雜度的持續(xù)增加,軟件測(cè)試的復(fù)雜度也隨之越來(lái)越大。而軟件測(cè)試工作復(fù)雜度的直接體現(xiàn),就是測(cè)試用編寫、維護(hù)、執(zhí)行和管理,所以編寫易讀、易維護(hù)和易管理
    的頭像 發(fā)表于 11-26 15:13 ?6509次閱讀
    <b class='flag-5'>測(cè)試用</b><b class='flag-5'>例</b>的管理 介紹<b class='flag-5'>測(cè)試用</b><b class='flag-5'>例</b>的幾種管理方法

    測(cè)試用質(zhì)量的重要性

    在進(jìn)行測(cè)試時(shí),通常會(huì)花很多精力選擇“正確”的測(cè)試工具。這其實(shí)只是為了實(shí)現(xiàn)次要目標(biāo)。當(dāng)然,一個(gè)適合開發(fā)環(huán)境、項(xiàng)目和流程的工具是重要的。然而,對(duì)于良好測(cè)試而言,最重要的是測(cè)試用
    的頭像 發(fā)表于 09-03 15:13 ?778次閱讀
    <b class='flag-5'>測(cè)試用</b><b class='flag-5'>例</b>質(zhì)量的重要性

    篇 | 單元測(cè)試用復(fù)用到集成測(cè)試?Testlet Library來(lái)助力?。ㄉ希?/a>

    作者:fox小編:吃不飽作為一名測(cè)試工程師,在做MiL測(cè)試時(shí),編寫測(cè)試用的效率影響整個(gè)測(cè)試項(xiàng)目的進(jìn)度,如何有效提升編寫
    的頭像 發(fā)表于 11-04 10:14 ?736次閱讀
    用<b class='flag-5'>例</b>篇 | 單元<b class='flag-5'>測(cè)試用</b><b class='flag-5'>例</b>復(fù)用到集成<b class='flag-5'>測(cè)試</b>?Testlet Library來(lái)助力?。ㄉ希? />    </a>
</div>                            <div   id=

    磁盤eCryptfs加密測(cè)試用

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

    DEKRA被CSA指定為Zigbee統(tǒng)一測(cè)試工具開發(fā)和優(yōu)化新功能和測(cè)試用

    DEKRA德凱被CSA聯(lián)盟(Connectivity Standards Alliance,CSA)指定負(fù)責(zé)為Zigbee統(tǒng)一測(cè)試工具(Zigbee Unified Test Harness,ZUTH)開發(fā)和優(yōu)化新功能和測(cè)試用
    的頭像 發(fā)表于 04-09 14:10 ?366次閱讀

    端到端測(cè)試用怎么寫

    編寫端到端測(cè)試用是確保軟件系統(tǒng)從頭到尾能夠正常工作的關(guān)鍵步驟。以下是一個(gè)詳細(xì)的指南,介紹如何編寫端到端測(cè)試用: 一、理解端到端測(cè)試 端到
    的頭像 發(fā)表于 09-20 10:29 ?73次閱讀