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