版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2010屆學(xué)士學(xué)位論文 基于FPGA的程控濾波器的設(shè)計學(xué)院、專業(yè) 物理與電子信息學(xué)院電子信息科學(xué)與技術(shù)研 究方 向FPGA控制學(xué) 生姓 名學(xué) 號指導(dǎo)教師姓名指導(dǎo)教師職稱2010年04月29日基于FPGA的程控濾波器的設(shè)計淮北煤炭師范學(xué)院物理與電子信息學(xué)院 235000摘要本文研究的主要目的是設(shè)計一個由現(xiàn)場可編程門陣列(FPGA)控制的濾波器。首先設(shè)計一個利用模擬開關(guān)CD4051來實現(xiàn)增益可控的前置放大電路,然后用模擬開關(guān)CD4052設(shè)計截止頻率可控的低通濾波電路和高通濾波電路,最后利用FPGA編程實現(xiàn)放大器的放大倍數(shù)和濾波器的截止頻率的控制以及通過數(shù)碼管實現(xiàn)放大倍數(shù)和截止頻率等參數(shù)的顯示。從而
2、設(shè)計出基于FPGA的程控濾波器,基于FPGA技術(shù),使得該系統(tǒng)具有參數(shù)可程控,抗干擾能力強,可靠性好等優(yōu)點。關(guān)鍵詞 FPGA;程控;濾波器;放大器The Design of Programmable Filter Based on FPGASchool of Physics and Electronic Information, Huaibei Coal Industuy Terachers College, 235000Abstract The main purpose of this study is to design a filter controlled by Field-Progra
3、mmable Gate Array(FPGA). First of all, use analog switches CD4051 to designa gain-controlled pre-amplifier circuit, and then use analog switches CD4052 to design low-pass filter circuit and high-pass filter circuit and their cut-off frequency is controllable, finally use FPGA by programming to reali
4、ze the control of the amplifier magnification and cut-off frequency as well as through the digital tube to achieve the display of magnification and cut-off frequency and other parameters, so as to achieve the design of programmable filter based on FPGA. Base on FPGA technology, thestrong anti-interf
5、erence ability andreliability would be owned by the given-controlled programmer.Keywords FPGA; Program-controlled; Filter; Amplifier目錄1 引言12 系統(tǒng)設(shè)計22.1 設(shè)計要求22.2 總體方案設(shè)計22.3 方案論證與選擇33 單元模塊設(shè)計與實現(xiàn)43.1 程控放大電路模塊43.2 程控濾波器電路模塊53.3 程控濾波器的FPGA控制模塊104 系統(tǒng)仿真測試154.1 測試過程及結(jié)果154.2 誤差分析16結(jié)論17參考文獻18附錄19致謝401 引言濾波器其實就是選
6、頻電路,可允許部分頻率的信號順利通過,而另一部分頻率的信號受到較大抑制。在近代電信裝備和各類控制系統(tǒng)中,濾波器應(yīng)用極為廣泛。模擬濾波器在測試系統(tǒng)或?qū)S脙x器儀表中是一種常用的變換裝置。濾波器的優(yōu)劣直接影響產(chǎn)品的性能,所以對濾波器的研究和生產(chǎn)歷來為各國所重視。其中,RC有源濾波器的應(yīng)用比較廣泛,以它為原型的各類變種有源濾波器去掉了電感器,體積小,Q 值可達1000,克服了RLC無源濾波器體積大、Q 值小的缺點1。設(shè)計截止頻率參數(shù)可設(shè)置的程控濾波器對提高濾波器的指標(biāo)精度有著重要的意義和實用價值。在傳統(tǒng)RC有源濾波器的基礎(chǔ)上,利用FPGA編程實現(xiàn)對濾波器截止頻率的控制,力求功能的多樣和成本的低廉。 2
7、 系統(tǒng)設(shè)計2.1 設(shè)計要求本文要設(shè)計的程控濾波器力求滿足以下要求:1. 放大器輸入正弦信號電壓振幅為,電壓增益為,增益步進可調(diào),通頻帶為,放大器輸出電壓無明顯失真。2. 濾波器可設(shè)置為低通濾波器,其截止頻率在范圍內(nèi)可調(diào),調(diào)節(jié)的頻率步進為,處放大器與濾波器的總電壓增益不大于,。3. 濾波器可設(shè)置為高通濾波器,其截止頻率在范圍內(nèi)可調(diào),調(diào)節(jié)的頻率步進為,處放大器與濾波器的總電壓增益不大于,。4. 電壓增益與截止頻率的誤差均不大于10%,有設(shè)置參數(shù)顯示功能。2.2 總體方案設(shè)計根據(jù)設(shè)計要求可以確定一個總體設(shè)計方案。該程控濾波器基本上可以由FPGA控制模塊、鍵盤模塊、放大器模塊、低通濾波器模塊、高通濾波
8、器模塊以及顯示模塊組成。由FPGA來控制各模擬開關(guān)實現(xiàn)檔位切換,從而實現(xiàn)放大器增益、低通和高通濾波器截止頻率等參數(shù)可控,濾波部分通過多組不同阻值的電阻組合切換分別實現(xiàn)高通和低通濾波電路中的截止頻率步進可調(diào)。通過集成在FPGA模塊中的鍵盤來設(shè)置參數(shù),顯示部分由LED數(shù)碼管顯示參數(shù)。總體方案設(shè)計如圖1所示。圖1 系統(tǒng)總體設(shè)計框圖2.3 方案論證與選擇2.3.1 程控放大器電路的選擇改變程控放大器的增益一般有兩種途徑2,一種是改變反相端的輸入電阻阻值,另一種是改變負反饋電阻阻值,設(shè)計程控放大器有如下兩種方案。方案1: 采用數(shù)字電位器3,通過軟件控制寫入到電位器相關(guān)寄存器的數(shù)值來改變電阻值。但精度較低
9、、檔位有限,很難實現(xiàn)增益的精確控制,同時受信號的帶寬限制,在運放環(huán)路中會影響整個系統(tǒng)的通頻帶寬。方案2: 通過模擬開關(guān)芯片CD4051來切換不同阻值的固定電阻來改變反饋電阻,從而改變電路的增益,各固定電阻可根據(jù)指標(biāo)要求理論計算并經(jīng)調(diào)試后確定。這種方案通俗易懂,價格低廉,能夠達到很高的精度。綜上所述,選擇方案2。2.3.2 程控濾波器電路的選擇程控濾波器有如下兩種方案可供選擇。方案1: 采用專門的開關(guān)電容濾波芯片4,雖然集成度高,但價格昂貴,且不易于掌握。方案2: 采用有源的RC濾波電路,通過模擬開關(guān)芯片CD4052來切換不同阻值的固定電阻來改變電阻阻值,從而改變截止頻率,各固定電阻可根據(jù)指標(biāo)要
10、求計算和仿真后確定,此種方案具有電路簡單、價格低廉、易掌握、易實現(xiàn)等優(yōu)點。綜上所述,選擇方案2。2.3.3 控制模塊的選擇程序控制模塊負責(zé)調(diào)整放大器的增益和濾波器的截止頻率,有如下兩種方案。方案1:可以采用單片機控制電路,但是單片機資源有限,電路中芯片使用較多,鏈接復(fù)雜。方案2:用FPGA實現(xiàn)控制5,集成度高、運行速度快,資源豐富,易于進行功能擴展。系統(tǒng)的多個部件如模擬開關(guān)控制電路,鍵盤控制電路,顯示控制等都可以集成到一塊芯片上,大大減小了系統(tǒng)的體積,并且提高了系統(tǒng)的穩(wěn)定性和抗干擾能力。綜上所述,選用方案2。3 單元模塊設(shè)計與實現(xiàn)3.1 程控放大電路模塊為保證放大器的放大倍數(shù)最高為100倍且程
11、控放大器通頻為6,采用三級放大,為了保證輸出無明顯的失真和干擾,選用低噪聲放大器OP07。由模擬開關(guān)CD4051組成可調(diào)的電阻網(wǎng)絡(luò)。程控放大器電路如圖2所示,利用Mutisim仿真軟件仿真得到如表1所示的電阻網(wǎng)絡(luò)電阻阻值,由表1中數(shù)據(jù)可畫出如圖2所示的電阻網(wǎng)絡(luò),放大電路的第一級放大倍數(shù),第二級放大倍數(shù),第三級放大倍數(shù)??偟姆糯蟊稊?shù),其中的單位為。圖2 程控放大器電路表1 電阻網(wǎng)絡(luò)的電阻仿真數(shù)值開關(guān)通道電阻網(wǎng)絡(luò)增益/放大倍數(shù)0000X0100010001X1316100010X21K20100011X3300100X41040100圖3 由模擬開關(guān)CD4051組成的電阻網(wǎng)絡(luò)3.2 程控濾波器電路
12、模塊 程控低通濾波器低通濾波器其截止頻率在范圍內(nèi)可調(diào)7,調(diào)節(jié)的頻率步進為,處放大器與濾波器的總電壓增益不大于,。根據(jù)設(shè)計要求,用改變電阻的方法實現(xiàn)截止頻率可調(diào);并用CD4052實現(xiàn)電阻網(wǎng)絡(luò)控制,達到調(diào)節(jié)的頻率步進為;為了達到處放大器與濾波器的總電壓增益不大于,采用二階低通濾波器并加上適當(dāng)?shù)乃p,程控低通濾波器電路如圖4所示,二階RC低通濾波器的傳輸函數(shù)為(3-1)式中: 電壓增益 低通濾波器截止角頻率 品質(zhì)因數(shù)由此公式來確定RC值是非常困難的,可以先通過查表法,先將電容C大小先確定下來,查表得C=10,再通過改變電阻阻值使得電壓增益=1,以便于用Mutisim仿真軟件進行仿真讀數(shù),從而確定電阻
13、網(wǎng)絡(luò)阻值,仿真后得到如表2所示的電阻網(wǎng)絡(luò)的電阻阻值,由表2中數(shù)據(jù)可畫出由CD4052夠成的電阻網(wǎng)絡(luò)如圖5所示。圖4 程控低通濾波器電路表2 電阻網(wǎng)絡(luò)的電阻仿真數(shù)值截止頻率電阻網(wǎng)絡(luò)阻值截止頻率電阻網(wǎng)絡(luò)阻值1627384951011169621217907131885114198111520772圖5由模擬開關(guān)CD4052組成的低通濾波器電阻網(wǎng)絡(luò) 程控高通濾波器高通濾波器其截止頻率在范圍內(nèi)可調(diào),調(diào)節(jié)的頻率步進為,處放大器與濾波器的總電壓增益不大于,。根據(jù)設(shè)計要求,用改變電阻的方法實現(xiàn)截止頻率可調(diào);并用CD4052實現(xiàn)電阻網(wǎng)絡(luò)控制,達到調(diào)節(jié)的頻率步進為;為了達到處放大器與濾波器的總電壓增益不大于,采
14、用二階低通濾波器并加上適當(dāng)?shù)乃p,程控高通濾波器電路如圖6所示。二階RC高通濾波器的傳輸函數(shù)為(3-2)式中: 電壓增益 高通濾波器截止角頻率 品質(zhì)因數(shù)由此公式來確定RC值是非常困難的,可以先通過查表法,先將電容C大小先確定下來,查表得C=10,再通過改變電阻阻值使得電壓增益=1,以便于用Mutisim仿真軟件進行仿真讀數(shù),從而確定電阻網(wǎng)絡(luò)阻值,仿真后得到如表所示的電阻網(wǎng)絡(luò),由表3中數(shù)據(jù)可畫出由CD4052夠成的電阻網(wǎng)絡(luò)如圖7所示。圖6程控高通濾波器電路表3 電阻網(wǎng)絡(luò)的電阻仿真數(shù)值截止頻率電阻網(wǎng)絡(luò)截止頻率電阻網(wǎng)絡(luò)111212313414870515800表3 (續(xù))截止頻率電阻網(wǎng)絡(luò)截止頻率電阻
15、網(wǎng)絡(luò)62.35 K1675072K177008186509196001020550圖7由模擬開關(guān)CD4052組成的高通濾波器電阻網(wǎng)絡(luò)3.3 程控濾波器的FPGA控制模塊根據(jù)設(shè)計要求可畫出FPGA控制模塊的框圖如圖8所示。圖8 FPGA控制模塊框圖根據(jù)FPGA控制模塊的框圖可設(shè)計出如圖9所示的FPGA控制核心模塊連接圖,程序見附錄。其中,輸入端clk接50MHz晶振電路;輸入端接高低電平,00時鍵盤控制低通濾波器,01時鍵盤控制高通濾波器,10時鍵盤控制的程控濾波器;輸入端接鍵盤。輸出端start接發(fā)光二極管,有鍵值輸出時發(fā)光二極管顯示;輸出端接鍵盤;輸出端接數(shù)碼管a、b、c、d、e、f、g、h
16、;輸出端分別接四個共陰極數(shù)碼管。KEYBOARD是鍵盤模塊,用于設(shè)置放大倍數(shù)和截止頻率;CONTROL是控制模塊,用于控制低通濾波器、高通濾波器和程控放大器是否工作,并傳送鍵盤數(shù)據(jù);CONTROL1、CONTROL2、CONTROL3模塊分別用于控制低通濾波器、高通濾波器的截止頻率和放大器的放大倍數(shù)。圖9 控濾波器的FPGA控制核心模塊連接圖 分頻器模塊根據(jù)設(shè)計要求可畫出分頻器模塊的框圖如圖10所示。圖10 分頻器模塊框圖該模塊將的晶振進行25000和625分頻,得到兩個不同頻率的時鐘信號,分別為,其中時鐘用來為鍵盤模塊提供時鐘信號,而時鐘用來為鍵盤模塊和低通濾波器控制模塊、高通濾波器控制模塊
17、和放大器控制模塊提供時鐘信號。 鍵盤模塊根據(jù)設(shè)計要求可畫出鍵盤模塊的框圖如圖11所示。圖11 鍵盤模塊框圖在時鐘信號和作用下,用行列式鍵盤來產(chǎn)生所需的鍵值,用作為控制信號,當(dāng)其值為或者時,用鍵盤C鍵來加1實現(xiàn)高通濾波器和低通濾波器的截止頻率的步進,用D鍵來實現(xiàn)減1操作;當(dāng)其值為時,用鍵盤C鍵來加10實現(xiàn)放大器增益步進,用D鍵來實現(xiàn)減10操作。從而實現(xiàn)放大倍數(shù)和截止頻率的調(diào)節(jié)。同時將輸入的數(shù)據(jù)用數(shù)碼管進行顯示。信號從端口輸出。 控制模塊根據(jù)設(shè)計要求可畫出控制模塊的框圖如圖12所示。圖12 控制模塊框圖通過由鍵盤輸入的控制信號來控制低通濾波器、高通濾波器和放大器是否工作。當(dāng)其值為時,選通低通濾波器
18、,同時通過來傳送鍵盤數(shù)據(jù);當(dāng)其值為時,選通高通濾波器器,同時通過來傳送鍵盤數(shù)據(jù);當(dāng)其值為時,選通放大器,同時通過傳送鍵盤數(shù)據(jù)。控制模塊如圖11所示。 低通濾波器控制模塊根據(jù)設(shè)計要求可畫出低通濾波器模塊的框圖如圖13所示。圖13 低通濾波器模塊框圖在時鐘信號的作用下,將傳送來的鍵盤數(shù)據(jù)轉(zhuǎn)化成十進制數(shù),然后與預(yù)先設(shè)置好的數(shù)值進行比較得到選通的頻率,從而通過,輸出二進制代碼,進而輸入到模擬開關(guān),最后選通相應(yīng)的開關(guān),從而實現(xiàn)截止頻率的控制。低通濾波器控制模塊如圖12所示。 高通濾波器控制模塊根據(jù)設(shè)計要求可畫出高通濾波器模塊的框圖如圖14所示。圖14 高通濾波器模塊框圖在時鐘信號的作用下,將傳送來的鍵盤
19、數(shù)據(jù)轉(zhuǎn)化成十進制數(shù),然后與預(yù)先設(shè)置好的數(shù)值進行比較得到選通的頻率,從而通過,輸出二進制代碼,進而輸入到模擬開關(guān),最后選通相應(yīng)的開關(guān),從而實現(xiàn)截止頻率的控制。 程控放大器模塊根據(jù)設(shè)計要求可畫出放大器模塊的框圖如圖14所示。圖15 放大器模塊框圖在時鐘信號的作用下,將傳送來的鍵盤數(shù)據(jù)轉(zhuǎn)化成十進制數(shù),然后與預(yù)先設(shè)置好的數(shù)值進行比較得到選通的頻率,從而通過輸出二進制代碼,進而輸入到模擬開關(guān),最后選通相應(yīng)的開關(guān),從而實現(xiàn)截止頻率的控制。程控放大器控制模塊如圖14所示4 系統(tǒng)仿真測試4.1 測試過程及結(jié)果1. 程控放大器測試輸入電壓振幅為10,設(shè)置放大倍數(shù)在不同頻率下利用Mulisim仿真軟件測試輸出電壓
20、,測得數(shù)據(jù)如表4所示。表4 程控低通放大器測試預(yù)測放大倍數(shù)輸出電壓100輸出電壓1輸出電壓10輸出電壓20輸出電壓40實際放大倍數(shù)所測放大倍數(shù)誤差0dB10%10dB0.38%20dB100.80%30dB3123123123123121.33%40dB9969969969969961000.40%2. 程控濾波器的測試輸入電壓振幅為1,設(shè)置好截止頻率,調(diào)節(jié)輸入信號頻率時的平率,即為-3截止頻率,測得低通濾波器數(shù)據(jù)如表5所示,高通濾波器數(shù)據(jù)如表6所示。表5 程控低通濾波器測試截止頻率/1234567測量值/誤差/%6截止頻率/891011121314測量值/誤差/%表5(續(xù))截止頻率/1516
21、17181920測量值/誤差/%表6 程控高通濾波器測試截止頻率/1234567測量值/誤差/%截止頻率/891011121314測量值/誤差/%截止頻率/151617181920測量值/誤差/%4.2 誤差分析仿真所產(chǎn)生的誤差的原因在于利用軟件Mltisim仿真時,克服了阻值可能不能滿足的要求,但是同樣由于人為操作示波器時,讀數(shù)有一定的誤差。倘若用實物連接電路測試,由于反饋電阻的阻值不一定在市場能購買,所以必然會有誤差,可以采取以下措施減少誤差:1. 采用多種不同額定阻值的電阻,將阻值大小不同的電阻相串聯(lián)或者并聯(lián)來滿足對阻值有效位數(shù)的需要,從而提高參數(shù)的精度。2. 選用足夠高分辨力的電阻和電
22、容,這取決于元件制造工藝的發(fā)展。結(jié) 論本系統(tǒng)采用FPGA設(shè)計的程控濾波器能夠較好地適應(yīng)120的信號。與其它采用方法相比,由于采用了FPGA作為控制單元,使得電路的設(shè)計復(fù)雜度降低。采用模擬開關(guān)元件實現(xiàn)的程控放大器和濾波器精度高,而且實現(xiàn)的電路噪聲小,具有良好的穩(wěn)定性。滿足了設(shè)計的基本要求,并且具有電路簡單、人機界面友好、控制方便、成本低廉等優(yōu)點。從仿真結(jié)果來看,系統(tǒng)的指標(biāo)精度較高,具有一定的實用價值。由于時間和條件的限制以及個人能力有限,本文所做的工作還有很多的不足,在今后的工作中對以下幾個方面的問題進行進一步的研究:1. 如何實現(xiàn)更高帶寬和更小步進頻率的放大器。2. 如何實現(xiàn)更高帶寬和更小步進
23、頻率的濾波器。3. 如何用液晶來顯示參數(shù)。在整個畢業(yè)設(shè)計中,包含了多項關(guān)鍵技術(shù)方面的問題,為此我查閱了一些文獻資料,進一步鞏固了我的專業(yè)知識,并提高了學(xué)習(xí)能力,為今后的學(xué)習(xí)與工作打下了良好的基礎(chǔ)。參考文獻1 北方交通大學(xué)電信系.有源濾波器.北京:人民鐵道出版社,19792 謝嘉奎.電子線路線性部分(第四版).北京:高等教育出出版社3 劉暢生,張耀進,宣宗強,于建國.新型集成電路簡明手冊及典型應(yīng)用(上冊).西安:西安電子科技大學(xué)出版社,20054 陸明達.開關(guān)電容濾波器的原理與設(shè)計.北京:科學(xué)出版社,19865 (第二版).北京:清華大學(xué)出版社,20076 黃智偉.全國大學(xué)生電子設(shè)計競賽電路設(shè)計
24、.北京:北京航空航天大學(xué)出版社,2006,141-1437 謝自美.電子線路設(shè)計·實驗·測試.武漢:華中科技大學(xué)出版社,2006,145-154附 錄1. 分頻器模塊源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity FEN is port(clk:in std_logic; clk1,clk0:out std_logic);end FEN;architecture arch of FEN is s
25、ignal clk_mid0,clk_mid:std_logic;beginprocess(clk)variable data:integer range 0 to 25000;beginif clk'event and clk='1' then if data=25000 then data:=0; clk_mid0<=not clk_mid0; else data:=data+1; end if;end if;clk0<=clk_mid0;end process;process(clk)variable data:integer range 0 to 6
26、25;begin if clk'event and clk='1'then if data=625 then data:=0; clk_mid<=not clk_mid; else data:=data+1; end if;end if;clk1<=clk_mid;end process;end arch;2. 鍵盤模塊源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity KEYBOA
27、RD isport(control:in std_logic_vector(1 downto 0); control_out:out std_logic_vector(1 downto 0); clk_1k:in std_logic; clk_40k:in std_logic; key_lie:in std_logic_vector(3 downto 0); start:out std_logic; key_hang:out std_logic_vector(3 downto 0); data_p:out std_logic_vector(7 downto 0); disp_data:out
28、std_logic_vector(7 downto 0); disp_sel:out std_logic_vector(3 downto 0) );end;architecture arch of KEYBOARD is signal int:std_logic;signal clk_sel:std_logic;signal start_reg:std_logic;signal disp_sel_reg:std_logic_vector(3 downto 0);signal data_l,data_h:std_logic_vector(3 downto 0);signal data_tmp:s
29、td_logic_vector(3 downto 0);signal key_hang_tmp:std_logic_vector(3 downto 0);signal disp_data_reg:std_logic_vector(3 downto 0);signal key_code:std_logic_vector(7 downto 0);signal data_p_reg:std_logic_vector(7 downto 0);begin control_out<=control;key_code<=key_hang_tmp&key_lie;data_p<=da
30、ta_p_reg;start<=start_reg;key_hang<=key_hang_tmp;disp_sel<=disp_sel_reg;clk_sel<=clk_1k and (not int);process(clk_sel,clk_40k,int)variable state:integer range 0 to 3;begin if rising_edge(clk_40k)then int <=not(key_lie(3)and key_lie(2)and key_lie(1)and key_lie(0);end if;if rising_edge(
31、clk_sel)thencase state is when 0=>key_hang_tmp<="1110" state:=1; when 1=>key_hang_tmp<="1101" state:=2; when 2=>key_hang_tmp<="1011" state:=3; when 3=>key_hang_tmp<="0111" state:=0;end case;end if;end process;process(clk_40k,int)variabl
32、e state:integer range 0 to 3;variable counter:integer range 0 to 99999;beginif int='0' then state:=0; counter:=0;elsif rising_edge(clk_40k) then case state is when 0=> data_tmp<=data_l; state:=1; when 1=> case key_code is when "01110111"=> data_l<="0001" da
33、ta_h<=data_tmp; state:=2; when "01111011"=> data_l<="0010" data_h<=data_tmp; state:=2; when "01111101"=> data_l<="0011" data_h<=data_tmp; state:=2; when "01111110"=> data_l<="0100"-4 data_h<=data_tmp; state:=2;
34、 when "10110111"=> data_l<="0101" data_h<=data_tmp; state:=2; when "10111011"=> data_l<="0110" data_h<=data_tmp; state:=2; when "10111101"=> data_l<="0111"-7 data_h<=data_tmp; state:=2; when "10110110"=&
35、gt; data_l<="1000" data_h<=data_tmp; state:=2; when "11010111"=> data_l<="1001" data_h<=data_tmp; state:=2; when "11011011"=> data_l<="0000"-0 data_h<=data_tmp; state:=2; when "11100111"=>-C if control="10&qu
36、ot;then-+10 if data_h="1001" then data_h<="1001" else data_h<=data_h+1; end if; elsif control="00"or control="01" then -+1 if data_h="1001"then if data_l="1001"then data_h<="1001" data_l<="1001" else data_l&l
37、t;=data_l+1; end if; elsif data_l="1001"then data_l<="1000" data_h<=data_h+1; else data_l<=data_l+1; data_h<=data_h; end if; end if; state:=2; when "11101011"=>-D if control="10"then-10 if data_h="0000" then data_h<="0000"
38、 else data_h<=data_h-1; end if; elsif control="00"or control="01" then -1 if data_l="0000"and data_h="0000"then data_l<="0000" data_h<="0000" elsif data_l="0000"then data_l<="1001" data_h<=data_h-1; else d
39、ata_l<=data_l-1; data_h<=data_h; end if; end if; state:=2; when "11101101"=>-E data_l<="0000" data_l<="0000" state:=2; when "11101110"=>-F data_l<=data_l; data_h<=data_h; data_p_reg<=data_h&data_l; start_reg<='1' state
40、:=2; when others=> state:=2; end case; when 2=> if counter=99999 then counter:=0; state:=3; else counter:=counter+1; state:=2; end if; when 3=> start_reg<='0' state:=3; end case;end if;end process;process(clk_1k,data_l,data_h)variable state:integer range 0 to 3;begin if rising_ed
41、ge(clk_1k) then case state is when 0=> disp_sel_reg<="1011" disp_data_reg<=data_l; state:=1; when 1=> disp_sel_reg<="0111" disp_data_reg<=data_h; state:=2; when 2=> disp_sel_reg<="1110" if control="00"or control="01" then disp
42、_data_reg<="1100"-k elsif control="10"then disp_data_reg<="1010"-b end if; state:=3; when 3=> disp_sel_reg<="1101" if control="00"or control="01" then disp_data_reg<="1101"-h elsif control="10"then disp_da
43、ta_reg<="1011"-d end if; state:=0; end case;end if;end process;process(clk_1k,disp_data_reg)begin if rising_edge(clk_1k)then case disp_data_reg is when "0000"=> disp_data<="11111100"-0 when "0001"=> disp_data<="01100000"-1 when "0
44、010"=> disp_data<="11011010"-2 when "0011"=> disp_data<="11110010"-3 when "0100"=> disp_data<="01100110"-4 when "0101"=> disp_data<="10110110"-5 when "0110"=> disp_data<="10111110&
45、quot;-6 when "0111"=> disp_data<="11100000"-7 when "1000"=> disp_data<="11111110"-8 when "1001"=> disp_data<="11110110"-9 when "1010"=> disp_data<="00111110"-b when "1011"=> disp_data
46、<="01111010"-d when "1100"=> disp_data<="00001110"-k when "1101"=> disp_data<="01101110"-h when others=> disp_data<="00000000" end case;end if;end process;end;3. 控制模塊源程序如下。library ieee;use ieee.std_logic_1164.all;use ie
47、ee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity CONTROL is port(control_in:in std_logic_vector(1 downto 0); data:in std_logic_vector(7 downto 0); road1,road2,road3:out std_logic; data_out1,data_out2,data_out3:out std_logic_vector(7 downto 0) );end CONTROL;architecture arch of CONTROL i
48、sbeginprocess(data,control_in)begincase control_in is when "00"=> road1<='1' road2<='0' road3<='0' data_out1<=data(7 downto 0); when "01"=> road1<='0' road2<='1' road3<='0' data_out2<=data(7 downto 0); when "10"=> road1<='0' road2<='0' road3<='1' data_out3<=data(7 downto 0); when others=>null;end case;end p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人信用貸款協(xié)議(2024年版)
- 2025年度健康食品研發(fā)與購銷合作框架協(xié)議3篇
- 2025年寵物醫(yī)院聯(lián)合科研項目合作協(xié)議3篇
- 2025版事業(yè)單位新員工試用期勞動合同范本3篇
- 小學(xué)課外閱讀與語文學(xué)科素養(yǎng)的培育
- 科技型企業(yè)組織架構(gòu)的靈活性與穩(wěn)定性
- 二零二五年餐飲業(yè)食品安全宣傳教育合作協(xié)議書模板3篇
- 2025版仙崇線道路養(yǎng)護與管理服務(wù)合同3篇
- 中介服務(wù)居間合同范本(2024年版)版B版
- 二零二五版集裝箱堆場管理及服務(wù)合同3篇
- 《色彩基礎(chǔ)》課程標(biāo)準
- 人力資源 -人效評估指導(dǎo)手冊
- 大疆80分鐘在線測評題
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 2024中考復(fù)習(xí)必背初中英語單詞詞匯表(蘇教譯林版)
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費報銷單
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級上冊英語完形填空、閱讀理解100題含參考答案
評論
0/150
提交評論