![數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第1頁](http://file4.renrendoc.com/view14/M05/25/25/wKhkGWdkDqGADCOhAADq2SY_7Jk477.jpg)
![數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第2頁](http://file4.renrendoc.com/view14/M05/25/25/wKhkGWdkDqGADCOhAADq2SY_7Jk4772.jpg)
![數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第3頁](http://file4.renrendoc.com/view14/M05/25/25/wKhkGWdkDqGADCOhAADq2SY_7Jk4773.jpg)
![數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第4頁](http://file4.renrendoc.com/view14/M05/25/25/wKhkGWdkDqGADCOhAADq2SY_7Jk4774.jpg)
![數(shù)電第4版 課件 第9章課件 4 常用模塊的Verilog HDL代碼_第5頁](http://file4.renrendoc.com/view14/M05/25/25/wKhkGWdkDqGADCOhAADq2SY_7Jk4775.jpg)
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)殖場農(nóng)產(chǎn)品質(zhì)量安全追溯合同
- 2024-2025學(xué)年湖北省黃岡市高二上學(xué)期普通高中12月聯(lián)考?xì)v史試卷
- 2025年兼職會計(jì)實(shí)習(xí)生崗位協(xié)議書完整版
- 2025年北京龍湖租賃合同標(biāo)準(zhǔn)
- 2025年雙方數(shù)據(jù)互換保密協(xié)議
- 2025年鎳壓延加工材項(xiàng)目立項(xiàng)申請報(bào)告模范
- 2025年合作項(xiàng)目協(xié)商協(xié)議示例
- 2025年技術(shù)成果轉(zhuǎn)化服務(wù)項(xiàng)目立項(xiàng)申請報(bào)告模板
- 2025年分析儀器購買合同模板
- 2025年聲學(xué)懸浮物監(jiān)測儀項(xiàng)目規(guī)劃申請報(bào)告模板
- Link 16協(xié)議開發(fā)和關(guān)鍵技術(shù)研究的開題報(bào)告
- 人教版二年級數(shù)學(xué)下冊教材分析
- 激素性白內(nèi)障的健康宣教
- 全冊(教學(xué)設(shè)計(jì))-蘇教版勞動六年級下冊
- 尺寸鏈的計(jì)算表格
- (全)建筑施工安全風(fēng)險(xiǎn)辨識分級管控指南
- 品管圈基本知識
- 物業(yè)項(xiàng)目保潔服務(wù)質(zhì)量保證及安全保障措施(標(biāo)書專用)參考借鑒范本
- 湘美版美術(shù)(二年級下冊)課程綱要教學(xué)計(jì)劃
- 防止電力生產(chǎn)事故的-二十五項(xiàng)重點(diǎn)要求2023版
- 氯諾昔康針劑在圍術(shù)期鎮(zhèn)痛與其它市場應(yīng)用(代表培訓(xùn)完整版)
評論
0/150
提交評論