電子測(cè)試與實(shí)驗(yàn)技術(shù):第四階段實(shí)驗(yàn) Verilog HDL簡(jiǎn)介_第1頁
電子測(cè)試與實(shí)驗(yàn)技術(shù):第四階段實(shí)驗(yàn) Verilog HDL簡(jiǎn)介_第2頁
電子測(cè)試與實(shí)驗(yàn)技術(shù):第四階段實(shí)驗(yàn) Verilog HDL簡(jiǎn)介_第3頁
電子測(cè)試與實(shí)驗(yàn)技術(shù):第四階段實(shí)驗(yàn) Verilog HDL簡(jiǎn)介_第4頁
電子測(cè)試與實(shí)驗(yàn)技術(shù):第四階段實(shí)驗(yàn) Verilog HDL簡(jiǎn)介_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四階段實(shí)驗(yàn)Verilog HDL簡(jiǎn)介1 Verilog描述的一般結(jié)構(gòu)2 Verilog HDL基礎(chǔ)知識(shí)3 設(shè)計(jì)舉例4 層次化設(shè)計(jì)方法舉例Verilog HDLPLISDFVerilog HDL 是數(shù)字電子系統(tǒng)設(shè)計(jì)的一種硬件描述語言;編程語言接口(PLI)是Verilog仿真器和一種編程語言(如C語言)之間路徑和數(shù)據(jù)結(jié)構(gòu)的接口;標(biāo)準(zhǔn)延時(shí)格式(SDF:standard delay format)是模型反標(biāo)延時(shí)信息用的文件格式。(1) Verilog HDL的組成部分1 Verilog描述的一般結(jié)構(gòu)Verilog程序由關(guān)鍵詞module和endmodule進(jìn)行定義。module name (por

2、ts); port declarationsdata type declarationsfunctionalitytiming specificationendmoduleVerilog HDL 大小寫敏感(2) Verilog程序的結(jié)構(gòu)Verilog程序的組成部分endmodulemodule Name,port list, port declarations(if ports present)parameters(optional),Declarations of wires, regs and other variablesData flow statements( assign )Al

3、ways and initial blocks,All behavioral statements go in these blocks.Instantiation of lower level modulesTasks and functions這5個(gè)組件的排列順序是任意的,可以選擇其中的一個(gè)或幾個(gè)組件構(gòu)成一個(gè)Verilog程序module gate1(F,A,B,C,D); input A,B,C,D; output F; assign F=(A & B)|(B & C & D);endmodule簡(jiǎn)單Verilog實(shí)例:2 Verilog HDL基礎(chǔ)知識(shí)空白符:空格、TAB鍵、換行符及換

4、頁符注釋行:?jiǎn)涡凶⑨?、多行注釋?biāo)識(shí)符取名規(guī)則:必須是由字母或下劃線開頭,長(zhǎng)度小1024字符后續(xù)部分可以是字母、數(shù)字、下劃線以反斜杠“”開頭,以空白符結(jié)尾的任何字符序列 標(biāo)識(shí)符區(qū)分大、小寫關(guān)鍵詞:Verilog HDL 內(nèi)部已使用的詞。關(guān)鍵詞都是小寫。四種邏輯狀態(tài): 0邏輯零、邏輯非、低電平1邏輯1、邏輯真、高電平x或X不確定的邏輯狀態(tài)z或Z高阻態(tài)常量及其表示方法三類常量:整數(shù)、實(shí)數(shù)、字符串1.整數(shù)基數(shù)格式表示:+/-09, af, AF, x, X, z, Z, ?, _H or h十六進(jìn)制09, _D or d十進(jìn)制07, x, X, z, Z, ?, _O or o八進(jìn)制0, 1, x,

5、X, z, Z, ?, _B or b二進(jìn)制合法的表示值基數(shù)符號(hào)數(shù)制2.實(shí)數(shù)兩種表示方法:十進(jìn)制記數(shù)法 例:10.2 科學(xué)記數(shù)法 例:3.1e23.字符串:為兩個(gè)雙引號(hào)“ ”之間的字符, 字符串不允許跨行變量的數(shù)據(jù)類型1.連線類型(Net-type)2.寄存器類型( Register-type)3.標(biāo)量與矢量標(biāo)量:線寬只有一條的連線,位數(shù)只有一位的寄存器矢量:線寬大于一條的連線,位數(shù)大于一位的寄存器4.標(biāo)量類矢量與矢量類矢量標(biāo)量類矢量:可以按位、或部分位賦值的矢量矢量類矢量:不能按位、或部分位賦值的矢量,只 能作為一個(gè)統(tǒng)一的整體進(jìn)行賦值運(yùn)算符(9類)?:條件運(yùn)算符 連接運(yùn)算符邏輯移位運(yùn)算符=,

6、 !=, =, !=相等與全等運(yùn)算符, =關(guān)系運(yùn)算符(雙目)!, &, |邏輯運(yùn)算符&, &, |,|, , or 縮位運(yùn)算符(單目), &, |, , or 位運(yùn)算符+, -, *, /, %算術(shù)運(yùn)算符所含運(yùn)算符運(yùn)算符分類運(yùn)算符的優(yōu)先級(jí)! * / %+ - = != = !=& & | |&|?:最低優(yōu)先級(jí)最高優(yōu)先級(jí)Verilog 基本門級(jí)元件 多輸入門:and、nand、or、nor、xor、xnor 只有單個(gè)輸出,1個(gè)或多個(gè)輸入多輸出門:not、buf 允許有多個(gè)輸出,但只有一個(gè)輸入三態(tài)門:bufif0、bufif1、notif0、notif1 有一個(gè)輸出,一個(gè)數(shù)據(jù)輸入和一個(gè)控制輸入Ve

7、rilog 基本門級(jí)元件(原型)在VerilogHDL語言中已預(yù)定義了門級(jí)原型 and n-input AND gate nand n-input NAND gate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n-input exclusive NOR gate buf n-output buffer not n-output inverter bufif0 tri-state buffer; Io enable bufif1 tri-state buffer; hi enable no

8、tif0 tri-state inverter; Io enable notif1 tri-state inverter; hi enable例1 用Verilog HDL語言描述一個(gè)上升沿D觸發(fā)器。 module dff (q,clk,data); output q; input clk,data; reg q; always (posedge clk) q = data; endmodule 端口類型說明數(shù)據(jù)類型說明功能描述(行為描述)句尾分號(hào)模塊名3 Verilog的設(shè)計(jì)舉例Verilog HDL行為描述方法過程塊的組成: 過程語句(事件控制敏感表) begin (:塊名) 塊內(nèi)局部變量

9、說明 一條或多條過程賦值或高級(jí)程序語句 end在always下面使用的高級(jí)程序語句(1)if-else 條件語句 if (條件表達(dá)式) 塊語句1 else if (條件表達(dá)式2) 塊語句2 . else if (條件表達(dá)式n) 塊語句n else 塊語句n+1(2)case 語句case (敏感表達(dá)式) 值1:塊語句1 值2:塊語句2 值n: 塊語句n default:塊語句n+1endcase (3)for循環(huán)語句 for (表達(dá)式1;表達(dá)式2;表達(dá)式3)塊語句module mux2_1(out1, a, b, sel) ; output out1; input a, b; input se

10、l; assign out1= sel ? b : a;endmodule數(shù)據(jù)流描述abselout1module mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel; assign out1=(sel & b) | (sel & a);endmodule數(shù)據(jù)流描述例2 用Verilog HDL語言描述2選1的數(shù)據(jù)選擇器。module mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel; reg out1;always (sel or a or b) be

11、gin if (sel) out1 = b; else out1 = a; endendmodulemodule mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel; reg out1;always (sel or a or b)begin case (sel) 1b0 : out1 = a; 1b1 : out1 = b; endcaseendendmodule行為描述module mux2_1(out1,a,b,sel); output out1; input a,b,sel; not (sel_, sel); and

12、(a1, a, sel_); and (b1, b, sel); or (out1, a1, b1);endmodule結(jié)構(gòu)描述行為描述方式: 一般使用下述語句描述,可以對(duì)組合、時(shí)序邏輯電路建模。 1)initial 語句 2)always 語句小結(jié):數(shù)據(jù)流描述方式: 一般使用assign語句描述,主要用于對(duì)組合邏輯電路建模。結(jié)構(gòu)描述方式: 一般使用Primitive(內(nèi)部元件)、自定義的下層模塊對(duì)電路描述。主要用于層次化設(shè)計(jì)中。4 層次化設(shè)計(jì)方法舉例例3 請(qǐng)用層次化的方法設(shè)計(jì)一個(gè)4位全加器,框圖如下:4-bit Adder(add4.v)1-bit Adder(addbit.v)1-bit

13、Adder(addbit.v)1-bit Adder(addbit.v)1-bit Adder(addbit.v)實(shí)現(xiàn)方案如下:module addbit (a, b, ci, sum, co); input a, b, ci; output sum, co; wire a, b, ci, sum, co, n1, n2, n3; xor (n1, a, b,); xor (sum, n1, ci); and (n2, a, b); and (n3, n1, ci); or (co, n2, n3); endmodule 一些Verilog原型(Primitive)列出結(jié)構(gòu)化的元件并按網(wǎng)表連接

14、 1. 底層模塊1位全加器實(shí)例:模塊的調(diào)用方法基本方式: 模塊名 調(diào)用名(端口名表項(xiàng))調(diào)用方式一:位置對(duì)應(yīng)調(diào)用方式調(diào)用方式二:端口名對(duì)應(yīng)調(diào)用方式調(diào)用方式三:存在不連接端口的調(diào)用方式(未連PORT允許用(,)號(hào)空出其位置)2. 頂層模塊調(diào)用底層模塊實(shí)例通過位置關(guān)聯(lián)models add4 (result, carry, r1, r2, ci); output 3:0 result; output carry; input 3:0 r1, r2; input ci; wire 3:0 r1, r2, result; wire ci, carry, c1, c2, c3; addbit u1 (r10

15、, r20, ci, result0, c1); addbit u2 (r11, r21, c1, result1, c2); addbit u3 (r12, r22, c2, result2, c3); addbit u4 (r13, r23, c3, result3, carry); endmodule module addbit (a, b, ci, sum,co); input a, b, ci; output sum, co; endmodule Structural or behavioral modelOrder must match exactly3. 頂層模塊調(diào)用底層模塊實(shí)例

16、通過名字關(guān)聯(lián)注意:該描述應(yīng)嚴(yán)格保持名字的一致!module add4 (result, carry, r1, r2, ci); output 3:0 result; output carry; input 3:0 r1, r2; input ci; wire 3:0 r1, r2 , result; wire ci, carry, c1, c2 c3; addbit u0 (.co(c1) , .sum(result0), .ci(ci),.b(r20),.a(r10); addbit u1 (.co(c2) , .sum(result1), .ci(c1),.b(r21),.a(r11);

17、addbit u2 (.co(c3) , .sum(result2), .ci(c2),.b(r22),.a(r12); addbit u3 (.co(carry), .sum(result3), .ci(c3),.b(r23),.a(r13);endmodulehere names must match exactlyPORT連接的規(guī)則*input:符號(hào)內(nèi)部總是net,外部可連net和reg數(shù)據(jù)類型*output:其內(nèi)部可為net或reg,而外部必須連各種net數(shù)據(jù)類型*inouts:它的內(nèi)外都用net且只能連各種net數(shù)據(jù)類型module top; module dev (a, b, c)

18、; inputs outputs net reg or netnetreg or netnetcbazyxinoutsnet例4 四位異步二進(jìn)制計(jì)數(shù)器的設(shè)計(jì) (原理圖Verilog混合設(shè)計(jì))4-bit counter(asy_count4.v)T觸發(fā)器(T_FF.v)T觸發(fā)器(T_FF.v)T觸發(fā)器(T_FF.v)T觸發(fā)器(T_FF.v)D觸發(fā)器(D_FF.v)反相器(not)D觸發(fā)器(D_FF.v)反相器(not)例4 四位異步二進(jìn)制計(jì)數(shù)器的設(shè)計(jì) (原理圖Verilog混合設(shè)計(jì))module ripple_counter (q, clk, reset); output 3:0 q; input clk,reset; T_FF tff0 (q0, clk, reset); T_FF tff1 (q1, q0, reset); T_FF tff2 (q2, q1, reset); T_FF tff3 (q3, q2, reset);endmodule Ripple Carry Counter Top-level Design

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論