20.1.4Verilog硬件描述語言實例I - Verilog硬件描述語言實例I-2_第1頁
20.1.4Verilog硬件描述語言實例I - Verilog硬件描述語言實例I-2_第2頁
20.1.4Verilog硬件描述語言實例I - Verilog硬件描述語言實例I-2_第3頁
20.1.4Verilog硬件描述語言實例I - Verilog硬件描述語言實例I-2_第4頁
20.1.4Verilog硬件描述語言實例I - Verilog硬件描述語言實例I-2_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

(2)數(shù)的表示方法

按進制劃分,整數(shù)可以表示成十進制數(shù),十六進制數(shù),八進制和二進制數(shù)。Verilog中整數(shù)通常有兩種表述方式,分別為十進制數(shù)和指定位數(shù)表述方式。十進制數(shù)表述方式:

指定位數(shù)表述方式:

用0到9的數(shù)字序列表示。

<位長度><‘進制符號><數(shù)字及a到f(十六進制)>

。

在硬件描述語言中,x表示不定值,z表示高阻態(tài)??梢栽谑M制,八進制和二進制中使用x和z,十六進制中一個x表示4位都是x,八進制中一個x表示3位都是x,二進制中則表示一位是x。z用法同理。整數(shù)的表示示例:'h123F

//無位長度的十六進制數(shù)'o123 //無位長度的八進制數(shù)3'b101 //3位二進制數(shù)5'D3 //5位十進制數(shù)12'hx //12位不確定數(shù)16'oz //16位高阻態(tài)16'b1001_0110_1111_zzzz//16位二進制數(shù)以下表示是不正確的:123af

//十六進制數(shù),缺少進制符號'

h

在表示長數(shù)據(jù)時還可以用下劃線“_”進行分割以增加程序的可讀性,(3)

case語句的語法結(jié)構(gòu)

case

(表達式)

選項值1:語句1; 選項值2:語句2; 選項值3:語句3;

…default:

缺省語句;endcase

缺省語句不是必須有的。

4選1數(shù)據(jù)選擇器的仿真電路圖:

4選1數(shù)據(jù)選擇器的仿真波形圖:3.

仿真結(jié)果10.3.2

4選1數(shù)據(jù)選擇器實例21.if-else語句實現(xiàn)的4選1數(shù)據(jù)選擇器

//例10.3.2modulemux4_1(out,in0,in1,in2,in3,sel);outputout;inputin0,in1,in2,in3;input[1:0]sel;regout;always@(in0orin1orin2orin3orsel)beginif(sel==2'b00)out=in0;elseif(sel==2'b01)out=in1;elseif(sel==2'b10)out=in2;elseif(sel==2'b11)out=in3;elseout=1'bx;endendmodule2.

程序說明(1)if條件語句除了if-else結(jié)構(gòu)外,還有if-else-if結(jié)構(gòu)

if

(表達式1)

語句1;elseif(表達式2)

語句2;elseif…else

語句n;(2)順序塊語句begin-end

順序塊語句通常用來將兩條或多條語句組合在一起,使其在格式上更象一條語句。begin

語句1;語句2;

......語句n;end順序塊有以下特點:

1)塊內(nèi)的語句是按順序執(zhí)行的,即只有上面一條語句執(zhí)行完后下面的語句才能執(zhí)行。2)直到最后一條語句執(zhí)行完,程序才跳出該語句塊。

(3)缺省項問題缺省項是可以省略的,但省略缺省項會引入鎖存器,在組合邏輯電路設(shè)計中可能會帶來一些問題。

//例10.3.3moduleex3reg(y,a,b,c);inputa,b,c;outputy;regy,rega;always@(aorborc)begin

if(a&b)rega=c;else //有缺省項情況

rega=0;y=rega;endendmodulerega被綜合為一個數(shù)據(jù)選擇器:

省略了缺省項的Verilog語言程序

//例10.3.4moduleex4reg(y,a,b,c);inputa,b,c;outputy;regy,rega;always@(aorborc)beginif(a&b)rega=c; //缺省項省略

y=rega;endendmoduleif-else結(jié)構(gòu)的缺省項省略了,當a&b為1時,rega被賦予c的值,但當a&b為0時,rega將保持原值,這時需要一個鎖存器把rega的值保持下來,因此綜合時rega被綜合為一個鎖存器,鎖存器是多余的部分。綜合后的電路:對于case語句存在同樣的問題,也會由于缺少缺省項,產(chǎn)生了不必要的鎖存器。//例10.3.5moduleinccase(a,b,c,d,e);inputa,b,c,d;outpute;rege;always@(aorborcord)

case({a,b})//---------------12’b11:e=d;2’b10:e=~c;endcaseendmodule程序行1的“{}”為拼接操作符,將a和b組成一個二進制數(shù)。仿真電路:

由此可見,If條件語句和case條件語句在省略缺省項時,會產(chǎn)生鎖存器。因此,在設(shè)計組合邏輯電路時缺省項不能省略。10.4四位加法器1.Verilog語言描述4位加法器的功能是實現(xiàn)2個4位二進制數(shù)的加法運算。由兩個模塊組成,分別為底層全加器模塊和頂層模塊。//例10.4.1//全加器moduleadd_full(A,B,C,Carry,S);inputA,B,C;outputCarry,S;//全加器進位和assignS=A^B^C;assignCarry=(A&B)|(B&C)|(A&C);endmodule實例(Instances)//四位加法器moduleadd_full4(A,B,C,S);input[3:0]A,B;output[3:0]S;//加法器和output[4:0]C;//加法器進位assignC[0]=0;add_fullu1(A[0],B[0],C[0],C[1],S[0]),//------------1u2(A[1],B[1],C[1],C[2],S[1]),

u3(A[2],B[2],C[2],C[3],S[2]),

u4(A[3],B[3],C[3],C[4],S[3]);endmodule實例化(instantiation)2.

程序說明實例(Instances),實例化(instantiation)已經(jīng)定義好的模塊,作為我們電路中的單元。調(diào)用這些模塊的過程,稱為實例化(instantiation),調(diào)用完之后,這些電路中的模塊單元稱為實例(Instance)。實例的使用格式為:

<模塊名><實例名><端口列表>;這是管腳按順序映射調(diào)用方式。

Verilog中不允許嵌套定義模塊,即一對module和endmodule之間只能定義一個模塊。但一個模塊內(nèi)可以通過實例的方式多次調(diào)用其他模塊。實例的調(diào)用格式2:add_fullu1(.A(A[0]),.B(B[0]),.C(C[0]),.Carry(C[1]),.S(S[0])),u2(.A(A[1]),.B(B[1]),.C(C[1]),.Carry(C[2]),.S(S[1])),u3(.A(A[2]),.B(B[2]),.C(C[2]),.Carry(C[3]),.S(S[2])),u4(.A(A[3]),.B(B[3]),.C(C[3]),.Carry(C[4]),.S(S[3]));<模塊名><實例名><.實例端口1(模塊端口1]),.實例端口2(模塊端口2)>;3.

仿真結(jié)果仿真電路圖

仿真波形圖

10.5

七段數(shù)碼管顯示譯碼器例10.5.1實現(xiàn)的是將BCD碼轉(zhuǎn)換成七段數(shù)碼管的顯示碼,并假設(shè)LED數(shù)碼管是共陰極。電路有4個輸入端,7個輸出端。

//例10.5.1moduledecode48(a,b,c,d,e,f,g,D3,D2,D1,D0);outputa,b,c,d,e,f,g;inputD3,D2,D1,D0;//輸入4位BCD

碼rega,b,c,d,e,f,g;//輸出驅(qū)動7個筆劃段always@(D3orD2orD1orD0)begincase({D3,D2,D1,D0})//用case

語句進行譯碼1.Verilog語言描述4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論