在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

使用三種自動化testbench驗證方法

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2020-11-20 11:26 ? 次閱讀

Testbench編寫指南(4)自動化驗證方法

自動化驗證testbench結(jié)果可以減少人工檢查的時間和可能犯的失誤,尤其對于比較大的設(shè)計。目前普遍使用三種自動化testbench驗證方法:

數(shù)據(jù)庫比較:首先創(chuàng)建一個包含預(yù)期輸出的數(shù)據(jù)庫文件(稱作golden
vector文件),然后捕獲仿真輸出與該文件中的參考向量作比較。但是由于沒有提供從輸出到輸入文件的指針,該方法的缺點是難以追蹤導(dǎo)致不正確輸出的錯誤源。

波形比較:將testbench輸出波形與預(yù)期波形作比較。Xilinx曾推出過一款HDL
Bencher的工具,可以執(zhí)行自動化的波形比較,不過目前由于該方法很少使用,Xilinx也下架了該工具。

自我檢查testbench設(shè)計:與前兩種方法不同,該方法實時檢查預(yù)期結(jié)果和實際結(jié)果,而不是仿真結(jié)束后才檢查。在testbench中插入錯誤追蹤信息可以顯示設(shè)計在哪里失敗,從而縮短調(diào)試時間。

本文將介紹最后一種自動化驗證方法。將一系列預(yù)期向量(比如由MATLAB等軟件產(chǎn)生)放在testbench文件中,在運行時間間隔與實際仿真結(jié)果比較,如果匹配則表明仿真成功;不匹配則報告結(jié)果不符。

比較時間可以選擇在每個時鐘邊沿,或者沒n個時鐘周期比較一次,總而言之要與設(shè)計相符合。比如內(nèi)存I/O的testbench應(yīng)該在讀出或?qū)懭胍粋€新數(shù)據(jù)后就進行比較;如何設(shè)計使用了大量組合邏輯模塊,選取比較時間必須考慮組合邏輯延遲。
??對于中小型設(shè)計而言,自我檢查的testbench設(shè)計方法是一種不錯的選擇,但是對于復(fù)雜的大型設(shè)計,可能的輸出組合呈指數(shù)形式增加,編寫一個自我檢查testbench將會困難很多。下面給出一個自我檢查testbench的設(shè)計示例(來源于xapp199):

`timescale 1 ns / 1 ps module test_sc; // 信號申明 reg tbreset, tbstrtstop; reg tbclk; wire [6:0] onesout, tensout; wire [9:0] tbtenthsout; parameter cycles = 25; reg [9:0] Data_in_t [0:cycles]; // 實例化設(shè)計 stopwatch UUT (.CLK (tbclk), .RESET (tbreset), .STRTSTOP (tbstrtstop), .ONESOUT (onesout), .TENSOUT (tensout), .TENTHSOUT (tbtenthsout)); wire [4:0] tbonesout, tbtensout; assign tbtensout = led2hex(tensout); assign tbonesout = led2hex(onesout); //------------------------------------------------------------- // 預(yù)期結(jié)果 //------------------------------------------------------------- initial begin Data_in_t[1] =10'b1111111110; Data_in_t[2] =10'b1111111101; Data_in_t[3] =10'b1111111011; Data_in_t[4] =10'b1111110111; Data_in_t[5] =10'b1111101111; Data_in_t[6] =10'b1111011111; Data_in_t[7] =10'b1110111111; Data_in_t[8] =10'b1101111111; Data_in_t[9] =10'b1011111111; Data_in_t[10]=10'b0111111111; Data_in_t[11]=10'b1111111110; Data_in_t[12]=10'b1111111110; Data_in_t[13]=10'b1111111101; Data_in_t[14]=10'b1111111011; Data_in_t[15]=10'b1111110111; Data_in_t[16]=10'b1111101111; Data_in_t[17]=10'b1111011111; Data_in_t[18]=10'b1110111111; Data_in_t[19]=10'b1101111111; Data_in_t[20]=10'b1011111111; Data_in_t[21]=10'b0111111111; Data_in_t[22]=10'b1111111110; Data_in_t[23]=10'b1111111110; Data_in_t[24]=10'b1111111101; Data_in_t[25]=10'b1111111011; end reg GSR; assign glbl.GSR = GSR; initial begin GSR = 1; // 等到全局復(fù)位結(jié)束 #100 GSR = 0; end //建立一個時鐘 initial begin tbclk = 0; //全局復(fù)位結(jié)束后開始產(chǎn)生時鐘信號 #100 forever #60 tbclk = ~tbclk; end //給出設(shè)計激勵 initial begin tbreset = 1; tbstrtstop = 1; #240 tbreset = 0; tbstrtstop = 0; #5000 tbstrtstop = 1; #8125 tbstrtstop = 0; #500 tbstrtstop = 1; #875 tbreset = 1; #375 tbreset = 0; #700 tbstrtstop = 0; #550 tbstrtstop = 1; #100000 $stop; end //------------------------------------------------------------- // 在每個時鐘的下降沿比較預(yù)期結(jié)果和實際結(jié)果 //------------------------------------------------------------- integer i,errors; always @ (posedge tbclk) begin if (tbstrtstop) begin i = 0; errors = 0; end else begin for (i = 1; i <= cycles; i = i + 1) begin ? ? ? ?@(negedge tbclk) ? ? ? ?// 每個下降沿檢查結(jié)果 ? ? ? ?$display("Time%d ns; TBSTRTSTOP=%b; Reset=%h; Expected ? ? ? ?TenthsOut=%b; Actual TenthsOut=%b", $stime, tbstrtstop, tbreset, ? ? ? ?Data_in_t[i], tbtenthsout); ? ? ? ?if ( tbtenthsout !== Data_in_t[i] ) begin ? ? ? ? ? ?$display(" ------ERROR. A mismatch has occurred-----"); ? ? ? ? ? ?errors = errors + 1; ? ? ? ?end ? ?end ? ?if (errors == 0) ? ? ? ?$display("Simulation finished Successfully."); ? ?else if (errors > 1) $display("%0d ERROR! See log above for details.",errors); else $display("ERROR! See log above for details."); #100 $stop; end end endmodule

上述代碼中,將預(yù)期結(jié)果和實際結(jié)果的比較情況顯示在終端。該代碼模板可應(yīng)用于任何設(shè)計的自我檢查testbench中,需要修改實例化接口和預(yù)期的輸出值。如果不需要在每個時鐘沿檢查一次數(shù)據(jù),則修改for循環(huán)的執(zhí)行條件。

責(zé)任編輯:lq

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

    關(guān)注

    185

    文章

    2981

    瀏覽量

    231021
  • 自動化
    +關(guān)注

    關(guān)注

    29

    文章

    5629

    瀏覽量

    79678
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3851

    瀏覽量

    64697

原文標(biāo)題:Testbench編寫指南(4)自動化驗證方法

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    自動化設(shè)備中滾珠螺桿的清洗方法有哪些?

    滾珠螺桿是一常見的精密傳動元件,廣泛應(yīng)用于機床、自動化設(shè)備等領(lǐng)域。
    的頭像 發(fā)表于 02-05 17:58 ?99次閱讀
    <b class='flag-5'>自動化</b>設(shè)備中滾珠螺桿的清洗<b class='flag-5'>方法</b>有哪些?

    菱PLC自動化控制應(yīng)用領(lǐng)域

    在現(xiàn)代工業(yè)生產(chǎn)中,自動化控制技術(shù)扮演著至關(guān)重要的角色。菱電機作為自動化技術(shù)的先驅(qū)之一,其PLC產(chǎn)品以其高可靠性、高性能和易用性在全球范圍內(nèi)被廣泛采用。 1. 制造業(yè) 制造業(yè)是PLC應(yīng)用最廣泛的領(lǐng)域
    的頭像 發(fā)表于 12-26 17:34 ?1012次閱讀

    編寫高效Testbench的指南和示例

    Testbench驗證HDL設(shè)計的主要手段,本文提供了布局和構(gòu)建高效Testbench的指南以及示例。另外,本文還提供了一示例,可以為任何設(shè)計開發(fā)自檢
    的頭像 發(fā)表于 10-29 16:14 ?398次閱讀
    編寫高效<b class='flag-5'>Testbench</b>的指南和示例

    TI RF Transceiver EVM自動化環(huán)境搭建方法

    電子發(fā)燒友網(wǎng)站提供《TI RF Transceiver EVM自動化環(huán)境搭建方法.pdf》資料免費下載
    發(fā)表于 09-04 09:35 ?0次下載
    TI RF Transceiver EVM<b class='flag-5'>自動化</b>環(huán)境搭建<b class='flag-5'>方法</b>

    數(shù)字示波器的測量方法有哪三種

    數(shù)字示波器是一廣泛應(yīng)用于電子測量領(lǐng)域的儀器,它能夠?qū)崟r顯示電壓波形,幫助工程師和技術(shù)人員對電子信號進行分析和測量。數(shù)字示波器的測量方法有很多種,不同的測量方法適用于不同的應(yīng)用場景。以下是三種
    的頭像 發(fā)表于 07-17 18:02 ?1975次閱讀

    OTA自動化測試解決方案——實車級OTA測試系統(tǒng)PAVELINK.OTABOX

    ,并簡單介紹北匯信息的實車級OTA自動化測試解決方案——PAVELINK.OTABOX。實車級OTA自動化系統(tǒng)目前,OTA自動化測試系統(tǒng)的落地方式主要包含以下三種
    的頭像 發(fā)表于 07-11 08:26 ?729次閱讀
    OTA<b class='flag-5'>自動化</b>測試解決方案——實車級OTA測試系統(tǒng)PAVELINK.OTABOX

    機械自動化和電氣自動化區(qū)別是什么

    機械自動化和電氣自動化是現(xiàn)代工業(yè)生產(chǎn)中兩個重要的領(lǐng)域,它們在許多方面有著密切的聯(lián)系,但也存在一些明顯的區(qū)別。 一、基本概念 機械自動化 機械自動化是指利用機械設(shè)備、傳感器、控制系統(tǒng)等技
    的頭像 發(fā)表于 07-01 09:33 ?4548次閱讀

    機械自動化自動化的一

    引言 自動化技術(shù)是指利用控制裝置對生產(chǎn)過程進行控制,以實現(xiàn)生產(chǎn)過程的自動化。機械自動化自動化技術(shù)的一,它主要涉及到使用機械設(shè)備和控制系統(tǒng)
    的頭像 發(fā)表于 07-01 09:32 ?1917次閱讀

    如何實現(xiàn)PLC的自動化控制邏輯

    地提高了生產(chǎn)效率和設(shè)備運行的穩(wěn)定性。本文將詳細(xì)介紹如何實現(xiàn)PLC的自動化控制邏輯,包括PLC的基本概念、編程工具、邏輯實現(xiàn)方法以及實際應(yīng)用案例。
    的頭像 發(fā)表于 06-15 16:44 ?1309次閱讀

    機械制造與自動化自動化類嗎

    機械制造與自動化自動化領(lǐng)域的一個重要分支,它涉及到機械設(shè)計、制造、檢測、控制等多個方面,是現(xiàn)代制造業(yè)的核心組成部分。 機械制造與自動化是指利用計算機、機器人、傳感器等自動化設(shè)備和技術(shù)
    的頭像 發(fā)表于 06-11 11:18 ?1680次閱讀

    工業(yè)自動化自動化區(qū)別是什么

    工業(yè)自動化自動化是兩個密切相關(guān)但又有所區(qū)別的概念。在這篇文章中,我們將詳細(xì)探討它們之間的區(qū)別,以及它們在現(xiàn)代工業(yè)生產(chǎn)中的應(yīng)用。 一、自動化的定義 自動化是指通過使用機器、計算機和其他
    的頭像 發(fā)表于 06-11 11:13 ?1924次閱讀

    信號調(diào)制的三種基本方法

    號調(diào)制的三種基本方法:調(diào)幅(AM)、調(diào)頻(FM)和調(diào)相(PM),并分析它們的優(yōu)缺點及應(yīng)用場景。 調(diào)幅(AM) 2.1 調(diào)幅原理 調(diào)幅(Amplitude Modulation,AM)是一將低頻信號的幅度變化映射到高頻載波信號的
    的頭像 發(fā)表于 06-03 09:38 ?4756次閱讀

    非標(biāo)自動化設(shè)備

    1、非標(biāo)自動化設(shè)備 2、根據(jù)需求設(shè)計和制造 3、完成代替人工的目標(biāo)
    發(fā)表于 03-25 09:52

    菱M70 PLC增加注解的三種方法簡析

    菱M70 PLC增加注解的三種方法
    的頭像 發(fā)表于 02-26 09:59 ?1163次閱讀
    <b class='flag-5'>三</b>菱M70 PLC增加注解的<b class='flag-5'>三種方法</b>簡析

    放大電路有哪三種基本分析方法?舉例說明

    放大電路是電子電路的重要組成部分,它起到放大信號的作用。在設(shè)計和分析放大電路時,有三種基本的分析方法:傳輸特性分析、小信號分析和大信號分析。接下來,我將詳細(xì)介紹這三種分析方法,并舉例說
    的頭像 發(fā)表于 02-25 15:56 ?3439次閱讀
    主站蜘蛛池模板: 久久综合图片 | 日本黄视频在线播放 | 国产手机在线国内精品 | 你懂的福利| 久久人人视频 | 萝l在线精品社区资源 | 天天摸夜夜摸爽爽狠狠婷婷97 | 天天摸天天做天天爽在线 | 国产精品视频网站你懂得 | 成人网在线看 | 日本黄色三级视频 | 日韩黄色网 | 奇米影视欧美 | 嘿嘿嘿视频在线观看 | 午夜在线播放视频在线观看视频 | 色5566| 欧美特黄一区二区三区 | 天天操夜夜夜 | 香蕉视频在线免费播放 | 亚洲综合久久久久久888 | 中文字幕一区二区三区 精品 | 一区二区高清在线 | 国产精品久久久久影视不卡 | 深爱五月激情五月 | 国产女人18毛片水真多18精品 | 成人网在线观看 | 亚洲第一香蕉视频 | 一区二区三区四区在线不卡高清 | 国产精品激情综合久久 | 手机在线看片国产 | 天天躁狠狠躁狠狠躁夜夜躁 | 久久99热不卡精品免费观看 | ccav在线永久免费看 | 青草青视频在线观看 | 男人午夜 | 国产在线精品观看一区 | 国产网红主播chinese | 天天干夜夜叭 | 国产毛片哪里有 | 亚洲成人aaa| 狠狠色婷婷狠狠狠亚洲综合 |