![ISE實(shí)現(xiàn)多功能數(shù)字鐘設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/bb70e3a43b81f56d0461c450839a08f7/bb70e3a43b81f56d0461c450839a08f71.gif)
![ISE實(shí)現(xiàn)多功能數(shù)字鐘設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/bb70e3a43b81f56d0461c450839a08f7/bb70e3a43b81f56d0461c450839a08f72.gif)
![ISE實(shí)現(xiàn)多功能數(shù)字鐘設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/bb70e3a43b81f56d0461c450839a08f7/bb70e3a43b81f56d0461c450839a08f73.gif)
![ISE實(shí)現(xiàn)多功能數(shù)字鐘設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/bb70e3a43b81f56d0461c450839a08f7/bb70e3a43b81f56d0461c450839a08f74.gif)
![ISE實(shí)現(xiàn)多功能數(shù)字鐘設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/bb70e3a43b81f56d0461c450839a08f7/bb70e3a43b81f56d0461c450839a08f75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)任務(wù)要求用FPGA器件和EDA技術(shù)實(shí)現(xiàn)多功能數(shù)字鐘的設(shè)計(jì)。基本功能要求:能顯示小時(shí)、分鐘、秒鐘(時(shí)、分用7段LED顯示器,秒用LED燈)。 小時(shí)計(jì)數(shù)器為同步24進(jìn)制; 要求手動(dòng)校時(shí)、校分。擴(kuò)展功能要求:任意時(shí)刻鬧鐘; 小時(shí)顯示(12/24)切換電路 自動(dòng)報(bào)整點(diǎn)時(shí)數(shù)。建立工程在ISE 14,9軟件中建立名為clock 的工程文件。芯片系列選擇Spatan3E,具體芯片型號(hào)選擇XC3S100E,封裝類型選擇CP132,速度信息選擇-5。原理設(shè)計(jì)頂層模塊設(shè)計(jì)創(chuàng)建名為top_c
2、lock的文件,本設(shè)計(jì)中頂層模塊用于調(diào)用各個(gè)子模塊,以及將鬧鐘與整點(diǎn)報(bào)時(shí)模塊綜合在內(nèi),頂層源碼如下:module top_clock(input Hchange,/24小時(shí),12小時(shí)切換信號(hào)input Change,/用來進(jìn)行時(shí)分和秒的顯示切換input CLK_50,/50MHz時(shí)鐘input nCR,EN,Clock_EN,input Adj_Min,Adj_Hour,Adj_Clock,/使能信號(hào),小時(shí)分鐘調(diào)時(shí)允許信號(hào),鬧鐘使能信號(hào)(撥鈕開關(guān))output 6:0 HEX0,output reg Led_Alarm,output reg 3:0 HEX/共陽極數(shù)碼管對(duì)應(yīng)端);reg Al
3、arm;wire ENM_L,ENM_H,ENH;wire 7:0 Hour_24,TMinute,TSecond,CHour,CMinute;/中間變量聲明,正常時(shí)鐘變量和鬧鐘時(shí)鐘變量wire 7:0 Hour_12,Display_HourT,Display_HourAdjust;reg 3:0 bcd=4b0000;/記載數(shù)碼管所要顯示的數(shù)據(jù)reg 7:0 Display_Hour,Minute;reg LD_6_RADIO;reg 7:0 sum,counter;supply1 Vdd; wire CP_1Hz;/=分頻=Divider50MHz U0(.CLK_50M(CLK_50)
4、,.nCLR(nCR),.CLK_1HzOut(CP_1Hz);/用以時(shí)鐘計(jì)數(shù)的CPdefparam U0.N = 25,U0.CLK_Freq = ,U0.OUT_Freq = 1;Divider50MHz U1(.CLK_50M(CLK_50),.nCLR(nCR),.CLK_1HzOut(CP_200Hz);/用以動(dòng)態(tài)掃描的CP,供給數(shù)碼管defparam U1.N = 18,U1.CLK_Freq = ,U1.OUT_Freq = 200;/=60進(jìn)制秒計(jì)數(shù)器=Scounter10 S0(TSecond3:0,nCR,EN,CP_1Hz);/秒:個(gè)位Scounter6 S1(TSeco
5、nd7:4,nCR,(TSecond3:0=4h9),CP_1Hz);/秒:十位/=60進(jìn)制分計(jì)數(shù)器=Mcounter10 M0(TMinute3:0,nCR,ENM_L,EN,CP_1Hz);/分:個(gè)位Mcounter6 M1(TMinute7:4,nCR,ENM_H,EN,CP_1Hz);/分:十位assign ENM_L=Adj_Min?Vdd:(TSecond=8h59);/分鐘按書上CP調(diào)時(shí)assign ENM_H=(Adj_Min&(TMinute3:0=4h9)|(TMinute3:0=4h9)&(TSecond=8h59); /24小時(shí)制 counter24 H0(Hour_2
6、47:4,Hour_243:0,nCR,ENH,EN,CP_1Hz);assign ENH = Adj_Hour?Vdd:(TMinute=8h59)&(TSecond=8h59);/=12小時(shí)與24小時(shí)進(jìn)制切換控制=assign Display_HourAdjust=(Hour_24=8h20)|(Hour_24=8h21)?(Hour_24-24):(Hour_24-18);assign Hour_12 = (Hour_248h13)?Hour_24:Display_HourAdjust;assign Display_HourT = Hchange?Hour_12:Hour_24;/=鬧鐘
7、=/-時(shí)鐘秒-/counter60 CCS(nCR,CP_1Hz,EN,CSecond7:4,CSecond3:0);/-時(shí)鐘分-counter60 CCM(nCR,CP_1Hz,CMin_EN,CMinute7:4,CMinute3:0);/-產(chǎn)生分使能信號(hào)-assign CMin_EN = (!EN & Adj_Clock & Adj_Min);/-時(shí)鐘時(shí)-Counter24C CCH(nCR,CP_1Hz,CHour_EN,CHour7:4,CHour3:0);/-產(chǎn)生時(shí)使能信號(hào)-assign CHour_EN = (!EN & Adj_Clock & Adj_Hour);/-鬧鐘響-a
8、lways(EN or Clock_EN) /鬧鐘開關(guān)beginif(EN & Clock_EN & (CHour = Display_HourT) & (CMinute = TMinute)Alarm = 1;else Alarm = 0;endalways(posedge CLK_50 or negedge EN or negedge Alarm) /表示鬧鐘的LEDbeginif(EN) Led_Alarm = 0;elsebeginif(Alarm) Led_Alarm = 0;else Led_Alarm = Led_Alarm;endend/alarm_clock AL0(Hour
9、24,Minute,CP_1Hz,Set_Alarm,Close_clock,nCR,KeySet_Hour_ev,KeySet_Minute_ev,LD_7,Alarm_Hour,Alarm_Minute);/=數(shù)碼顯示=always(Adj_Clock)/確定數(shù)碼管顯示鬧鐘還是正常時(shí)鐘beginif(Adj_Clock) begin Display_Hour = CHour;Minute = CMinute;endelse begin Display_Hour = Display_HourT;Minute = TMinute;endendalways(posedge CP_200Hz)be
10、ginif(Change=1)/數(shù)碼管進(jìn)行時(shí)分顯示begincase(HEX)4b1110: begin HEX=4b0111; bcd= Display_Hour 7:4; end/第一根數(shù)碼管顯示小時(shí)十位4b0111: begin HEX=4b1011; bcd= Display_Hour 3:0; end/第二根顯示小時(shí)個(gè)位4b1011: begin HEX=4b1101; bcd= Minute 7:4; end/第三根顯示分鐘十位4b1101: begin HEX=4b1110; bcd= Minute 3:0; end/第四根顯示分鐘個(gè)位default: begin HEX=011
11、1; bcd=Display_Hour 7:4; endendcaseendelse/數(shù)碼管進(jìn)行秒顯示,change為低電平時(shí)顯示秒begincase(HEX)4b1110: begin HEX=4b1101; bcd= TSecond 7:4; end/第三根顯示秒十位4b1101: begin HEX=4b1110; bcd= TSecond 3:0; end/第四根顯示秒個(gè)位default: begin HEX=1101; bcd= TSecond 7:4; endendcaseendendSEG7_LUT L0(HEX0,bcd);/調(diào)用數(shù)碼管子函數(shù)/=整點(diǎn)報(bào)時(shí)=assign LD_6
12、 = LD_6_RADIO; always(CP_1Hz) begin if(Minute7:0 = 8h00) & (counter7:0 (Hour_247:4*10 + Hour_243:0) begin LD_6_RADIO = CP_1Hz; end else begin LD_6_RADIO = 0; end end always(posedge CP_1Hz) if(Minute7:0=8h00) begin counter7:0=counter7:0+1b1; end else begin counter7:0=8h00; endendmodule頂層模塊設(shè)計(jì)圖子模塊設(shè)計(jì)50M
13、Hz分頻器module Divider50MHz(CLK_50M,nCLR,CLK_1HzOut);parameter N = 25;/位寬parameter CLK_Freq = ;/50MHz時(shí)鐘輸入parameter OUT_Freq = 1;/1Hz時(shí)鐘輸出input nCLR,CLK_50M;/輸入端口說明output reg CLK_1HzOut;/輸出端口說明reg N-1:0 Count_DIV;/內(nèi)部節(jié)點(diǎn),存放計(jì)數(shù)器的輸出值always(posedge CLK_50M or negedge nCLR)beginif(!nCLR) begin CLK_1HzOut = 0; C
14、ount_DIV = 0; endelse beginif(Count_DIV (CLK_Freq/(2*OUT_Freq)-1)/計(jì)數(shù)器模Count_DIV = Count_DIV + 1b1;/分頻器計(jì)數(shù)加1else beginCount_DIV = 0;/分頻器輸出清零CLK_1HzOut = CLK_1HzOut;/輸出信號(hào)取反endend endendmodule秒模10計(jì)數(shù)器module Scounter10(Q,nCR,EN,CP);input CP,nCR,EN;output Q;reg 3:0 Q;always (posedge CP or negedge nCR)begin
15、 if(nCR) Q = 4b0000;/異步清零else if(EN) Q = Q; /暫停計(jì)數(shù)else if(Q=4b1001) Q = 4b0000;else Q = Q + 1b1;end秒模6計(jì)數(shù)器module Scounter6(Q,nCR,EN,CP);input CP,nCR,EN;output Q;reg 3:0 Q;always (posedge CP or negedge nCR)begin if(nCR) Q = 4b0000;/異步清零else if(EN) Q = Q; /暫停計(jì)數(shù)else if(Q=4b0101) Q = 4b0000;else Q = Q + 1
16、b1;end分模10計(jì)數(shù)器module Mcounter10(Q,nCR,EN1,EN2,CP);input CP,nCR,EN1,EN2;output Q;reg 3:0 Q;always (posedge CP or negedge nCR)begin if(nCR) Q = 4b0000;/異步清零else if(EN1|!EN2) Q = Q; /暫停計(jì)數(shù)else if(Q=4b1001) Q = 4b0000;else Q = Q + 1b1;end分模6計(jì)數(shù)器module Mcounter6(Q,nCR,EN1,EN2,CP);input CP,nCR,EN1,EN2;output
17、 Q;reg 3:0 Q;always (posedge CP or negedge nCR)begin if(nCR) Q = 4b0000;/異步清零else if(EN1|EN2) Q = Q; /暫停計(jì)數(shù)else if(Q=4b0101) Q = 4b0000;else Q = Q + 1b1;end模24計(jì)數(shù)器module counter24(CntH,CntL,nCR,EN1,EN2,CP);input CP,nCR,EN1,EN2;output reg 3:0 CntH,CntL;/小時(shí)的十位和個(gè)位輸出always(posedge CP or negedge nCR)begini
18、f(nCR) CntH,CntL = 8h00; /異步清零else if(EN1|EN2) CntH,CntL 2|(CntL9)|(CntH)=2&(CntL)=3)CntH,CntL = 8h00; /對(duì)小時(shí)計(jì)數(shù)器出錯(cuò)時(shí)的處理else if(CntH)=2&(CntL)3) /進(jìn)行2023計(jì)數(shù)begin CntH =CntH; CntL = CntL + 1b1; endelse if(CntL=9) /小時(shí)十位的計(jì)數(shù)begin CntH =CntH + 1b1; CntL = 4b0000; endelse begin CntH = CntH; CntL = CntL + 1b1; e
19、nd endendmodule模60計(jì)數(shù)器module counter60(nCLR,Clk,EN,CntH,CntL); input nCLR,Clk,EN; output reg 3:0 CntH,CntL; always(posedge Clk or negedge nCLR) beginif(nCLR)CntH,CntL = 0; /異步清零else if(EN)CntH,CntL 5)|(CntL 9)|(CntH = 5)&(CntL = 9)CntH,CntL = 8h00; /異常處理else if(CntL = 9)begin CntH = CntH + 1b1;CntL =
20、 0;end /十位計(jì)數(shù)elsebegin CntH = CntH;CntL = CntL + 1b1;end /個(gè)位計(jì)數(shù) endendmodule數(shù)碼管顯示module SEG7_LUT(oSEG,iDIG);input 3:0 iDIG;/二進(jìn)制輸入output reg 6:0 oSEG; /7段碼輸出always(iDIG)begincase(iDIG)4h0: oSEG = 7b000_0001;4h1: oSEG = 7b100_1111;4h2: oSEG = 7b001_0010;4h3: oSEG = 7b000_0110;4h4: oSEG = 7b100_1100;4h5:
21、 oSEG = 7b010_0100;4h6: oSEG = 7b010_0000;4h7: oSEG = 7b000_1111;4h8: oSEG = 7b000_0000;4h9: oSEG = 7b000_0100;default: oSEG=7b;endcaseendendmodule各模塊仿真模10計(jì)數(shù)器測(cè)試代碼:/ Inputsreg nCR;reg EN;reg CP;/ Outputswire 3:0 Q;/ Instantiate the Unit Under Test (UUT)counter10 uut (.Q(Q), .nCR(nCR), .EN(EN), .CP(CP
22、);parameter PERIOD =40;/時(shí)鐘信號(hào)周期設(shè)置為40nsalways beginCP=1b0;#(PERIOD/2) CP=1b1;#(PERIOD/2);endinitial begin/ Initialize InputsnCR = 0;EN = 1;CP = 1;/ Wait 100 ns for global reset to finish#100; nCR=1;/ Add stimulus hereendendmodule模6計(jì)數(shù)器測(cè)試代碼:/ Inputsreg nCR;reg EN;reg CP;/ Outputswire 3:0 Q;/ Instantiate
23、 the Unit Under Test (UUT)counter6 uut (.Q(Q), .nCR(nCR), .EN(EN), .CP(CP);parameter PERIOD =40;/時(shí)鐘信號(hào)周期設(shè)置為40nsalways beginCP=1b0;#(PERIOD/2) CP=1b1;#(PERIOD/2);endinitial begin/ Initialize InputsnCR = 0;EN = 1;CP = 1;/ Wait 100 ns for global reset to finish#100;nCR =1;/ Add stimulus hereendendmodule
24、模24計(jì)數(shù)器測(cè)試代碼:/ Inputsreg nCR;reg EN;reg CP;/ Outputswire 3:0 CntH;wire 3:0 CntL;/ Instantiate the Unit Under Test (UUT)counter24 uut (.CntH(CntH), .CntL(CntL), .nCR(nCR), .EN(EN), .CP(CP);parameter PERIOD =40;/時(shí)鐘信號(hào)周期設(shè)置為40nsalways beginCP=1b0;#(PERIOD/2) CP=1b1;#(PERIOD/2);endinitial begin/ Initialize
25、InputsnCR = 0;EN = 1;CP = 1;/ Wait 100 ns for global reset to finish#100; nCR=1;/ Add stimulus hereendendmodule模60計(jì)數(shù)器測(cè)試代碼:/ Inputsreg nCLR;reg Clk;reg EN;/ Outputswire 3:0 CntH;wire 3:0 CntL;/ Instantiate the Unit Under Test (UUT)counter60 uut (.nCLR(nCLR), .Clk(Clk), .EN(EN), .CntH(CntH), .CntL(Cnt
26、L);parameter PERIOD =40;/時(shí)鐘信號(hào)周期設(shè)置為40nsalways beginClk=1b0;#(PERIOD/2) Clk=1b1;#(PERIOD/2);endinitial begin/ Initialize InputsnCLR = 0;Clk = 1;EN = 1;/ Wait 100 ns for global reset to finish#100;nCLR=1;/ Add stimulus hereendendmodule引腳分配NET CLK_50 TNM_NET = CLK_50;TIMESPEC TS_CLK_50 = PERIOD CLK_50 2
27、0 ns HIGH 50%;NET CLK_50 LOC = B8;NET nCR LOC = P11;NET EN LOC = L3;NET Adj_Min LOC = K3;NET Adj_Hour LOC = B4;NET Change LOC = G3;NET Led_Alarm LOC = N4;NET Adj_Clock LOC = E2;NET Clock_EN LOC = N3;NET HEX06 LOC = L14;NET HEX05 LOC = H12;NET HEX04 LOC = N14;NET HEX03 LOC = N11;NET HEX02 LOC = P12;NET HEX01 LOC = L13;NET HEX00 LOC = M12;NET HEX0 LOC = F12;NET H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代交通樞紐的鐵路貨運(yùn)效率優(yōu)化
- 深度解讀如何用云計(jì)算構(gòu)建高效智能制造平臺(tái)
- 國慶節(jié)巡航摩旅活動(dòng)方案
- 小學(xué)趣味運(yùn)動(dòng)會(huì)活動(dòng)方案策劃
- 2024年春七年級(jí)地理下冊(cè) 第九章 第二節(jié) 巴西說課稿 (新版)新人教版
- 23 梅蘭芳蓄須說課稿-2024-2025學(xué)年四年級(jí)上冊(cè)語文統(tǒng)編版001
- 8 千年夢(mèng)圓在今朝(說課稿)2023-2024學(xué)年部編版語文四年級(jí)下冊(cè)
- 5 協(xié)商決定班級(jí)事務(wù) 說課稿-2024-2025學(xué)年道德與法治五年級(jí)上冊(cè)統(tǒng)編版
- 2023八年級(jí)英語上冊(cè) Module 9 Population Unit 3 Language in use說課稿(新版)外研版
- 《10天然材料和人造材料》說課稿-2023-2024學(xué)年科學(xué)三年級(jí)下冊(cè)青島版
- 文檔協(xié)同編輯-深度研究
- 七年級(jí)數(shù)學(xué)新北師大版(2024)下冊(cè)第一章《整式的乘除》單元檢測(cè)習(xí)題(含簡單答案)
- 2024-2025學(xué)年云南省昆明市盤龍區(qū)高一(上)期末數(shù)學(xué)試卷(含答案)
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2025年中考語文復(fù)習(xí)熱搜題速遞之說明文閱讀(2024年7月)
- 班組現(xiàn)場(chǎng)5S與目視化管理
- 和達(dá)投資集團(tuán)(杭州)有限公司招聘筆試沖刺題2025
- 政企單位春節(jié)元宵猜燈謎活動(dòng)謎語200個(gè)(含謎底)
- 綜治工作培訓(xùn)課件
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫
評(píng)論
0/150
提交評(píng)論