唐家博
摘 要:利用FPGA制作數(shù)字秒表,外圍電路簡單,可靠性高,集成度高。本設(shè)計方法主要采用VerilogHDL語言進行仿真與設(shè)計,集成開發(fā)環(huán)境是Altera公司的quartusII。并把最終的結(jié)果用數(shù)碼管進行顯示。
關(guān)鍵詞:FPGA;VerilogHDL;數(shù)字秒表;quartusII
1 引言
FPGA,全稱是Field-Programmable Gate Array,即現(xiàn)場可編程門陣列,顧名思義該芯片的內(nèi)部電路邏輯是不確定的,可以通過軟件進行編程,這與傳統(tǒng)的cpu、mcu等存在著明顯的差異,而后者的內(nèi)部電路邏輯是確定的。對FPGA的編程也與普通的軟件編程是不一樣的,對FPGA的編程實際上是對FPGA內(nèi)部的電路邏輯進行編程,也就是所謂的HDL(hardware description language),即硬件描述語言。
目前主流的HDL包括VHDL與VerilogHDL,使用更為廣泛的是VerilogHDL,在開發(fā)者中占80%左右的份額,而本文也將以VerilogHDL為例,介紹利用該硬件描述語言來實現(xiàn)數(shù)字秒表的設(shè)計。
2 設(shè)計要求與目標
a、能夠從0.00秒一直計時到59.99秒
b、精度要求是10ms
c、設(shè)有清零鍵,能夠一鍵清零
d、設(shè)有使能鍵,能夠提供計時暫停功能
3 硬件系統(tǒng)的搭建
時鐘信號:由于數(shù)字秒表對時間精度的要求度高,所以我們采用晶體振蕩器來提供時鐘信號,晶體振蕩器具有頻率穩(wěn)定、受外界影響小等特點。我們可以通過利用數(shù)字電路元件對晶體振蕩器進行分頻,并得到一個1MHz的時鐘信號,并利用該時鐘信號進行后面的設(shè)計。
譯碼與顯示:我們利用譯碼器進行譯碼,通過數(shù)碼管進行顯示。其中譯碼管我們采用74HC164顯示譯碼管。由于每個數(shù)碼管要顯示的數(shù)字從0開始最大到9為止,所以我們輸出信號的位寬設(shè)計為4位即可。
使能鍵與清零鍵:為提高系統(tǒng)的可靠性,我們采用電平觸發(fā)的按鍵,并且我們采用異步使能與異步清零的方式,并且清零端的優(yōu)先級要高于使能端的優(yōu)先級。
計時與計數(shù)功能:這部分是整個秒表的核心部分,將通過對FPGA的編程來實現(xiàn)。芯片采用altera公司的Cyclone系列,該系列的芯片價格適中,足以實現(xiàn)秒表系統(tǒng)的設(shè)計。
5 結(jié)語
本數(shù)字秒表的實現(xiàn)主要是利用文本輸入來完成,通過VerilogHDL設(shè)計若干10進制計數(shù)器和6進制計數(shù)器來完成對時鐘信號的計數(shù)和計時的功能,然后通過譯碼管進行譯碼并最終用數(shù)碼管顯示出來。由于本設(shè)計方法中采用晶體振蕩器,震蕩頻率穩(wěn)定,所以計時精確,可靠性高。
參考文獻
[1]潘松 黃繼業(yè) 潘明 《EDA技術(shù)實用教程》第四版 科學(xué)出版社 2010
[2]周立功 《EDA實驗與實踐》 北京航天航空大學(xué)出版社 2007