已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)字集成電路設(shè)計(jì)入門 -從HDL到版圖 于敦山 北大微電子學(xué)系,第四章 設(shè)計(jì)舉例,進(jìn)一步學(xué)習(xí)Verilog的結(jié)構(gòu)描述和行為描述 Verilog混合(抽象)級(jí)仿真,學(xué)習(xí)目標(biāo):,語(yǔ)言的主要特點(diǎn),module(模塊),module能夠表示: 物理塊,如IC或ASIC單元 邏輯塊,如一個(gè)CPU設(shè)計(jì)的ALU部分 整個(gè)系統(tǒng) 每一個(gè)模塊的描述從關(guān)鍵詞module開始,有一個(gè)名稱(如SN74LS74,DFF,ALU等等),由關(guān)鍵詞endmodule結(jié)束。,module是層次化設(shè)計(jì)的基本構(gòu)件,邏輯描述放在module內(nèi)部,語(yǔ)言的主要特點(diǎn)模塊端口(module ports),端口在模塊名字后的括號(hào)中列出,端口可以說明為input, output及inout,端口等價(jià)于硬件的引腳(pin),注意模塊的名稱DFF,端口列表及說明 模塊通過端口與外部通信,語(yǔ)言的主要特點(diǎn),模塊實(shí)例化(module instances),module DFF (d, clk, clr, q, qb); endmodule module REG4( d, clk, clr, q, qb); output 3: 0 q, qb; input 3: 0 d; input clk, clr; DFF d0 (d 0, clk, clr, q 0, qb 0); DFF d1 (d 1, clk, clr, q 1, qb 1); DFF d2 (d 2, clk, clr, q 2, qb 2); DFF d3 (d 3, clk, clr, q 3, qb 3); endmodule,語(yǔ)言的主要特點(diǎn),可以將模塊的實(shí)例通過端口連接起來構(gòu)成一個(gè)大的系統(tǒng)或元件。 在上面的例子中,REG4有模塊DFF的四個(gè)實(shí)例。注意,每個(gè)實(shí)例都有自己的名字(d0, d1, d2, d3)。實(shí)例名是每個(gè)對(duì)象唯一的標(biāo)記,通過這個(gè)標(biāo)記可以查看每個(gè)實(shí)例的內(nèi)部。 實(shí)例中端口的次序與模塊定義的次序相同。 模塊實(shí)例化與調(diào)用程序不同。每個(gè)實(shí)例都是模塊的一個(gè)完全的拷貝,相互獨(dú)立、并行。,模塊實(shí)例化(module instances),一個(gè)完整的簡(jiǎn)單例子 test fixture,被測(cè)試器件DUT是一個(gè)二選一多路器。測(cè)試裝置(test fixture)提供測(cè)試激勵(lì)及驗(yàn)證機(jī)制。 Test fixture使用行為級(jí)描述,DUT采用門級(jí)描述。下面將給出Test fixture的描述、DUT的描述及如何進(jìn)行混合仿真。,DUT 被測(cè)器件 (device under test),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 (out, a1, b1); endmodule,注釋行,已定義的 Verilog基本單元的實(shí)例,a, b, sel是輸入端口,out是輸出端口。所有信號(hào)通過這些端口從模塊輸入/輸出。 另一個(gè)模塊可以通過模塊名及端口說明使用多路器。實(shí)例化多路器時(shí)不需要知道其實(shí)現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計(jì)方法的一個(gè)重要特點(diǎn)。模塊的實(shí)現(xiàn)可以是行為級(jí)也可以是門級(jí),但并不影響高層次模塊對(duì)它的使用。,多路器由關(guān)鍵詞module和endmodule開始及結(jié)束。,Test Fixture template,module testfixture; / Data type declaration / Instantiate modules / Apply stimulus / Display results endmodule,為什么沒 有端口?,由于testfixture是最頂層模塊,不會(huì)被其它模塊實(shí)例化。因此不需要有端口。,Test Fixture 如何說明實(shí)例,module testfixture; / Data type declaration / Instantiate modules MUX2_1 mux (out, a, b, sel); / Apply stimulus / Display results endmodule,多路器實(shí)例化語(yǔ)句,MUX的實(shí)例化語(yǔ)句包括: 模塊名字:與引用模塊相同 實(shí)例名字:任意,但要符合標(biāo)記命名規(guī)則 端口列表:與引用模塊的次序相同,Test Fixture 過程(procedural block),所有過程在時(shí)間0執(zhí)行一次 過程之間是并行執(zhí)行的,過程語(yǔ)句有兩種: initial :只執(zhí)行一次 always :循環(huán)執(zhí)行,Test Fixture 過程(procedural block),通常采用過程語(yǔ)句進(jìn)行行為級(jí)描述。test fixture的激勵(lì)信號(hào)在一個(gè)過程語(yǔ)句中描述。 過程語(yǔ)句的活動(dòng)與執(zhí)行是有差別的 所有過程在時(shí)間0處于活動(dòng)狀態(tài),并根據(jù)用戶定義的條件等待執(zhí)行; 所有過程并行執(zhí)行,以描述硬件內(nèi)在的并行性;,Test fixture 激勵(lì)描述,module testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (out, a, b, sel); / Apply stimulus initial begin a = 0; b = 1; sel = 0; #5 b = 0; #5 b = 1; sel = 1; #5 a = 1; #5 $finish; end / Display results endmodule,Time Values a b sel 0 0 1 0 5 0 0 0 10 0 1 1 15 1 1 1,例子中,a, b, sel說明為reg類數(shù)據(jù)。reg類數(shù)據(jù)是寄存器類數(shù)據(jù)信號(hào),在重新賦值前一直保持當(dāng)前數(shù)據(jù)。 #5 用于指示等待5個(gè)時(shí)間單位。 $finish是結(jié)束仿真的系統(tǒng)任務(wù)。,Test Fixture 響應(yīng)產(chǎn)生,$time 系統(tǒng)函數(shù),給出當(dāng)前仿真時(shí)間 $monitor 系統(tǒng)任務(wù),若參數(shù)列表中的參數(shù)值發(fā)生變化,則在時(shí)間單位末顯示參數(shù)值。 $monitor (“format_specifiers”, ); 例如: $monitor($time, o, in1, in2); $monitor($time, , out, , a, , b, , sel); $monitor($time, “%b %h %d %o”, sig1, sig2, sig3, sig4);,Verilog提供了一些系統(tǒng)任務(wù)和系統(tǒng)函數(shù),包括:,注意不能有空格,Test Fixture 響應(yīng)產(chǎn)生,$time是一個(gè)系統(tǒng)函數(shù),返回當(dāng)前返回仿真時(shí)間。時(shí)間用64位整數(shù)表示。 $monitor 在時(shí)間單位末,若參數(shù)列表中的參數(shù)值發(fā)生變化則顯示所列參數(shù)的值。由$time引起的變化不會(huì)顯示。 $monitor系統(tǒng)任務(wù)支持不同的數(shù)基。缺省數(shù)基是十進(jìn)制。支持的數(shù)基還有二進(jìn)制、八進(jìn)制、十進(jìn)制。,完整的Test Fixture,module testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (out, a, b, sel); / Apply stimulus initial begin a = 0; b = 1; sel = 0; #5 b = 0; #5 b = 1; sel = 1; #5 a = 1; #5 $finish; end / Display results initial $monitor($time,“ out=%b a=%b b=%b sel=%b“, out, a, b, sel); endmodule,0 out= 0 a= 0 b= 1 sel= 0 5 out= 0 a= 0 b= 0 sel= 0 10 out= 1 a= 0 b= 1 sel= 1 15 out= 1 a= 1 b= 1 sel= 1,結(jié)果輸出,時(shí)間單位末的概念,timescale 1ns/1ns module testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (out, a, b, sel); / Apply stimulus initial begin a = 0; b = 1; sel = 0; #5.7 b = 0; #5 b = 1; sel = 1; #5 a = 1; #5 $finish; end / Display results initial $monitor($time,“ out=%b a=%b b=%b sel=%b“, out, a, b, sel); endmodule,0 out= 0 a= 0 b= 1 sel= 0 6 out= 0 a= 0 b= 0 sel= 0 11 out= 1 a= 0 b= 1 sel= 1 16 out= 1 a= 1 b= 1 sel= 1,結(jié)果輸出,VCD數(shù)據(jù)庫(kù),Verilog提供一系列系統(tǒng)任務(wù)用于記錄信號(hào)值變化保存到標(biāo)準(zhǔn)的VCD(Value Change Dump)格式數(shù)據(jù)庫(kù)中。大多數(shù)波形顯示工具支持VCD格式。,VCD數(shù)據(jù)庫(kù),用戶可以用$dump*系統(tǒng)任務(wù)打開一個(gè)數(shù)據(jù)庫(kù),保存信號(hào)并控制信號(hào)的保存。除$dumpvars外,其它任務(wù)的作用都比較直觀。 $dumpvars將在后面詳細(xì)描述。 必須首先使用$dumpfile系統(tǒng)任務(wù),并且在一次仿真中只能打開一個(gè)VCD數(shù)據(jù)庫(kù)。 在仿真前(時(shí)間0前)必須先指定要觀測(cè)的波形,這樣才能看到信號(hào)完整的變化過程。 仿真時(shí)定期的將數(shù)據(jù)保存到磁盤是一個(gè)好的習(xí)慣,萬(wàn)一系統(tǒng)出現(xiàn)問題數(shù)據(jù)也不會(huì)全部丟失。 VCD數(shù)據(jù)庫(kù)不記錄仿真結(jié)束時(shí)的數(shù)據(jù)。因此如果希望看到最后一次數(shù)據(jù)變化后的波形,必須在結(jié)束仿真前使用$dumpall。,VCD數(shù)據(jù)庫(kù)是仿真過程中數(shù)據(jù)信號(hào)變化的記錄。它只記錄用戶指定的信號(hào)。,$dumpvars,$dumpvars(, *); scope可以是層次中的信號(hào),實(shí)例或模塊。 仿真時(shí)所有信號(hào)必須在同一時(shí)間下使用$dumpvars。 就是說可以使用多條$dumpvars語(yǔ)句,但必須從同一時(shí)間開始。如: initial begin $dumpfile (“verilog. dump”); $dumpvars (0, testfixture.a); #1 $dumpvars (0, testfixture.b); end,$dumpvars語(yǔ)法:,此語(yǔ)句將引起一個(gè)警告信息并被忽略,$dumpvars,$dumpvars; / Dump所有層次的信號(hào) $dumpvars (1, top); / Dump top模塊中的所有信號(hào) $dumpvars (2, top. u1); / Dump實(shí)例top. u1及其下一層的信號(hào) $dumpvars (0, top. u2, top. u1. u13. q); / Dump top.u2及其以下所有信號(hào),以及信號(hào)top. u1. u13. q。 $dumpvars (3, top. u2, top. u1); / Dump top. u1和top. u2及其下兩層中的所有信號(hào)。 用下面的代碼可以代替前面test fixture的$monitor命令: initial begin $dumpfile (“verilog. dump”); $dumpvars (0, testfixture); end,要給$dumpvars提供層次(levels)及范圍(scope)參數(shù),例如,復(fù)習(xí),Verilog的基本構(gòu)建模塊是什么?是如何構(gòu)成一個(gè)系統(tǒng)的? module怎樣與其它模塊通信? 仿真時(shí)兩個(gè)性質(zhì)不同的模塊是什么? 在test fixture中兩類不同的過程語(yǔ)句是什么?它們有什么不同? 用什么方法能以文本格式顯示仿真結(jié)果?,module是基本構(gòu)建單元。在module中實(shí)例化另一個(gè)module可以構(gòu)成一個(gè)復(fù)雜的層次化系統(tǒng)。 module之間通過端口的連接進(jìn)行互相通信 兩個(gè)模塊是設(shè)計(jì)模塊和激勵(lì)模塊。設(shè)計(jì)模塊又稱為DUT,激勵(lì)模塊又稱為testbench或test fixture。測(cè)試模塊用于設(shè)計(jì)模塊驗(yàn)證 在testbench中用到的兩類過程語(yǔ)句是initial和always。其不同處是initial只執(zhí)行一次,而always循環(huán)執(zhí)行。 $monitor語(yǔ)句以文本格式顯示仿真結(jié)果,習(xí),Verilog中的空白符總是忽略的嗎? 在源代碼中插入注釋有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 洛陽(yáng)職業(yè)技術(shù)學(xué)院《大學(xué)生就業(yè)指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年肇慶考貨運(yùn)從業(yè)資格證
- 2025年鄂州貨運(yùn)從業(yè)資格證考試題庫(kù)答案
- 2025年廣東貨運(yùn)叢業(yè)資格證考試題庫(kù)答案
- 2024年某物流公司關(guān)于運(yùn)輸000噸貨物的運(yùn)輸合同
- 物聯(lián)網(wǎng)應(yīng)用招投標(biāo)合同操作規(guī)程
- 皮革制品庫(kù)房施工合同
- 咨詢服務(wù)租賃合同模板
- 合租影視制作室合同樣本
- 沙灘休閑區(qū)遮陽(yáng)棚工程合同
- 初三語(yǔ)文總復(fù)習(xí)全程計(jì)劃表
- 皮膚性病學(xué)期末測(cè)試試題及答案
- 上海市華二附中2024屆高一上數(shù)學(xué)期末預(yù)測(cè)試題含解析
- 論教育在人的發(fā)展中的主導(dǎo)作用
- 數(shù)據(jù)標(biāo)簽管理
- 產(chǎn)品制造過程質(zhì)量控制表(質(zhì)量計(jì)劃)
- 促進(jìn)學(xué)生德智體美勞全面發(fā)展工作措施
- 企業(yè)審計(jì)大數(shù)據(jù)分析方法及案例
- 2023屆上海市高考各區(qū)一模語(yǔ)文考試試卷匯編(附答案15套)
- 冀美2011版二年級(jí)美術(shù)下冊(cè)《壯美的長(zhǎng)城》教案及教學(xué)反思
- 小學(xué)高年級(jí)語(yǔ)文自主學(xué)習(xí)能力培養(yǎng)問題的分析和策略獲獎(jiǎng)科研報(bào)告
評(píng)論
0/150
提交評(píng)論