應用VHDL語言設計數字系統,很多設計工作可以在計算機上完成,從而縮短了系統的開發時間,提高了工作效率。本文介紹一種以FPGA為核心,以VHDL為開發工具的數字秒表,并給出源程序和仿真結果。 1 系統設計方案 1.1 系統總體框圖 數字秒表主要有分頻器、計數模塊、功能控制模塊、勢能控制模塊和顯示輸出模塊組成。系統框圖如圖1所示。 本次的設計仿真選用以EPlC6Q240芯片為核心的FPGA開發板,該開發板提供了較完善的外圍周邊電路和信號接口,并提供了一塊4位7段數碼管的擴展板,為本次設計提供了硬件條件。在設計中,功能控制模塊根據控制選擇不同的功能狀態的時間輸出,通過勢能控制模塊和顯示輸出模塊驅動7段數碼管顯示相應的時間。 1.2 系統功能要求 (1)具有時鐘秒表系統功能要求顯示功能,用4個數碼管分別顯示秒和百分秒; (2)具有3種功能狀態:系統時間運行狀態,系統時間至零狀態,時鐘正常顯示狀態,通過輸入控制信號可以使系統在這3個狀態之間切換,使數碼管顯示相應狀態的時間; (3)開啟時間設定、關閉時間設定可通過控制信號中的時間調節來設置,在秒設置方面每按一下,秒就會自動加1,采用60進制計數,當計數到59時又會恢復為OO;百分秒設置方面每按一下,百分秒會自動加1,采用100進制計數,當計數到99時,向上進位并恢復O0。系統時間可以同單獨的至零信號,將數碼管顯示時間直接恢復到00.0O狀態。 2 模塊功能設計及仿真 2.1 分頻模塊 開發板提供的系統時鐘為50 MHz,通過分頻模塊3次分頻,將系統的時鐘信號分為100 Hz和1 000 Hz分別提供給計數模塊和勢能控制模塊作為時鐘控制信號。該模塊部分VHDL源程序如下: c1:process(clk_in) begin 2.2 計數模塊 計數模塊中,時鐘信號是100 Hz作為秒表的百分秒輸入,百分秒為100進制計數器,其進位輸出作為秒的計數時鐘,秒為60進制計數器。控制信號輸入端的begin—stop和reset信號控制計數器的開始、停止和至零。該模塊部分VHDL源程序如下,仿真結果如圖2所示: 2.3 勢能控制模塊 本次設計選用的開發板數碼管擴展板的數碼顯示采用的是4個數碼管動態掃描輸出,一般只要每個掃描頻率超過人的眼睛視覺暫留頻率24 Hz以上就可以達到點亮單個顯示而不閃爍,掃描頻率采用1 kHz信號。通過勢能控制,每個數碼管的顯示頻率為250 Hz,滿足顯示要求。該模塊部分VHDL源程序如下: 2.4 顯示控制模塊 本次設計選用的開發板在4位數碼管輸入方面只提供1個數據接口,用來動態顯示4位數據,在數據輸入信號方面要做到和勢能控制信號同頻率輸出,才能保證數碼顯示不會出錯或顯示移位。該模塊部分VHDL源程序如下: 同時通過控制信號示系統處在不同的功能狀態:系統時間運行狀態,系統時間至零狀態,時鐘正常顯示狀態。利用功能轉換信號實現3個功能狀態之間的轉換,并產生相應的控制信號去控制顯示輸出模塊不同狀態的正確顯示。其部分源程序 3 系統部分功能仿真 各部分模塊完成后,用QuartusⅡ對程序編譯、仿真、得到的仿真波形如圖3所示。 如下: 本系統采用的FPGA芯片為Altera公司的EPlC6Q240,用VHDL和QuartusⅡ軟件工具開發,設計輸入完成后,進行整體的編譯和邏輯仿真,然后進行轉換、延時仿真生成配置文件,最后下載至FPGA器件,完成結果功能配置,實現其硬件功能。 4 結 語 該系統運用先進的EDA軟件和VHDL,采用模塊法自頂向下的設計原則,并借助FPGA實現數字秒表的設計,充分體現了現代數字電路設計系統芯片化,芯片化設計的思想突破了傳統電子系統的設計模式,使系統開發速度快、成本低、系統性能大幅度地提升。 |