唐家博


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