基于FPGA的多功能數(shù)字鐘設(shè)計
現(xiàn)場可編程門陣列(Field Programmable Gate Arrays,FPGA)是一種可編程使用的信號處理器件。通過改變配置信息,用戶可對其功能進(jìn)行定義,以滿足設(shè)計需求。通過開發(fā),F(xiàn)PGA能夠?qū)崿F(xiàn)任何數(shù)字器件的功能。與傳統(tǒng)數(shù)字電路相比,F(xiàn)PGA具有可編程、高集成度、高可靠性和高速等優(yōu)點。
1 數(shù)字鐘總體設(shè)計
本文以FPGA平臺為基礎(chǔ),在QuartusⅡ開發(fā)環(huán)境下設(shè)計開發(fā)多功能數(shù)字鐘。數(shù)字鐘實現(xiàn)的功能如下:
1)計時功能:進(jìn)行正常的時、分、秒計時,并由6只8段數(shù)碼管分別顯示時、分、秒時間。
2)校時功能:當(dāng)時校時按鍵按下時,計時器時位迅速增加,并按24小時循環(huán);當(dāng)分校時按鍵按下時,計時器分位迅速增加,并按60分循環(huán)。
3)整點報時功能:當(dāng)計時到達(dá)59分53秒時開始報時,在59分53秒、55秒、57秒蜂鳴聲頻率為512 Hz;到達(dá)59分59秒為最后一聲報時,蜂鳴聲頻率為1 kHz.
4)世界時鐘功能:默認(rèn)當(dāng)前顯示時間為北京時間(GMT+8),當(dāng)按下世界時按鍵時,顯示時間將轉(zhuǎn)換為格林威治標(biāo)準(zhǔn)時(GMT)。數(shù)字鐘電路的模塊框圖,如圖1所示。
2 功能模塊的工作原理及設(shè)計實現(xiàn)
系統(tǒng)主要由6大模塊組成,即分頻模塊、計時模塊、校時模塊、譯碼顯示模塊、整點報時模塊和世界時鐘模塊。
2.1 分頻模塊的工作原理及設(shè)計實現(xiàn)
本設(shè)計選用的FPGA開發(fā)板板載20 MHz有源晶振,為了得到占空比50%的1 Hz時基脈沖及2 kHz方波信號(用于驅(qū)動譯碼顯示模塊以及為整點報時模塊提供不同頻率的信號以產(chǎn)生不同音調(diào)的聲音),需要對板載時鐘信號進(jìn)行分頻。分頻模塊采用VHDL語言實現(xiàn),對20 MHz時鐘信號分別進(jìn)行兩千萬和一萬分頻。具體實現(xiàn)代碼如下:
2.2 計時模塊和校時模塊的工作原理及設(shè)計實現(xiàn)
計時模塊由60進(jìn)制秒計數(shù)器、60進(jìn)制分計數(shù)器和24進(jìn)制時計數(shù)器級聯(lián)構(gòu)成,采用同步時序電路實現(xiàn)。當(dāng)計數(shù)器處于正常計數(shù)狀態(tài)時,3個計數(shù)器的時鐘信號均為1Hz時基脈沖,秒計數(shù)器對1 Hz的時基脈沖進(jìn)行計數(shù),其進(jìn)位輸出信號cos_in作為分計數(shù)器的使能信號,而分計數(shù)器的進(jìn)位輸出信號com_in又作為時計數(shù)器的使能信號。在計時模塊的基礎(chǔ)上,數(shù)字鐘通過增加兩個按鍵分別實現(xiàn)對小時和分鐘的調(diào)整。這兩個按鍵能夠產(chǎn)生時計數(shù)器和分計數(shù)器的另一路使能信號,即按下時校時按鍵時,時計數(shù)器使能信號持續(xù)有效,由于采用同步時序電路,時計數(shù)器能夠持續(xù)增加,達(dá)到調(diào)整時間的目的。按下分校時按鍵時原理相同。此外,校時模塊還對校時按鍵進(jìn)行防抖動處理,提高系統(tǒng)的可靠性和抗干擾能力。
2.3 譯碼顯示模塊的工作原理及設(shè)計實現(xiàn)
譯碼顯示模塊采用原理圖方式實現(xiàn)。本設(shè)計選用的FPGA開發(fā)板設(shè)有6位8段共陽極數(shù)碼管,并采用動態(tài)顯示方式。計時模塊輸出秒低位、秒高位、分低位、分高位、時低位、時高位共6x4路信號,經(jīng)由74151數(shù)據(jù)選擇器選擇1×4路信號,該信號通過74248顯示譯碼器得到驅(qū)動8段數(shù)碼管的1組段選信號(段碼)。同時,2 kHz方波信號經(jīng)由74160分頻得到3路信號,驅(qū)動74151及74138 3:8譯碼器產(chǎn)生位選信號(位碼)。