




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第4章 Verilog仿真與驗證1. 測試平臺2. 延時模型的表示3. ModelSim仿真實例 4. 數(shù)字電路的仿真教材3.6節(jié) Testbench文件與設(shè)計1. 測試平臺 測試平臺(TestBench) 測試模塊只有模塊名字,沒有端口列表;輸入信號(激勵信號)必須定義為reg型,以保持信號值;輸出信號(顯示信號)必須定義為wire型;在測試模塊中調(diào)用被測試模塊,在調(diào)用時,應(yīng)注意端口排列的順序與模塊定義時一致;一般用initial、always過程塊來定義激勵信號波形;使用系統(tǒng)任務(wù)和系統(tǒng)函數(shù)來定義輸出顯示格式;在激勵信號的定義中,可使用如下一些控制語句:if-else,for,forever
2、,case,while,begin-end,fork-join等,這些控制語句一般只用在always、initial、function、task等過程塊中。 一個完整的簡單例子 test fixture被測試器件DUT是一個二選一多路器。測試程序(test fixture)提供測試激勵及驗證機(jī)制。Test fixture使用行為級描述,DUT采用門級描述。下面將給出Test fixture的描述、DUT的描述及如何進(jìn)行混合仿真。DUT 被測器件 (device under test) module MUX2_1 ( output wire out, input wire a, b, sel )
3、; wire sel, a1, b1; / The netlist not (sel_, sel); and (a1, a, sel_); and (b1, b, sel); or (out, a1, b1);endmodule已定義的 Verilog基本單元的實例a, b, sel是輸入端口,out是輸出端口。所有信號通過這些端口從模塊輸入/輸出。另一個模塊可以通過模塊名及端口說明使用多路器。實例化多路器時不需要知道其實現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計方法的一個重要特點。模塊的實現(xiàn)可以是行為級也可以是門級,但并不影響高層次模塊對它的使用。Test Fixture templatemodule te
4、stfixture; / Data type declaration / Instantiate modules / Apply stimulus / Display resultsendmodule為什么沒有端口?由于testfixture是最頂層模塊,不會被其它模塊實例化。因此不需要有端口。Test Fixture 如何說明實例module testfixture; / Data type declaration / Instantiate modules MUX2_1 mux (o, a, b, s);/ MUX2_1 mux (.out(o), .a(a), .b(b), .sel(s
5、); / Apply stimulus / Display resultsendmoduleMUX的實例化語句包括: 模塊名稱:與引用模塊相同 實例名稱:任意,但要符合標(biāo)記命名規(guī)則 端口列表:與引用模塊的次序相同module MUX2_1 (out, a, b, sel); / Port declarations output out; input a, b, sel; wire out, a, b, sel; wire sel_, a1, b1; / The netlist not (sel_, sel); and (a1, a, sel_); and (b1, b, sel); or (o
6、ut, a1, b1);endmoduleTest fixture 激勵描述module testfixture; / Data type declaration reg a, b, s; wire o; / MUX instance MUX2_1 mux (o, a, b, s); / Apply stimulus initial begin a = 0; b = 1; s = 0; #5 b = 0; #5 b = 1; s = 1; #5 a = 1; #5 $finish; end / Display resultsendmoduleTime Values a b s0 0 1 05
7、0 0 010 0 1 115 1 1 1例子中,a, b, s說明為reg類數(shù)據(jù)。reg類數(shù)據(jù)是寄存器類數(shù)據(jù)信號,在重新賦值前一直保持當(dāng)前數(shù)據(jù)。#5 用于指示等待5個時間單位。$finish是結(jié)束仿真的系統(tǒng)任務(wù)。完整的Test Fixturemodule testfixture; / 數(shù)據(jù)類型說明 reg a, b, s; wire o; / MUX實例化 MUX2_1 mux (o, a, b, s); / 施加激勵 initial begin a = 0; b = 1; s = 0; #5 b = 0; #5 b = 1; s = 1; #5 a = 1; #5 $finish; end
8、/ 顯示結(jié)果 initial $monitor($time, o=%b a=%b b=%b s=%b, o, a, b, s);endmodule0 o= 0 a= 0 b= 1 s= 05 o= 0 a= 0 b= 0 s= 010 o= 1 a= 0 b= 1 s= 115 o= 1 a= 1 b= 1 s= 1結(jié)果輸出2. 延時模型的表示 延時包括門延時、assign賦值延時和連線延時等。 門延時是從門輸入端發(fā)生變化到輸出端發(fā)生變化的延遲時間; assign賦值延時指等號右端某個值發(fā)生變化到等號左端發(fā)生相應(yīng)變化的延遲時間; 連線延時則體現(xiàn)了信號在連線上的傳輸延時。 如果沒有定義時延值,缺
9、省時延為0。時間標(biāo)尺定義timescale timescale語句用于定義模塊的時間單位和時間精度,其使用格式如下:timescale /timescale /其中用來表示時間度量的符號有:s、ms、us、ns、ps和fs。例如:timescale 1ns/100ps上面的語句表示時延單位為1ns,時延精度為100ps(即精確到0.1ns)。timescale編譯器指令在模塊說明外部出現(xiàn),并且影響后面所有的時延值。延時的表示與延時說明塊 1延時的表示方法延時的表示方法有下面幾種:# delaytime# (d1,d2)# (d1,d2,d3)# delaytime表示延遲時間為delaytim
10、e,d1表示上升延遲,d2表示下降延遲,d3則表示轉(zhuǎn)換到高阻態(tài)z的延遲,這些延遲的具體時間由時間定義語句timescale確定。時延定義了右邊表達(dá)式操作數(shù)變化與賦值給左邊表達(dá)式之間的持續(xù)時間。如果沒有定義時延值,缺省時延為0。 Verilog可對模塊中某一指定的路徑進(jìn)行延遲定義,這一路徑連接模塊的輸入端口(或inout端口)與輸出端口(或inout端口),利用延遲定義塊在一個獨立的塊結(jié)構(gòu)中定義模塊的延時。在延遲定義塊中要描述模塊中的不同路徑并給這些路徑賦值。延遲定義塊的內(nèi)容應(yīng)放在關(guān)鍵字specify與endspecify之間,且必須放在一個模塊中,還可以使用specparam關(guān)鍵字定義參數(shù) 延
11、時說明塊(specify塊)Modelsim仿真流程3. ModelSim仿真實例 加法器仿真的示意圖 ModelSim工作界面 新建工程項目 填加仿真文件 新建仿真文件 輸入仿真文件代碼并編譯 編譯文件到work工作庫并加載 編譯文件到work工作庫并加載 輸出波形顯示和命令行窗口結(jié)果顯示 timescale 10ns/1nsmodule mult8_tp; /測試模塊的名字reg7:0 a,b; /測試輸入信號定義為reg型wire15:0 out; /測試輸出信號定義為wire型integer i,j;mult8 m1(out,a,b);/調(diào)用測試對象initial /激勵波形設(shè)定beg
12、in a=0;b=0;for(i=1;i255;i=i+1) #10 a=i; endinitial beginfor(j=1;j255;j=j+1) #10 b=j;end4. 數(shù)字電路的仿真 8位乘法器的仿真initial begin/定義結(jié)果顯示格式$monitor($time,%d*%d=%d,a,b,out);#2560 $finish;endendmodulemodule mult8(out,a,b);/8位乘法器源代碼parameter size=8;inputsize:1 a,b; /兩個操作數(shù)output2*size:1 out;/結(jié)果assign out=a*b; /乘法運(yùn)
13、算符endmodule8位乘法器的仿真8位乘法器的功能仿真波形圖(ModelSim) 仿真結(jié)果時序電路的仿真 8位計數(shù)器的仿真代碼 timescale 10ns/1nsmodule count8_tp;reg clk,reset;/輸入激勵信號定義為reg型wire7:0 qout; /輸出信號定義為wire型parameter DELY=100;counter C1(qout,reset,clk); /調(diào)用測試對象always #(DELY/2) clk=clk;/產(chǎn)生時鐘波形initial begin /激勵波形定義 clk=0; reset=0;#DELY reset=1;#DELY reset=0;#(DELY*300) $finish;end【例】initial $monitor($time,clk=%d reset=%d qout=%d,clk,reset,qout);endmodulemodule counter(qout,reset,clk); /待測試的8位計數(shù)器模塊output7:0 qout;input
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班冬季交通安全課件
- 行政事業(yè)單位合同
- 項目推進(jìn)時間表與工作計劃書
- 泥工裝修詳細(xì)合同
- 大型體育賽事組織協(xié)議
- 能源互聯(lián)網(wǎng)項目戰(zhàn)略合作協(xié)議
- 農(nóng)業(yè)機(jī)械維修技術(shù)作業(yè)指導(dǎo)書
- 季度運(yùn)營策略及任務(wù)部署會議紀(jì)要
- 設(shè)計行業(yè)設(shè)計方案修改免責(zé)協(xié)議
- 企業(yè)互聯(lián)網(wǎng)應(yīng)用服務(wù)推廣合作協(xié)議
- 建筑用真空陶瓷微珠絕熱系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 2024年甘肅省公務(wù)員公共基礎(chǔ)知識重點考試題庫(含答案)
- (高清版)DZT 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬
- 《拒絕校園欺凌 防霸凌主題班會》課件
- 高血壓腦出血相關(guān)的課件
- 2024年云南呈貢區(qū)城市投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 江蘇省初中美術(shù)學(xué)業(yè)水平考試參考復(fù)習(xí)題庫(含答案)
- 短視頻運(yùn)營實戰(zhàn):抖音短視頻運(yùn)營
- 設(shè)備維保的關(guān)鍵績效指標(biāo)與評估
- 三亞市崖州中心漁港停泊避風(fēng)水域擴(kuò)建項目 環(huán)評報告
- 2024年工貿(mào)行業(yè)安全知識考試題庫500題(含答案)
評論
0/150
提交評論