




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實例解讀Testbench編寫方法前言:在進行quartusII設(shè)計時,不少人剛開始覺得仿真極其不方便,還需要編寫測試文件,浪費時間精力。不過小編想告訴大家,其實testbench編寫很容易學(xué),不外乎waitfor語句的堆疊就可以了,至于高深的用法,對一般程序都涉及不到,沒必要弄得那么復(fù)雜。下面看看實例吧,將詳細說明testbench的編寫:我們可以通過Quartus自動生成一個Testbench的模板,選擇Processing->Start->StartTestBenchTemplateWriter,等待完成后打開剛才生成的Testbench,默認是保存在simulation\modelsim文件夾下的.vt格式文件。
打開vt文件后可以看到Quartus已經(jīng)為我們完成了一些基本工作,包括端口部分的代碼和接口變量的聲明,我們要做的就是在這個做好的模具里添加我們需要的測試代碼。一個最基本的Testbench包含三個部分,信號定義、模塊接口和功能代碼?!畉imescale1ns/1ps表示仿真的單位時間為1ns,精度為1ps。想要進行仿真首先要規(guī)定時間單位,而且最好在Testbench里面統(tǒng)一規(guī)定時間單位,而不要在工程代碼里定義,因為不同的模塊如果時間單位不同可能會為仿真帶來一些問題,而timescale本身對綜合也就是實際電路沒有影響。其實Testbench本身可以看做一個模塊或者設(shè)備(本例中的模塊名為add_vlg_tst),和你自己編寫的模塊進行通信。通過Testbench模塊向待測模塊輸出信號作為激勵,同時接收從待測模塊輸出的信號來查看結(jié)果。因此,在待測模塊中的reg型信號在Testbench中就變成了wire,待測模塊中的wire型信號在Testbench中則對應(yīng)為reg型。那么inout怎么辦呢,inout型信號也要設(shè)成wire,同時要用一個reg型信號作為輸出寄存器,同時設(shè)置一個三態(tài)門,由一個使能信號控制,如:assign
inout_sig=out_en?out_reg:1’bz;處理完接口和聲明之后,需要自己設(shè)置一些激勵信號,激勵信號的內(nèi)容就是肯能會輸入到待測模塊中的波形。下面我們就來寫一個簡單的測試程序。實例:60進制計數(shù)器源代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,reset: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";
elseif(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;endif;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
--signals
SIGNALclk:STD_LOGIC;SIGNALp:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALq:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALreset:STD_LOGIC;COMPONENTcnt60PORT(clk:INSTD_LOGIC;p:OUTSTD_LOGIC_VECTOR(3DOWNTO0);q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);reset:INSTD_LOGIC);ENDCOMPONENT;BEGINi1:cnt60PORTMAP(--listconnectionsbetweenmasterportsandsignalsclk=>clk,p=>p,q=>q,reset=>reset);p_reset:PROCESS
BEGINreset<='0';
waitfor10ns;reset<='1';waitfor10ns;reset<='0';
WAIT;
ENDPROCESSp_reset;p_clk:PROCESS
BEGIN
waitfor1ns;clk<='1';waitfor1ns;clk<='0';
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東酒店管理職業(yè)技術(shù)學(xué)院《Java語言程序設(shè)計B》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇海事職業(yè)技術(shù)學(xué)院《植物營養(yǎng)分子生物學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 公司門衛(wèi)管理制度及崗位職責(zé)
- 【2025年飲食產(chǎn)業(yè)布局加速:澳門零售與餐飲市場呈現(xiàn)分化趨勢】
- 監(jiān)控機房施工方案
- 直線段支架施工方案
- 保溫冷棚施工方案
- 一卡通方案資料
- 5年級下冊數(shù)學(xué)所有公式
- 5年級第6單元語文園地筆記上冊
- G -B- 43630-2023 塔式和機架式服務(wù)器能效限定值及能效等級(正式版)
- QC/T 1091-2023 客車空氣凈化裝置 (正式版)
- 2024年節(jié)水知識競賽考試題及答案
- 2024年江蘇醫(yī)藥職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- qc工作崗位職責(zé)
- 【體能大循環(huán)】聚焦體能循環(huán)-探索運動奧秘-幼兒園探究體能大循環(huán)有效開展策略課件
- 采購人員廉潔從業(yè)課件培訓(xùn)
- 2024年單招計算機試題題庫及答案
- XX藥業(yè)公司受試者日記卡
- 多組學(xué)數(shù)據(jù)的整合與分析
- 小學(xué)安全教育《平安校園 拒絕欺凌》劉偉【省級】優(yōu)質(zhì)課
評論
0/150
提交評論