多功能數(shù)字鐘設計(Verilog語言編寫)_第1頁
多功能數(shù)字鐘設計(Verilog語言編寫)_第2頁
多功能數(shù)字鐘設計(Verilog語言編寫)_第3頁
多功能數(shù)字鐘設計(Verilog語言編寫)_第4頁
多功能數(shù)字鐘設計(Verilog語言編寫)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、多功能數(shù)字鐘設計ULI ULI UU 院系:電光學院班級:* 學號:* 姓名:* 指導老師:* 時間:2010.4.20.摘要:利用QuartusII軟件設計一個數(shù)字鐘,利用模塊化的程序設計思想,核心模塊均采用Verilog語言編寫(譯碼顯示模塊采用原理圖設計),軟件仿真調試 編譯成功后,再下載到SmartSOP僅驗系統(tǒng)中。經過硬件測試,查找軟件設計缺 陷,并進一步完善軟件,最終設計得到較為滿意的多功能數(shù)字鐘。關鍵詞:QuartusII;多功能數(shù)字鐘;模塊化;Verilog; 可編程;Abstract: Using the QuartusII software design a digital

2、 bell with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software.

3、Keywords: QuartusII ; digital bell; blocking method; VHDL; programmable; hardware目錄設計內容簡介 3設計要求說明 3方案論證(整體電路設計原理) 3各子模塊設計理 5分頻模塊: 5計數(shù)模塊: 7- -校準模塊程序實現(xiàn): 8- -秒計數(shù)模塊程序實現(xiàn): 9- -分計數(shù)模塊程序實現(xiàn): 10- -時計數(shù)模塊程序實現(xiàn): 10整點報時模塊: 12鬧鐘設定模塊: 13- -鬧鐘調節(jié)模塊程序實現(xiàn): 14- -輸出信號選擇模塊程序實現(xiàn): 14彩鈴模塊: 15譯碼顯示模塊: 18萬年歷模塊: 19- -日計數(shù)模塊程序設計: 20-

4、-月計數(shù)模塊程序設計: 23- -年計數(shù)模塊程序設計: 23- - 萬年歷波形仿真結果: 25結論: 26實驗感想: 26附圖: 27設計內容簡介設計一個數(shù)字計時器, 可以完成 00:00:00 到 23:59:59 的計時功能, 并在控制電路的作用下具有保持、清零、快速校時、快速校分、快速較秒等功能。在設計的電路具有上述基本功能的前提下, 我又進行了功能擴展: 整點報時、 鬧鐘設置、彩鈴和萬年歷功能。 (由于時間限制,萬年歷功能未經硬件測試,僅通過軟件層面簡單調試仿真)設計要求說明設計基本要求:1、能進行正常的時、分、秒計時功能;3、 K1 是系統(tǒng)的使能開關(4、 K2 是系統(tǒng)的清零開關(2

5、、分別由六個數(shù)碼管顯示時分秒的計時;K1=0 正常工作, K1=1 時鐘保持不變) ;K2=0 正常工作, K2=1 時鐘的分、秒全清零)5、 K3 是系統(tǒng)的校分開關(K3=0 正常工作, K3=1 時可以快速校分)6、 K4 是系統(tǒng)的校時開關(K4=0 正常工作, K4=1 時可以快速校時) ;設計提高部分要求1、使時鐘具有整點報時功能(當時鐘計到59 53” 時開始報時,在59 53”, 5955”,5957”時報時頻率為512Hz, 59 59”時報時頻率為1KHz ) ;2、鬧表設定功能;方案論證(整體電路的工作原理)本實驗在實現(xiàn)實驗基本功能的基礎上, 加入了整點報時、 鬧鐘設置、 彩

6、鈴和萬年歷顯示調節(jié)功能。整個電路由計數(shù)模塊、分頻模塊、校時、校分較秒模塊,清零模塊、保持模塊,整點報時模塊,鬧鐘設定模塊、彩鈴模塊,以及萬年歷模塊構成。 (如下圖所示)基本功能: 數(shù)字計時器基本功能是計時, 因此首先需要獲得具有精確振蕩時間的脈振信號,以此作為計時電路的時序基礎,實驗中可以使用的振蕩頻率源為 48MHZ ,通過分頻獲得所需脈沖頻率( 1Hz,2Hz , 4Hz,1KHz,500Hz,6MHz ) 。經過 Verilog 編程可以輕松獲得較為精確的分頻信號。 在計數(shù)模塊中, 秒位和分位分別通過編程用模 60 計數(shù)器實現(xiàn), 時位通過 編程用模 24 計數(shù)器實現(xiàn)。校時、校分及校秒模塊

7、則通過語言選擇實現(xiàn)。清零及保持功能在 計數(shù)模塊中用判斷語句可輕松實現(xiàn)。 計數(shù)模塊總共輸出 6 路信號: 秒位的個、十位,分位的個、十位及時位的個、十位。整點報時:利用計數(shù)模塊的輸出作為報時模塊的輸入,當檢測到59' 53",59' 55”,59整點報時槿讀用神設定模塊彩玲榛塊萬年歷植庚(包 含設定模拄)譯碼顯示模塊實驗模塊原理圖57”時令報時模塊的輸出為500Hz, 59' 59”時令報時模塊的輸出為 1Kz.,驅動蜂鳴器產生不同的響聲。鬧鐘設定模塊:這里設計一個鬧鐘模塊,輸入為計數(shù)模塊的輸出及一系列調節(jié)信號,輸出接到譯碼模塊上。在鬧鐘模塊內部,核心模塊是一個

8、選擇模塊,選擇輸出的信號是鬧鐘顯示還 是正常的計數(shù)顯示。為了使鬧鐘模塊與計數(shù)模塊是相互獨立的,因此單獨設計模24 (鬧鐘小時)和模60 (鬧鐘分鐘)作為選擇模塊的輸入。設計程序語言的思想是,當檢測到與設 定鬧鐘相同的時、分位時就輸出一個信號1,并保存當前計數(shù)位(加 1)當檢測到當前信號與保存位相同時輸出信號恢復為0。(這個信號將作為鬧鈴結束的判斷信號)彩鈴模塊:本程序選用了一段悠揚的梁祝音樂,該模塊的輸入分別為 6MHz和4Hz,通過編程實現(xiàn)輸出為符合音律的不同頻率。程序實現(xiàn)的思想并不復雜,只要有樂譜可以實現(xiàn)各種不同的音樂輸出。蜂鳴器何時鳴叫取決于鬧鐘模塊的輸出。譯碼顯示模塊:本模塊沒有采用V

9、erilog語言實現(xiàn),通過搭建原理圖實現(xiàn)。顯示功能是通過數(shù)選器、譯碼器、碼轉換器和7段顯示管實現(xiàn)的。因為實驗中只用一個譯碼顯示單元,6個7段碼(用于顯示時分秒 ),所以通過1個24選4MUX和一個3-8譯碼器配合,顯示譯碼器采用7447,根據(jù)計數(shù)器的信號進行數(shù)碼管的動態(tài)顯示。萬年歷模塊:通過編程可以輕松實現(xiàn),原理與上述計數(shù)模塊,調節(jié)模塊很是類似。 由于未經硬件測試(時間限制),將在下面的子模塊介紹中給出軟件層面的實現(xiàn)和編譯調試結果。各子模塊設計原理本數(shù)字鐘設計主要用 Verilog語言實現(xiàn),嚴格采用了模塊化的程序設計思想,自頂向下逐步求精,模塊之間高度獨立。(僅譯碼顯示模塊采用原理圖搭建)下面

10、將分別介紹各主要子模塊及其子模塊以及算法語言的實現(xiàn)和部分波形仿真編譯調試結果。分頻模塊:(clkout 輸出為 1Hz, clkoutIK 輸出為 1Kz, clkout500 輸出為 500Hz,clkout2 輸出為2Hz,clkout6M 輸出為 6MH乙 clkout4 輸出為 4Hz.). _ _ 1 -.*1 WIL ,B.:ctkdiv1 .clk clkoutclkout 1kclkout500clkout2dkoutfiMcfkc>Lrt4.:insti .llB 于 -J i v r-ay i ijMic-a v , j| * r i if 譚 i 、 »

11、gmodule clkdiv(clk,clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4);input clk;output clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;reg clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;reg 31:0cnt,cnm,cnn,cmm,caa,cbb;always(posedge clk)/產生 1Hz 信號beginif(cnt= 32'd24000000)beginclkout<

12、=1'd1;cnt<=cnt+32'd1;endelse if(cnt=32'd48000000)beginclkout<=1'b0;cnt<=32'd0;endelsecnt<=cnt+32'd1;endalways(posedge clk)/beginif(cnm= 32'd24000)beginclkout1k<=1'd1;cnm<=cnm+32'd1;endelse if(cnm=32'd48000)beginclkout1k<=1'b0;cnm<=3

13、2'd0;endelsecnm<=cnm+32'd1;endalways(posedge clk)/beginif(cnn= 32'd48000)beginclkout500<=1'd1;cnn<=cnn+32'd1;endelse if(cnn=32'd96000)beginclkout500<=1'b0;cnn<=32'd0;endelsecnn<=cnn+32'd1;endalways(posedge clk)/beginif(cmm= 32'd12000000)begin

14、clkout2<=1'd1;cmm<=cmm+32'd1;endelse if(cmm=32'd24000000)beginclkout2<=1'b0;cmm<=32'd0;產生1KHz信號產生 500Hz 信號產生 2Hz 信號endelsecmm<=cmm+32'd1;endalways(posedge clk) /產生 6MHz言號begin if(caa= 32'd4) begin clkout6M<=1'd1; caa<=caa+32'd1; end else if(ca

15、a=32'd8) begin clkout6M<=1'b0; caa<=32'd0; end else caa<=caa+32'd1; end always(posedge clk) /產生 4Hz 信號begin if(cbb= 32'd6000000) begin clkout4<=1'd1; cbb<=cbb+32'd1; end else if(cbb=32'd12000000) begin clkout4<=1'b0; cbb<=32'd0; end else c

16、bb<=cbb+32'd1; end Endmodule ilkAA elkrtJ* A UK,1鎧AclkstAAcLk: /斕Aelkmt 瓦 QA除了 6MHz可以通過波形圖直接觀察,其他分頻在程序設計原理上都可以確定是正確的,通 過硬件可以作一定的觀察(或者對仿真時間設定作相應調整)。計數(shù)模塊: 計數(shù)模塊中包含三個校準模塊和三個計數(shù)模塊(分別對應著秒分時)。(secondclka 為秒脈沖輸入信號1Hz,secondclkb 為輸入校準信號用頻率 2Hz, K5jiaomiao、K3jiaofen、K4jiaoshi分別為校秒、校分、校時輸入信號,clkdff為D觸發(fā)器輸

17、入信號(去 開關抖動用),reset1K2為清零信號,startOKI為保持信號。輸出分別對應秒分時的個位和 十位)jishumokuatsecondcJkasl3.0secondclkbsh3.Ok5jiacrm 舊口ml3.OkSjiaofenmh3.0k4jiaoshihl3.Oclkdffhh3 .0resell k2startOki計數(shù)模塊封裝xiaozhun:second校準模塊>1 I A Wl I !/I 3 | |Ilf 蛇ClkSL3.O心 a&H3.Ostartco-"minuteelkresetMH3 0i秒計數(shù)模埃(模行。>: )111.

18、 s11 k用 ei|«-p e ! pa* ! »PI I IH IRIHII hi IP li> 1反* IM Pll* III!l I 111? hour:匚IkstartresetstartHH3 0分計麴模塊津60):時計數(shù)模塊(模24> ifpaiijiiiMBBiJiI Jia ianBij i 口/ iu。111 町u-i 叩 is. 二-校準模塊程序實現(xiàn):module xiaozhun( clka,clkb,cp,clko);input clka,clkb,cp; 正常進位信號頻率、校準頻率、校準使能信號 output clko;reg clk

19、o;alwaysbeginif(!cp) clko=clka;else clko=clkb;endEndmodule- 秒計數(shù)模塊程序實現(xiàn): module second(clk,reset,start,SL,SH,co);輸入計數(shù)時鐘清零信號、保持信號進位信號input clk; / input reset,start;/ output co=1'b0; / reg co;output3:0SL,SH;reg3:0SL,SH;reg7:0cnt;always(posedge clk or negedge reset)beginif( !reset)beginSL=4'd0;SH

20、=4'd0;cnt<=8'd0;end else begin if(!start) begin if(cnt=8'd59) begincnt<=8'd0;SL<=4'd0;SH<=4'd0; co<=1'b1;end elsebegin co=1'b0;cnt=cnt+8'd1;SL<=cnt%10; SH<=cnt/10; endendend endendmodule- 分計數(shù)模塊程序實現(xiàn):module minute(clk,reset,start,ML,MH,co);input

21、 clk; /輸入計數(shù)時鐘input reset,start; /清零信號、保持信號output co=1'b0;/進位信號reg co;output3:0ML,MH;reg3:0ML,MH;reg7:0cnt;always(posedge clk or negedge reset) begin if( !reset) begin ML=4'd0;MH=4'd0;cnt<=8'd0;end else begin if(!start) begin if(cnt=8'd59)begin cnt<=8'd0; ML<=4'd0

22、; MH<=4'd0; co<=1'b1; endelsebegin co=1'b0;cnt =cnt+8'd1;ML <=cnt%10; MH <=cnt/10; endend end end endmodule- 時計數(shù)模塊程序實現(xiàn):module hour(clk,reset,start,HL,HH);input clk;/輸入計數(shù)時鐘input reset,start; /清零信號、保持信號output3:0HL,HH;reg3:0HL,HH;reg7:0cnt;always(posedge clk or negedge reset

23、)beginif( !reset)beginHL=4'd0;HH=4'd0;cnt<=8'd0;endelsebeginif(!start)beginif(cnt=8'd23)begincnt<=8'd0;HL<=4'd0;HH<=4'd0;endelsebegincnt=cnt+8'd1;HL<=cnt%10;HH<=cnt/10;endendendendEndmodule(計數(shù)秒脈沖設為 48MHz時可以得到如下波形仿真,驗證計數(shù)器功能基本正確)計數(shù)模塊內部子模塊的連接示意圖如下所示,3個D

24、觸發(fā)器的作用分別為去除開關抖動。整點報時模塊:(輸入分別為秒位和分位以及報時所需的兩種頻率,輸出為驅動蜂鳴器的頻率)產 II !- bacunickbeep sl5.O sh3. OJb * J ml3.O0 i- i mnp.o * i clklkCIK500j instSxs Ijhi i | G aiqra 11 v !11 i 11 i rb|i i i 11 i 11module baoshi(sl,sh,ml,mh,clk1k,clk500,clkbeep );input3:0 sl,sh,ml,mh;input clk1k,clk500;output clkbeep;reg cl

25、kbeep;alwaysbeginif(mh=8'd5&&ml=8'd9&&sh=8'd5&&sl=8'd3)clkbeep=clk500;else if(mh=8'd5&&ml=8'd9&&sh=8'd5&&sl=8'd5) clkbeep=clk500;else if(mh=8'd5&&ml=8'd9&&sh=8'd5&&sl=8'd7)clkbeep=

26、clk500;else if(mh=8'd5&&ml=8'd9&&sh=8'd5&&sl=8'd9) clkbeep=clk1k;elseclkbeep=0;endendmodule鬧鐘設定模塊:1個輸出信鬧鐘設定模塊中包含 2個校準模塊,1個模60計數(shù)模塊,1個模24計數(shù)模塊和 號選擇模塊。(其中計數(shù)模塊與前面的類似,只是不含進位輸出信號)- Sl3 0SfO3 .01ii轉冏OJShO3.Gml3 0mlo3 0Imh3 0mho3 0hl3.OtllO3.0ritl3 0fiho3.0j !-ilkKirik

27、m?rjciKIKi.akm84KGstiinengrj鬧鐘模塊封裝:*kr | c -|"j " F _- | 甲 1 , , , I- " I ,f' )j naozTxuar sl3. 0) 1沖3. r : - L ml3, 0 . 一 mh3.O .1 hl3.0J 'r-hni.ojtrnl3.OI-rjj' ,一 iF中一 0ihiS.o)1 ihh以譏-a ib 1 ! Kslo3.0sho1,0mlo3.,0mho3.DMIOI3.0titia3.O km輸出信號選擇模抉鬧鐘調節(jié)模塊程序實現(xiàn):module tiaonao(

28、 clka,cp,clko);input clka,cp; 鬧鐘調節(jié)用頻率、調節(jié)輸入使能信號output clko;reg clko; always beginif(cp) clko=clka;else clko=0; endEndmodule模24計數(shù)模塊和模60計數(shù)模塊的程序源碼不再給出(與前面的計數(shù)模塊程序基本類似,只是不輸出進位信號,無清零保持信號)輸出信號選擇模塊程序實現(xiàn):(sl,sh,ml,mh,hl,hh 為正常計數(shù)輸入信號,iml,imh,ihl,ihh 為鬧鐘輸入信號, slo,sho,mlo,mho,hlo,hho為輸出信號接譯碼顯示模塊,k為顯示鬧鐘或正常計數(shù)選擇信號,k

29、m為響鈴判斷信號)modulenaozhxuan(sl,sh,ml,mh,hl,hh,iml,imh,ihl,ihh,slo,sho,mlo,mho,hlo,hho,k,km);input3:0sl,sh,ml,mh,hl,hh,iml,imh,ihl,ihh;input k;output3:0slo,sho,mlo,mho,hlo,hho;reg3:0slo,sho,mlo,mho,hlo,hho,xx;output km;reg km;initialbeginkm=0;Endalwaysbeginif(!k)beginbeginslo=sl;sho=sh;mlo=ml;mho=mh;hlo

30、=hl;hho=hh;endif(mlo=iml)&&(mho=imh)&&(hlo=ihl)&&(hho=ihh)beginxx=mlo;km=1;endelse if(mlo=xx )km=0;endelsebeginslo=4'd8;sho=4'd8;mlo=iml;mho=imh;hlo=ihl;hho=ihh;endendEndmodule彩鈴模塊:i songdHH工dk_4HzEpeag1rhigh 0med(3.OiowI3.Oj.i耕金模塊:. a tiaaani (梁祝源碼:(來自網絡)module song(

31、clk_6MHz,clk_4Hz,speaker,high,med,low);input clk_6MHz, clk_4Hz;output speaker;output3:0 high,med,low;reg3:0 high,med,low;reg13:0 divider,origin;reg7:0 counter;reg speaker;wire carry;assign carry=(divider=16383);always (posedge clk_6MHz)beginif(carry) divider=origin;elsedivider=divider+1;endalways (p

32、osedge carry)beginspeaker=speaker;endalways (posedge clk_4Hz)begincase(high,med,low)'b1:origin=7281;'b1:origin=8730;'b0:origin=9565;'b1:origin=10310;'b0:origin=10647;'b0:origin=11272;'b0:origin=11831;'b0:origin=12556;'b0:origin=12974;'b0:origin=13516;'b0:o

33、rigin=16383;endcaseendalways (posedge clk_4Hz) beginif(counter=63) counter=0;elsecounter=counter+1;case(counter)0: high,med,low='b1;1: high,med,low='b1;2: high,med,low='b1;3: high,med,low='b1;4: high,med,low='b1;5: high,med,low='b1;6: high,med,low='b1;7: high,med,low='

34、;b0;8: high,med,low='b0;9: high,med,low='b0;10: high,med,low='b0;11: high,med,low='b0;12: high,med,low='b0;13: high,med,low='b0;14: high,med,low='b1;15: high,med,low='b1;16: high,med,low='b0;17: high,med,low='b0;18: high,med,low='b0;19: high,med,low='b

35、0;20: high,med,low='b0;21: high,med,low='b0;22: high,med,low='b0;23: high,med,low='b0;24: high,med,low='b0;25: high,med,low='b0;26: high,med,low='b0;27: high,med,low='b0;28: high,med,low='b0;29: high,med,low='b0;30: high,med,low='b0;31: high,med,low='b

36、0;32: high,med,low='b0;33: high,med,low='b0;34: high,med,low='b0;35: high,med,low='b0;36: high,med,low='b1;37: high,med,low='b1;38: high,med,low='b0;39: high,med,low='b0;40: high,med,low='b1;41: high,med,low='b1;42: high,med,low='b1;43: high,med,low='b

37、0;44: high,med,low='b0;45: high,med,low='b0;46: high,med,low='b0;47: high,med,low='b0;48: high,med,low='b1;49: high,med,low='b1;50: high,med,low='b0;51: high,med,low='b0;52: high,med,low='b0;53: high,med,low='b1;54: high,med,low='b0;55: high,med,low='b

38、0;56: high,med,low='b1;57: high,med,low='b1;58: high,med,low='b1;59: high,med,low='b1;60: high,med,low='b1;61: high,med,low='b1;62: high,med,low='b1;63: high,med,low='b1;endcaseendendmodule譯碼器74138 、 顯示譯碼器7447 和數(shù)碼顯示譯碼顯示模塊:顯示電路主要由數(shù)據(jù)選擇器 24 選 4MUX 、管組成。顯示電路示意圖如下:因為實驗要求只用

39、一個顯示譯碼器7447 ,所以考慮用動態(tài)掃描顯示法進行數(shù)據(jù)顯示, 即每次只顯示一位, 按照一定的顯示時間間隔輪流顯示。 每個顯示位均為四位 二進 制數(shù),所 以需要數(shù) 選 器,要顯示的位有時分秒6位( HH,HL,MH,ML,SH,SL ) 。數(shù)選器的選擇信號有三位,所以要用一個模 8 循環(huán)計數(shù)器作為數(shù)選器的地址選擇端,供輪流選擇帶顯示的數(shù)據(jù),此外,還要用一個3-8 譯碼器來選擇數(shù)碼管(DIG位)來顯示對應的數(shù)據(jù)。(這部分功能實現(xiàn)未采用Verilog語言,原因是用原理圖現(xiàn)成的模塊搭建十分方便)DIG0SLSHMLMHHLHH8421a bc de f g顯示電路方框圖DIG1DIG2DIG3DI

40、G4DIG5自 EEL W 自 LS 省 亙 苞 苞 省 CO9L 。匚WO Q.EE X7.F O巴譯碼模塊內部連接原理圖:'4噪萬年歷模塊:YOf-iJ :O. T = , T 1-J 1151rAYIN口 jG- Tc Jj* 1 . J IF,B¥214扣-1曰-1 1- l&icV3N> ICTTTt.GfY4N二 !二Tr 1: I*G2AN¥5N>4dwjbb""L > m-G20NY6N3 ir -! t L lRY7N) !l.,. IK 1 -1>L即 3:S 作 PDEG萬年歷實現(xiàn)程序設計思想

41、:萬年歷顯示一般為正好用到8個數(shù)碼管。年、月、日分別對應3個模塊。年月的輸出除了連接譯碼顯示外,還要輸入到日的模塊中,以供各種不同情形的進位判斷(諸如大月、小月,平年閏年對應不同的日進位輸出)。年月日的設定信號,初始化信號與前面的校分、清零信號實現(xiàn)原理基本類似。至于當前數(shù)碼管的顯示同樣可以設計 一個輸出選擇模塊,選擇當前顯示(正常時分秒計數(shù)或鬧鐘設定界面或萬年歷顯示界面) 涉及開關不夠用問題可通過對開關編碼實現(xiàn)。日計數(shù)模塊程序設計:input15:0year,month;/ input clk; / input reset; / output co=1'b0;/module day(c

42、lk,reset,S1,S2,co,year,month);年、月作為輸入供日進位判斷使用每24小時的輸出進位作為日的輸入時鐘重置信號,恢復到“”進位信號 reg co;output3:0S1,S2;reg3:0S1,S2;reg15:0cnt;always(posedge clk or negedge reset)beginif(!reset)beginS1=4'd0;S2=4'd1;cnt<=16'd1;end elsebeginif(month=1)&&(cnt=31)begincnt<=16'd1;S1<=4'd

43、0;S2<=4'd1;co<=1'b1;endelse if(month=3&&cnt=31) begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=4&&cnt=30) begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=5&&cnt=31) begincnt<=16&

44、#39;d1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=6&&cnt=30)begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=7&&cnt=31)begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if (month=8&&cnt=

45、31) begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=9&&cnt=30) begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month= 10&&cnt=31)begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if

46、(month=11 &&cnt=30)begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=12&&cnt=31)begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelse if(month=2&&cnt=28&&year/4)begincnt<=16'd1;S1<=4'dO;S2<

47、;=4'd1;co<=1'b1;endelse if(month=2&&cnt=29&&(!(year/4) begincnt<=16'd1;S1<=4'dO;S2<=4'd1;co<=1'b1;endelsebeginco=1'bO;cnt=cnt+16'd1;S1<=cnt/10%10;S2<=cnt%10;endendendEndmodule月計數(shù)模塊程序設計:module month(clk,reset,S1,S2,co,cnt);input clk

48、;input reset;output co=1'b0;output cnt;reg co;output3:0S1,S2;reg3:0S1,S2;reg15:0cnt;always(posedge clk or negedge reset)beginif( !reset)beginS1=4'd0;S2=4'd1;cnt<=16'd1;endelsebeginif(cnt=8'd12)begincnt<=16'd1;S1<=4'd0;S2<=4'd1;co<=1'b1;endelsebeginc

49、o=1'b0;cnt=cnt+16'd1;S1<=cnt/10%10;S2<=cnt%10;endendendEndmodule年計數(shù)模塊程序設計:module year(clk,reset,S1,S2,S3,S4,cnt);input clk;input reset;output cnt;output3:0S1,S2,S3,S4;reg3:0S1,S2,S3,S4;reg15:0cnt;always(posedge clk or negedge reset)beginif( !reset)beginS1=4'd2;S2=4'd0;S3=4'd0;S4=4'd8;cnt<=16'd2008;endelsebeginif(cnt=8'd2030)begincnt<=16'd2008;S1<=4'd2;S2<=4'd0;S3<=4'd0;S4<=4'd8;endelsebegincnt=cnt+16'd1;S1<=cnt/1000%10;S2<=cnt/100%10;S3<=cnt/10%10;S4<=cnt%10;e

溫馨提示

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

最新文檔

評論

0/150

提交評論