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

下載本文檔

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

文檔簡介

1、基于FPGA的彩燈控制器設計鄭州輕工業(yè)學院可編程數(shù)字系統(tǒng)設計 題 目 基于FPGA的彩燈控制器設計 學生姓名 張煥煥 專業(yè)班級 電子信息工程10-2班 學 號 541001030249 院 (系) 電氣信息工程學院 指導教師 胡智宏 石軍 完成時間 2013年6月21日 鄭州輕工業(yè)學院課 程 設 計 任 務 書題目 基于FPGA的彩燈控制器設計 專業(yè)、班級 電信10-02班 學號 541001030249 姓名 張煥煥 主要內(nèi)容、基本要求、主要參考資料等:主要內(nèi)容:要求學生使用硬件描述語言設計彩燈控制器的FPGA源程序,實現(xiàn)如下功能:設計一個彩燈控制器,使彩燈(LED管)可以實現(xiàn)四種花樣循環(huán)變

2、化及兩種不同頻率的閃爍,有復位開關(guān)。整個系統(tǒng)有七個輸入信號CLK,CLR,A,B,C,D,OPT,六個輸出信號控制六個彩燈。OPT的高低電平控制彩燈閃爍的快慢,A,B,C,D控制各種不同花樣彩燈的變換。此彩燈控制系統(tǒng)設定有四種花樣變化。四種花樣分別為:a.彩燈從左到右逐次亮起,再逐次從右到左熄滅;b.彩燈兩邊同時亮兩個,再逐次向中間亮;c.彩燈從左到右兩個兩個的亮,再從右到左兩個兩個逐次的亮;d.彩燈中間兩個亮,再同時向兩邊散開?;疽螅?、 掌握FPGA 的程序設計方法。 2、掌握硬件描述語言語法。 3、程序設計完成后要求在軟件中實現(xiàn)功能仿真。主要參考資料:1、周潤景.基于Quartus的

3、FPGA/CPLD數(shù)字系統(tǒng)設計實例M.電子工業(yè)出版社.2007,82、潘松 黃繼業(yè). EDA技術(shù)實用教程(第二版).北京:科學出版社,2006.9完 成 期 限: 2013.6.212013.6.25 指導教師簽名: 課程負責人簽名: 目 錄摘 要I中文摘要I英文摘要II1、概述11.1、設計目的11.2、設計要求12、系統(tǒng)設計12.1、設計原理12.1.1 系統(tǒng)原理設計圖22.2、設計方案23、程序仿真過程23.1仿真圖34、實驗結(jié)果分析35、心得體會46、致謝47、參考文獻58、附錄6 基于FPGA的彩燈控制器設計摘 要中文摘要隨著科技的發(fā)展 , 在現(xiàn)代生活中, 彩燈作為一種景觀應用越來越

4、多。而在電子電路設計領域中,電子設計自動化(EDA)工具已成為主要的設計手段,VHDL語言則是EDA的關(guān)鍵技術(shù)之一,它采用自頂向下的設計方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設計任務分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設計。本文介紹了基于EDA技的多路彩燈控制器的設計與分析。在MAX+PLUSII環(huán)境下采用VHDL語言實現(xiàn),論述了基于VHDL語言和FPGA芯片的數(shù)字系統(tǒng)設計思想和實現(xiàn)過程。電子設計自動化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設計帶來了革命性的變化,EDA軟件設計工具,硬件描述語言,可編程邏輯器件使得EDA技術(shù)的應用走向普及。FPGA是新型的可編程邏

5、輯器件,采用FPGA進行產(chǎn)品開發(fā)可以靈活地進行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。關(guān)鍵詞: VHDL 彩燈 仿真 控制 英文摘要 Lantern controller design based on FPGA With the development of science and technology, in modern life, colorful lights as a landscape more and more applications. However, in the electronic circuit design domain, the

6、 electronic design automation (EDA) tools have become the main design method, VHDL language is one of the key technologies of EDA, it uses from the top design method, namely from the overall system requirements, from top to bottom of the design task decomposition into the different function module,

7、finally each function module is connected to form the top module, the overall design of system hardware .Therefore, this paper introduces the design and analysis of multiple lights controller based on the EDA technique. In the MAX+PLUSII environment using VHDL language, discusses the digital system

8、design idea of VHDL language and the FPGA chip and the implementation process based on. The development of electronic design automation technology of EDA has brought revolutionary changes to the design of electronic systems, the EDA software design tool, the hardware description language, programmab

9、le logic device makes the application of EDA technology to spread. The FPGA is programmable logic device model, using FPGA can flexibly module configuration of product development, shorten the product development cycle, also is advantageous to the product to the miniaturization, the integrated direc

10、tion. Keywords: VHDL lantern simulation control 1、概述1.1、設計目的設計一個彩燈控制器,使彩燈(LED管)可以實現(xiàn)四種花樣循環(huán)變化及兩種不同頻率的閃爍,有復位開關(guān)。整個系統(tǒng)有七個輸入信號CLK,CLR,A,B,C,D,OPT,六個輸出信號控制六個彩燈。OPT的高低電平控制彩燈閃爍的快慢,A,B,C,D控制各種不同花樣彩燈的變換。此彩燈控制系統(tǒng)設定有四種花樣變化。四種花樣分別為:a.彩燈從左到右逐次亮起,再逐次從右到左熄滅;b.彩燈兩邊同時亮兩個,再逐次向中間亮;c.彩燈從左到右兩個兩個的亮,再從右到左兩個兩個逐次的亮;d.彩燈中間兩個亮,再同

11、時向兩邊散開。1.2、設計要求u 掌握FPGA 的程序設計方法。 u 掌握硬件描述語言語法。 u 程序設計完成后要求在軟件中實現(xiàn)功能仿真。2、系統(tǒng)設計2.1、設計原理整個系統(tǒng)共有七個輸入信號:基準時鐘信號CLK,系統(tǒng)清零信號(復位信號)CLR,彩燈節(jié)奏快慢選擇開關(guān)OPT;共有4個輸出信號Q3.0,分別用于控制四路彩燈。據(jù)此,我們可將整個彩燈控制器CDKZQ分為四大部分:彩燈花樣控制部分、分頻部分、定時部分和計數(shù)部分。當各個模塊均完成上述操作之后,形成最后的四路彩燈顯示系統(tǒng),并且進行仿真。仿真通過,即可下載到指定的FPGA芯片里面,并進行實際連線,進行最后的硬件測試。把分頻部分的不同頻率的時鐘信

12、號CP輸送到計數(shù)部分 ,從而控制彩燈閃爍速度的快慢 ,定時部分控制每種速度維持的時間長短。 2.1.1 系統(tǒng)原理設計圖圖表 12.2、設計方案在電路中以 1 代表燈亮,以 0 代表燈滅,由 0、1按不同的規(guī)律組合代表不同的燈光圖案,同時使其選擇不同的頻率,從而實現(xiàn)多種圖案多種頻率的花樣功能顯示。在該電路中只需簡單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個四路彩燈控制系統(tǒng)的實現(xiàn)為例進行簡單說明。此四路彩燈控制系統(tǒng)設定有四種花樣變化 。彩燈圖案狀態(tài)變換的速度有快、慢兩種。3、程序仿真過程start compilation先編譯generate functional simulati

13、on netlist然后生成功能仿真網(wǎng)絡表assignmentssettingsimulation setting設置成功能仿真然后新建一個vector waveform file 通過viewutility windows-node finder 把輸入輸出管腳添加進波形仿真圖里 點擊start simulation3.1仿真圖圖表 2由圖可見:正常情況下 燈按照花樣abcd的順序循環(huán)d在80NS-120NS的高電平使得花樣變?yōu)镈花樣,D高電平結(jié)束,燈順序進行A花樣。OPT 在80NS-170NS高電平使得燈變換速度提高2倍 但是001100和100000這兩種燈的狀態(tài)任然占用了兩個時鐘周期

14、,這是因為花樣d和花樣a狀態(tài)轉(zhuǎn)換之間沒有立即銜接,導致220NS處CLR高電平使得燈全部清0,不再變化DIV2是二分頻輸出,由圖可見是輸入時鐘CLK的二分頻。4、實驗結(jié)果分析實驗表明 ,此設計方法能夠滿足多種不同花樣彩燈的變化要求 ,并且該方法便于擴展不同變化模式的彩燈花樣,同時又實現(xiàn)了彩燈的兩種不同頻率的閃爍。如果不按任何按鍵時候,燈就按四種花樣順序循環(huán)跑,如果按下某個鍵再松開,比如按下C鍵然后松開,那么不管之前燈跑到哪個花樣,按鍵后燈就會從C代表的花樣處開始跑,然后是D花樣,然后是A花樣,依次循環(huán)。但是A,B,C,D認為是按下會彈起的按鍵,因為這個程序里,如果一直按著按鍵不松手,會導致燈只

15、是反復跑一個花樣。比如按著B鍵不松手,那么就會反復跑B花樣。還有不能允許同時按下兩個鍵,三個鍵,4個鍵,也就是說,同一時刻ABCD只能有一個是高電平,否則會出錯,因為這個程序并沒有防錯機制。5、心得體會本次設計的課題是彩燈控制器的設計,當拿到這個課題的時候經(jīng)過分析就知道關(guān)鍵是計數(shù)器和分頻器的使用,分頻的方法有很多種,對于同一種功能的實現(xiàn),用VHDL可以采用多種方式進行描述,每種方式之間各有優(yōu)劣,本次設計只采用了其中較簡單的一種,應盡量用最簡潔的語言寫出所需功能的程序。   通過這次課程設計對EDA技術(shù)有了更進一步的熟悉,VHDL 語言和語言等其他語言還是

16、有很大的區(qū)別。VHDL是EDA技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設計方面,表現(xiàn)了強大的生命力和應用潛力。其主要的也是最大的優(yōu)點就在于設計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費過多的時間和精力。在實際操作中發(fā)現(xiàn)設計和課本上的知識有很大聯(lián)系,但又高于課本,一個簡單的原理要把它應用以及和其他功能綜合起來就有些困難。通過設計也鞏固了我們的書本知識以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對EDA的了解。6、致謝本設計過程中得到老師的悉心指導,設計過程中老師多次

17、幫我分析思路,開拓視角,在我遇到困難想要放棄的時候給予我最大的支持和鼓勵。老師那嚴謹求實的治學態(tài)度、踏實堅韌的工作精神,將使我終身受益;另外同學和朋友的熱心幫助也使我學到了不少的知識。再多華麗的語言也顯得蒼白,在此,謹向老師和同學們致以誠摯的謝意和崇高的敬意。因為他們我對這次課程設計有了深刻的印象,雖然只有短暫的一周,但在這期間,卻讓我受益匪淺,我深刻地認識到了“理論聯(lián)系實際”這句話的重要性與真實性。7、參考文獻1 周潤景.基于Quartus的FPGA/CPLD數(shù)字系統(tǒng)設計實例M.西安:電子工業(yè)出版社,2007,82 潘松 黃繼業(yè). EDA技術(shù)實用教程(第二版)M.北京:科學出版社,2006.

18、93 林明權(quán) 馬維旻. VHDL數(shù)字控制系統(tǒng)設計范例M.西安:電子工業(yè)出版社,2003.14 褚振勇. FPGA設計及應用(第三版)M.西安:電子科技大學出版社,2012.45 張毅剛 彭喜元 彭宇.單片機原理及應用(第二版)M.北京:高等教育出版社,2009.118、附錄彩燈控制器的源程序library ieee;use ieee.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

19、 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 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 half

20、clk:std_logic_vector(1 downto 0); signal clkin:std_logic_vector(1 downto 0);begin process(clk) beginif clk'event and clk='1' then halfclk<=halfclk+1;end if;end process;process(opt) begin if opt='0'then clkin(0)<=halfclk(0); else clkin(0)<=clk; end if; end process; proces

21、s(clk,clr,a,b,c,d) beginif clr='1' then present<=s0; q1<=(others=>'0');elsif clkin(0)'event and clkin(0)='1' then case present is when s0=>if q1="000000"thenq1<="100000"elseif count="1100" then count<=(others=>'0'

22、); q1<="100001" present<=s1; elsif b='1'then count<=(others=>'0'); q1<="100001" present<=s1; elsif c='1'then count<=(others=>'0'); q1<="110000" present<=s2; elsif d='1'thencount<=(others=>'0

23、'); q1<="001100" present<=s3; else case count iswhen "0000"=>q1<="100000"when "0001"=>q1<="110000"when "0010"=>q1<="111000"when "0011"=>q1<="111100"when "0100"=>q1

24、<="111110"when "0101"=>q1<="111111"when "0110"=>q1<="111110"when "0111"=>q1<="111100"when "1000"=>q1<="111000"when "1001"=>q1<="110000"when "1010"=

25、>q1<="100000"when "1011"=>q1<="000000"when others=>null;end case;count<=count+1;present<=s0; end if; end if; when s1=>if count="0011" then count<=(others=>'0'); q1<="110000" present<=s2; elsif a='1'

26、then count<=(others=>'0'); q1<="100000" present<=s0; elsif c='1'then count<=(others=>'0'); q1<="110000" present<=s2; elsif d='1'thencount<=(others=>'0'); q1<="001100" present<=s3; else case coun

27、t iswhen "0000"=>q1<="100001"when "0001"=>q1<="110011"when "0010"=>q1<="111111"when others=>null;end case;count<=count+1;present<=s1; end if;when s2=>if count="0110" then count<=(others=>'0&

28、#39;); q1<="001100" present<=s3;elsif a='1'then count<=(others=>'0'); q1<="100000" present<=s0; elsif b='1'then count<=(others=>'0'); q1<="100001" present<=s1; elsif d='1'thencount<=(others=>'0'); q1<="001100" present<=s3; else case count iswhen "0000"=>q1<="110000"when "0001"=>q1<="111100"when "0010"=>q1<="111111"whe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論