李冠霖,張寶玲
(航天工程大學,北京 101416)
使用Verilog HDL方法可實現數字電路的設計過程,數字鐘不但可以顯示時間,還可完成如時間核對、鬧鈴等簡易功能,與PCB編程法相比,規避了搭建過程煩瑣、不易有效布局線路等弊端。此編程語言不但具有易操作、可視化強的特點,對較大規模集成電路或單片機而言,引入Verilog HDL編程語言還可得到多數設備兼容,既可生成設計的時鐘產品,還可適當優化電路資源,當存在不同模塊的設計使用需要時,還可靈活設置脈沖,并通過相關設備實現仿真。本文對基于Verilog HDL原理的數字時鐘設計框架、各部分功能、仿真過程進行論述。
數字時鐘需具備現在時間的顯示功能,準確向用戶呈現對應時間的時、分、秒信息,即隨著時間的推移,數字時鐘需在每秒內完成一次數字變動,當用戶發現時刻不符時,還可靈活調整校對時間,并可根據需要設置鬧鐘或計時器功能。計時器以倒計時形式完成時間的顯示與變換,因此可將整個數字時鐘系統分為四個模塊,分別是以1 Hz為頻率的計時器模塊、時間校對模塊、鬧鈴模塊、倒計時模塊,不同模式可通過時鐘的按鈕轉換操作,若對應功能非用戶選擇功能,還需通過反復按鍵方式達到預期目的;還可在按下對應按鍵時,在屏幕上顯示對應功能,并將對應譯碼動態存儲記錄,也可在屏幕上有所顯示[1]。
由于本時鐘系統各部分功能具有分支獨立特點,為此可通過由上到下的方式,從用戶感知端起完成時鐘功能的設計,在編寫代碼時使用Verilog HDL編程語言,加入對應邏輯符號,實現分頻和時間單位的顯示功能,也可用對應時間變量形式表示各時間單位。當時間完成以秒為單位的變換后,即進行一次脈沖信號的發射與接收過程,信號不但變化頻率極快,在對應秒單位從00變為59后,即進行下一次循環,對應表示分鐘的單位值加1,同理當分單位從00變換到59后,表示小時的單位值加1小時的取值范圍為0~23,以此類推完成時間的更迭與變換過程[2]。
對應時鐘電路在設計時,不但需保證上述模塊功能的良好執行,還可通過在電路內分別設置振蕩器和分頻器的方法,完成對應時間的核準與校對過程,將時間校準電路連接到對應時間的計數器后,再連接譯碼器和對應時間單位在時鐘的顯示器,進而提升時鐘顯示時間的準確性。也可根據功能需要,將四個主要模塊繼續細化為模式轉換電路、防抖按鍵模塊、顯示器模塊、譯碼器模塊、供電模塊等。因編程方式類似于C語言,在寫入對應代碼時,可將主要功能預先設置為不同的mode模式,即對應數字編碼與功能保持一一對應關系,同時也需注意部分功能可同時作用。例如,當鬧鐘響起時,仍可顯示當前時間,即功能的同時作用性需在設計時具備。另外,考慮到編程語言中的變量屬性,對編程條件有一定限制,確定計數器進制和對應圖形文件、文本文件在時鐘程序中的生成嵌入方式,也可通過時間校準功能模塊與計時器模塊的連接,實現預期功能[3]。
時間顯示不但需要在時鐘屏幕上顯示3個時間單位(時、分、秒),還需根據時間的變換原理,在確保計數單位符合客觀事實規律的同時,將對應時鐘編碼方式使用8421碼,在確定好基本時間單位后,將屏幕顯示模塊與計數模塊相連。編程語言中有關于時鐘的庫文件,可通過設置不同變量的方式表示對應計時與顯示模塊的時鐘,當接收到一次時間變換脈沖信號后,對應秒變量完成一次自加運算,每增加一秒對應變量值加1,因時、分、秒存在對應臨界值,為此還需確保時間的顯示符合常規邏輯,若接收到脈沖信號后沒有發生對應時間變換,或對應顯示數的變換時間大于1秒、1分、1小時,即反應頻率不為1 Hz時,則需啟動時間校準模塊。也可將時間模塊的工作原理歸結為當產生一次脈沖信號時,即判斷對應計數單位的個位是否加到9,若加到9在十位加1,個位歸0重新計算;秒和分的十位數達到5,且個位為9時即不再計算,當個位與十位全部歸0后,即過去1小時,并產生一次進位信號。在確定各時間單位對應計數器后,計數器將通過譯碼形式將譯碼值轉換到時鐘顯示屏上,由于對應顯示屏一般由七組條狀光源組成,不但可顯示0~9的對應值,還可根據二極管的發光原理,在電路內部完成一次高低電平的轉換,也需加入限流電阻防止其內部出現短路燒壞器件的現象出現。
時間校準模塊功能的實現需通過設置時間校準變量方式,即判斷對應時間若符合時間校準條件后,也可通過設置按鍵變量方式,即用戶按下按鍵后,就完成一次脈沖和功能轉換過程。還可將內部工作原理通過仿真軟件實現,當用戶提出一次時間校準需求后,即可根據編譯器工作原理,發出對應脈沖信號實現時間同步校正功能,此部分電路工作原理具有邏輯性,即通過判斷是否符合校準條件方式,完成一次電路開關的打開或閉合過程,為提升電路觸發器的穩定性,也需通過電路校正方式實現。
當用戶提出模式轉換需求后,即可通過編程方式完成模式的轉換,將對應的四大功能分別用1~4的代碼實現,每當用戶按下一次功能轉換按鈕時,則對應mode值加1,初始值為1,變換區間為1~4,并通過設置判斷語句,即當mode值為4時,用戶此時按下功能轉換按鍵,對應模式又將變為1,以此類推完成模式的轉換過程。轉換需求也可被看作分頻模式,使用分頻器實現預期功能,并可實時調節時鐘的工作頻率,利用時鐘各單位的自加原理,實現時鐘功能的分頻,在完成一次分頻需求后,即發出一次信號脈沖。此時,需要判斷時鐘的振蕩情況與是否達到計數的最大值,若達到則此時計數過程需停止,并完成一次反相型號的輸出過程,若反之則對計數值完成一次自加,繼續重復上述過程。另外,分頻器的工作頻率大約為10 Hz,脈沖信號的輸入輸出過程體現分頻特點,并根據計數器的工作原理實現高效分頻。
鬧鈴模塊則通過對應模式按鈕到達對應功能后,通過判斷語句或根據用戶設置的響鈴時間,當系統對應的時間與用戶設置時間完全一致時,鬧鈴則會響一次,當用戶提出修改響鈴時間需求時,此時鬧鐘模式無須改變,秩序將對應時間修改為用戶預期時間,即可完成鬧鐘時間的變換過程。
倒計時模塊不但需確保時鐘具有實時暫停、繼續計時的基本功能,還可根據需要重新計時,進而完成一次計時過程。一般倒計時功能的實現,需要對應系統存在100 Hz的信號,當用戶按下按鍵后,即完成一次脈沖信號的發射過程,用戶按下暫停按鈕后倒計時模塊將暫停作業,時間將定格在用戶按下暫停鍵前的對應時間節點,若用戶不想繼續進行計時功能,則可通過再按一次鍵的方式,讓倒計時模塊歸0,進而重新完成倒計時功能操作。
若需實現各項時鐘基本功能,還可通過輔助添加防抖模塊,即用戶按下時鐘按鍵后,規避了用戶無意觸碰操作按鈕,對操作帶來的不便,也可通過添加防抖軟件方式,讓計時器實現對應功能。時間顯示模塊則由6個高清顯示燈管組成,不但讓整個時鐘系統具有可編程的操作特性,還可確保其功能的良好執行與各項功能的共同運行機制。另外,對各部分時間單位進行編譯的模組,需使用二進制方式表示,完成對代碼編譯的譯碼器則可對輸入譯碼無損編譯,還可添加對應的掃描功能,以完成對時間間隔的動態測控,符合人體工程學的工作原理,此部分功能的實現主要靠發光二極管和顯示屏方式實現。
數字時鐘功能的實現與仿真過程可通過將對應編程文件添加到Verilog HDL軟件方式,實現電路的基本邏輯是否符合預期值。首先評估電路的各項功能和電路是否符合時序性特點,當完成電路基本連線,并按實驗步驟完成對各個模塊功能的簡單測試仿真后,即可判斷出設計的電路是否具備良好的應用性與功能性,并準確獲得電路運行需具備的各項參數值。
Verilog HDL是一種常見的數字邏輯電路編程方式,其語言具有可編程性,代碼具有易理解性,且編程語言相對簡單,無須設置過多變量和語句判斷即可實現時鐘的基本功能。同時,程序具有良好的仿生機制,與石英鐘相比,數字邏輯電路時鐘利用電子信息的工作原理,用較低成本實現較完備的功能,不但在單片機領域有所應用,還可根據使用者提出的日益豐富需求,進一步提升時鐘功能性與實用性。