基于VHDL的多功能可變模計數(shù)器設(shè)計
隨著電子技術(shù)、計算機技術(shù)和EDA技術(shù)的不斷發(fā)展,利用FPGA/CPLD進行數(shù)字系統(tǒng)的開發(fā)已被廣泛應(yīng)用于通信、航天、醫(yī)療電子、工業(yè)控制等領(lǐng)域。與傳統(tǒng)電路設(shè)計方法相比,F(xiàn)PGA/CPLD具有功能強大,開發(fā)周期短,投資少,便于追蹤市場變化及時修改產(chǎn)品設(shè)計,以及開發(fā)工具智能化等特點。近年來,F(xiàn)PGA/CPLD發(fā)展迅速,隨著集成電路制造工藝的不斷進步,高性價比的FPGA/CPLD器件推陳出新,使FPGA/CPLD成為當(dāng)今硬件設(shè)計的重要途徑。在FPGA/CPLD的應(yīng)用設(shè)計開發(fā)中,VHDL語言作為一種主流的硬件描述語言,具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計方面。表現(xiàn)出了強大的生命力和應(yīng)用潛力。
QuartusⅡ是Altera公司在21世紀初推出的FPGA/CPLD集成開發(fā)環(huán)境,是Altera公司前一代FPGA/CPLD集成開發(fā)環(huán)境Max+PlusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷,功能強大,為設(shè)計者提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。
計數(shù)器是數(shù)字系統(tǒng)中使用最多的時序電路之一,不僅能用于對時鐘脈沖計數(shù),還可以用于分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進行數(shù)字運算等??勺?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/模">模計數(shù)器由于計數(shù)容量可以根據(jù)需要進行變化,為其廣泛使用創(chuàng)造了便利。這里在QuartusⅡ開發(fā)環(huán)境下,用VHDL語言設(shè)計了一種具有清零、置數(shù)、使能控制、可逆計數(shù)和可變模功能的計數(shù)器。
1 基本可變模計數(shù)器設(shè)計
可變模計數(shù)器是指計數(shù)/模值可根據(jù)需要進行變化的計數(shù)器。電路符號圖1所示,clk為時鐘脈沖輸入端,clr為清零端,m為模值輸入端,q為計數(shù)輸出端。
基本可變模計數(shù)器的VHDL代碼如下所示:
說明:上述代碼設(shè)計采用了常用的if語句結(jié)構(gòu),即“if條件句then順序語句elsif條件句then順序語句else順序語句end if”結(jié)構(gòu),實現(xiàn)模值小于99的可變模計數(shù)。
從上述的代碼可以看出,基本的可變模計數(shù)器的功能單一。仿真驗證則表明在進行模值變換時,基本的可變模計數(shù)器存在一些功能上的缺陷:計數(shù)器若是由較小的模值變化為較大的模值時,能正常的進行變模計數(shù);但當(dāng)其由較大的模值變化為較小的模值,則可能出現(xiàn)計數(shù)失控,如圖2所示,圖中顯示了當(dāng)模值由12變換為7時,即發(fā)生了計數(shù)失控。失控的原因是大于當(dāng)模值由12變換為7時,計數(shù)輸出為q為11,大于當(dāng)前模值7的計數(shù)最大值6,由此產(chǎn)生了計數(shù)失控。
2 改進的多功能可變模計數(shù)器
為了克服上述基本可變模計數(shù)器的缺陷,并增加更多的控制功能,在此設(shè)計了一種改進的多功能可變模計數(shù)器,具有清零、置數(shù)、使能控制、可逆計數(shù)和可變模功能。其電路符號如圖3所示,clk為時鐘脈沖輸入端,m為模值輸入端,clr為清零控制端,s為置數(shù)控制端,d為置數(shù)輸入端,en為使能控制端,updn為計數(shù)方向控制端,q為計數(shù)輸出端,co為進位輸出端。
評論