直流電機(jī)控制設(shè)計1_第1頁
直流電機(jī)控制設(shè)計1_第2頁
直流電機(jī)控制設(shè)計1_第3頁
直流電機(jī)控制設(shè)計1_第4頁
直流電機(jī)控制設(shè)計1_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、河南科技大學(xué)課 程 設(shè) 計 說 明 書課程名稱 現(xiàn)代電子系統(tǒng)課程設(shè)計題 目 直流電機(jī)控制設(shè)計 學(xué) 院 電子信息工程學(xué)院班 級 學(xué)生姓名 指導(dǎo)教師 日 期 課程設(shè)計任務(wù)書(指導(dǎo)教師填寫)課程設(shè)計名稱 現(xiàn)代電子系統(tǒng)課程設(shè)計 學(xué)生姓名 專業(yè)班級 設(shè)計題目 直流電機(jī)控制設(shè)計 一、 課程設(shè)計目的學(xué)習(xí)直流電機(jī)PWM的FPGA控制;掌握PWM控制的工作原理;掌握GW48_SOPC實(shí)驗(yàn)箱的使用方法;了解基于FPGA的電子系統(tǒng)的設(shè)計方法。二、 設(shè)計內(nèi)容、技術(shù)條件和要求利用PWM控制技術(shù)實(shí)現(xiàn)直流電機(jī)的速度控制。(1)基本要求: a速度調(diào)節(jié):4檔,數(shù)字顯示其檔位。b能控制電機(jī)的旋轉(zhuǎn)方向。c通過紅外光電電路測得電機(jī)的

2、轉(zhuǎn)速,設(shè)計頻率計用4位10進(jìn)制顯示電機(jī)的轉(zhuǎn)速。(2)發(fā)揮部分a設(shè)計“去抖動”電路,實(shí)現(xiàn)直流電機(jī)轉(zhuǎn)速的精確測量。b修改設(shè)計,實(shí)現(xiàn)直流電機(jī)的閉環(huán)控制,旋轉(zhuǎn)速度可設(shè)置。c其它。三、 時間進(jìn)度安排布置課題和講解:1天查閱資料、設(shè)計:4天實(shí)驗(yàn):3天撰寫報告:2天四、 主要參考文獻(xiàn)何小艇 電子系統(tǒng)設(shè)計 浙江大學(xué)出版社 2008.1潘松 黃繼業(yè) EDA技術(shù)實(shí)用教程 科學(xué)出版社 2006.10齊晶晶 現(xiàn)代電子系統(tǒng)設(shè)計實(shí)驗(yàn)指導(dǎo)書 電工電子實(shí)驗(yàn)教學(xué)中心 2009.8指導(dǎo)教師簽字: 2010年 12月30日摘要利用FPGA可編程芯片及VHDL語言實(shí)現(xiàn)了對直編程實(shí)現(xiàn)流電機(jī)PWM控制器的設(shè)計,對直流電機(jī)速度進(jìn)行控制。介

3、紹了用VHDL語言編程實(shí)現(xiàn)直流電機(jī)PWM控制器的PWM的產(chǎn)生模塊、轉(zhuǎn)向調(diào)節(jié)模塊、轉(zhuǎn)速控制模塊、去抖動電路模塊、電機(jī)轉(zhuǎn)速顯示等模塊功能。采用CPU控制產(chǎn)生PWM信號,一般的PWM信號是通過模擬比較器產(chǎn)生的,比較器的一端按給定的參考電壓,另一端接周期性線性增加的鋸齒波電壓。當(dāng)鋸齒波電壓小于參考電壓時輸出低電平,當(dāng)鋸齒波電壓大于參考電壓時輸出高電平。改變參考電壓就可以改變PWM波形中高電平的寬度。若用單片機(jī)產(chǎn)生PWM信號波形,需要通過D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和設(shè)置參考電壓,通過外接模擬比較器輸出PWM波形,因此外圍電路比較復(fù)雜。FPGA中的數(shù)字PWM控制與一般的模擬PWM控制不同,用FPGA產(chǎn)生P

4、WM波形,只需FPGA內(nèi)部資源就可以實(shí)現(xiàn)。用數(shù)字比較器代替模擬比較器,數(shù)字比較器的一端接設(shè)定值計數(shù)器輸出,另一端接線性遞增計數(shù)器輸出。當(dāng)線性計數(shù)器的計數(shù)值小于設(shè)定值時輸出低電平,當(dāng)計數(shù)值大于設(shè)定值時輸出高電平。與模擬控制相比,省去了外接的D/A轉(zhuǎn)換器和模擬比較器,F(xiàn)PGA外部連線很少,電路更加簡單,便于控制。脈寬調(diào)制式細(xì)粉驅(qū)動電路的關(guān)鍵是脈寬調(diào)制,轉(zhuǎn)速的波動隨著PWM脈寬細(xì)分?jǐn)?shù)的增大而減小。直流電機(jī)控制電路主要由三部分組成:(1) FPGA中PWM脈寬調(diào)制信號產(chǎn)生電路。(2) FPGA中的工作/停止控制和正/反轉(zhuǎn)方向控制電路。(3) 由功率放大電路和H橋組成的正反轉(zhuǎn)功率驅(qū)動電路關(guān)鍵詞直流電機(jī)、

5、PWM、控制、速度、FPGA目 錄一. 任務(wù)解析.5二. 系統(tǒng)方案論證.62.1 總體系統(tǒng)方案論證. 62.2 系統(tǒng)原理與結(jié)構(gòu).62.2.1主要硬件芯片選擇.62.2.2系統(tǒng)結(jié)構(gòu).6三、直流電機(jī)控制模塊設(shè)計.73.1速度控制模塊設(shè)計73.2 正反轉(zhuǎn)、工作/停止控制計.83.3 閉環(huán)控制設(shè)計.9四. 仿真調(diào)試,硬件功能驗(yàn)證.94.1模塊仿真.104.1.1 PWM控制模塊仿真.104.1.2 旋轉(zhuǎn)方向控制模塊仿真.10速度檔位控制模塊仿真.104.2 硬件功能驗(yàn)證與誤差分析114.2.1 功能驗(yàn)證.114.2.2 誤差分析.11五、設(shè)計心得11六、參考文獻(xiàn)12附頁1(參考程序).13附頁2(系統(tǒng)

6、整體原理圖).22封底(評語成績).23一、任務(wù)解析本次設(shè)計利用PWM控制技術(shù)實(shí)現(xiàn)直流電機(jī)的速度控制。根據(jù)題目的要求實(shí)現(xiàn)如下功能:a速度調(diào)節(jié):4檔,數(shù)字顯示其檔位。b能控制電機(jī)的旋轉(zhuǎn)方向。c通過紅外光電電路測得電機(jī)的轉(zhuǎn)速,設(shè)計頻率計用4位10進(jìn)制顯示電機(jī)的轉(zhuǎn)速。d設(shè)計“去抖動”電路,實(shí)現(xiàn)直流電機(jī)轉(zhuǎn)速的精確測量。e修改設(shè)計,實(shí)現(xiàn)直流電機(jī)的閉環(huán)控制,旋轉(zhuǎn)速度可設(shè)置。 本次設(shè)計采用單片大規(guī)模FPGA實(shí)現(xiàn)的發(fā)生的直流電機(jī)控制器,其中產(chǎn)生的PWM波具有脈沖中心對稱、PWM周期和死區(qū)時間可編程等特點(diǎn),且性能優(yōu)異,靈活性和可靠性高,用數(shù)字比較器代替模擬比較器,數(shù)字比較器的一端接設(shè)定值計數(shù)器的輸出,另一端接線

7、性遞增計數(shù)器輸出。與模擬控制相比,省去了外接的DA轉(zhuǎn)換器和模擬比較器,F(xiàn)PGA外部連線很少,電路更加簡單。而且通過總線數(shù)據(jù)或按鍵控制在系統(tǒng)調(diào)整脈寬數(shù)及數(shù)字比較器的設(shè)定值,從而實(shí)現(xiàn)對電機(jī)轉(zhuǎn)速等參數(shù)的靈活控制。該系統(tǒng)以芯片為控制核心,通過按鍵或上位機(jī)設(shè)定電機(jī)速度和PWM占空比,由FPGA的IO口控制直流電機(jī)驅(qū)動芯片驅(qū)動直流電機(jī)的轉(zhuǎn)動。轉(zhuǎn)速的測量由碼盤完成,速度顯示數(shù)碼管來實(shí)現(xiàn)。本系統(tǒng)是基于實(shí)現(xiàn)電機(jī)的恒速調(diào)節(jié)而進(jìn)行設(shè)計的。整個直流電機(jī)控制系統(tǒng)分為PWM模塊、電機(jī)速度控制模塊、電機(jī)方向控制模塊、去抖動電路模塊、電機(jī)轉(zhuǎn)速顯示等模塊。直流電機(jī)控制原理框圖如圖l所示。圖1:直流電機(jī)控制原理框圖二、系統(tǒng)方案論

8、證2.1 總體系統(tǒng)方案論證方案一:采用線性控制方式進(jìn)行直流電動機(jī)的控制。此方式一般用于小功率電機(jī)平滑轉(zhuǎn)速控制。方案二:采用一般模擬PWM進(jìn)行電動機(jī)的控制。此方案外接有D/A轉(zhuǎn)換器和模擬比較器,外部連線較多。電路復(fù)雜、不便于控制,故該方案不理想。方案三:采用FPGA 中的數(shù)字PWM進(jìn)行電動機(jī)的控制。該方案省去了外接D/A轉(zhuǎn)換器和模擬比較器,外部連線比較少、電路更加簡單、便于控制。 比較以上三種方案第二種方案比較簡潔易于操作控制,綜合各方面的因素最終選擇第二種方案進(jìn)行設(shè)計2.2 系統(tǒng)原理與結(jié)構(gòu)2.2.1主要硬件芯片選擇Gw-48-PK2 中FPGA可編程芯片:通過HDL語言與該可編程芯片實(shí)現(xiàn)了對直

9、流電機(jī)的PWM控制數(shù)碼管:實(shí)現(xiàn)對直流電機(jī)的檔位、速度、預(yù)設(shè)速度的直觀顯示按鍵:實(shí)現(xiàn)了檔位調(diào)換、速度預(yù)設(shè)、正反轉(zhuǎn)控制、預(yù)設(shè)使能控制累加器:實(shí)現(xiàn)對紅外傳感信號的累加計數(shù)進(jìn)而實(shí)現(xiàn)測速功能示波器:通過觀察方波頻率驗(yàn)證顯示速度是否正確系統(tǒng)結(jié)構(gòu)本次設(shè)計系統(tǒng)硬件整體設(shè)計系統(tǒng)的整體框圖如圖2所示。該系統(tǒng)以芯片為控制核心,通過按鍵或上位機(jī)設(shè)定電機(jī)速度和PwM占空比,由FPGA的IO口控制直流電機(jī)驅(qū)動芯片驅(qū)動直流電機(jī)的轉(zhuǎn)動。轉(zhuǎn)速的測量由碼盤完成,速度顯示數(shù)碼管來實(shí)現(xiàn)。本系統(tǒng)是基于實(shí)現(xiàn)電機(jī)的恒速調(diào)節(jié)而進(jìn)行設(shè)計的。系統(tǒng)分以下幾個模塊:轉(zhuǎn)速調(diào)節(jié)模塊,脈寬調(diào)制(PwM)模塊,速度檢測模塊,串行通信模塊。 圖2:整體硬件系

10、統(tǒng)框圖三、直流電機(jī)控制模塊設(shè)計3.1速度控制模塊設(shè)計本次設(shè)計是采用定制的PWM信號對直流電機(jī)速度進(jìn)行控制該模塊如圖3所示圖3:PWM定制模塊該P(yáng)WM模塊通過對輸入信號a和b兩者的信號進(jìn)行比較最終輸出方波信號,該信號作用于開關(guān)晶體管的基極上,控制開關(guān)管的導(dǎo)通時間t,改變占空比,達(dá)到控制目的。整個控制模塊有信號發(fā)生電路、PWM速度控制電路、電機(jī)驅(qū)動電路等幾部分組成。整個控制模塊采用了轉(zhuǎn)速、電流雙閉環(huán)控制結(jié)構(gòu),如圖4所示。在系統(tǒng)中設(shè)置兩個調(diào)節(jié)器,分別調(diào)節(jié)轉(zhuǎn)速和電流,二者之間實(shí)行串級連接,即以轉(zhuǎn)速調(diào)節(jié)器的輸出作為電流調(diào)節(jié)器的輸入,再用電流調(diào)節(jié)器的輸出作為PWM的控制電壓。從閉環(huán)反饋結(jié)構(gòu)上看,電流調(diào)節(jié)環(huán)

11、在里面,是內(nèi)環(huán),按典型型系統(tǒng)設(shè)計;轉(zhuǎn)速調(diào)節(jié)環(huán)在外面,成為外環(huán),按典型型系統(tǒng)設(shè)計。為了獲得良好的動、靜態(tài)品質(zhì),調(diào)節(jié)器均采用PI調(diào)節(jié)器并對系統(tǒng)進(jìn)行了校正。檢測部分中,采用了霍爾片式電流檢測裝置對電流環(huán)進(jìn)行檢測,轉(zhuǎn)速還則是采用了測速電機(jī)進(jìn)行檢測,達(dá)到了比較理想的檢測效果。主電路部分采用了以GTR為可控開關(guān)元件、H橋電路為功率放大電路所構(gòu)成的電路結(jié)構(gòu)。PWM方式是在大功率開關(guān)晶體管的基極上,加上脈沖寬度可調(diào)的方波電壓,控制開關(guān)管的導(dǎo)通時間t,改變占空比,達(dá)到控制目的。圖4 是直流PWM系統(tǒng)原理框圖。這是一個雙閉環(huán)系統(tǒng),有電流環(huán)和速度環(huán)。核心部分是脈沖功率放大器和脈寬調(diào)制器。控制部分采用SG1525集成

12、控制器產(chǎn)生兩路互補(bǔ)的PWM脈沖波形,通過調(diào)節(jié)這兩路波形的寬度來控制H電路中的GTR通斷時間,便能夠?qū)崿F(xiàn)對電機(jī)速度的控制。圖4: 直流電動機(jī)PWM系統(tǒng)原理圖3.2 正反轉(zhuǎn)、工作/停止控制模塊設(shè)計圖5為 FPGA直流電機(jī)驅(qū)動控制電路。電機(jī)的正反轉(zhuǎn)是由兩個二選一多路選擇器進(jìn)行控制,Z/F鍵控制選擇PWM波形從正端Z進(jìn)入H橋,還是從負(fù)端F 進(jìn)入H橋,以控制電機(jī)的轉(zhuǎn)向。Start鍵通過與門 控制PWM的輸出,實(shí)現(xiàn)對電機(jī)的工作/停止的控制。H橋電路由大功率晶體管組成,PWM波形通過方向控制電路送到H橋,經(jīng)功率放大以后驅(qū)動電機(jī)轉(zhuǎn)動。 圖5: FPGA直流電機(jī)驅(qū)動控制電路3.3 閉環(huán)控制設(shè)計該模塊實(shí)現(xiàn)對直流電

13、機(jī)速度的設(shè)置,控制直流電機(jī)按照設(shè)定的速度旋轉(zhuǎn),該模塊如圖6所示:圖6:閉環(huán)預(yù)設(shè)控制模塊該模塊實(shí)現(xiàn)對直流電機(jī)旋轉(zhuǎn)速度的預(yù)設(shè),通過使能鍵實(shí)現(xiàn)直流電機(jī)按照預(yù)設(shè)的速度進(jìn)行旋轉(zhuǎn)四. 仿真調(diào)試,硬件功能驗(yàn)證4.1模塊仿真 PWM控制模塊仿真仿真結(jié)果如圖7所示圖7該模塊通過改變PWM的占空比來實(shí)現(xiàn)直流電機(jī)速度的控制4.1.2 旋轉(zhuǎn)方向控制模塊仿真仿真結(jié)果如圖8所示圖8電機(jī)的正反轉(zhuǎn)是由兩個二選一多路選擇器進(jìn)行控制,Z/F鍵控制選擇PWM波形從正端Z進(jìn)入H橋,還是從負(fù)端F 進(jìn)入H橋,以控制電機(jī)的轉(zhuǎn)向。4.1.3 速度檔位控制模塊仿真仿真結(jié)果如圖9所示圖9通過仿真結(jié)果可以看出通過按鍵en轉(zhuǎn)換檔位來實(shí)現(xiàn)速度的控制。

14、檔位0直流電動機(jī)停止轉(zhuǎn)動,檔位1,2,3,4直流電動機(jī)的轉(zhuǎn)速依次不斷的提高,實(shí)現(xiàn)直流電機(jī)的調(diào)速功能。4.2 硬件功能驗(yàn)證與誤差分析4.2.1 功能驗(yàn)證通過把設(shè)計完成的工程下載到GW-48-pk2 中FPGA芯片上對設(shè)計所要求達(dá)到的功能進(jìn)行驗(yàn)證,通過驗(yàn)證本次設(shè)計只能夠完成直流電機(jī)速度測試、速度顯示、正反轉(zhuǎn)、調(diào)檔、預(yù)設(shè)等功能但是由于能力和時間的原因去抖動功能沒有實(shí)現(xiàn)導(dǎo)致速度測試結(jié)果與示波器觀察到的結(jié)果有一定的差別。最終沒有實(shí)現(xiàn)該次設(shè)計的完整功能 4.2.2 誤差分析本次設(shè)計在硬件驗(yàn)證這一環(huán)節(jié)出現(xiàn)一定的誤差,這包括兩方面的產(chǎn)生的一是設(shè)計本身產(chǎn)生的,二是實(shí)驗(yàn)系統(tǒng)造成的。1) 設(shè)計誤差分析由于設(shè)計者本身

15、的能力以及在設(shè)計中的 邏輯分析中有一定的失誤,以及設(shè)計的過程中一些能夠影響到最終結(jié)果的因素沒有考慮到造成在硬件驗(yàn)證這一環(huán)節(jié)出現(xiàn)一定的誤差。2) 系統(tǒng)誤差分析本次設(shè)計中速度測試傳感模塊由于碼盤自身的老化,以及紅外燈的放置有一定的問題最終將導(dǎo)致速度測試的不準(zhǔn)確性,這是由硬件系統(tǒng)造成的是無法改變的,其次就是示波器觀察波形這一測試過程中由于與硬件信號輸出端連線存在一定的問題在測試的過程中,可能因?yàn)橐粋€小小的問題就可能導(dǎo)致示波器無法正常接收到實(shí)驗(yàn)硬件輸出的信號,導(dǎo)致實(shí)驗(yàn)數(shù)據(jù)的誤差,再者就是實(shí)驗(yàn)系統(tǒng)有一定的問題導(dǎo)致驗(yàn)證無法實(shí)現(xiàn),在實(shí)驗(yàn)的過程中換了幾次實(shí)驗(yàn)箱才找到一個合適的,這也是產(chǎn)生誤差的一個重要的原因,

16、實(shí)驗(yàn)系統(tǒng)本身都有很大的毛病。五、設(shè)計心得通過這次課程設(shè)計對直流電機(jī)的工作原理及相關(guān)的控制原理有了進(jìn)一步的了解,認(rèn)識到自己所學(xué)知識的不足,以及所學(xué)知識在實(shí)際中的具體應(yīng)用,進(jìn)一步加深對所學(xué)知識的理解。在這次課程設(shè)計中遇到了眾多的難題,有好多由于自己對所學(xué)知識不太透徹導(dǎo)致設(shè)計中遇到好多問題自己無法解決,最后還是在向同學(xué)尋求幫助才能夠具體的實(shí)現(xiàn)其整體功能中的部分。如:直流電機(jī)的速度、轉(zhuǎn)向控制、檔位選擇、等功能,另外的一些功能如:閉環(huán)預(yù)設(shè)、消抖動模塊由于能力和時間的原因沒有完全的實(shí)現(xiàn),成為本次設(shè)計的一大遺憾。在具體到每一個模塊的設(shè)計中,可能是由于在這方面的知識不足吧,并不是很順利,例如在直流電動機(jī)的的方

17、向控制模塊,是怎么控制選通PWM信號通過H橋的不同的晶體管的基極來控制直流電動機(jī)的轉(zhuǎn)向的在這一個方面都費(fèi)了很大的力氣才搞懂,再者就是直流電機(jī)閉環(huán)預(yù)設(shè)這一模塊雖然開始下了很大的功夫但是也沒有整出來,最后還是在其他同學(xué)的幫助下,借鑒其他同學(xué)的設(shè)計思想才整出來一個模型,最后才勉強(qiáng)能夠?qū)崿F(xiàn)速度的預(yù)設(shè),但是在閉環(huán)使能按預(yù)設(shè)速度運(yùn)行的時候無法測試到直流電機(jī)按預(yù)設(shè)速度進(jìn)行旋轉(zhuǎn)的速度,無法實(shí)現(xiàn)對預(yù)設(shè)結(jié)果是否正確進(jìn)行判斷。在消抖動模塊中,隨說是設(shè)計的有這一個模塊,但是在進(jìn)行硬件驗(yàn)證的過程中發(fā)現(xiàn)測試的速度很不穩(wěn)定,并且測得的速度和示波器觀察到的頻率有一定的出入。也就是說,最終沒有實(shí)現(xiàn)消抖動這一功能。也成為本次設(shè)計

18、中的一大遺憾。雖說本次設(shè)計由于自己能力有限沒有完成所有的功能但是由于是自己親身參與,其中滋味只有自己知道,通過這次設(shè)計不但對自己有了更清楚的認(rèn)識同時也為今后的工作學(xué)習(xí)有很大 促進(jìn)作用,做任何事都要與其他人進(jìn)行交流,通過不斷的交流來完善自己的思想,最后達(dá)到自己的目的。六、參考文獻(xiàn)1)何小艇 電子線路設(shè)計第四版 ,浙江大學(xué)出版社,20072)譚會生、瞿遂春,EDA技術(shù)綜合應(yīng)用實(shí)例與分析,西安電子科技大學(xué)出版社,20043)高有堂,EDA技術(shù)及應(yīng)用實(shí)踐,清華大學(xué)出版社,20064)億特科技,CPLD/FPGA應(yīng)用系統(tǒng)設(shè)計與產(chǎn)品開發(fā),人民郵電出版社,20055)潘松、黃繼業(yè),技術(shù)實(shí)用教程第三版,科學(xué)技

19、術(shù)出版社,20066)候伯亨、劉凱、顧新,VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計第三版,西安電子科技大學(xué)出版社,20097)王彥,基于FPGA的工程設(shè)計與應(yīng)用M 西安電子科技大學(xué)出版社 ,2007附頁1:參考程序一:preset_conlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity preset_con isport(clk:in std_logic;en_set:in std_logic;din_tst:in std_log

20、ic_vector(7 downto 0);din_set:in std_logic_vector(7 downto 0);set_in:in std_logic_vector(7 downto 0);set_out:buffer std_logic_vector(7 downto 0);end preset_con;architecture con of preset_con issignal tmp_sp:std_logic_vector(7 downto 0);signal a,b,c:std_logic_vector(7 downto 0):="00000000"s

21、ignal en_alu: std_logic;signal p,d:integer;-signal u_d: std_logic;beginp<=6;d<=-4;process(en_set,clk)beginif rising_edge(clk) thenif en_set='1' then tmp_sp<=din_set;end if;end if;end process;process(en_set)beginif en_set='1' thenif (tmp_sp(7 downto 4)=din_tst(7 downto 4) and

22、 (tmp_sp(3 downto 0)=din_tst(3 downto 0) then en_alu<='0'elsif (tmp_sp(7 downto 4)>din_tst(7 downto 4) or (tmp_sp(7 downto 4)=din_tst(7 downto 4) and tmp_sp(3 downto 0)>din_tst(3 downto 0) then en_alu<='1' -u_d<='1'elsif (tmp_sp(7 downto 4)<din_tst(7 downto

23、4) or(tmp_sp(7 downto 4)=din_tst(7 downto 4) and tmp_sp(3 downto 0)<din_tst(3 downto 0)then en_alu<='1'-u_d<='0'end if;else en_alu<='0'end if;end process;process(clk)beginif rising_edge(clk) thena<=din_set;b<=set_out;c<=b;end if;end process;process(en_alu

24、,clk)beginif en_alu='1' thenset_out<=set_out+conv_std_logic_vector(p*conv_integer(a-b)+d*conv_integer(a-b-b+c),8);-if rising_edge(clk) then-if en_alu='0' then tmp<="00000000"-elsif u_d='1' then-tmp<=tmp+'1'-elsif u_d='0' then-tmp<=tmp-

25、9;1'-end if;else set_out<=set_in;end if;end process;-process(en_set,set_in)-begin-if en_set='1' then-set_out<=tmp+set_out; -else set_out<=set_in;-end if;-end process;end;二:g_setlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity g_set isport(en:in std

26、_logic;grade:out std_logic_vector(2 downto 0);set_out:out std_logic_vector(7 downto 0);end g_set;architecture set of g_set issignal cnt:std_logic_vector(2 downto 0);beginprocess(en)beginif rising_edge(en) thenif cnt="100" thencnt<="000"else cnt<=cnt+'1'end if;end if

27、;end process;process(cnt)begincase cnt iswhen "000"=>set_out<="00000010"when "001"=>set_out<="00101100"when "010"=>set_out<="00111011"when "011"=>set_out<="01010011"when "100"=>set_ou

28、t<="11111111"when others=>null;end case;end process;grade<=cnt;end;三:cmplibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cmp isport(a:in std_logic_vector(7 downto 0);b:in std_logic_vector(7 downto 0);pwm_wave:out std_logic);end cmp;architecture cmp o

29、f cmp isbeginprocess(a,b)beginif b<=a thenpwm_wave<='1'elsif b>a thenpwm_wave<='0'end if;end process;end;四:mux21library ieee;use ieee.std_logic_1164.all;entity MUX21 isport(a:in std_logic;b:in std_logic;s:in std_logic;y:out std_logic);end MUX21;architecture rtl of mux21 i

30、sbeginy<=(s and a) or (not s and b);end;五:cnt5library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt5 isport(clk:in std_logic;d_out:out std_logic_vector(7 downto 0);end cnt5;architecture fre of cnt5 issignal cnt:std_logic_vector(7 downto 0);beginprocess(clk)beginif ri

31、sing_edge(clk) thencnt<=cnt+'1'end if;end process;d_out<=cnt;end;六:zf_conlibrary ieee;use ieee.std_logic_1164.all;entity zf_con isport(z_f:in std_logic;zf_out:out std_logic);end zf_con;architecture zf of zf_con issignal tmp:std_logic;beginprocess(z_f)beginif rising_edge(z_f) thentmp<

32、;=not tmp;end if;end process;zf_out<=tmp;end;七:e_shakelibrary ieee;use ieee.std_logic_1164.all;entity e_shake isport(clk:in std_logic;in1:in std_logic;out1:out std_logic);end e_shake;architecture one of e_shake issignal q1:std_logic;signal not_q1:std_logic;signal q2:std_logic;beginprocess(clk)beg

33、inif rising_edge(clk) thenq1<=in1;end if;end process;process(clk,q1)beginif rising_edge(clk) thenq2<=q1;end if;end process;not_q1<=not q1;out1<=not_q1 and q2;end;八:fre_cont10library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fre_cnt10 isport(clk_1hz:in std_logic;freq:in std_logic;d_out:out std_logic_vector(7 downto

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論