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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、輯器件,采用FPGA進(jìn)行產(chǎn)品開(kāi)發(fā)可以靈活地進(jìn)行模塊配置,大大縮短了產(chǎn)品開(kāi)發(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、設(shè)計(jì)目的設(shè)計(jì)一個(gè)彩燈控制器,使彩燈(LED管)可以實(shí)現(xiàn)四種花樣循環(huán)變化及兩種不同頻率的閃爍,有復(fù)位開(kāi)關(guān)。整個(gè)系統(tǒng)有七個(gè)輸入信號(hào)CLK,CLR,A,B,C,D,OPT,六個(gè)輸出信號(hào)控制六個(gè)彩燈。OPT的高低電平控制彩燈閃爍的快慢,A,B,C,D控制各種不同花樣彩燈的變換。此彩燈控制系統(tǒng)設(shè)定有四種花樣變化。四種花樣分別為:a.彩燈從左到右逐次亮起,再逐次從右到左熄滅;b.彩燈兩邊同時(shí)亮兩個(gè),再逐次向中間亮;c.彩燈從左到右兩個(gè)兩個(gè)的亮,再?gòu)挠业阶髢蓚€(gè)兩個(gè)逐次的亮;d.彩燈中間兩個(gè)亮,再同

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

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

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

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

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

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

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

18、93 林明權(quán) 馬維旻. VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例M.西安:電子工業(yè)出版社,2003.14 褚振勇. FPGA設(shè)計(jì)及應(yīng)用(第三版)M.西安:電子科技大學(xué)出版社,2012.45 張毅剛 彭喜元 彭宇.單片機(jī)原理及應(yīng)用(第二版)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論