趙穎 李永康 蘇巖淇 薛玲月 楊熠欣 劉立波
摘要:為了實現簡易電子鐘的功能,以FPGA應用設計為基礎,使用Verilog HDL 語言編寫并且使用Quartus Ⅱ進行仿真。本設計包含計時模塊、譯碼顯示模塊,實現設計功能且驗收效果良好。
關鍵詞:簡易電子鐘;Verilog;FPGA
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2019)10-0206-02
開放科學(資源服務)標識碼(OSID):
電子鐘已經成為人們日常生活中不可缺少的必需品,廣泛應用于個人家庭、辦公室、劇場等公共場所,鐘表的數字化給人們的生活、工作、學習、娛樂等帶來了極大的方便。電子鐘相比于老式鐘表能夠更加精準,而且大幅度地提高了鐘表以前的報時功能。比如,定時自動報警系統、按時自動打鈴系統、定時廣播等所有這些功能,都是以電子鐘為基礎的。因此,電子鐘對于人們來說有著非常重要、現實的意義。
1 原理
Verilog是廣泛應用的硬件描述語言,可以用于硬件設計流程的建模、綜合、模擬等多個階段。
1.1 計時模塊
模塊功能正常計時,即每秒讀一次數,則秒表加1,如果秒計時滿60,則進1給分計時;若分計時滿60,則進1給小時計時;若小時計時滿12,則清零。從功能上來說分別為模60計數器,模60計數器以及模12計數器。如圖1所示。
1.2 譯碼顯示模塊
如下圖,為3-8譯碼器的原理圖以及真值表,3個輸入位a[2:0]可能會出現8種情況為:000、001、010、011、100、101、110、111,這樣就可以控制8個輸出位 y[7:0]相對應的某1位輸出為“0”。如圖2所示。
4 仿真
如圖7所示:
通過仿真波形圖能夠看出,當q[15…12]為小時的十位,q[11…8]為小時的個位時分別計數0001、0010(即12),而q[7…4]為分的十位,q[3…0]為分的個位分別計數0101、1001(即59)時,在下一個時鐘CLK的作用下計時器翻轉到01時00分,然后,計數器繼續自然的遞增累加計數,完成小時計數器“12翻1”,分計數器為8421BCD碼60進制計數器的計時功能。設計及仿真結果符合設計要求,達到預期的效果。
5 驗證
驗證數據 如表3所示:
6 總結
在幾周的時間里,本設計最終順利完成,其功能可以基本實現。在實驗中遇到的問題通過上網查找資料、翻閱書籍也基本解決。
參考文獻:
[1] 陳賾.CPLD/FPGA與ASIC設計實驗教程[M].2版.北京:科學出版社,2010.
【通聯編輯:唐一東】