曾健 蘇巖淇 李永康 趙穎 王穎
摘要:為了實現模擬簡易電子鐘的功能,以FPGA,Verilog語言為基礎,具體包含時鐘主控模塊,分頻模塊,七段譯碼器顯示模塊實現了對電子鐘的設計,驗證效果良好。
關鍵詞:簡易電子鐘;Verilog;FPGA
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)06-0250-02
電子鐘已經成為人們日常生活中必不可少的必需品,廣泛用于個人家庭、辦公室、劇場等公共場所,鐘表的數字化給人們的生活、學習、工作、娛樂帶來極大的方便。電子鐘比老式鐘表能更精確,而且大大地擴展了鐘表原先的報時功能。諸如,定時自動報警、按時自動打鈴、定時廣播等,所有這些,都是以鐘表數字化為基礎的。因此,研究電子鐘有著非常現實的意義。
1 原理
Verilog是當下廣泛使用的硬件的描述語言,可以運用在硬件設計流程當中的綜合,建模和模擬等多個階段。
1.1 計時模塊
模塊的功能為每秒鐘讀一個數,秒表一次加1滿60進1加到分鐘,分鐘計時滿60進1加入小時,小時滿12置一。功能上是兩個模60計數器和一個模12計數器。
1.2 譯碼顯示模塊
譯碼器的框圖和真值表如下,3個輸入端出現8種組合可能:000——111,就可以控制8個的輸出y[7:0]其中的1位輸出為“0”。
1.3七段譯碼器
七段譯碼器框圖和真值表如下,4個輸入口16種組合可能,7個輸出口y[6:0]分別控制數碼管的亮或者滅,從而體現出對應的16個數字。
2 總體設計
經過分頻模塊將調整好的信號(50M~10HZ)送入時鐘主模塊,主模塊包含設置時間、復位等功能,主模塊運行實現電子鐘的功能,最后由顯示模塊進行數碼管顯示時間完成表達電子鐘現象的功能。
3 詳細設計
3.1功能要求
1)小時計數器為“12翻1”,分計數器為8421BCD碼60進制計數器。
2)在Quartus Ⅱ軟件平臺上建立計數器電路的頂層電路文件并完成編譯和仿真。
3.2信號說明
輸入變量:時鐘CLK,直接清零RESET。
輸出變量:小時計時信號為q[15…8],其中,q[15…12]為小時的十位,q[11…8]為小時的個位;q[7…0]為分計時信號,其中,q[7…4]為分的十位,q[3…0]為分的個位,上述計時信號的輸出均采用8421BCD碼。
3.3功能原理
3.4框圖頂層文件
4 仿真
時鐘主模塊程序經軟件仿真輸出的波形如下圖所示
從仿真圖中看出當時鐘的十位和個位以及分鐘的十位和個位分別顯示1,2,5,9時,下一個CLK時鐘信號直接會使顯示變為0,1,0,0。從而完成了分鐘60進一,小時12翻一的功能,現象明顯,效果良好。
5 驗證
數碼管顯示分鐘60進一,時針12翻一,輸入時鐘信號,數碼管顯示12進制的電子鐘現象,經過驗證,功能完整,運行效果良好。
參考文獻:
[1] 張振榮,晉明武.MCS-51單片機原理及實用技術[M].北京:人民郵電出版社,2000.
[2] 褚振勇,翁木云.FPGA設計及應用[M].西安:西安電子科技大學出版社,2002.
【通聯編輯:唐一東】