當前位置:
首頁 >
testbench
發(fā)布時間:2024/9/21
38
豆豆
testbench是一種驗證的手段。首先,任何設(shè)計都是會有輸入輸出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設(shè)計的輸出正確性進行評估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和輸出校驗的一種“虛擬平臺”的產(chǎn)生。在這個平臺上你可以對你的設(shè)計從軟件層面上進行分析和校驗,這個就是testbench的含義。
初步認識
就初學而言,testbench更像一個激勵的產(chǎn)生器。舉例:一個ram,可能有幾個input和output。分別列在下面。
clk,時鐘輸入
addr,地址輸入
wen,寫使能
data,數(shù)據(jù)輸入
然后還有一個dataout的數(shù)據(jù)輸出。那么你可以寫一個文件,給clk,addr,wen,data送入你預(yù)想的一些信號,然后觀察q的輸出,看看ram是否工作正常。那么這個文件從一定意義上可以叫做"testbench"。
聯(lián)想(幫助理解):從quartus里面你仿真,你可能對著那個畫圖一樣的東西畫上輸入,然后編譯以后看他的輸出。對吧。那么在modelsim里面,我告訴你,可以不用畫圖了~,你只需要按照一定規(guī)則寫一個.v或者.vhd的文件,然后再在將添加的stimulation的設(shè)置中設(shè)置一個文件,這個文件可以給你的設(shè)計提供你預(yù)想的輸入。這個就是testbench的文件。然后在modelsim這個特定的軟件環(huán)境下,這個軟件能根據(jù)你的代碼給你的設(shè)計提供輸入,又可以把你設(shè)計的輸出在屏幕上顯示出來給你debug。那么這個時候,一個在modelsim上的testbench就完成了。
狹義的總結(jié)一下:FPGA的testbench就是一個.v(verilog)或者.vhd(vhdl)的文件。這個文件能給你的設(shè)計提供激勵,并能在一些專用的軟件中提供良好的debug接口。這個就是一個testbench。
===================================================================== =============================高級應(yīng)用================================
關(guān)于testbench的高級應(yīng)用。剛才說了初步的testbench。其實testbench是verification(驗證)中的一個手段。驗證是什么呢?舉例:做魚了,你往里面加了調(diào)料,然后再嘗嘗味道,這個就是驗證的過程。同樣你可以分成幾個部分,一條魚,好比你的設(shè)計,然后你給他一定的激勵,也就是調(diào)料啦。然后你再嘗一嘗,看看魚是不是達到你想要的味道了。那就是一種驗證的手段,如果淡了。那么加點鹽,再嘗嘗,這個就是反復(fù)驗證。
testbench圖解一下比較清楚。 =============================Testbench=============================
| | | | | | ================== | | | 激勵生成 |====》 | | | 輸出校驗 | | |預(yù)想輸入 | 設(shè)計 |==》 | | | | | | 設(shè)計 | | =============== ================== 輸出 ===================
(字符畫好累人。。不知道效果好么)
testbench里面包含了三個東西:
1、激勵生成。也就是我們剛才初級時候說的所謂的“testbench”。英文么就是simulator,這個只用來生成輸出,他自己沒有輸入,只是按照一定的規(guī)律去給你的設(shè)計激勵,激勵通過設(shè)計的輸入端口送到你的設(shè)計中。其余的事情不管。這里的激勵,都是預(yù)先設(shè)想好的,比如根據(jù)某個協(xié)議,或者某種通信方式傳遞。 2、你的設(shè)計。英文可以叫做DUT:design under testbench或者DUV:design under verification。當然咯。這個是你主要目標。
3、輸出校驗。校驗?zāi)愕妮敵觥S⑽慕衜arkerboard,他所管的事情就是,接收你設(shè)計的輸入,然后通過校驗,找出對應(yīng)的問題。然后報錯,或者統(tǒng)計錯誤。等等。通俗的講,你設(shè)計它就是把你自己解脫出來,讓他來幫你找錯誤。他輸出給你的可能就是通過打印啊,通知啊,等等方法了解你設(shè)計的正確性。
那么你有可能問了,這個東西用verilog或者VHDL能寫么,modelsim里能用么?的確是可以的,有寫甚至可以用c的代碼通過程序接口來轉(zhuǎn)換到modelsim里面來幫助驗證。
===============================高級應(yīng)用結(jié)束==========================
最后小說兩句:testbench是一個平臺,幫助你從軟件方面驗證的。對于這個概念不需強求,等你自己的驗證寫多了,自然而然就會了解其中深刻的含義。先開始慢慢的寫一些激勵,然后再寫寫校驗。到時候你收獲的東西自然而然的能幫助你理解testbench和verification
就初學而言,testbench更像一個激勵的產(chǎn)生器。舉例:一個ram,可能有幾個input和output。分別列在下面。
clk,時鐘輸入
addr,地址輸入
wen,寫使能
data,數(shù)據(jù)輸入
然后還有一個dataout的數(shù)據(jù)輸出。那么你可以寫一個文件,給clk,addr,wen,data送入你預(yù)想的一些信號,然后觀察q的輸出,看看ram是否工作正常。那么這個文件從一定意義上可以叫做"testbench"。
聯(lián)想(幫助理解):從quartus里面你仿真,你可能對著那個畫圖一樣的東西畫上輸入,然后編譯以后看他的輸出。對吧。那么在modelsim里面,我告訴你,可以不用畫圖了~,你只需要按照一定規(guī)則寫一個.v或者.vhd的文件,然后再在將添加的stimulation的設(shè)置中設(shè)置一個文件,這個文件可以給你的設(shè)計提供你預(yù)想的輸入。這個就是testbench的文件。然后在modelsim這個特定的軟件環(huán)境下,這個軟件能根據(jù)你的代碼給你的設(shè)計提供輸入,又可以把你設(shè)計的輸出在屏幕上顯示出來給你debug。那么這個時候,一個在modelsim上的testbench就完成了。
狹義的總結(jié)一下:FPGA的testbench就是一個.v(verilog)或者.vhd(vhdl)的文件。這個文件能給你的設(shè)計提供激勵,并能在一些專用的軟件中提供良好的debug接口。這個就是一個testbench。
===================================================================== =============================高級應(yīng)用================================
關(guān)于testbench的高級應(yīng)用。剛才說了初步的testbench。其實testbench是verification(驗證)中的一個手段。驗證是什么呢?舉例:做魚了,你往里面加了調(diào)料,然后再嘗嘗味道,這個就是驗證的過程。同樣你可以分成幾個部分,一條魚,好比你的設(shè)計,然后你給他一定的激勵,也就是調(diào)料啦。然后你再嘗一嘗,看看魚是不是達到你想要的味道了。那就是一種驗證的手段,如果淡了。那么加點鹽,再嘗嘗,這個就是反復(fù)驗證。
testbench圖解一下比較清楚。 =============================Testbench=============================
| | | | | | ================== | | | 激勵生成 |====》 | | | 輸出校驗 | | |預(yù)想輸入 | 設(shè)計 |==》 | | | | | | 設(shè)計 | | =============== ================== 輸出 ===================
(字符畫好累人。。不知道效果好么)
testbench里面包含了三個東西:
1、激勵生成。也就是我們剛才初級時候說的所謂的“testbench”。英文么就是simulator,這個只用來生成輸出,他自己沒有輸入,只是按照一定的規(guī)律去給你的設(shè)計激勵,激勵通過設(shè)計的輸入端口送到你的設(shè)計中。其余的事情不管。這里的激勵,都是預(yù)先設(shè)想好的,比如根據(jù)某個協(xié)議,或者某種通信方式傳遞。 2、你的設(shè)計。英文可以叫做DUT:design under testbench或者DUV:design under verification。當然咯。這個是你主要目標。
3、輸出校驗。校驗?zāi)愕妮敵觥S⑽慕衜arkerboard,他所管的事情就是,接收你設(shè)計的輸入,然后通過校驗,找出對應(yīng)的問題。然后報錯,或者統(tǒng)計錯誤。等等。通俗的講,你設(shè)計它就是把你自己解脫出來,讓他來幫你找錯誤。他輸出給你的可能就是通過打印啊,通知啊,等等方法了解你設(shè)計的正確性。
那么你有可能問了,這個東西用verilog或者VHDL能寫么,modelsim里能用么?的確是可以的,有寫甚至可以用c的代碼通過程序接口來轉(zhuǎn)換到modelsim里面來幫助驗證。
===============================高級應(yīng)用結(jié)束==========================
最后小說兩句:testbench是一個平臺,幫助你從軟件方面驗證的。對于這個概念不需強求,等你自己的驗證寫多了,自然而然就會了解其中深刻的含義。先開始慢慢的寫一些激勵,然后再寫寫校驗。到時候你收獲的東西自然而然的能幫助你理解testbench和verification
總結(jié)
- 上一篇: ModelSim入门及Testbench
- 下一篇: 如何编写testbench的总结(非常实