基于FPGA的彩燈控制器設(shè)計_第1頁
基于FPGA的彩燈控制器設(shè)計_第2頁
基于FPGA的彩燈控制器設(shè)計_第3頁
基于FPGA的彩燈控制器設(shè)計_第4頁
基于FPGA的彩燈控制器設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州輕工業(yè)學(xué)院可編程數(shù)字系統(tǒng)設(shè)計 題 目 基于FPGA的彩燈控制器的設(shè)計 學(xué)生姓名 張煥煥 專業(yè)班級 電子信息工程10-2班 學(xué) 號 院 (系) 電氣信息工程學(xué)院 指導(dǎo)教師 完成時間 基于FPGA的彩燈控制器設(shè)計摘 要隨著科技的發(fā)展 , 在現(xiàn)代生活中, 彩燈作為一種景觀應(yīng)用越來越多。而在電子電路設(shè)計領(lǐng)域中,電子設(shè)計自動化(EDA)工具已成為主要的設(shè)計手段,VHDL語言則是EDA的關(guān)鍵技術(shù)之一,它采用自頂向下的設(shè)計方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設(shè)計任務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計。本文介紹了基于EDA技的多路彩燈控制器的設(shè)計與分析。在M

2、AX+PLUSII環(huán)境下采用VHDL語言實現(xiàn),論述了基于VHDL語言和FPGA芯片的數(shù)字系統(tǒng)設(shè)計思想和實現(xiàn)過程。電子設(shè)計自動化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計帶來了革命性的變化,EDA軟件設(shè)計工具,硬件描述語言,可編程邏輯器件使得EDA技術(shù)的應(yīng)用走向普及。FPGA是新型的可編程邏輯器件,采用FPGA進行產(chǎn)品開發(fā)可以靈活地進行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。關(guān)鍵詞: VHDL 彩燈 仿真 1、概述1.1、設(shè)計目的:設(shè)計一個彩燈控制器,使彩燈(LED管)可以實現(xiàn)四種花樣循環(huán)變化及兩種不同頻率的閃爍,有復(fù)位開關(guān)。整個系統(tǒng)有七個輸入信號CLK,CLR,A,B,

3、C,D,OPT,六個輸出信號控制六個彩燈。OPT的高低電平控制彩燈閃爍的快慢,A,B,C,D控制各種不同花樣彩燈的變換。此彩燈控制系統(tǒng)設(shè)定有四種花樣變化。四種花樣分別為:a.彩燈從左到右逐次亮起,再逐次從右到左熄滅;b.彩燈兩邊同時亮兩個,再逐次向中間亮;c.彩燈從左到右兩個兩個的亮,再從右到左兩個兩個逐次的亮;d.彩燈中間兩個亮,再同時向兩邊散開。1.2、設(shè)計要求:u 掌握FPGA 的程序設(shè)計方法。 u 掌握硬件描述語言語法。 u 程序設(shè)計完成后要求在軟件中實現(xiàn)功能仿真。2、系統(tǒng)設(shè)計2.1、設(shè)計原理:整個系統(tǒng)共有七個輸入信號:基準(zhǔn)時鐘信號CLK,系統(tǒng)清零信號(復(fù)位信號)CLR,彩燈節(jié)奏快慢選

4、擇開關(guān)OPT;共有4個輸出信號Q3.0,分別用于控制四路彩燈。據(jù)此,我們可將整個彩燈控制器CDKZQ分為四大部分:彩燈花樣控制部分、分頻部分、定時部分和計數(shù)部分。當(dāng)各個模塊均完成上述操作之后,形成最后的四路彩燈顯示系統(tǒng),并且進行仿真。仿真通過,即可下載到指定的FPGA芯片里面,并進行實際連線,進行最后的硬件測試。把分頻部分的不同頻率的時鐘信號CP輸送到計數(shù)部分 ,從而控制彩燈閃爍速度的快慢 ,定時部分控制每種速度維持的時間長短。圖表 122、設(shè)計方案:在電路中以 1 代表燈亮,以 0 代表燈滅,由 0、1按不同的規(guī)律組合代表不同的燈光圖案,同時使其選擇不同的頻率,從而實現(xiàn)多種圖案多種頻率的花樣

5、功能顯示。在該電路中只需簡單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個四路彩燈控制系統(tǒng)的實現(xiàn)為例進行簡單說明。此四路彩燈控制系統(tǒng)設(shè)定有四種花樣變化 。彩燈圖案狀態(tài)變換的速度有快、慢兩種。3、程序仿真過程start compilation先編譯generate functional simulation netlist然后生成功能仿真網(wǎng)絡(luò)表assignmentssettingsimulation setting設(shè)置成功能仿真然后新建一個vector waveform file 通過viewutility windows-node finder 把輸入輸出管腳添加進波形仿真圖里 點

6、擊start simulation得到仿真圖WAVEFORM1:由圖可見:正常情況下 燈按照花樣abcd的順序循環(huán)d在80NS-120NS的高電平使得花樣變?yōu)镈花樣,D高電平結(jié)束,燈順序進行A花樣。OPT 在80NS-170NS高電平使得燈變換速度提高2倍 但是和這兩種燈的狀態(tài)任然占用了兩個時鐘周期,這是因為花樣d和花樣a狀態(tài)轉(zhuǎn)換之間沒有立即銜接,導(dǎo)致220NS處CLR高電平使得燈全部清0,不再變化DIV2是二分頻輸出,由圖可見是輸入時鐘CLK的二分頻4、實驗結(jié)果分析實驗表明 ,此設(shè)計方法能夠滿足多種不同花樣彩燈的變化要求 ,并且該方法便于擴展不同變化模式的彩燈花樣,同時又實現(xiàn)了彩燈的兩種不同

7、頻率的閃爍。如果不按任何按鍵時候,燈就按四種花樣順序循環(huán)跑,如果按下某個鍵再松開,比如按下C鍵然后松開,那么不管之前燈跑到哪個花樣,按鍵后燈就會從C代表的花樣處開始跑,然后是D花樣,然后是A花樣,依次循環(huán)。但是A,B,C,D認(rèn)為是按下會彈起的按鍵,因為這個程序里,如果一直按著按鍵不松手,會導(dǎo)致燈只是反復(fù)跑一個花樣。比如按著B鍵不松手,那么就會反復(fù)跑B花樣。還有不能允許同時按下兩個鍵,三個鍵,4個鍵,也就是說,同一時刻ABCD只能有一個是高電平,否則會出錯,因為這個程序并沒有防錯機制。5、心得體會本次設(shè)計的課題是彩燈控制器的設(shè)計,當(dāng)拿到這個課題的時候經(jīng)過分析就知道關(guān)鍵是計數(shù)器和分頻器的使用,分頻

8、的方法有很多種,對于同一種功能的實現(xiàn),用VHDL可以采用多種方式進行描述,每種方式之間各有優(yōu)劣,本次設(shè)計只采用了其中較簡單的一種,應(yīng)盡量用最簡潔的語言寫出所需功能的程序。通過這次課程設(shè)計對技術(shù)有了更進一步的熟悉,VHDL語言和語言等其他語言還是有很大的區(qū)別。VHDL是EDA技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計方面,表現(xiàn)了強大的生命力和應(yīng)用潛力。其主要的也是最大的優(yōu)點就在于設(shè)計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費過多的時間和精力。在實際操作中發(fā)現(xiàn)設(shè)計和

9、課本上的知識有很大聯(lián)系,但又高于課本,一個簡單的原理要把它應(yīng)用以及和其他功能綜合起來就有些困難。通過設(shè)計也鞏固了我們的書本知識以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對的了解。6、致謝7、參考文獻1 周潤景.基于Quartus的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計實例M.電子工業(yè)出版社.2007,82 潘松 黃繼業(yè). EDA技術(shù)實用教程(第二版).北京:科學(xué)出版社,2006.93 林明權(quán) 馬維旻 VHDL數(shù)字控制系統(tǒng)設(shè)計范例.電子工業(yè)出版社2003,14 褚振勇. FPGA設(shè)計及應(yīng)用(第三版)M.西安電子科技大學(xué)出版社.2012,48、附錄彩燈控制器的源程序library ieee;use ie

10、ee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity horseracelamp isport(clk:in std_logic;clr:in std_logic;a:in std_logic;b:in std_logic;c:in std_logic;d:in std_logic;opt:in std_logic;q:out std_logic_vector(5 downto 0);div2:out std_logic);end;architecture one of horseracelamp is type states

11、 is(s0,s1,s2,s3); signal present:states; signal q1:std_logic_vector(5 downto 0); signal count:std_logic_vector(3 downto 0); signal halfclk:std_logic_vector(1 downto 0); signal clkin:std_logic_vector(1 downto 0);begin process(clk) -該進程實現(xiàn)二分頻beginif clkevent and clk=1 then halfclk=halfclk+1;end if;end

12、process;process(opt)-該進程實現(xiàn)OPT高時候用原來的時鐘,OPT低的時候用二分頻后的時鐘,信號CLKIN(0)會傳遞到下一個進程里 begin if opt=0then clkin(0)=halfclk(0); else clkin(0)=clk; end if; end process; process(clk,clr,a,b,c,d) -S1,S2,S3,S4分別對應(yīng)A,B,C,D四種花樣,它們之間會自動按順序循環(huán),也會因為A,B,C,D中某個置高而改變循環(huán)順序,所以用了大量的IF ELSIF語句beginif clr=1 then present=s0; q10);e

13、lsif clkin(0)event and clkin(0)=1 then case present is when s0=if q1=thenq1=;elseif count=1100 then count0); q1=; present=s1; elsif b=1then count0); q1=; present=s1; elsif c=1then count0); q1=; present=s2; elsif d=1thencount0); q1=; presentq1q1q1q1q1q1q1q1q1q1q1q1null;end case;count=count+1;presenti

14、f count=0011 then count0); q1=; present=s2; elsif a=1then count0); q1=; present=s0; elsif c=1then count0); q1=; present=s2; elsif d=1thencount0); q1=; presentq1q1q1null;end case;count=count+1;presentif count=0110 then count0); q1=; present=s3;elsif a=1then count0); q1=; present=s0; elsif b=1then count0); q1=; present=s1; elsif d=1thencount0); q1=; presentq1q1q1q1q1q1null;end case;count=count+1;presentif count=0011 then count0); q1=; present=s0

溫馨提示

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

評論

0/150

提交評論