版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《EDA技術(shù)》課程設(shè)計報告</p><p> 題 目: 彩燈控制器 </p><p> 目 錄</p><p> 1設(shè)計目的………………………………………………………3</p><p> 2設(shè)計題目描述和要求…………………………………………3</p>&l
2、t;p> 3設(shè)計原理………………………………………………………3</p><p> 3.1方案論證……………………………………………………3</p><p> 3.2模塊設(shè)計……………………………………………………4</p><p> 3.3系統(tǒng)結(jié)構(gòu)……………………………………………………6</p><p> 4總結(jié)……………
3、………………………………………………7</p><p> 5參考書目………………………………………………………8</p><p> 6附錄一程序……………………………………………………9</p><p> 7附錄二編譯……………………………………………………16</p><p> 8附錄三時序仿真………………………………………………1
4、7</p><p><b> 1.設(shè)計目的</b></p><p> 學習EDA開發(fā)軟件和MAX+plus Ⅱ的使用方法,熟悉可編程邏輯器件的使用,通過制作來了解彩燈控制系統(tǒng)。</p><p> 2.設(shè)計題目描述和要求</p><p> 設(shè)計一個彩燈控制器,能使8個彩燈(LED管)能連續(xù)發(fā)出四六種以上不同的顯示形
5、式;</p><p> 2)隨著彩燈顯示圖案的變化,發(fā)出不同的音響聲。</p><p><b> 3.設(shè)計原理</b></p><p><b> 3.1 方案論證</b></p><p> 這次的彩燈設(shè)計采用的是分模塊來完成的,包括分頻器、計數(shù)器、選擇器、彩燈控制器。其中彩燈控制器是用來輸出
6、不同的花樣,彩燈控制器的輸出則是用一個32進制的計數(shù)器來控制,揚聲器的輸出時用不同的頻率來控制,所以用了一個集成分頻器來使輸入的頻率被分為幾種不同的頻率,不同頻率的選擇性的輸出則是用一個4選一的選擇器來控制?;谏鲜龅慕榻B本次的彩燈控制采用的模式6來進行顯示。</p><p> 圖3-1-1 模式6結(jié)構(gòu)圖</p><p><b> 3.2 模塊設(shè)計</b><
7、/p><p><b> 1)集成分頻器模塊</b></p><p> 設(shè)計要求顯示不同的彩燈的時候要伴隨不同的音樂,所以設(shè)計分頻器來用不同的頻率控制不同的音樂輸出。</p><p><b> 模塊說明:</b></p><p> Rst:輸入信號 復位信號 用來復位集成分頻器的輸出使輸出為“0”
8、,及沒有音樂輸出。</p><p> Clk:輸入信號 模塊的功能即為分頻輸入的頻率信號。</p><p> Clk_4、clk_6、clk_8、clk_10:輸出信號 即為分頻模塊對輸入信號clk的分頻,分別為1/4分頻輸出、1/6分頻輸出、1/8分頻輸出、1/10分頻輸出。</p><p> 圖3-2-1 集成分頻器</p><p>
9、; 2)32進制計數(shù)器模塊</p><p> 32進制模塊用來控制彩燈輸出模塊,即確定彩燈控制器的不同的輸出。</p><p> Rst:輸入信號 復位信號 用來復位32進制使其輸出為“00000”。</p><p> Clk:輸入信號 用來給模塊提供工作頻率。</p><p> Count_out[4..0]:輸出信號 即為32進
10、制計數(shù)器的輸出。</p><p> 圖3-2-2 32進制計數(shù)器</p><p><b> 3)彩燈控制模塊</b></p><p> 彩燈控制模塊用來直接控制彩燈的輸出,使彩燈表現(xiàn)出不同的花樣。</p><p> Rst:輸入信號 使彩燈控制模塊的輸出為“00000000”,即讓彩燈無輸出。</p>
11、<p> Input[4..0]:輸入信號 不同的輸入使彩燈控制模塊有不同的輸出即彩燈顯示出不同的花樣。</p><p> Output[7..0]:輸出信號 直接與彩燈相連來控制彩燈。</p><p> 圖3-2-3 彩燈控制模塊</p><p> 4) 4選1選擇器模塊</p><p> Rst:輸入信號 復位信號
12、 使選擇器的輸出為“0”。</p><p> In1、in2、in3、in4:輸入信號 接分頻器的輸出。</p><p> Inp[1..0]:輸入信號 接4進制計數(shù)器的輸出用來控制選擇器的選擇不同的輸入選擇不同的輸出。</p><p> Output:輸出信號 直接接揚聲器即輸出的是不同的頻率來控制揚聲器播放音樂。</p><p>
13、 圖3-2-4 4選1選擇器</p><p> 5)4進制計數(shù)器模塊</p><p> 4進制計數(shù)器作為選擇器的輸入來控制選擇器選擇不同的頻率作為輸出控制揚聲器工作。</p><p> Clk:輸入信號 來為計數(shù)器提供工作頻率。</p><p> Rst:輸入信號 復位信號 使計數(shù)器的輸出為“00”。</p><p
14、> 圖3-2-5 4進制計數(shù)器</p><p><b> 3.3 系統(tǒng)結(jié)構(gòu)</b></p><p> 整個系統(tǒng)就是各個分模塊組成來實現(xiàn)最后的彩燈控制功能,系統(tǒng)又兩個時鐘來控制一個是控制32進制計數(shù)器即控制彩燈控制模塊來實現(xiàn)彩燈的不同輸出,另一個時鐘為分頻器的輸入來進行分頻處理,最后用來控制揚聲器發(fā)出不同的音樂,具體分頻處理的時鐘的頻率比實現(xiàn)彩燈控制的時鐘頻
15、率要高。</p><p> 圖 3-3-1 系統(tǒng)功能模塊</p><p><b> 4.總結(jié)</b></p><p> 這次的EDA課程設(shè)計有一周的時間,在這一周的時間里我們充分合理的安排了自己的時間來使本次的課程設(shè)計能夠順利的完成,當然我們在本次的設(shè)計中并不是一帆風順的,我們遇到了一些的問題,例如我們開始時用的文本的方式用一個總的程序來
16、完成,可以在設(shè)計的過程中我們發(fā)現(xiàn)程序編到后面變量越到很容易搞混淆同時各個進程間的聯(lián)系也越來越模糊以至于后面我們自己都不知道程序的整體框圖是什么,導致后面不能夠繼續(xù)下去,后面我們再一次對我們這次的設(shè)計題目進行了分析和整理,最后我和我的同伴決定采用分模塊的方式來完成本次的課題設(shè)計,當然最重要的是分析各個模塊間的關(guān)系。最后我們采用上面分析的結(jié)構(gòu)框圖。最后我們的設(shè)計很成功,仿真和硬件測試都是正確的,實現(xiàn)了我們的設(shè)計要求和目的。</p>
17、;<p> 在這次設(shè)計中我們收獲了很多,首先最直接的收獲就是我們鞏固了這門課程所學過的知識,把它運用到了實踐當中,并且學到了很多在書本撒和那個所沒有學到的知識,通過查閱相關(guān)資料進一步加深了對EDA的了??偟膩碚f,通過這次課程設(shè)計不僅鍛煉了我們的動手和動腦能力,也使我懂得了理論與實際相結(jié)合的重要性,只有理論知識是遠遠不夠的,要把所學的理論知識與實踐相結(jié)合起來,才能提高自己的實際動手能力和獨立思考的能力。在我們的共同努力和指
18、導老師的指引下我們圓滿的完成了彩燈控制器的設(shè)計,實現(xiàn)了設(shè)計目的。</p><p><b> 參考書目:</b></p><p> 趙偉軍,《Protel99se教程》,北京,人民郵電出版社,1996年</p><p> 金西,《VHDL與復雜數(shù)字系統(tǒng)設(shè)計》,西安,西安電子科技大學出版社,2003</p><p>
19、 漢澤西,《EDA技術(shù)及其應(yīng)用》,北京,北京航空航天大學出版社,2004</p><p><b> 6附錄一 程序:</b></p><p> ----------------------------------------------分頻器模塊-----------------------------------------</p><p&g
20、t; -- MAX+plus II VHDL Template</p><p> -- Clearable loadable enablable counter</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY fenpinqi
21、IS</p><p><b> PORT</b></p><p><b> (</b></p><p> clk,rst: INstd_logic;</p><p> clk_10,clk_4,clk_6,clk_8: OUT std_logic</p><p&
22、gt;<b> );</b></p><p> END fenpinqi;</p><p> ARCHITECTURE cd OF fenpinqi IS</p><p><b> begin</b></p><p> p1:process(clk,rst)</p><
23、p> variable a:integer range 0 to 20;</p><p><b> begin</b></p><p> if rst='1' then</p><p> clk_4<='0'; ----- 復位信號控制部分</p&
24、gt;<p><b> else</b></p><p> if clk'event and clk='1'then</p><p> if a>=3 then</p><p><b> a:=0;</b></p><p> clk_4<=
25、'1';</p><p><b> else</b></p><p><b> a:=a+1;</b></p><p> clk_4<='0';</p><p><b> end if;</b></p><p&g
26、t;<b> end if;</b></p><p><b> end if;</b></p><p> end process p1;</p><p> p2:process(clk,rst)</p><p> variable b:integer range 0 to 20;</
27、p><p><b> begin</b></p><p> if rst='1' then</p><p> clk_6<='0'; ----- 復位信號控制部分</p><p><b> else</b></p
28、><p> if clk'event and clk='1'then</p><p> if b>=5 then</p><p><b> b:=0;</b></p><p> clk_6<='1';</p><p><b> e
29、lse</b></p><p><b> b:=b+1;</b></p><p> clk_6<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><
30、;p><b> end if;</b></p><p> end process p2;</p><p> p3:process(clk,rst)</p><p> variable c:integer range 0 to 20;</p><p><b> begin</b><
31、;/p><p> if rst='1' then</p><p> clk_8<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk=
32、9;1'then</p><p> if c>=7 then</p><p><b> c:=0;</b></p><p> clk_8<='1';</p><p><b> else</b></p><p><b>
33、c:=c+1;</b></p><p> clk_8<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p>
34、<p> end process p3;</p><p> p4:process(clk,rst)</p><p> variable d:integer range 0 to 20;</p><p><b> begin</b></p><p> if rst='1' then&l
35、t;/p><p> clk_10<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk='1'then</p><p> if d>=
36、9 then</p><p><b> d:=0;</b></p><p> clk_10<='1';</p><p><b> else</b></p><p><b> d:=d+1;</b></p><p> clk
37、_10<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p4;</p><
38、;p><b> end cd;</b></p><p> ----------------------------------------------4選1選擇器---------------------------------------</p><p> LIBRARY ieee;</p><p> USE ieee.std_
39、logic_1164.all;</p><p> ENTITY xzq4_1 IS</p><p><b> PORT</b></p><p><b> ( </b></p><p> rst:in std_logic;</p><p> inp:in inte
40、ger range 0 to 3;</p><p> in1,in2,in3,in4: In std_logic;</p><p> output: OUT std_logic</p><p><b> );</b></p><p> END xzq4_1;</p><p> A
41、RCHITECTURE a OF xzq4_1 IS</p><p><b> BEGIN</b></p><p> PROCESS (rst,inp)</p><p><b> BEGIN</b></p><p> if(rst='1') then output<=&
42、#39;0';</p><p><b> else</b></p><p> case inp is</p><p> when 0=>output<=in1; </p><p> when 1=>output<=in2;</p><p> when 2
43、=>output<=in3;</p><p> when 3=>output<=in4; </p><p> when others=>null;</p><p> end case; </p><p><b> end if;</b></p><p>
44、; END PROCESS;</p><p><b> END a;</b></p><p> -------------------------------------------彩燈控制模塊----------------------------------------</p><p> LIBRARY ieee;</p&
45、gt;<p> USE ieee.std_logic_1164.all;</p><p> ENTITY caideng IS</p><p><b> PORT</b></p><p><b> (</b></p><p> input: ININTEGER RANG
46、E 0 TO 31;</p><p> rst:in std_logic; </p><p> output: OUT std_logic_vector(7 downto 0);</p><p> sm :out std_logic_vector(6 downto 0)</p><p><b> );</b>
47、;</p><p> END caideng;</p><p> ARCHITECTURE a OF caideng IS</p><p><b> BEGIN</b></p><p> PROCESS (input)</p><p><b> BEGIN</b>&
48、lt;/p><p> if rst='1' then output<="00000000";sm<="0000000";</p><p><b> else</b></p><p> case input is</p><p> when 0=>
49、;output<="10000000";sm<="0000110";</p><p> when 1=>output<="01000000";sm<="0000110";</p><p> when 2=>output<="00100000";s
50、m<="0000110";</p><p> when 3=>output<="00010000";sm<="0000110";</p><p> when 4=>output<="00001000";sm<="0000110";</p&g
51、t;<p> when 5=>output<="00000100";sm<="0000110";</p><p> when 6=>output<="00000010";sm<="0000110";</p><p> when 7=>output&l
52、t;="00000001";sm<="0000110";</p><p> when 8=>output<="00010000";sm<="0011011";</p><p> when 9=>output<="00110000";sm<=&qu
53、ot;0011011";</p><p> when 10=>output<="00111000";sm<="0011011";</p><p> when 11=>output<="01111000";sm<="0011011";</p><
54、;p> when 12=>output<="01111100";sm<="0011011";</p><p> when 13=>output<="01111110";sm<="0011011";</p><p> when 14=>output<=&
55、quot;11111110";sm<="0011011";</p><p> when 15=>output<="11111111";sm<="0011011";</p><p> when 16=>output<="10000001";sm<="
56、;1001111";</p><p> when 17=>output<="11000001";sm<="1001111";</p><p> when 18=>output<="11000011";sm<="1001111";</p><p
57、> when 19=>output<="11100011";sm<="0011011";</p><p> when 20=>output<="11100111";sm<="1001111";</p><p> when 21=>output<=&qu
58、ot;11110111";sm<="1001111";</p><p> when 22=>output<="11111111";sm<="1001111";</p><p> when 23=>output<="00001000";sm<="1
59、001111";</p><p> when 24=>output<="00000001";sm<="0100110";</p><p> when 25=>output<="00000010";sm<="0100110";</p><p&g
60、t; when 26=>output<="00000100";sm<="0100110";</p><p> when 27=>output<="00001000";sm<="0100110";</p><p> when 28=>output<="
61、;00010000";sm<="0100110";</p><p> when 29=>output<="00100000";sm<="0100110";</p><p> when 30=>output<="01000000";sm<="010
62、0110";</p><p> when 31=>output<="10000000";sm<="0100110";</p><p> when others=>null;</p><p><b> end case;</b></p><p>
63、;<b> end if;</b></p><p> end process;</p><p><b> end a;</b></p><p> --------------------------------------------32進制計數(shù)器模塊--------------------------------
64、---</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY counter_32 IS</p><p><b> PORT</b></p><p><b> (</b&g
65、t;</p><p> clk,rst: INstd_logic;</p><p> count_out: OUT integer range 0 to 31);</p><p> END counter_32;</p><p> ARCHITECTURE a OF counter_32 IS</p>&
66、lt;p><b> BEGIN</b></p><p> PROCESS (rst,clk)</p><p> variable temp:integer range 0 to 32;</p><p><b> BEGIN</b></p><p> IF rst='1'
67、; THEN</p><p><b> temp:=0;</b></p><p> ELSIF (clk'event and clk='1') THEN</p><p> temp:=temp+1;</p><p> if(temp=32) then</p><p&g
68、t;<b> temp:=0;</b></p><p><b> end if;</b></p><p><b> END IF;</b></p><p> count_out<=temp;</p><p> END PROCESS;</p>
69、<p><b> END a;</b></p><p> -------------------------------------------4進制計數(shù)器模塊----------------------------------</p><p> LIBRARY ieee;</p><p> USE ieee.std_lo
70、gic_1164.all;</p><p> ENTITY counter_4 IS</p><p><b> PORT</b></p><p><b> (</b></p><p> clk,rst: INstd_logic;</p><p> count_
71、out: OUT integer range 0 to 3);</p><p> END counter_4;</p><p> ARCHITECTURE a OF counter_4 IS</p><p><b> BEGIN</b></p><p> PROCESS (rst,clk)</p&
72、gt;<p> variable temp:integer range 0 to 32;</p><p><b> BEGIN</b></p><p> IF rst='1' THEN</p><p><b> temp:=0;</b></p><p> EL
73、SIF (clk'event and clk='1') THEN</p><p> temp:=temp+1;</p><p> if(temp=4) then</p><p><b> temp:=0;</b></p><p><b> end if;</b>
74、</p><p><b> END IF;</b></p><p> count_out<=temp;</p><p> END PROCESS;</p><p><b> END a;</b></p><p><b> 7附錄二 編譯</b
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計---彩燈控制器
- eda課程設(shè)計彩燈控制器
- eda課程設(shè)計-彩燈控制器
- eda課程設(shè)計---節(jié)日彩燈控制器
- eda課程設(shè)計--多路彩燈控制器
- eda課程設(shè)計--多路彩燈控制器的設(shè)計
- eda課程設(shè)計一個彩燈控制器
- 課程設(shè)計報告彩燈控制器
- 彩燈控制器課程設(shè)計報告
- 彩燈控制器課程設(shè)計--流水彩燈控制器
- 彩燈控制器課程設(shè)計
- 彩燈控制器課程設(shè)計
- 課程設(shè)計-- 彩燈控制器
- eda電梯控制器課程設(shè)計報告
- 彩燈控制器課程設(shè)計
- 彩燈控制器課程設(shè)計
- eda彩燈控制課程設(shè)計
- eda課程設(shè)計--用vhdl實現(xiàn)多路彩燈控制器的設(shè)計
- 彩燈控制器課程設(shè)計
- 課程設(shè)計--彩燈控制器
評論
0/150
提交評論