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

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

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

3天內不再提示

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

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2020-11-20 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

比較時間可以選擇在每個時鐘邊沿,或者沒n個時鐘周期比較一次,總而言之要與設計相符合。比如內存I/O的testbench應該在讀出或寫入一個新數據后就進行比較;如何設計使用了大量組合邏輯模塊,選取比較時間必須考慮組合邏輯延遲。
??對于中小型設計而言,自我檢查的testbench設計方法是一種不錯的選擇,但是對于復雜的大型設計,可能的輸出組合呈指數形式增加,編寫一個自我檢查testbench將會困難很多。下面給出一個自我檢查testbench的設計示例(來源于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]; // 實例化設計 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); //------------------------------------------------------------- // 預期結果 //------------------------------------------------------------- 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; // 等到全局復位結束 #100 GSR = 0; end //建立一個時鐘 initial begin tbclk = 0; //全局復位結束后開始產生時鐘信號 #100 forever #60 tbclk = ~tbclk; end //給出設計激勵 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 //------------------------------------------------------------- // 在每個時鐘的下降沿比較預期結果和實際結果 //------------------------------------------------------------- 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) ? ? ? ?// 每個下降沿檢查結果 ? ? ? ?$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

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

責任編輯:lq

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

    關注

    189

    文章

    3000

    瀏覽量

    233669
  • 自動化
    +關注

    關注

    29

    文章

    5766

    瀏覽量

    82837
  • 數據庫
    +關注

    關注

    7

    文章

    3909

    瀏覽量

    65987

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    告別人工檢測!casaim自動化維激光掃描

    casaim自動化維激光掃描技術通過集成傳感器、智能算法和自動化控制系統,解決了傳統人工檢測的諸多問題。
    的頭像 發表于 03-12 13:20 ?309次閱讀
    告別人工檢測!casaim<b class='flag-5'>自動化</b><b class='flag-5'>三</b>維激光掃描

    HFSS 自動化建模工具

    因工作需求,自己寫的HFSS參數自動化建模工具,目前只實現了常用的四模型,可定制,如需可聯系 qq:1300038043 附件下載鏈接:https://pan.baidu.com/s/1TVeTTFiJw-pxSyT1AT
    發表于 02-27 17:44

    casaim自動化維激光掃描

    CASAIM自動化維激光掃描技術通過非接觸式高精度數據采集與智能分析系統,為工業檢測提供全流程數字化解決方案。
    的頭像 發表于 02-27 10:32 ?337次閱讀

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

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

    示波器的三種觸發模式

    示波器的觸發方式不僅影響波形捕捉的時機,還決定了顯示的波形是否穩定。 常見的觸發模式有三種: 單次觸發 (Single)、 正常觸發 (Normal)和 自動觸發 (Auto)。下面將對這三種觸發
    的頭像 發表于 01-07 11:04 ?7001次閱讀
    示波器的<b class='flag-5'>三種</b>觸發模式

    串口屏自動化測試

    嚴謹而高效的自動化測試方案顯得尤為重要。以下是對串口屏自動化測試策略的深度解析,旨在通過高質量的測試設計,嚴格控制產品設計質量,推動產業升級。 引言 串口屏自動化測試是連接軟件開發與硬件性能
    的頭像 發表于 12-27 17:17 ?1456次閱讀

    菱PLC自動化控制應用領域

    在現代工業生產中,自動化控制技術扮演著至關重要的角色。菱電機作為自動化技術的先驅之一,其PLC產品以其高可靠性、高性能和易用性在全球范圍內被廣泛采用。 1. 制造業 制造業是PLC應用最廣泛的領域
    的頭像 發表于 12-26 17:34 ?2365次閱讀

    編寫高效Testbench的指南和示例

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

    TI RF Transceiver EVM自動化環境搭建方法

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

    復雜工件的高效測量方案:自動化坐標測量與影像測量技術集成

    在現代制造業的快速發展中,復雜工件的精密測量成為了質量控制的關鍵。隨著工業4.0的推進,自動化技術與精密測量設備的結合,為生產效率和產品質量的提升提供了新的解決方案。全自動化坐標測量站全自動
    的頭像 發表于 08-30 16:49 ?817次閱讀
    復雜工件的高效測量方案:<b class='flag-5'>自動化</b><b class='flag-5'>三</b>坐標測量與影像測量技術集成

    數字示波器的測量方法有哪三種

    數字示波器是一廣泛應用于電子測量領域的儀器,它能夠實時顯示電壓波形,幫助工程師和技術人員對電子信號進行分析和測量。數字示波器的測量方法有很多種,不同的測量方法適用于不同的應用場景。以下是三種
    的頭像 發表于 07-17 18:02 ?3100次閱讀

    OTA自動化測試解決方案——實車級OTA測試系統PAVELINK.OTABOX

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

    plc常見的三種通訊協議有哪些

    這一目標,PLC采用了多種通信協議。以下是三種常見的PLC通信協議的詳細介紹: Modbus協議 Modbus協議是一應用層協議,主要用于工業自動化領域的設備通信。它支持多種通信方式,包括RS-232
    的頭像 發表于 07-01 10:12 ?4039次閱讀

    機械自動化和電氣自動化區別是什么

    機械自動化和電氣自動化是現代工業生產中兩個重要的領域,它們在許多方面有著密切的聯系,但也存在一些明顯的區別。 一、基本概念 機械自動化 機械自動化是指利用機械設備、傳感器、控制系統等技
    的頭像 發表于 07-01 09:33 ?7393次閱讀

    機械自動化自動化的一

    引言 自動化技術是指利用控制裝置對生產過程進行控制,以實現生產過程的自動化。機械自動化自動化技術的一,它主要涉及到使用機械設備和控制系統
    的頭像 發表于 07-01 09:32 ?2451次閱讀
    主站蜘蛛池模板: 亚洲视频入口 | 免费在线看片网站 | 四虎四虎| 丁香花在线观看免费观看 | 国产亚洲精品成人一区看片 | 欧美午夜视频一区二区三区 | 国产成人免费无庶挡视频 | 天天舔天天操 | 免费h网站在线观看 | 加勒比视频一区 | 色婷婷一区二区三区四区成人 | 免费观看色 | 午夜免费网站 | 黄色字幕网 | 四虎成人精品在永久在线观看 | 欧美爱爱网址 | 亚洲最色网 | 国产综合在线观看 | 日韩爽片 | 国产久爱青草视频在线观看 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 最黄色的视频 | 亚洲一区二区影视 | 中国美女乱淫免费看视频 | 999毛片| 性生大片免费观看无遮挡 | 侵犯希崎中文字幕在线 | 8000av在线 | 男男h啪肉np文总受 男男h全肉耽污 | 国产yw.8825.c免费 | 一级毛片免费毛片一级毛片免费 | 色姑娘天天干 | 婷婷99精品国产97久久综合 | 99久久久精品免费观看国产 | 丁香狠狠 | 亚洲一区二区三区在线 | 三级视频网站 | 婷婷六月久久综合丁香一二 | 女人色网 | 黄色片啪啪 | 欧美性色综合网 |