20.2.3Verilog硬件描述語言實例II - Verilog硬件描述語言實例II-1_第1頁
20.2.3Verilog硬件描述語言實例II - Verilog硬件描述語言實例II-1_第2頁
20.2.3Verilog硬件描述語言實例II - Verilog硬件描述語言實例II-1_第3頁
20.2.3Verilog硬件描述語言實例II - Verilog硬件描述語言實例II-1_第4頁
20.2.3Verilog硬件描述語言實例II - Verilog硬件描述語言實例II-1_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

10.6

D觸發(fā)器//例10.6.1moduled_ff(q,d,clk); outputq;inputd,clk;regq; always@(posedgeclk) q=d; endmodule 1.Verilog語言描述2.

程序說明上升沿和下降沿檢測語句功能表

From\to01XZ0noposedgeposedgeposedge1negedgeNonegedgenegedgeXnegedgeposedgenoNoZnegedgeposedgenoNo上升沿觸發(fā)指變量值從0變?yōu)?、0變?yōu)閤和z、或者從x,z變?yōu)?,用posedge表示。下降沿觸發(fā)指變量值從1變?yōu)?、1變?yōu)閤和z或者從x,z變?yōu)?,用negedge表示。3.仿真結(jié)果例10.6.1的仿真電路圖:

例10.6.1的仿真波形圖:

Verilog語言有兩種賦值方式:連續(xù)賦值assign和過程賦值。過程賦值用來更新寄存器類型變量的值,過程賦值包括阻塞賦值“=”和非阻塞賦值“<=”兩種。//例10.6.2moduled_ff(q1,q2,d,clk); outputq1,q2;inputd,clk;regq1,q2; always@(posedgeclk) beginq1=d;q2=q1;endendmodule阻塞賦值:

阻塞賦值“=”:是立即執(zhí)行。也就是說執(zhí)行下一條語句時,q1已等于d。在clk時鐘的上升沿,q1=d和q2=q1兩條語句是先后執(zhí)行的,最后結(jié)果相當(dāng)于q1n+1=dn,q2n+1=qn+1=dn。非阻塞賦值:

//例10.6.3moduled_ff(q1,q2,d,clk); outputq1,q2;inputd,clk;regq1,q2; always@(posedgeclk) begin q1<=d;q2<=q1;endendmodule 非阻塞過程賦值語句不會阻塞進(jìn)程,直到整個塊的操作執(zhí)行完才一次完成賦值操作。用于幾個寄存器需要同一時刻賦值的情況。q1n+1=dn,q2n+1=q1n=dn-1例10.6.2的仿真波形圖:例10.6.3的仿真波形圖:

10.7

計數(shù)器10.7.14位二進(jìn)制加法計數(shù)器1.Verilog語言描述//例10.7.1modulecount4(out,reset,clk);output[3:0]out;inputreset,clk;reg[3:0]out;always@(posedgeclk)beginif(reset)out<=0;//同步清零elseout<=out+1;//計數(shù)endendmodule2.

程序說明這個計數(shù)器只有同步復(fù)位和計數(shù)功能。時鐘的上升沿有效,當(dāng)clk信號的上升沿到來時,如果清零信號為1,則計數(shù)器清零,否則計數(shù)器進(jìn)行計數(shù)。3.仿真結(jié)果例10.7.1的仿真電路圖

例10.7.1的仿真波形圖:

由仿真電路圖可知例10.7.1實現(xiàn)了4位二進(jìn)制加法計數(shù)器的邏輯功能。reset為高電平時,計數(shù)器清零。10.7.2同步置數(shù)同步清零加法計數(shù)器

//例10.7.2modulecount(out,data,load,reset,clk);output[7:0]out;input[7:0]data;inputload,clk,reset;reg[7:0]out;always@(posedgeclk)//clk上升沿觸發(fā)beginif(!reset)out<=8'h00;//同步清零,低電平有效elseif(!load)out<=data; //同步預(yù)置elseout<=out+1; //計數(shù)endendmodule1.Verilog語言描述2.程序說明clkresetloadout0x清零10置數(shù)(data)11計數(shù)計數(shù)器功能表

這是一個8位計數(shù)器,計數(shù)范圍為0到255,上升沿到來時計數(shù),具有同步置數(shù)和同步清零功能,在時鐘的上升沿進(jìn)行判斷。3.仿真結(jié)果例10.7.2的仿真波形圖:

由圖可知,當(dāng)reset=0時,計數(shù)器清零;reset=1、load=0時計數(shù)器置數(shù);當(dāng)reset=1、load=1時,計數(shù)器計數(shù)。10.7.3

異步清零計數(shù)器1.Verilog語言描述//例10.7.3modulecount2(out,reset,clk);output[7:0]out;inputclk,reset;reg[7:0]out;always@(posedgeclkornegedgereset)beginif(!reset)out<=0;elseout<=out+1; //計數(shù)endendmodule2.

仿真結(jié)果例10.7.3的仿真電路圖:

例10.7.3的仿真波形圖:

10.7.4扭環(huán)型計數(shù)器態(tài)序Q3Q2

Q1Q0F態(tài)序Q3Q2Q1Q0F000001000101110001110010211001201001311101310101411110411010501110501101600110610110700010701010扭環(huán)型計數(shù)器狀態(tài)轉(zhuǎn)換表

1.Verilog語言描述//例10.7.4modulejohnson(clk,clr,out);inputclk,clr;output[3:0]out;reg[3:0]out;always@(posedgeclkornegedgeclr)beginif(!clr)out<=4'h0;elsebeginout<=(out>>1);out[3]<=~out[0];endendendmodule2.程序說明程序行1的out<=(out>>1)語句使用了右移運(yùn)算符來實現(xiàn)右移運(yùn)算功能,移位運(yùn)算符包括右移位運(yùn)算符“>>”和左移位運(yùn)算符“<<”。其使用方法如下:

a>>n

或a<<n

a代表要進(jìn)行移位的操作數(shù),n代表要移幾位。這

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論