testbench

testbench

testbench是一種驗證的手段。首先,任何設計都是會有輸入輸出的。但是在軟環境中沒有激勵輸入,也不會對你設計的輸出正確性進行評估。那么此時便有一種,模擬實際環境的輸入激勵和輸出校驗的一種“虛擬平台”的產生。在這個平台上你可以對你的設計從軟體層面上進行分析和校驗,這個就是testbench的含義。

基本介紹

  • 外文名:testbench
  • 初級套用:testbench更像一個激勵的產生器
  • 舉例:可能有幾個input和output
  • 數據輸出:一個dataout的
初級套用,高級套用,總結,

初級套用

就初學而言,testbench更像一個激勵的產生器。舉例:一個ram,可能有幾個input和output。分別列在下面。
clk,時鐘輸入
addr,地址輸入
wen,寫使能
data,數據輸入
然後還有一個dataout的數據輸出。那么你可以寫一個檔案,給clk,addr,wen,data送入你預想的一些信號,然後觀察q的輸出,看看ram是否工作正常。那么這個檔案從一定意義上可以叫做"testbench"。
聯想(幫助理解):從quartus裡面你仿真,你可能對著那個畫圖一樣的東西畫上輸入,然後編譯以後看他的輸出。對吧。那么在Multisim裡面,我告訴你,可以不用畫圖了~,你只需要按照一定規則寫一個.v或者.vhd的檔案,然後再在將添加的simulation的設定中設定一個檔案,這個檔案可以給你的設計提供你預想的輸入。這個就是testbench的檔案。然後在Multisim這個特定的軟體環境下,這個軟體能根據你的代碼給你的設計提供輸入,又可以把你設計的輸出在螢幕上顯示出來給你debug。那么這個時候,一個在Multisim上的testbench就完成了。
狹義的總結一下:FPGA的testbench就是一個.v(verilog)或者.vhd(vhdl)的檔案。這個檔案能給你的設計提供激勵,並能在一些專用的軟體中提供良好的debug接口。這個就是一個testbench。

高級套用

關於testbench的高級套用。剛才說了初步的testbench。其實testbench是verification(驗證)中的一個手段。驗證是什麼呢?舉例:做魚了,你往裡面加了調料,然後再嘗嘗味道,這個就是驗證的過程。同樣你可以分成幾個部分,一條魚,好比你的設計,然後你給他一定的激勵,也就是調料啦。然後你再嘗一嘗,看看魚是不是達到你想要的味道了。那就是一種驗證的手段,如果淡了。那么加點鹽,再嘗嘗,這個就是反覆驗證。
testbench圖解一下比較清楚。 =============================Testbench=============================
| | | | | | ================== | | | 激勵生成 |====》 | | | 輸出校驗 | | |預想輸入 | 設計 |==》 | | | | | | 設計 | | =============== ================== 輸出 ===================
testbench裡面包含了兩個東西:
1、激勵生成。也就是我們剛才初級時候說的所謂的“testbench”。英文么就是simulator,這個只用來生成輸出,他自己沒有輸入,只是按照一定的規律去給你的設計激勵,激勵通過設計的輸入連線埠送到你的設計中。其餘的事情不管。這裡的激勵,都是預先構想好的,比如根據某個協定,或者某種通信方式傳遞。 2、你的設計。英文可以叫做DUT:design under testbench或者DUV:design under verification。當然咯。這個是你主要目標。
2、輸出校驗。校驗你的輸出。英文叫markerboard,他所管的事情就是,接收你設計的輸入,然後通過校驗,找出對應的問題。然後報錯,或者統計錯誤。等等。通俗的講,你設計它就是把你自己解脫出來,讓他來幫你找錯誤。他輸出給你的可能就是通過列印啊,通知啊,等等方法了解你設計的正確性。
那么你有可能問了,這個東西用verilog或者VHDL能寫么,modelsim里能用么?的確是可以的,有寫甚至可以用c的代碼通過程式接口來轉換到modelsim裡面來幫助驗證。

總結

最後說兩句:testbench是一個平台,幫助你從軟體方面驗證的。對於這個概念不需強求,等你自己的驗證寫多了,自然而然就會了解其中深刻的含義。先開始慢慢的寫一些激勵,然後再寫寫校驗。到時候你收穫的東西自然而然的能幫助你理解testbench和verification

相關詞條

熱門詞條

聯絡我們