




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上數字電子技術課程設計報告專業班級:姓 名:學 號:設計日期:一 設計題目多功能數字鐘電路設計二 設計任務及要求多功能數字鐘應該具有的功能有:顯示時分秒、整點報時、小時和分鐘可調等基本功能。整個鐘表的工作應該是在1Hz信號的作用下進行,這樣每來一個時鐘信號,秒增加1秒,當秒從59秒跳轉到00秒時,分鐘增加1分,同時當分鐘從59分跳轉到00分時,小時增加1小時,小時的范圍為023時。在實驗中為了顯示的方便,由于分鐘和秒鐘顯示的范圍都是從059,所以可以用一個3位的二進制碼顯示十位,用一個四位的二進制碼(BCD碼)顯示個位,對于小時因為他的范圍是從023,所以可以用一個2位
2、的二進制碼顯示十位,用一個4位的二進制碼(BCD碼)顯示個位。實驗中由于七段碼管是掃描的方式 顯示,所以雖然時鐘需要的是1Hz時鐘信號,但是掃描需要一個比較高頻率的信號,因此為了得到準確的1Hz信號,必須對輸入的系統時鐘50Mhz進行分頻。對于整點報時功能,本實驗設計的是當進行正點的倒計時5秒時,讓LED來閃爍進行整點報時的提示。調整時間的按鍵用按鍵模塊的S1和S2,S1調節小時,每按下一次,小時增加一個小時;S2調整分鐘,每按下一次,分鐘增加一分鐘。另外用S8按鍵作為系統時鐘復位,復位后全部顯示000000。管腳分配如下表:端口名使用模塊信號對應FPGA管腳說明S1按鍵開關S1R16調整小時
3、S2按鍵開關S2P14調整分鐘RST按鍵開關S8M15復位LEDLED模塊D1L14整點倒計時LEDAG0數碼管模塊A段N4時間顯示LEDAG1數碼管模塊B段G4LEDAG2數碼管模塊C段H4LEDAG3數碼管模塊D段L5LEDAG4數碼管模塊E段L4LEDAG5數碼管模塊F段K4LEDAG6數碼管模塊G段K5SEL0數碼管選擇位1M48個數碼管的選擇位SEL1數碼管選擇位2F3SEL2數碼管選擇位3F4CP脈沖源J350Mhz脈沖三基于Verilog HDL語言的電路設計、仿真與綜合(一)頂層模塊本程序采用結構化設計方法,將其分為彼此獨立又有一定聯系的三個模塊,如圖1所示:圖1:頂層結構框圖
4、(二)子模塊 1.分頻器分頻器的作用是對50Mhz的系統時鐘信號進行分頻,得到頻率為1000hz的信號,作為顯示器的輸入信號。源程序如下:module fenpin(input CP,output CPout);reg CPout;reg 31:0 Cout;reg CP_En;always (posedge CP ) /將50MHz分頻為1kHzbeginCout = (Cout = 32d50000) ? 32d0 : (Cout + 32d1);CP_En = (Cout = 32d50000) ? 1d1 : 1d0;CPout = CP_En; endendmodule功能仿真波形如
5、圖2所示(以五分頻為例):2.控制器和計數器 控制器的作用是,調整小時和分鐘的值,并能實現清零功能。計數器的作用是實現分鐘和秒鐘滿60進1,小時則由23跳到00。當到達59分55秒的時候,LED燈會閃爍來進行報時。因為控制器和計數器的驅動信號頻率均為1Hz,故從分頻器輸出的信號進入控制器后,要進行二次分頻,由1Khz變為1Hz。源程序如下:module kongzhiqi( CPout,S1,S2,RET,Hour,Minute,Second,LED);input CPout,S1,S2,RET;output 5:0 Hour;output 5:0 Minute;output 5:0 Seco
6、nd;output LED;reg 5:0 Hour;reg 5:0 Minute;reg 5:0 Second;reg R1;reg R2,R8,LED;reg 10:0 Cout;reg Clk_En;always(posedge CPout)beginif(S1=0)beginR1=1;endif(S2=0)beginR2=1;endif(RET=0)beginR8=1;endCout=(Cout=32d1000)?32d0:(Cout + 32d1);Clk_En=(Cout=32d1000)?1d1:1d0;if(Clk_En)beginif(R1=1)beginif(Hour24)
7、Hour=Hour+1;if(Hour=24)beginHour=0;endR1=0;endif(R2=1)beginif(Minute60)Minute=Minute+1;if(Minute=60)beginMinute=0;if(Hour24)Hour=Hour+1;if(Hour=24)beginHour=0;endendR2=0;endif(Second60)Second=Second+1;if(Second=60)beginSecond=0;if(Minute60)Minute=Minute+1;if(Minute=60)beginMinute=0;if(Hour55)/整點倒計時b
8、eginif(LED=1)LED=0;elseLED=1;endelseLED=0;if(R8=1)/清零beginHour=0;Minute=0;Second=0;R8=0;endendendendmodule功能仿真波形如圖3所示:3顯示器顯示器的作用是將時分秒的值在數碼管上依次顯示出來。從分頻器輸出的1Khz的信號作為數碼管的掃描信號。SEL 表示三個數碼管選擇位,它的取值表示八個數碼管,從左至右依次是111000。LEDGA表示七段數碼管,它的取值決定特定位數上顯示的數字。源程序如下:module xianshi( CPout,Hour,Minute,Second,SEL,LEDAG)
9、;input CPout;input Hour,Minute, Second;output SEL,LEDAG;reg 2:0 SEL;reg 6:0 Led;reg 3:0 shi1,ge1,shi2,ge2,shi3,ge3;always (posedge CPout )beginshiwei1=Hour/10;gewei1=Hour%10;shiwei2=Minute/10;gewei2=Minute%10;shiwei3=Second/10;gewei3=Second%10;if(SEL=3b110) /判斷位選SEL的值,并將此位上的值輸出到數碼管case(shiwei1) 4b00
10、00: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b101)case(ge
11、wei1) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b1
12、00)Led=7b1000_000;if(SEL=3b011)case(shiwei2) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; defa
13、ult: Led = 7b0000_000;endcaseif(SEL=3b010)case(gewei2) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101
14、_111; default: Led = 7b0000_000;endcaseif(SEL=3b001)Led=7b1000_000;if(SEL=3b000)case(shiwei3) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000
15、: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcase if(SEL=3b111)case(gewei3) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000
16、_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcase SEL = SEL + 3d1; endassign LEDAG=Led;endmodule四 總結體會這次課程設計雖然只有短短的四天,但我的收獲卻很大。通過這次實習,我掌握了EDA設計的基本流程(即設計輸入編譯調試仿真下載),領會了自頂而下結構化設計的優點,并具備了初步的EDA程序設計能力。 我感覺,這個程序最難的地方在于頂層模塊的設計,因為頂層模塊需要將各個子模塊按照電路原理有機地結合起來,這需要扎實的理論功底,而這正是我所欠缺的。相比而言,子模塊的設計就容易多了,因為Verilog語言和C語言有很多
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論