testbench就是對寫的FPGA文件進行測試的文件,可以是verilog也可以是VHDL。verilog和VHDL的國際標準里面有很多不能被綜合實現(xiàn)的語句,比如initial,forever,repeat,延時語句#1等等,這些語句就是用來測試的時候使用的。運行環(huán)境一般是ise或者vivado或者quartus自帶的仿真工具,或者如modelsim一樣的第三方仿真工具。
測試機制
任何一個設(shè)計好的模塊,都有輸入和輸出,此模塊是否滿足要求就是看給定滿足要求的輸入,是否能夠得到滿足要求的輸出。所以testbench的測試機制就是:用各種verilog或者VHDL語法,產(chǎn)生滿足條件的激勵信號(也就是對被模塊的輸入),同時對模塊的輸出進行捕捉,測試輸出是否滿足要求。如下圖,產(chǎn)生激勵輸出驗證模塊兩個模塊都屬于testbench,最好的輸出驗證模塊最終只需要給一個pass和fail的答案出來就可以了。不管是用一個信號表示pass和fail還是用$display()函數(shù)打印,最終簡單明了的給出過或者不過的信息就好了。請大家寫仿真文件的時候盡量做到這點。
運行順序
跟大家解釋一點,所有testbench本質(zhì)上都是串行執(zhí)行,因為在CPU環(huán)境下,沒有可靠并行執(zhí)行的能力。所有并行的語句,比如兩個always模塊,fork join語句塊,都是軟件模擬并行執(zhí)行的。所以老一點的編譯器,信號定義要在initial語句前面,initial的信號要先有初始值后面的語句才能從給定初值開始執(zhí)行。所以大家寫testbench的時候,要注意,最好先定義信號,再寫initial語句,后面的語句交換順序不影響,軟件可以識別并按照IEEE標準的順序去執(zhí)行。
如果一個模塊里面想用并行執(zhí)行語句用fork join語句,順序執(zhí)行用begin end語句。initial語句可以寫多個,都是并行執(zhí)行的,當兩個信號在initial沖突的時候,會先執(zhí)行前面的initial的值。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標題:FPGA中的testbench
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
如果輸入時鐘時差分時鐘信號,如何編寫testbench?
發(fā)表于 09-15 19:37
LFSR testbench
The LFSR testbench can help you understand the LFSR basics:
1. Change
發(fā)表于 05-14 11:18
?50次下載
verilog Testbench
發(fā)表于 12-13 22:20
?3次下載
testbench是一種驗證的手段。首先,任何設(shè)計都是會有輸入輸出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設(shè)計的輸出正確性進行評估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和輸出校驗的一種“虛擬
發(fā)表于 12-01 17:22
?5.6w次閱讀
本文檔的主要內(nèi)容詳細介紹的是FPGA教程之簡單的Testbench設(shè)計的詳細資料說明免費下載。
發(fā)表于 03-01 16:52
?15次下載
testbench是一種驗證的手段。首先,任何設(shè)計都是會有輸入輸出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設(shè)計的輸出正確性進行評估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和輸出校驗的一種“虛擬
發(fā)表于 03-08 14:35
?2439次閱讀
testbench是一種驗證的手段。首先,任何設(shè)計都是會有輸入輸出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設(shè)計的輸出正確性進行評估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和輸出校驗的一種“虛擬平臺”的產(chǎn)生。在這個平臺上你可以對你的設(shè)計從軟件層面上進行分析和校驗。
發(fā)表于 12-11 07:09
?2175次閱讀
定義信號類型:原來模塊中的輸入信號,定義成reg 類型,原來模塊中的輸出信號,定義為wire類型,但這里有個問題,如果在testbench中本身有一個模塊需要,如用來產(chǎn)生時鐘,送給要仿
發(fā)表于 07-31 17:52
?1044次閱讀
原來模塊中的輸入信號,定義成reg 類型,原來模塊中的輸出信號,定義為wire類型,但這里有個問題,如果在testbench中本身有一個模塊需要,如用來產(chǎn)生時鐘,送給要仿真的模塊,那怎
發(fā)表于 01-06 14:52
?1916次閱讀
在開始設(shè)計前,根據(jù)設(shè)計劃分好各功能模塊(為了敘述方便,這里以對“FPGA數(shù)字信號處理(十三)鎖相環(huán)位同步技術(shù)的實現(xiàn)”中設(shè)計的系統(tǒng)仿真為例)。編寫好第一個子模塊(本例中為雙相時鐘生成模塊),在Vivado
發(fā)表于 11-20 11:29
?3841次閱讀
、Johnson計數(shù)器、PN碼發(fā)生器、頻率計等,這些例子是經(jīng)驗豐富的工程師寫的,我們可以學到編程思想、代碼風格等方面的知識和經(jīng)驗,這些東西可能從學校老師或一般書籍都學習不到。 如果你用的不是Xilinx的FPGA,也就是說不使用ISE,那也沒關(guān)系,HDL代碼和testbench
發(fā)表于 04-11 10:46
?3131次閱讀
廢話不多說直接上干貨,testbench就是對寫的FPGA文件進行測試的文件,可以是verilog也可以是VHDL。
發(fā)表于 06-28 16:44
?4479次閱讀
之前在使用Verilog做FPGA項目中、以及其他一些不同的場合下,零散的寫過一些練手性質(zhì)的testbench文件,開始幾次寫的時候,每次都會因為一些基本的東西沒記住、寫的很不熟練,后面寫的時候稍微
發(fā)表于 08-01 12:44
?3404次閱讀
自動化驗證testbench結(jié)果可以減少人工檢查的時間和可能犯的失誤,尤其對于比較大的設(shè)計。
發(fā)表于 09-04 09:15
?831次閱讀
Testbench是驗證HDL設(shè)計的主要手段,本文提供了布局和構(gòu)建高效Testbench的指南以及示例。另外,本文還提供了一種示例,可以為任何設(shè)計開發(fā)自檢Testbench。
發(fā)表于 10-29 16:14
?96次閱讀
評論