實例解讀testbench編寫方法

實例解讀testbench編寫方法

ID:11994960

大?。?41.18 KB

頁數(shù):5頁

時間:2018-07-15

實例解讀testbench編寫方法_第1頁
實例解讀testbench編寫方法_第2頁
實例解讀testbench編寫方法_第3頁
實例解讀testbench編寫方法_第4頁
實例解讀testbench編寫方法_第5頁
資源描述:

《實例解讀testbench編寫方法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、實例解讀Testbench編寫方法前言:在進(jìn)行quartusII設(shè)計時,不少人剛開始覺得仿真極其不方便,還需要編寫測試文件,浪費(fèi)時間精力。不過小編想告訴大家,其實testbench編寫很容易學(xué),不外乎waitfor語句的堆疊就可以了,至于高深的用法,對一般程序都涉及不到,沒必要弄得那么復(fù)雜。下面看看實例吧,將詳細(xì)說明testbench的編寫:我們可以通過Quartus自動生成一個Testbench的模板,選擇Processing->Start->StartTestBenchTemplateWriter,等待完成后打開剛才生成的

2、Testbench,默認(rèn)是保存在simulationmodelsim文件夾下的.vt格式文件。?打開vt文件后可以看到Quartus已經(jīng)為我們完成了一些基本工作,包括端口部分的代碼和接口變量的聲明,我們要做的就是在這個做好的模具里添加我們需要的測試代碼。一個最基本的Testbench包含三個部分,信號定義、模塊接口和功能代碼。‘timescale1ns/1ps表示仿真的單位時間為1ns,精度為1ps。想要進(jìn)行仿真首先要規(guī)定時間單位,而且最好在Testbench里面統(tǒng)一規(guī)定時間單位,而不要在工程代碼里定義,因為不同的模塊如果時

3、間單位不同可能會為仿真帶來一些問題,而timescale本身對綜合也就是實際電路沒有影響。其實Testbench本身可以看做一個模塊或者設(shè)備(本例中的模塊名為add_vlg_tst),和你自己編寫的模塊進(jìn)行通信。通過Testbench模塊向待測模塊輸出信號作為激勵,同時接收從待測模塊輸出的信號來查看結(jié)果。因此,在待測模塊中的reg型信號在Testbench中就變成了wire,待測模塊中的wire型信號在Testbench中則對應(yīng)為reg型。那么inout怎么辦呢,inout型信號也要設(shè)成wire,同時要用一個reg型信號作為輸

4、出寄存器,同時設(shè)置一個三態(tài)門,由一個使能信號控制,如:assign?inout_sig=out_en?out_reg:1’bz;處理完接口和聲明之后,需要自己設(shè)置一些激勵信號,激勵信號的內(nèi)容就是肯能會輸入到待測模塊中的波形。下面我們就來寫一個簡單的測試程序。實例:60進(jìn)制計數(shù)器源代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,res

5、et:instd_logic;p:outstd_logic_vector(3downto0);q:outstd_logic_vector(3downto0));endcnt60;architecturearchofcnt60issignalcp:std_logic;signalm:std_logic_vector(3downto0);signaln:std_logic_vector(3downto0);beginp_1:process(reset,clk)beginif(reset='1')thenm<="0000";else

6、if(clk'eventandclk='1')thenif(m="1001")thenm<="0000";elsem<=m+"0001";endif;endif;endif;endprocessp_1;cp<=m(3)andm(0);p_2:process(clk,reset)beginif(reset='1')thenn<="0000";elseif(clk'eventandclk='1')thenif(cp='1')thenif(n="0101")thenn<="0000";elsen<=n+"0001";endif;en

7、dif;endif;endif;endprocessp_2;p<=m(3)&m(2)&m(1)&m(0);q<=n(3)&n(2)&n(1)&n(0);endarch;Testbench編寫:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcnt60_vhd_tstISENDcnt60_vhd_tst;ARCHITECTUREcnt60_archOFcnt60_vhd_tstIS--constants--signalsSIGNALclk:STD_LOGIC;SIGNALp:STD_LO

8、GIC_VECTOR(3DOWNTO0);SIGNALq:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALreset:STD_LOGIC;COMPONENTcnt60PORT(clk:INSTD_LOGIC;p:OUTSTD_LOGIC_VECTOR(3DO

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。