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