一種基于FPGA的數(shù)字秒表設(shè)計方法
摘要:文中介紹了一種基于FPGA的數(shù)字秒表設(shè)計方法。采用VHDL硬件描述語言,運用ModelSim等EDA仿真工具。該設(shè)計具有外圍電路少、集成度高、可靠性強等優(yōu)點。最后經(jīng)實驗驗證,該數(shù)字秒表計時準(zhǔn)確,輸入信號能準(zhǔn)確控制秒表運行。系統(tǒng)所采用的自上而下的模塊化設(shè)計方法,對于其他復(fù)雜的系統(tǒng)設(shè)計也有很強的借鑒意義。
關(guān)鍵詞:FPGA;數(shù)字秒表;模塊化設(shè)計;VHDL
數(shù)字集成電路作為當(dāng)今信息時代的基石,不僅在信息處理、工業(yè)控制等生產(chǎn)領(lǐng)域得到普及應(yīng)用,并且在人們的日常生活中也是隨處可見,極大的改變了人們的生活方式。面對如此巨大的市場,要求數(shù)字集成電路的設(shè)計周期盡可能短、實驗成本盡可能低,最好能在實驗室直接驗證設(shè)計的準(zhǔn)確性和可行性,因而出現(xiàn)了現(xiàn)場可編程邏輯門陣列FPGA。對于芯片設(shè)計而言,F(xiàn)PCA的易用性不僅使得設(shè)計更加簡單、快捷,并且節(jié)省了反復(fù)流片驗證的巨額成本。對于某些小批量應(yīng)用的場合,甚至可以直接利用FPGA實現(xiàn),無需再去訂制專門的數(shù)字芯片。
文中著重介紹了一種基于FPGA利用VHDL硬件描述浯言的數(shù)字秒表設(shè)計方法,在設(shè)計過程中使用基于VHDL的EDA工具ModelSim對各個模塊仿真驗證,并給出了完整的源程序和仿真結(jié)果。
1 總體功能結(jié)構(gòu)設(shè)計
一個完整的數(shù)字秒表應(yīng)具有計時、相應(yīng)的控制以及計時結(jié)果顯示功能,總體的功能結(jié)構(gòu)如圖1所示。黑色線框內(nèi)是計數(shù)模塊、使能轉(zhuǎn)化模塊和顯示譯碼模塊,左邊是輸入控制信號,右邊是顯示計時結(jié)果的數(shù)碼顯示管,用六位BCD七段數(shù)碼管顯示讀數(shù),顯示格式如圖2,計時范圍為:1小時,精度為0.01s。
輸入時鐘信號由32MHz的石英晶振提供,考慮到設(shè)計指標(biāo)要求秒表精度為0.01秒,計數(shù)脈沖的時鐘輸入就應(yīng)該是頻率為100Hz的脈沖,所以先要設(shè)計一個320000分頻器,分頻器的輸出可作計數(shù)器的輸入;其次計數(shù)模塊設(shè)計應(yīng)綜合考慮秒表的計時范圍(1小時)和顯示輸出(6位輸出),6位輸出中有兩位是六進制輸出,其余四位是十進制輸出,所以可通過設(shè)計4個模10計數(shù)器和2個模6計數(shù)器來實現(xiàn),其中較低位的進位輸出就是高位的計數(shù)輸入端。
控制模塊應(yīng)包括開始計時/停止計時、復(fù)位兩個按鈕,即電路設(shè)計經(jīng)常用到的使能端和清零端,這兩個控制端口直接接到計數(shù)器的清零和史能端即可實現(xiàn)復(fù)位、開始計時/停止計時;但是外圍使能輸入需要經(jīng)過使能轉(zhuǎn)換電路后,才可變?yōu)橛嫈?shù)器可用的使能控制信號。因此在輸入使能信號和計數(shù)器使能輸入之間需設(shè)計一個信號轉(zhuǎn)換模塊。
顯示計數(shù)結(jié)果的模塊實現(xiàn)較為簡單,只需將六位計數(shù)結(jié)果通過七段譯碼電路接到輸出即可點亮數(shù)碼管,無需時序控制,直接用組合邏輯電路就可以實現(xiàn)。數(shù)碼管顯示可以采用掃描顯示,用一個頻率1KHz的信號掃描一個多路選擇器,實現(xiàn)對六位已經(jīng)鎖存的計數(shù)結(jié)果的掃描輸出。
2 各功能模塊設(shè)計
2.1 分頻器模塊
分頻器的功能是提供標(biāo)準(zhǔn)時鐘控制信號以精確控制計數(shù)器的開閉,提供的標(biāo)準(zhǔn)信號是32MHz,根據(jù)設(shè)計精度0.01s的要求,輸出信號是100Hz,所該分頻器實現(xiàn)的功能是320000分頻,具體的VHDL源程序:
2.2 計數(shù)模塊
該計數(shù)器要實現(xiàn)最大計數(shù)值為59分59秒99的計數(shù),而且為了數(shù)碼管顯示方便,該模塊必須通過計數(shù)器的級聯(lián)來實現(xiàn),即首先分別設(shè)計一個模6計數(shù)器和一個模10計數(shù)器,然后將他們級聯(lián),其中調(diào)用4次模10計數(shù)器、2次模6計數(shù)器,這樣可以比直接設(shè)計模100的計數(shù)器和模60的計數(shù)器節(jié)省資源。級聯(lián)時低位的計數(shù)進位輸出接高位的計數(shù)輸入端,如圖3所示。再考慮到控制模塊的要求,每個計數(shù)器有三個輸入端:時鐘、使能和清零,兩個輸出端:計數(shù)輸出和進位輸出,采用同步使能異步清零的設(shè)計方法,每個計數(shù)器的使能和清零端都與外圍的使能和清零端相聯(lián)。
評論