數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第1頁
數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第2頁
數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第3頁
數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第4頁
數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4常用模塊的VerilogHDL代碼1.模為30的BCD碼加法計(jì)數(shù)器2.可逆計(jì)數(shù)器4.多功能移位寄存器3.三態(tài)輸出并行寄存器5.序列信號發(fā)生器6.分頻器1.模為30的BCD碼加法計(jì)數(shù)器

具有同步清零和同步預(yù)置數(shù)功能,rst和load高電平有效,en高電平有效。1.模為30的BCD碼加法計(jì)數(shù)器

具有同步清零和同步預(yù)置數(shù)功能,rst和load高電平有效,en高電平有效。時(shí)鐘clk清零rst預(yù)置數(shù)load計(jì)數(shù)使能en預(yù)置數(shù)據(jù)輸入d[7..0]計(jì)數(shù)狀態(tài)輸出q[7..0]進(jìn)位輸出rco↑1××××××××××00000000#↑01×d[7..0]d[7..0]#↑001××××××××計(jì)數(shù)#↑000××××××××保持#1.模為30的BCD碼加法計(jì)數(shù)器

modulecounter30(clk,rst,en,load,d,rco,q);inputclk,rst,en,load;//時(shí)鐘,清零,計(jì)數(shù)使能,預(yù)置數(shù)input[7:0]d;//預(yù)置數(shù)據(jù)輸入端outputrco;//進(jìn)位輸出outputreg[7:0]q;//計(jì)數(shù)狀態(tài)輸出,變量的數(shù)據(jù)類型為regalways@(posedgeclk)//開始always過程,聲明敏感信號beginif(rst)q<=0; //rst=1時(shí)清零elseif(load)q<=d;//rst=0,load=1時(shí)預(yù)置數(shù)elseif(en) //rst=0,load=0,en=1,開始計(jì)數(shù)過程1.模為30的BCD碼加法計(jì)數(shù)器

beginif(q[3:0]==9) //判斷個(gè)位是否為9begin q[3:0]<=0;//個(gè)位為9時(shí),將個(gè)位賦值為0if(q[7:4]==2)q[7:4]<=0;//若十位是2,則將十位賦值為0elseq[7:4]<=q[7:4]+1;endelseq[3:0]<=q[3:0]+1;//個(gè)位不為9,則個(gè)位加1endendassignrco=((q==8'h29)&&(en==1))?1:0;//產(chǎn)生進(jìn)位信號endmodule仿真結(jié)果1.模為30的BCD碼加法計(jì)數(shù)器

2.可逆計(jì)數(shù)器

4位二進(jìn)制可逆計(jì)數(shù)器,具有同步清零和同步置數(shù)功能;rst和load高電平有效;updown=1加法計(jì)數(shù),updown=0減法計(jì)數(shù)。時(shí)鐘clk清零rst預(yù)置數(shù)load加減控制updown預(yù)置數(shù)據(jù)輸入d[3..0]計(jì)數(shù)狀態(tài)輸出q[3..0]進(jìn)位輸出rco↑1××××××0000#↑01×d[3..0]d[3..0]#↑001××××加計(jì)數(shù)#↑000××××減計(jì)數(shù)#VerilogHDL代碼2.可逆計(jì)數(shù)器

modulekn_counter(clk,rst,load,updown,d,q,rco);parametersize=4;//定義參數(shù)計(jì)數(shù)器位數(shù)size=4input[size-1:0]d;//預(yù)置數(shù)據(jù)輸入端inputclk,rst,load,updown;//時(shí)鐘,清零,預(yù)置數(shù),加減控制端outputreg[size-1:0]q;//計(jì)數(shù)狀態(tài)輸出,變量的數(shù)據(jù)類型為regoutputrco; //進(jìn)位/借位輸出always@(posedgeclk) //開始always過程,聲明敏感信號beginif(rst)q<=0; //rst=1時(shí)清零elseif(load)q<=d; //rst=0,load=1時(shí)預(yù)置數(shù)elseif(updown)q<=q+1; //rst=0,load=0,updown=1,加法計(jì)數(shù)elseq<=q-1; //rst=0,load=0,updown=0,減法計(jì)數(shù)endassignrco=((q==4'b1111)&&(updown==1)||(q==4'b0000)&&(updown==0))?1:0;//產(chǎn)生進(jìn)位/借位計(jì)數(shù)endmodule2.可逆計(jì)數(shù)器

3.三態(tài)輸出并行寄存器

輸出使能oe時(shí)鐘clk數(shù)據(jù)輸入d[7..0]數(shù)據(jù)輸出q[7..0]1××Z(高阻)0↑d[7..0]d[7..0]

三態(tài)輸出數(shù)碼寄存器,帶輸出使能oe,oe=1時(shí)輸出高阻態(tài)。Verilog代碼moduleregister374(oe,clk,d,q);inputclk,oe; //時(shí)鐘,輸出使能input[7:0]d; //數(shù)據(jù)輸入端outputreg[7:0]q; //數(shù)據(jù)輸出端always@(posedgeclkorposedgeoe)if(oe)q<=8'bz; elseq<=d; //若oe=1輸出高阻態(tài);若oe=0,將輸入數(shù)據(jù)送入輸出端endmodule3.三態(tài)輸出并行寄存器

仿真及結(jié)果3.三態(tài)輸出并行寄存器

從上述仿真結(jié)果看,當(dāng)oe由高電平變成低電平后,q仍然輸出為高阻,這與預(yù)想的電路功能不符,觀察一下綜合后的電路。moduleregister374(oe,clk,d,q,qo);inputclk,oe;input[7:0]d;outputreg[7:0]q;outputreg[7:0]qo;always@(posedgeclk)beginq<=d; endalways@(oe)if(oe)qo<=8'bz;elseqo<=q;endmodule3.三態(tài)輸出并行寄存器

3.三態(tài)輸出并行寄存器

4.多功能移位寄存器

4.多功能移位寄存器

moduleshift_register(q,d,clk,mr,sl,sr,s1,s0);output[3:0]q; //移位寄存器輸出端input[3:0]d; //數(shù)據(jù)輸入端inputclk,mr,sl,sr,s1,s0; //時(shí)鐘、清零、左移串行輸入、右移串行輸入、模式選擇信號reg[3:0]temp; //定義一個(gè)4位reg型數(shù)據(jù)tempwire[1:0]mode; //定義一個(gè)2位wire型數(shù)據(jù)moderegx; //定義一個(gè)1位reg型數(shù)據(jù)xassignmode={s1,s0};assignq=temp;4.多功能移位寄存器

always@(posedgeclk)beginif(mr==0)begintemp<=4'b0000;x<=1'b0;endelsebegincase(mode)2'b00:temp<=temp;//S1S0=00時(shí),保持功能2'b01://S1S0=01時(shí),右移功能beginx<=sr;temp<=temp>>1;temp[3]<=x;end2'b10://S1S0=10時(shí),左移功能beginx<=sl;temp<=temp<<1;temp[0]<=x;End2'b11:temp<=d;//S1S0=11時(shí),并行置數(shù)功能endcaseendendendmodule4.多功能移位寄存器

5.序列信號發(fā)生器

在同步脈沖作用下循環(huán)地產(chǎn)生一串周期性的二進(jìn)制信號,能產(chǎn)生這種信號的邏輯器件就稱為序列信號發(fā)生器。例:設(shè)計(jì)產(chǎn)生序列11100100。moduleseq_gen(dout,clk,rst);outputdout;inputclk,rst;regdout;reg[7:0]q;always@(posedgeclk)//時(shí)鐘上升沿到來beginif(rst) //復(fù)位信號有效if(rst)//復(fù)位信號有效begindout<=0;q<=8'b11100100;endelsebegindout<=q[7];q<={q[6:0],q[7]};endendendmodule5.序列信號發(fā)生器

仿真結(jié)果:6.分頻器

在數(shù)字電子系統(tǒng)設(shè)計(jì)中,分頻器是一種應(yīng)用十分廣泛的電路。其功能就是對較高頻率的信號進(jìn)行分頻。(1)分頻系數(shù)是2的整數(shù)次冪的分頻器

對于分頻系數(shù)是2的整數(shù)次冪的分頻器來說,可以直接將計(jì)數(shù)器的相應(yīng)位賦給分頻器的輸出信號即可。下面以一個(gè)一個(gè)通用的可輸出輸入信號的2分頻信號、4分頻信號、8分頻信號的分頻器為例,介紹此類型分頻器的設(shè)計(jì)方法。modulediv248(div2,div4,div8,clk);inputclk;outputdiv2,div4,div8; //輸出2分頻、4分頻、8分頻regdiv2,div4,div8;reg[2:0]cnt;always@(posedgeclk)//時(shí)鐘上升沿到來begincnt<=cnt+1;div2<=cnt[0];div4<=cnt[1];div8<=cnt[2];endendmodule6.分頻器

6.分頻器

仿真結(jié)果(2)分頻系數(shù)不是2的整數(shù)次冪的分頻器moduleDIV12(div12,clk);inputclk;outputdiv12; //輸出12分頻regdiv12;reg[2:0]cnt;always@(posedgeclk)//時(shí)鐘上升沿到來

對于分頻系數(shù)不是2的整數(shù)次冪的分頻器來說,仍然可以用計(jì)數(shù)器來實(shí)現(xiàn),不過需要對計(jì)數(shù)器進(jìn)行控制。下面以一個(gè)分頻系數(shù)為12的分頻器為例,介紹此類型分頻器的設(shè)計(jì)方法。6.分頻器

beginif(cnt==3'b101)begin div12<=~div12;cnt<=0;endelsebegin cnt<=cnt+1;endendendmodule6.分頻器

(3)占空比不是1:1的分頻器

上面兩個(gè)例子所描述的分頻器,其分頻輸出信號的占空比均為1:1。然而在實(shí)際的數(shù)字電路設(shè)計(jì)中,經(jīng)常會需要占空比不是1:1的分頻信號。這種分頻器的實(shí)現(xiàn)方法也是通過計(jì)數(shù)器的控制得到的。下面以一個(gè)分頻系數(shù)為6、占空比為1:5的偶數(shù)分頻器為例,介紹此類分頻器的設(shè)計(jì)方法。6.分頻器

modulediv6(div6,clk);inputclk;outputdiv6; //輸出6分頻regdiv6;reg[2:0]cnt;always@(posedgeclk)//時(shí)鐘上升沿到來beginif(cnt==3’b101)begindiv6<=1;cnt<=0;endelsebegindiv6<=0;cnt<=cnt+1;endendendmodule6.分頻器

(4)奇數(shù)分頻器

奇數(shù)分頻器是指分頻系數(shù)為N=2n+1(n=1,2,…)。如果輸入信號的頻率為f,則分頻器輸出信號頻率為f/(2n+1)。下面介紹兩種奇數(shù)分頻器的設(shè)計(jì)方法。

占空比不是1:1的奇數(shù)分頻器與占空比不是1:1的偶數(shù)分頻器設(shè)計(jì)方法相同,均是通過對計(jì)數(shù)器的控制來實(shí)現(xiàn)。下面以一個(gè)分頻系數(shù)為7、占空比為1:6的奇數(shù)分頻器為例,介紹此類分頻器的設(shè)計(jì)方法。占空比不是1:1的奇數(shù)分頻器6.分頻器

(4)奇數(shù)分頻器modulediv7(div7,clk);outputdiv7;inputclk;regdiv7;reg[2:0]cnt;always@(posedgeclk)6.分頻器

beginif(cnt==6)begindiv7<=1;cnt<=0;endelsebegincnt<=cnt+1;div7<=0;endendendmodule(4)奇數(shù)分頻器占空比為1:1的奇數(shù)分頻器

占空比為1:1的奇數(shù)分頻器的實(shí)現(xiàn)方法是:設(shè)計(jì)兩個(gè)計(jì)數(shù)器,一個(gè)計(jì)數(shù)器采用時(shí)鐘

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論