testbench就是對(duì)寫(xiě)的FPGA文件進(jìn)行測(cè)試的文件,可以是verilog也可以是VHDL。verilog和VHDL的國(guó)際標(biāo)準(zhǔn)里面有很多不能被綜合實(shí)現(xiàn)的語(yǔ)句,比如initial,forever,repeat,延時(shí)語(yǔ)句#1等等,這些語(yǔ)句就是用來(lái)測(cè)試的時(shí)候使用的。運(yùn)行環(huán)境一般是ise或者vivado或者quartus自帶的仿真工具,或者如modelsim一樣的第三方仿真工具。
測(cè)試機(jī)制
任何一個(gè)設(shè)計(jì)好的模塊,都有輸入和輸出,此模塊是否滿足要求就是看給定滿足要求的輸入,是否能夠得到滿足要求的輸出。所以testbench的測(cè)試機(jī)制就是:用各種verilog或者VHDL語(yǔ)法,產(chǎn)生滿足條件的激勵(lì)信號(hào)(也就是對(duì)被模塊的輸入),同時(shí)對(duì)模塊的輸出進(jìn)行捕捉,測(cè)試輸出是否滿足要求。如下圖,產(chǎn)生激勵(lì)輸出驗(yàn)證模塊兩個(gè)模塊都屬于testbench,最好的輸出驗(yàn)證模塊最終只需要給一個(gè)pass和fail的答案出來(lái)就可以了。不管是用一個(gè)信號(hào)表示pass和fail還是用$display()函數(shù)打印,最終簡(jiǎn)單明了的給出過(guò)或者不過(guò)的信息就好了。請(qǐng)大家寫(xiě)仿真文件的時(shí)候盡量做到這點(diǎn)。
運(yùn)行順序
跟大家解釋一點(diǎn),所有testbench本質(zhì)上都是串行執(zhí)行,因?yàn)樵?a href="http://www.www27dydycom.cn/tags/cpu/" target="_blank">CPU環(huán)境下,沒(méi)有可靠并行執(zhí)行的能力。所有并行的語(yǔ)句,比如兩個(gè)always模塊,fork join語(yǔ)句塊,都是軟件模擬并行執(zhí)行的。所以老一點(diǎn)的編譯器,信號(hào)定義要在initial語(yǔ)句前面,initial的信號(hào)要先有初始值后面的語(yǔ)句才能從給定初值開(kāi)始執(zhí)行。所以大家寫(xiě)testbench的時(shí)候,要注意,最好先定義信號(hào),再寫(xiě)initial語(yǔ)句,后面的語(yǔ)句交換順序不影響,軟件可以識(shí)別并按照IEEE標(biāo)準(zhǔn)的順序去執(zhí)行。
如果一個(gè)模塊里面想用并行執(zhí)行語(yǔ)句用fork join語(yǔ)句,順序執(zhí)行用begin end語(yǔ)句。initial語(yǔ)句可以寫(xiě)多個(gè),都是并行執(zhí)行的,當(dāng)兩個(gè)信號(hào)在initial沖突的時(shí)候,會(huì)先執(zhí)行前面的initial的值。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618422 -
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112275
原文標(biāo)題:FPGA中的testbench
文章出處:【微信號(hào):ALIFPGA,微信公眾號(hào):FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在testbench中如何使用阻塞賦值和非阻塞賦值

LFSR testbench V1.2
testbench怎么寫(xiě)_testbench經(jīng)典教程VHDL

FPGA教程之簡(jiǎn)單的Testbench設(shè)計(jì)的詳細(xì)資料說(shuō)明

簡(jiǎn)單的Testbench設(shè)計(jì)
FPGA視頻教程:簡(jiǎn)單的Testbench設(shè)計(jì)

關(guān)于testbench在FPGA編程中的技巧
介紹FPGA中testbench的編寫(xiě)技巧

在模塊化設(shè)計(jì)過(guò)程中編寫(xiě)testbench并仿真的方法
FPGA驗(yàn)證簡(jiǎn)介之FPGA開(kāi)發(fā)分析一個(gè)testbench

testbench是什么? testbench測(cè)試的機(jī)制是什么?

Verilog Testbench怎么寫(xiě) Verilog Testbench文件的編寫(xiě)要點(diǎn)

Testbench自動(dòng)化驗(yàn)證方法介紹
編寫(xiě)高效Testbench的指南和示例

評(píng)論