EDA課設(shè)—數(shù)字鐘設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
EDA課設(shè)—數(shù)字鐘設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
EDA課設(shè)—數(shù)字鐘設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
EDA課設(shè)—數(shù)字鐘設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
EDA課設(shè)—數(shù)字鐘設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄第一章 系統(tǒng)工作原理1第二章 程序模塊分析22.1 時(shí)鐘分頻模塊22.2 時(shí)鐘運(yùn)行模式模塊22.3掃描數(shù)碼管及蜂鳴模塊42.4數(shù)碼管顯示模塊5第三章 時(shí)序仿真7第四章 總結(jié)9參考文獻(xiàn)9附錄10基于Verilog HDL設(shè)計(jì)的多功能數(shù)字鐘本文利用Verilog HDL 語(yǔ)言自頂向下的設(shè)計(jì)方法設(shè)計(jì)多功能數(shù)字鐘, 在本文中采用Verilog HDL 語(yǔ)言設(shè)計(jì)多功能數(shù)字鐘, 借助其功能強(qiáng)大的語(yǔ)言結(jié)構(gòu), 簡(jiǎn)明的代碼描述復(fù)雜控制邏輯設(shè)計(jì), 與工藝無(wú)關(guān)特性, 在提高工作效率的同時(shí)達(dá)到目的, 并可以通過(guò)Verilog HDL 語(yǔ)言的綜合工具進(jìn)行相應(yīng)硬件電路的生成, 突出了其作為硬件描述語(yǔ)言的良好的可讀性、

2、可移植性和易理解等優(yōu)點(diǎn), 具有傳統(tǒng)邏輯設(shè)計(jì)方法所無(wú)法比擬的優(yōu)越性。此程序通過(guò)下載到FPGA 芯片后,可應(yīng)用于實(shí)際的數(shù)字鐘顯示中。第一章 系統(tǒng)工作原理工作原理:時(shí)鐘系統(tǒng)由八個(gè)數(shù)碼管顯示組成,其中第1、2個(gè)顯示的為時(shí)的高位和低位,第3個(gè)數(shù)碼管顯示的是分隔符“-”,第4、5個(gè)為分的高低位,第6個(gè)也為隔符“-”,第7、8個(gè)為秒的高低位。時(shí)鐘工作時(shí)用到兩個(gè)頻率,一個(gè)是系統(tǒng)頻率Clk,主要用來(lái)掃描數(shù)碼管和分頻,第二個(gè)是時(shí)鐘工作頻率Clk_1HZ(由Clk分頻得來(lái)),按下復(fù)位鍵,秒分時(shí)顯示清零,工作時(shí)Clk(489HZ)不斷通過(guò)3-8譯碼器值的改變來(lái)掃描時(shí)鐘的八位數(shù)碼管,由于人眼分辯不出這么高的頻率,所以看

3、到的是八個(gè)數(shù)碼管一直同時(shí)亮著,與此同時(shí)控制端連著七段數(shù)碼管的七位不斷提供秒時(shí)分的高低位譯碼到數(shù)碼管上顯示,當(dāng)Clk計(jì)數(shù)到244次(500ms)時(shí),Clk_1HZ翻轉(zhuǎn)一次,這樣Clk_1HZ的周期就為1s整,每個(gè)Clk_1HZ的上升沿給秒的低位加1。按調(diào)時(shí)鍵S1進(jìn)入調(diào)時(shí)模式,按下開(kāi)關(guān)時(shí)程序里設(shè)置掃描到時(shí)的高低位時(shí)不顯示,同時(shí)時(shí)的低位加1,松開(kāi)開(kāi)關(guān)時(shí)再顯示出來(lái),以此實(shí)現(xiàn)閃爍的功能,調(diào)分鍵也是同理。圖1、系統(tǒng)原理圖各個(gè)輸入輸出端口定義如下:Clk: 489HZ 的系統(tǒng)基準(zhǔn)時(shí)鐘輸入。作為七段碼管掃描頻率。將其489分頻可得到1HZ的數(shù)字鐘工作頻率。Rst: 系統(tǒng)復(fù)位信號(hào), 低電平有效。復(fù)位后顯示00-

4、00-00。S1: 調(diào)節(jié)小時(shí)信號(hào), 低電平有效。每按下一次, 小時(shí)增加一個(gè)小時(shí)。S2: 調(diào)節(jié)分鐘信號(hào), 低電平有效。每按下一次, 分鐘增加一個(gè)分鐘。Spk: 輸出到揚(yáng)聲器, 產(chǎn)生嘀、嗒的報(bào)時(shí)聲。Sel: 七段碼管掃描驅(qū)動(dòng)。因?yàn)槭前藗€(gè)七段碼管,所以Sel 為三位總線(xiàn)。掃描頻率為489HZ, 由于人眼的視覺(jué)效果, 呈現(xiàn)在眼前的便是整體的時(shí)-分-秒顯示。Display: 七段碼管顯示輸出。除此之外另設(shè)了幾個(gè)寄存器:Clk_1HZ:1HZ的數(shù)字鐘工作頻率Clk_Count1:產(chǎn)生1Hz 時(shí)鐘的分頻計(jì)數(shù)器Music_Count:產(chǎn)生揚(yáng)聲器聲音頻率的分頻計(jì)數(shù)器SECL,SECH:秒的低位和高位MINL,M

5、INH:分的低位和高位HOURL,HOURH:時(shí)的低位和高位Disp_Temp:顯示存儲(chǔ)中間量第二章 程序模塊分析2.1 時(shí)鐘分頻模塊always(posedge Clk)beginif(Clk_Count1=244) /對(duì)計(jì)數(shù)器進(jìn)行判斷, 以確定Clk_1HZ 信號(hào)是否反轉(zhuǎn) begin Clk_1HZ<=Clk_1HZ; Clk_Count1<=0; endelse Clk_Count1<=Clk_Count1+1;end時(shí)鐘分頻模塊實(shí)現(xiàn)的功能的把系統(tǒng)時(shí)鐘(489HZ)分頻為Clk_1HZ(1HZ)提供時(shí)鐘工作頻率,Clk_Count1為定義的一個(gè)計(jì)數(shù)器,當(dāng)計(jì)到第244次時(shí)

6、,剛好經(jīng)過(guò)500ms(略有誤差),Clk_1HZ翻轉(zhuǎn)一次,人為制造出一個(gè)1HZ的時(shí)鐘。2.2 時(shí)鐘運(yùn)行模式模塊always(posedge Clk_1HZ or negedge Rst)if(!Rst)/系統(tǒng)復(fù)位 begin SECL<=0; SECH<=0; MINL<=0; MINH<=0; HOURL<=0; HOURH<=0; endelse begin if(!S1) /調(diào)節(jié)小時(shí) begin if(HOURL=9) begin HOURL<=0; HOURH<=HOURH+1; end else begin if(HOURH=2&

7、;&HOURL=3) begin HOURL<=0; HOURH<=0; end else HOURL<=HOURL+1; end end else if(!S2) /調(diào)節(jié)分鐘 begin if(MINL=9) begin MINL<=0; if(MINH=5) MINH<=0; else MINH<=MINH+1; end else MINL<=MINL+1; end else if(SECL=9) /一般運(yùn)行狀態(tài) begin SECL<=0; if(SECH=5) begin SECH<=0; if(MINL=9) begin

8、MINL<=0; if(MINH=5) begin MINH<=0; if(HOURL=9) begin HOURL<=0; HOURH<=HOURH+1; end else if(HOURH=2&&HOURL=3) begin HOURL<=0; HOURH<=0; end else HOURL<=HOURL+1; end else MINH<=MINH+1; end else MINL<=MINL+1; end else SECH<=SECH+1; end else SECL<=SECL+1;end此模塊描述

9、的是時(shí)鐘運(yùn)行的幾種形式,復(fù)位之后時(shí)分秒的高低位全給賦0,開(kāi)始計(jì)數(shù),按下S1鍵后,進(jìn)入調(diào)時(shí)模式,按下一次加1,再根據(jù)各種情況判斷是否進(jìn)位等,同理按下S2鍵后進(jìn)入調(diào)分模式,什么都不按下的情況下就是一般運(yùn)行狀態(tài),先從秒開(kāi)始判斷,9秒時(shí)秒低位給0,高位進(jìn)1,59秒時(shí)秒的高低位全給0,分的低位加1,還有9分59秒、59分59秒的情況等等,完全列舉出了時(shí)鐘運(yùn)行的各種可能,按情況處理。2.3掃描數(shù)碼管及蜂鳴模塊always(posedge Clk) begin Music_Count<=Music_Count+1; Sel<=Sel+1; /掃描累加 if(MINH=5&&MIN

10、L=9&&SECH=5) /在59 分50 秒開(kāi)始提示 begin if(SECL%2)=0) /在偶數(shù)秒開(kāi)始發(fā)聲 Spk<=Music_Count2; /嘀 else Spk<=0; end else if(MINH=0&&MINL=0&&SECH=0&&SECL=0) Spk<=Music_Count1; /嗒 else Spk<=0; end此模塊的功能是給3-8譯碼器一個(gè)掃描頻率為Clk的三位輸入,經(jīng)3-8譯碼器輸出后掃描八個(gè)數(shù)碼管,蜂鳴器實(shí)現(xiàn)的是整點(diǎn)報(bào)時(shí)功能。2.4數(shù)碼管顯示模塊always(Se

11、l) /三種掃描方式 begin if(!S1) begin case(Sel) 3'b111:Disp_Temp=4'b1111; 3'b110:Disp_Temp=4'b1111; 3'b101:Disp_Temp=4'b1010; 3'b100:Disp_Temp=MINH; 3'b011:Disp_Temp=MINL; 3'b010:Disp_Temp=4'b1010; 3'b001:Disp_Temp=SECH; 3'b000:Disp_Temp=SECL; endcase end els

12、e if(!S2) begin case(Sel) 3'b111:Disp_Temp=HOURH; 3'b110:Disp_Temp=HOURL; 3'b101:Disp_Temp=4'b1010; 3'b100:Disp_Temp=4'b1111; 3'b011:Disp_Temp=4'b1111; 3'b010:Disp_Temp=4'b1010; 3'b001:Disp_Temp=SECH; 3'b000:Disp_Temp=SECL; endcase end else begin case(

13、Sel) 3'b111:Disp_Temp=HOURH; 3'b110:Disp_Temp=HOURL; 3'b101:Disp_Temp=4'b1010; 3'b100:Disp_Temp=MINH; 3'b011:Disp_Temp=MINL; 3'b010:Disp_Temp=4'b1010; 3'b001:Disp_Temp=SECH; 3'b000:Disp_Temp=SECL; endcase end endalways(Disp_Temp) /數(shù)碼管顯示轉(zhuǎn)換 begin case(Disp_Temp)

14、 4'b0000:Display=7'b0111111; /0 4'b0001:Display=7'b0000110; /1 4'b0010:Display=7'b1011011; /2 4'b0011:Display=7'b1001111; /3 4'b0100:Display=7'b1100110; /4 4'b0101:Display=7'b1101101; /5 4'b0110:Display=7'b1111101; /6 4'b0111:Display=7'

15、b0000111; /7 4'b1000:Display=7'b1111111; /8 4'b1001:Display=7'b1101111; /9 4'b1010:Display=7'b1000000; /- default:Display=7'b0000000; /全滅 endcase end此模塊實(shí)現(xiàn)的是數(shù)碼管的顯示,分三種模式,第1種,調(diào)時(shí)模式,由于調(diào)節(jié)時(shí)鐘的對(duì)應(yīng)的位需要實(shí)現(xiàn)閃爍功能,所時(shí)按下調(diào)時(shí)(分)鍵時(shí)對(duì)應(yīng)的時(shí)(分)位必須暗下去,等鍵松開(kāi)時(shí)再回歸一般狀態(tài),即所有數(shù)碼管都亮,按下時(shí)按相應(yīng)位暗下去是通過(guò)掃描到相應(yīng)位時(shí)讓數(shù)碼管不顯示

16、實(shí)現(xiàn)的。第三章 時(shí)序仿真程序編譯通過(guò)后,進(jìn)行了一下仿真,設(shè)置Clk為2周期為2ms(近似489HZ),End Time設(shè)了100s,仿真結(jié)果如下圖。圖2 仿真結(jié)果圖在Rst復(fù)位端為從低變到高開(kāi)始計(jì)時(shí),計(jì)時(shí)Clk489次后秒的低位進(jìn)1,這里由于244次Clk上升沿后Clk_1HZ才翻轉(zhuǎn),故Clk太密集觀察困難,秒的低位到9以后秒高位進(jìn)1,同理到分以及時(shí),由于如果結(jié)束時(shí)間設(shè)得太長(zhǎng),仿真結(jié)果出來(lái)得太慢,此處只設(shè)了100s,下圖為放大后結(jié)果,計(jì)時(shí)Clk489次后秒的低位進(jìn)1。圖3 1秒跳變放大圖下圖為數(shù)碼管顯示放大后的仿真圖,可以看到,Sel為000時(shí),系統(tǒng)掃描到的是秒的低位,顯示為Display:0

17、111111,即顯示0,以此類(lèi)推,Sel為001時(shí),掃描到的是秒的高位,010時(shí)為分隔符“-”直到111時(shí)的高位,此處全部顯示為零,因?yàn)橛?jì)數(shù)還未到達(dá)1秒。圖4 數(shù)碼管顯示放大圖功能仿真結(jié)束后, 利用綜合工具對(duì)Verilog HDL源碼進(jìn)行綜合, 生成網(wǎng)表文件, 再根據(jù)該網(wǎng)表文件和所選可編程邏輯器件FPGA 進(jìn)行優(yōu)化、布局布線(xiàn), 然后進(jìn)行布線(xiàn)后仿真, 最后生成FPGA 碼流文件, 把該文件輸入可編程邏輯器件即可制成實(shí)際數(shù)字電路,最后在實(shí)驗(yàn)箱上運(yùn)行正常,所有功能均能實(shí)現(xiàn)。第四章 總結(jié)此次EDA課設(shè)是大學(xué)階段最后的一個(gè)課程設(shè)計(jì),所以本人也盡全力在有限的時(shí)間內(nèi)把數(shù)字鐘的基本功能都實(shí)現(xiàn)了,在付出了汗水的

18、同時(shí)也得到了很多的收獲,熟悉了設(shè)計(jì)流程,加強(qiáng)了設(shè)計(jì)理念,當(dāng)然最重要的還是提高了動(dòng)手能力,雖不敢說(shuō)程序全是原創(chuàng)吧,但也確實(shí)加入了很多思考,付出了不少汗水,但是在此之余由于時(shí)間等各方面所限,程序完成的也不是盡如人意,比如設(shè)置時(shí)和分的按鍵缺少一個(gè)防抖的功能,這就導(dǎo)致有時(shí)按下調(diào)節(jié)鍵時(shí)沒(méi)有反應(yīng)(鍵盤(pán)抖動(dòng)造成的),按下時(shí)間長(zhǎng)點(diǎn)就沒(méi)問(wèn)題,寫(xiě)程序的時(shí)候沒(méi)有考慮到這一步,導(dǎo)致最后程序也不好改,這是要我要吸取的教訓(xùn),也算是增加了一點(diǎn)微薄的經(jīng)驗(yàn)吧。最后還要感謝武老師和喬老師,學(xué)期末還一直不辭辛苦耐心地指導(dǎo)我們,讓我們基本都順利地完成了大學(xué)最后一個(gè)課設(shè)。參考文獻(xiàn)1來(lái)清民. 基于CAN 總線(xiàn)的多功能大型糧倉(cāng)遠(yuǎn)程監(jiān)測(cè)系統(tǒng)

19、J微計(jì)算機(jī)信息,2005,7:51- 532Bhasker J. A Verilog HDL Primer . Allentown(PA): Star Galaxy Press,1997附錄module clock(Clk,Rst,S1,S2,Display,Sel,Spk);input Clk; /489HZ 時(shí)鐘輸入input Rst; /復(fù)位輸入input S1; /小時(shí)調(diào)節(jié)輸入input S2; /分鐘調(diào)節(jié)輸入output Spk; /揚(yáng)聲器輸出output2:0 Sel; /七段碼管掃描驅(qū)動(dòng)output6:0 Display; /七段碼管顯示輸出reg Spk;reg2:0 Sel;

20、reg6:0 Display;reg10:0Clk_Count1; /產(chǎn)生1Hz 時(shí)鐘的分頻計(jì)數(shù)器 reg Clk_1HZ;reg2:0 Music_Count; /產(chǎn)生揚(yáng)聲器聲音頻率的分頻計(jì)數(shù)器reg3:0 SECL,SECH;reg3:0 MINL,MINH;reg3:0 HOURL,HOURH;reg3:0 Disp_Temp;always(posedge Clk)beginif(Clk_Count1=244) /對(duì)計(jì)數(shù)器進(jìn)行判斷, 以確定Clk_1HZ 信號(hào)是否反轉(zhuǎn) begin Clk_1HZ<=Clk_1HZ; Clk_Count1<=0; endelse Clk_Cou

21、nt1<=Clk_Count1+1;endalways(posedge Clk_1HZ or negedge Rst)if(!Rst)/系統(tǒng)復(fù)位 begin SECL<=0; SECH<=0; MINL<=0; MINH<=0; HOURL<=0; HOURH<=0; endelse begin if(!S1) /調(diào)節(jié)小時(shí) begin if(HOURL=9) begin HOURL<=0; HOURH<=HOURH+1; end else begin if(HOURH=2&&HOURL=3) begin HOURL<=

22、0; HOURH<=0; end else HOURL<=HOURL+1; end end else if(!S2) /調(diào)節(jié)分鐘 begin if(MINL=9) begin MINL<=0; if(MINH=5) MINH<=0; else MINH<=MINH+1; end else MINL<=MINL+1; end else if(SECL=9) /一般運(yùn)行狀態(tài) begin SECL<=0; if(SECH=5) begin SECH<=0; if(MINL=9) begin MINL<=0; if(MINH=5) begin MI

23、NH<=0; if(HOURL=9) begin HOURL<=0; HOURH<=HOURH+1; end else if(HOURH=2&&HOURL=3) begin HOURL<=0; HOURH<=0; end else HOURL<=HOURL+1; end else MINH<=MINH+1; end else MINL<=MINL+1; end else SECH<=SECH+1; end else SECL<=SECL+1;endalways(posedge Clk) begin Music_Coun

24、t<=Music_Count+1; Sel<=Sel+1; /掃描累加 if(MINH=5&&MINL=9&&SECH=5) /在59 分50 秒開(kāi)始提示 begin if(SECL%2)=0) /在偶數(shù)秒開(kāi)始發(fā)聲 Spk<=Music_Count2; /嘀 else Spk<=0; end else if(MINH=0&&MINL=0&&SECH=0&&SECL=0) Spk<=Music_Count1; /嗒 else Spk<=0; endalways(Sel) /三種掃描

25、方式 begin if(!S1) begin case(Sel) 3'b111:Disp_Temp=4'b1111; 3'b110:Disp_Temp=4'b1111; 3'b101:Disp_Temp=4'b1010; 3'b100:Disp_Temp=MINH; 3'b011:Disp_Temp=MINL; 3'b010:Disp_Temp=4'b1010; 3'b001:Disp_Temp=SECH; 3'b000:Disp_Temp=SECL; endcase end else if(!S2) begin case(Sel) 3'b111:Disp_Temp=HOURH; 3'b110:Disp_Temp=HOURL; 3'b101:Disp_Temp=4'b1010; 3'b100:Disp_Temp=4'b1111; 3'b011:Disp_Temp=4'b1111; 3'b010:Disp_Temp=4'b1010; 3'b001:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論