第一篇:EDA課程設(shè)計(jì)彩燈控制器
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
1設(shè)計(jì)目的
熟練掌握EDA技術(shù)利用計(jì)算機(jī)方面的課程解決專業(yè)課程方面點(diǎn)具體問題,達(dá)到解決問題,完成課程設(shè)計(jì)任務(wù),培養(yǎng)實(shí)踐的目的。
2設(shè)計(jì)要求和任務(wù)
利用所學(xué)的EDA設(shè)計(jì)方法設(shè)計(jì)彩燈控制器,熟練使用使用QUARTUSII應(yīng)用軟件,進(jìn)一步學(xué)習(xí)使用VHDL語言、原理圖等EDA設(shè)計(jì)方法進(jìn)行綜合題目的方法。
功能要求: 1.要有多種花型變化(至少4種).2.多種花型可以自動(dòng)變換,循環(huán)往復(fù).3.彩燈變換的快慢節(jié)拍可以選擇.4.具有清零開關(guān).總體設(shè)計(jì)思路及原理描述
3.1功能描述
在電路中以 1 代表燈亮,以 0 代表燈滅,由 0,1按不同的規(guī)律組合代表不同的燈光圖案,同時(shí)使其選擇不同的頻率,從而實(shí)現(xiàn)多種圖案多種頻率的花樣功能顯示。在該電路中只需簡(jiǎn)單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個(gè)十六路彩燈控制系統(tǒng)的實(shí)現(xiàn)為例進(jìn)行簡(jiǎn)單說明。此十六路彩燈控制系統(tǒng)設(shè)定有六種花樣變化 ,這六種花樣可以進(jìn)行自動(dòng)切換 ,并且每種花樣可以選擇不同的頻率。
3.2設(shè)計(jì)原理
用VHDL進(jìn)行設(shè)計(jì) ,首先應(yīng)該了解 ,VHDL語言一種全方位硬件描述語言 ,包括系統(tǒng)行為級(jí) ,寄存?zhèn)鬏敿?jí)和邏輯門級(jí)多個(gè)設(shè)計(jì)層次。應(yīng)充分利用DL “自頂向下” 的設(shè)計(jì)優(yōu)點(diǎn)以及層次化的設(shè)計(jì)概層次概念對(duì)于設(shè)計(jì)復(fù)雜的數(shù)字系統(tǒng)是非常
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
有用它使得人們可以從簡(jiǎn)單的單元入手 ,逐漸構(gòu)成龐大而復(fù)雜的系統(tǒng)。首先應(yīng)進(jìn)行系統(tǒng)模塊的劃分 ,規(guī)定每一模塊的功能以及各個(gè)模塊之間的接口。最終設(shè)計(jì)方案為:以一個(gè)十六路彩燈花樣控制器、一個(gè)四頻率輸出分頻器 ,一個(gè)四選一控制器和一個(gè)時(shí)間選擇器總共四部分來完成設(shè)計(jì)。四選一控制器從分頻器選擇不同頻率的時(shí)鐘信號(hào)輸送到彩燈花樣控制器 ,從而達(dá)到控制彩燈閃爍速度的快慢 ,時(shí)間選擇器控制每種速度維持的時(shí)間長(zhǎng)短。整個(gè)十六路彩燈控制系統(tǒng)設(shè)計(jì)的模塊圖如圖 1所示
圖一
4分層次方案設(shè)計(jì)及代碼描述
4.1子模塊及其功能
本次設(shè)計(jì)分為四個(gè)子模塊 ,即十六路彩燈花樣控制器、四頻率輸出分頻器 ,四選一控制器和時(shí)間選擇器 ,其子模塊及其功能如下: 2
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
4.1.1四頻率輸出分頻器
在本次設(shè)計(jì)中 ,設(shè)計(jì)了六種花樣 ,要求這六種花樣以不同的頻率顯示 ,而只有一個(gè)輸入的時(shí)鐘信號(hào) ,所以對(duì)所輸入的時(shí)鐘信號(hào)進(jìn)行 2 分頻 ,4 分頻 ,8分頻 ,16分頻 ,得到四種頻率信號(hào) ,CLKDIV模塊用來完成此功能。
4.1.2時(shí)間選擇器
時(shí)間選擇器實(shí)際上是兩個(gè)分頻器 ,其中一個(gè)頻率是另一個(gè)頻率的兩倍。本來這兩個(gè)分頻器是可以在上述的四頻率輸出器中實(shí)現(xiàn)的 ,但為了方便地為四選一控制器提供不同的時(shí)間選擇條件 ,就將這兩個(gè)分頻器獨(dú)立開來。這兩個(gè)輸出的時(shí)鐘信號(hào)組合起來就可以為四選一控制器提供 00,01,10,11 四個(gè)時(shí)間選擇條件 ,如
下圖三所示。
圖二
4.1.3四選一控制器
四選一控制器功能是從分頻器中選擇不同頻率的時(shí)鐘信號(hào)送給彩燈控制器 ,實(shí)現(xiàn)彩燈閃爍的頻率變化。
4.1.4彩燈控制器
彩燈控制電路是整個(gè)設(shè)計(jì)的核心 ,它負(fù)責(zé)整個(gè)設(shè)計(jì)的輸出效果即各種彩燈圖案的樣式變化。該程序充分地說明了用 VHDL設(shè)計(jì)電路的 “彈” 性 ,即可通過改變程序中輸出變量 Q 的位數(shù)來改變彩燈的數(shù)目。其中 ,P1進(jìn)程對(duì)燈閃的速度控制有兩種方式可改變燈閃的速度:一是改變外部時(shí)鐘的賦值 ,二是改變信號(hào)U 的位數(shù)。P2進(jìn)程能進(jìn)行彩燈的圖案控制 ,改變 s的位數(shù)即可改變要控制圖案的數(shù)目 ,改變輸出變量 Q 的組合即可變幻彩燈圖案。
最后 ,當(dāng)各個(gè)模塊均完成上述操作之后 ,即可利用MAXPLUS2的原理圖輸
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
入 ,調(diào)用各個(gè)元器件(底層文件),以原理圖的形式形成最后的十六路彩燈顯示系統(tǒng)(頂層文件),并且進(jìn)行仿真。仿真通過 ,即可下載到指定的 CPLD芯片里面 ,并進(jìn)行實(shí)際連線 ,進(jìn)行最后的硬件測(cè)試。當(dāng)然 ,可以將各個(gè)模塊所生成的元件符號(hào)存放在元件庫中 ,用以被其它人或其它的設(shè)計(jì)所重復(fù)調(diào)用 ,以簡(jiǎn)化后面的設(shè)計(jì)。
4.2 代碼描述
4.2.1 時(shí)序控制電路部分
程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity timecontrol is--定義實(shí)體 port(clk: in std_logic;--時(shí)鐘信號(hào) clr: in std_logic;--復(fù)位信號(hào) opt: in std_logic;--快慢控制信號(hào) clkout: out std_logic--輸出時(shí)鐘信號(hào));end timecontrol;architecture one of timecontrol is signal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0);--定義計(jì)數(shù)器 begin process(clk,clr,opt)begin 4
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
if clr='0' then--清零 clk_tmp<='0';counter<=“00”;elsif clk'event and clk='1' then if opt='0' then--四分頻 if counter=“01” then counter<=“00”;clk_tmp<=not clk_tmp;else counter<=counter+'1';end if;else--八分頻 if counter=“11” then counter<=“00”;clk_tmp<=not clk_tmp;else counter<=counter+'1';end if;end if;end if;end process;clkout<=clk_tmp;--輸出分頻后的信號(hào) end architecture one;
4.2.2顯示控制電路部分
程序如下: library ieee;use ieee.std_logic_1164.all;
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
entity showcontrol is port(clk: in std_logic;--輸入時(shí)鐘信號(hào) clr: in std_logic;--復(fù)位信號(hào)
led: out std_logic_vector(15 downto 0));--彩燈輸出
end showcontrol;architecture one1 of showcontrol is type states is--狀態(tài)機(jī)狀態(tài)列舉(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);signal state: states;begin process(clk,clr)begin
if clr='0'then state<=s0;led<=“***0”;elsif clk'event and clk='1'then case state is when s0=>state<=s1;led<= “***1”;when s1=> state<=s2;led<=“***1”;when s2=> state<=s3;led<=“***0”;when s3=> state<=s4;led<=“***1”;when s4=> state<=s5;6
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
led<=“***0”;when s5=>state<=s6;led<=“***1”;when s6=>state<=s7;led<=“***0”;when s7=>state<=s8;led<=“***1”;when s8=>state<=s9;led<=“***0”;when s9=>state<=s10;led<=“***1”;when s10=>state<=s11;led<=“***0”;when s11=>state<=s12;led<=“***1”;when s12=>state<=s13;led<=“***0”;when s13=>state<=s14;led<=“***1”;when s14=>state<=s15;led<=“***0”;when s15=>state<=s0;led<=“***1”;when others=>null;end case;end if;end process;end architecture one1;
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
4.2.3頂層電路部分
程序如下:
library ieee;use ieee.std_logic_1164.all;entity root is port(clk: in std_logic;clr: in std_logic;opt:in std_logic;led: out std_logic_vector(15 downto 0));--八路彩燈輸出 end colorled;architecture one3 of root is component timecontrol is--定義元件:時(shí)序控制電路 port(clk: in std_logic;clr: in std_logic;opt:in std_logic;clkout: out std_logic);end component timecontrol;component showcontrol is--定義元件:顯示電路
port(clk: in std_logic;clr: in std_logic;led: out std_logic_vector(15 downto 0));end component showcontrol;signal clk_tmp: std_logic;begin u1: timecontrol port map(clk=>clk,clr=>clr,opt=>opt,clkout=>clk_tmp);--例化時(shí)序控制模塊
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
u2: showcontrol port map(clk=>clk_tmp,clr=>clr,led=>led);--例化顯示電路模塊 end architecture one3;
5各模塊的時(shí)序仿真圖
5.1時(shí)序控制電路timecontrol的仿真圖如下:
圖三
功能:時(shí)序控制電路metronome的功能是,用OPT控制輸入信號(hào)CKL_IN的快慢節(jié)拍。而CLR是控制開關(guān)。且從圖中可以看出,當(dāng)復(fù)位信號(hào)為高電平時(shí),電路時(shí)鐘輸出清零,當(dāng)快慢信號(hào)OPT為低電平時(shí),時(shí)序控制電路四分頻起作用,當(dāng)快慢信號(hào)OPT為高電平時(shí),時(shí)序控制電路八分頻起作用,仿真結(jié)果符合電路要求。
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
5.2 顯示控制電路showcontrol的仿真圖如下:
圖四
功能:顯示控制電路showcontrol的功能是控制花形的。且從圖中可以看出,當(dāng)復(fù)位信號(hào)有效時(shí)彩燈輸出為零,否則,顯示電路在十六種不同狀態(tài)間轉(zhuǎn)換。
5.3 頂層電路root系統(tǒng)的仿真圖如下:
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告
圖五
功能:整個(gè)電路root系統(tǒng)是把showcontrol與timecontrol綜合成一個(gè)電路。且從圖中可以看出,從圖中可以看出當(dāng)OPT為高電平時(shí)彩燈狀態(tài)轉(zhuǎn)換慢,為低電平時(shí)轉(zhuǎn)換要快,當(dāng)復(fù)位信號(hào)有效時(shí),所用輸出都清零。
6總結(jié)
通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,通過這次的課程設(shè)計(jì),發(fā)現(xiàn)自己的實(shí)踐經(jīng)驗(yàn)還是不足的,以后多應(yīng)該以理論為基礎(chǔ),然后應(yīng)用到實(shí)踐中來,從理論中得出結(jié)論,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。
在這次的課程設(shè)計(jì)里深入的接觸了運(yùn)用電子集成元器件制作多路彩燈的過程,并和同學(xué)一起討論用軟件制作出了這一個(gè)多路彩燈控制系統(tǒng)。正所謂“紙上談兵終覺淺,覺知此事要躬行?!睂W(xué)習(xí)任何知識(shí),都要進(jìn)行實(shí)踐,只有那樣才能達(dá)到事半功倍的效果。
沈陽理工大學(xué)EDA技術(shù)課程設(shè)計(jì)報(bào)告 參考文獻(xiàn)
《EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)》
鄒彥主編
電子工業(yè)出版社
《EDA技術(shù)實(shí)用教程》,潘松、黃繼業(yè),科學(xué)出版社 《數(shù)字電子技術(shù)基礎(chǔ)》(第五版),閻石,高等教育出版社
《電子設(shè)計(jì)自動(dòng)化(EDA)手冊(cè)》,王丹、童如松,電子工業(yè)出版社 《EDA技術(shù)程設(shè)計(jì)》,劉江海,華中科技大學(xué)出版社
第二篇:eda課程設(shè)計(jì)-彩燈控制器
1.設(shè)計(jì)目的
學(xué)習(xí)EDA開發(fā)軟件和MAX+plus Ⅱ的使用方法,熟悉可編程邏輯器件的使用,通過制作來了解彩燈控制系統(tǒng)。2.設(shè)計(jì)題目描述和要求
1)設(shè)計(jì)一個(gè)彩燈控制器,使彩燈(LED管)能連續(xù)發(fā)出四種以上不同的顯示形式;
2)隨著彩燈顯示圖案的變化,發(fā)出不同的音響聲。3)擴(kuò)充其它功能。3.設(shè)計(jì)原理 3.1 方案論證
這次的彩燈設(shè)計(jì)采用的是分模塊來完成的,包括分頻器、計(jì)數(shù)器、選擇器、彩燈控制器。其中彩燈控制器是用來輸出不同的花樣,彩燈控制器的輸出則是用一個(gè)32進(jìn)制的計(jì)數(shù)器來控制,揚(yáng)聲器的輸出時(shí)用不同的頻率來控制,所以用了一個(gè)集成分頻器來使輸入的頻率被分為幾種不同的頻率,不同頻率的選擇性的輸出則是用一個(gè)4選一的選擇器來控制。基于上述的介紹本次的彩燈控制采用的模式6來進(jìn)行顯示。
圖3-1-1 模式6結(jié)構(gòu)圖
3.2 模塊設(shè)計(jì)
1)集成分頻器模塊
設(shè)計(jì)要求顯示不同的彩燈的時(shí)候要伴隨不同的音樂,所以設(shè)計(jì)分頻器來用不同的頻率控制不同的音樂輸出。模塊說明:
Rst:輸入信號(hào) 復(fù)位信號(hào) 用來復(fù)位集成分頻器的輸出使輸出為“0”,及沒有音樂輸出。
Clk:輸入信號(hào) 模塊的功能即為分頻輸入的頻率信號(hào)。
Clk_
4、clk_
6、clk_
8、clk_10:輸出信號(hào) 即為分頻模塊對(duì)輸入信號(hào)clk的分頻,分別為1/4分頻輸出、1/6分頻輸出、1/8分頻輸出、1/10分頻輸出。
圖3-2-1 集成分頻器
2)32進(jìn)制計(jì)數(shù)器模塊
32進(jìn)制模塊用來控制彩燈輸出模塊,即確定彩燈控制器的不同的輸出。Rst:輸入信號(hào) 復(fù)位信號(hào) 用來復(fù)位32進(jìn)制使其輸出為“00000”。Clk:輸入信號(hào) 用來給模塊提供工作頻率。
Count_out[4..0]:輸出信號(hào) 即為32進(jìn)制計(jì)數(shù)器的輸出。
圖3-2-2 32進(jìn)制計(jì)數(shù)器
3)彩燈控制模塊
彩燈控制模塊用來直接控制彩燈的輸出,使彩燈表現(xiàn)出不同的花樣。Rst:輸入信號(hào) 使彩燈控制模塊的輸出為“00000000”,即讓彩燈無輸出。Input[4..0]:輸入信號(hào) 不同的輸入使彩燈控制模塊有不同的輸出即彩燈顯示出不同的花樣。
Output[7..0]:輸出信號(hào) 直接與彩燈相連來控制彩燈。
圖3-2-3 彩燈控制模塊 4)4選1選擇器模塊
Rst:輸入信號(hào) 復(fù)位信號(hào) 使選擇器的輸出為“0”。In1、in2、in3、in4:輸入信號(hào) 接分頻器的輸出。
Inp[1..0]:輸入信號(hào) 接4進(jìn)制計(jì)數(shù)器的輸出用來控制選擇器的選擇不同的輸入選擇不同的輸出。
Output:輸出信號(hào) 直接接揚(yáng)聲器即輸出的是不同的頻率來控制揚(yáng)聲器播放音樂。
圖3-2-4 4選1選擇器
5)4進(jìn)制計(jì)數(shù)器模塊
4進(jìn)制計(jì)數(shù)器作為選擇器的輸入來控制選擇器選擇不同的頻率作為輸出控制揚(yáng)聲器工作。
Clk:輸入信號(hào) 來為計(jì)數(shù)器提供工作頻率。
Rst:輸入信號(hào) 復(fù)位信號(hào) 使計(jì)數(shù)器的輸出為“00”。
圖3-2-5 4進(jìn)制計(jì)數(shù)器
3.3 系統(tǒng)結(jié)構(gòu)
整個(gè)系統(tǒng)就是各個(gè)分模塊組成來實(shí)現(xiàn)最后的彩燈控制功能,系統(tǒng)又兩個(gè)時(shí)鐘來控制一個(gè)是控制32進(jìn)制計(jì)數(shù)器即控制彩燈控制模塊來實(shí)現(xiàn)彩燈的不同輸出,另一個(gè)時(shí)鐘為分頻器的輸入來進(jìn)行分頻處理,最后用來控制揚(yáng)聲器發(fā)出不同的音樂,具體分頻處理的時(shí)鐘的頻率比實(shí)現(xiàn)彩燈控制的時(shí)鐘頻率要高。
圖 3-3-1 系統(tǒng)功能模塊
4.總結(jié)
這次的EDA課程設(shè)計(jì)有一周的時(shí)間,在這一周的時(shí)間里我們充分合理的安排了自己的時(shí)間來使本次的課程設(shè)計(jì)能夠順利的完成,當(dāng)然我們?cè)诒敬蔚脑O(shè)計(jì)中并不是一帆風(fēng)順的,我們遇到了一些的問題,例如我們開始時(shí)用的文本的方式用一個(gè)總的程序來完成,可以在設(shè)計(jì)的過程中我們發(fā)現(xiàn)程序編到后面變量越到很容易搞混淆同時(shí)各個(gè)進(jìn)程間的聯(lián)系也越來越模糊以至于后面我們自己都不知道程序的整體框圖是什么,導(dǎo)致后面不能夠繼續(xù)下去,后面我們?cè)僖淮螌?duì)我們這次的設(shè)計(jì)題目進(jìn)行了分析和整理,最后我和我的同伴決定采用分模塊的方式來完成本次的課題設(shè)計(jì),當(dāng)然最重要的是分析各個(gè)模塊間的關(guān)系。最后我們采用上面分析的結(jié)構(gòu)框圖。最后我們的設(shè)計(jì)很成功,仿真和硬件測(cè)試都是正確的,實(shí)現(xiàn)了我們的設(shè)計(jì)要求和目的。
在這次設(shè)計(jì)中我們收獲了很多,首先最直接的收獲就是我們鞏固了這門課程所學(xué)過的知識(shí),把它運(yùn)用到了實(shí)踐當(dāng)中,并且學(xué)到了很多在書本撒和那個(gè)所沒有學(xué)到的知識(shí),通過查閱相關(guān)資料進(jìn)一步加深了對(duì)EDA的了。總的來說,通過這次課程設(shè)計(jì)不僅鍛煉了我們的動(dòng)手和動(dòng)腦能力,也使我懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,要把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在我們的共同努力和指導(dǎo)老師的指引下我們圓滿的完成了彩燈控制器的設(shè)計(jì),實(shí)現(xiàn)了設(shè)計(jì)目的。
6附錄一 程序:
---------------分頻器模塊----------LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY fenpinqi IS
PORT(clk,rst : IN std_logic;
clk_10,clk_4,clk_6,clk_8 : OUT std_logic);
END fenpinqi;
ARCHITECTURE cd OF fenpinqi IS begin p1:process(clk,rst)
variable a:integer range 0 to 20;
begin if rst='1' then
clk_4<='0';
-----
復(fù)位信號(hào)控制部分 else if clk'event and clk='1'then
if a>=3 then
a:=0;
clk_4<='1';
else
a:=a+1;
clk_4<='0';
end if;
end if;
end if;end process p1;
p2:process(clk,rst)
variable b:integer range 0 to 20;
begin if rst='1' then
clk_6<='0';
-----
復(fù)位信號(hào)控制部分
else if clk'event and clk='1'then
if b>=5 then
b:=0;
clk_6<='1';
else
b:=b+1;
clk_6<='0';
end if;
end if;
end if;end process p2;
p3:process(clk,rst)
variable c:integer range 0 to 20;
begin if rst='1' then
clk_8<='0';
-----else if clk'event and clk='1'then
if c>=7 then
c:=0;
clk_8<='1';
else
c:=c+1;
clk_8<='0';
end if;
end if;
end if;end process p3;
p4:process(clk,rst)
variable d:integer range 0 to 20;
begin if rst='1' then
clk_10<='0';
-----else if clk'event and clk='1'then
if d>=9 then
d:=0;
clk_10<='1';
else
復(fù)位信號(hào)控制部分7
復(fù)位信號(hào)控制部分
d:=d+1;
clk_10<='0';
end if;
end if;
end if;end process p4;end cd;
---------------4選1選擇器--------LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY xzq4_1 IS
PORT(rst:in std_logic;
inp:in integer range 0 to 3;
in1,in2,in3,in4 : In std_logic;
output : OUT std_logic);
END xzq4_1;
ARCHITECTURE a OF xzq4_1 IS
BEGIN
PROCESS(rst,inp)BEGIN
if(rst='1')then output<='0';
else
case inp is
when 0=>output<=in1;
when 1=>output<=in2;
when 2=>output<=in3;
when 3=>output<=in4;
when others=>null;
end case;
end if;
END PROCESS;END a;
------------彩燈控制模塊---------LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY caideng IS
PORT(input : IN INTEGER RANGE 0 TO 31;
rst:in std_logic;
output : OUT std_logic_vector(7 downto 0);
sm :out std_logic_vector(6 downto 0));
END caideng;
ARCHITECTURE a OF caideng IS
BEGIN
PROCESS(input)BEGIN
if rst='1' then output<=“00000000”;sm<=“0000000”;
else
case input is
when 0=>output<=“10000000”;sm<=“0000110”;
when 1=>output<=“01000000”;sm<=“0000110”;
when 2=>output<=“00100000”;sm<=“0000110”;
when 3=>output<=“00010000”;sm<=“0000110”;
when 4=>output<=“00001000”;sm<=“0000110”;
when 5=>output<=“00000100”;sm<=“0000110”;
when 6=>output<=“00000010”;sm<=“0000110”;
when 7=>output<=“00000001”;sm<=“0000110”;
when 8=>output<=“00010000”;sm<=“0011011”;
when 9=>output<=“00110000”;sm<=“0011011”;
when 10=>output<=“00111000”;sm<=“0011011”;
when 11=>output<=“01111000”;sm<=“0011011”;
when 12=>output<=“01111100”;sm<=“0011011”;
when 13=>output<=“01111110”;sm<=“0011011”;
when 14=>output<=“11111110”;sm<=“0011011”;
when 15=>output<=“11111111”;sm<=“0011011”;
when 16=>output<=“10000001”;sm<=“1001111”;
when 17=>output<=“11000001”;sm<=“1001111”;
when 18=>output<=“11000011”;sm<=“1001111”;
when 19=>output<=“11100011”;sm<=“0011011”;
when 20=>output<=“11100111”;sm<=“1001111”;
when 21=>output<=“11110111”;sm<=“1001111”;
when 22=>output<=“11111111”;sm<=“1001111”;
when 23=>output<=“00001000”;sm<=“1001111”;
when 24=>output<=“00000001”;sm<=“0100110”;
when 25=>output<=“00000010”;sm<=“0100110”;
when 26=>output<=“00000100”;sm<=“0100110”;
when 27=>output<=“00001000”;sm<=“0100110”;
when 28=>output<=“00010000”;sm<=“0100110”;
when 29=>output<=“00100000”;sm<=“0100110”;
when 30=>output<=“01000000”;sm<=“0100110”;
when 31=>output<=“10000000”;sm<=“0100110”;
when others=>null;
end case;
end if;
end process;end a;
-------------32進(jìn)制計(jì)數(shù)器模塊----
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY counter_32 IS
PORT(clk,rst : IN std_logic;
count_out : OUT integer range 0 to 31);
END counter_32;
ARCHITECTURE a OF counter_32 IS BEGIN PROCESS(rst,clk)
variable temp:integer range 0 to 32;BEGIN
IF rst='1' THEN
temp:=0;
ELSIF(clk'event and clk='1')THEN
temp:=temp+1;
if(temp=32)then
temp:=0;
end if;
END IF;
count_out<=temp;END PROCESS;
END a;
------------4進(jìn)制計(jì)數(shù)器模塊---LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY counter_4 IS
PORT(clk,rst : IN std_logic;
count_out : OUT integer range 0 to 3);
END counter_4;
ARCHITECTURE a OF counter_4 IS BEGIN
PROCESS(rst,clk)
variable temp:integer range 0 to 32;BEGIN
IF rst='1' THEN
temp:=0;
ELSIF(clk'event and clk='1')THEN
temp:=temp+1;
if(temp=4)then
temp:=0;
end if;
END IF;
count_out<=temp;END PROCESS;END a;
7附錄二 編譯
7附錄三 時(shí)序仿真
第三篇:EDA課程設(shè)計(jì):八路彩燈控制器
EDA課程設(shè)計(jì)
設(shè)計(jì)題目:基于VHDL的8路彩燈控制器設(shè)計(jì)
一、課程設(shè)計(jì)的目的
1.熟悉QuartusⅡ軟件的使用方法,使用VHDL 文本輸入設(shè)計(jì)法進(jìn)行任務(wù)設(shè)計(jì)。2.增強(qiáng)自己實(shí)際動(dòng)手能力,獨(dú)立解決問題的能力。3.通過課程設(shè)計(jì)對(duì)所學(xué)的知識(shí)進(jìn)行更新及鞏固.二、課程設(shè)計(jì)的基本要求
本次課程設(shè)計(jì)是設(shè)計(jì)一個(gè)8路彩燈控制器,能夠控制8路彩燈按照兩種節(jié)拍,三種花型循環(huán)變化。設(shè)計(jì)完成后,通過仿真驗(yàn)證與設(shè)計(jì)要求進(jìn)行對(duì)比,檢驗(yàn)設(shè)計(jì)是否正確。
三、課程設(shè)計(jì)的內(nèi)容
編寫硬件描述語言VHDL程序,設(shè)計(jì)一個(gè)兩種節(jié)拍、三種花型循環(huán)變化的8路彩燈控制器,兩種節(jié)拍分別為0.25s和0.5s。三種花型分別是:
(1)8路彩燈分成兩半,從左至右順次漸漸點(diǎn)亮,全亮后則全滅。(2)從中間到兩邊對(duì)稱地漸漸點(diǎn)亮,全亮后仍由中間向兩邊逐次熄滅。(3)8路彩燈從左至右按次序依次點(diǎn)亮,全亮后逆次序依次熄滅。
四、實(shí)驗(yàn)環(huán)境
PC機(jī)一臺(tái);軟件QuartusⅡ6.0
五、課程設(shè)計(jì)具體步驟及仿真結(jié)果
1、系統(tǒng)總體設(shè)計(jì)框架結(jié)構(gòu)
分頻模塊:把時(shí)鐘脈沖二分頻,得到另一個(gè)時(shí)鐘脈沖,讓這兩種時(shí)鐘脈沖來交替控制花型的速度。
二選一模塊:選擇兩種頻率中的一個(gè)控制彩燈的花型。
8路彩燈的三種花型控制模塊:整個(gè)系統(tǒng)的樞紐,顯示彩燈亮的情況。
2、系統(tǒng)硬件單元電路設(shè)計(jì)
1.分頻模塊設(shè)計(jì) 實(shí)驗(yàn)程序:library ieee;use ieee.std_logic_1164.all;entity fenpin2 is
port(clk:in std_logic;
clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is begin
process(clk)
variable clkk1:std_logic:='0';
begin
if clk'event and clk='1' then
clkk1:= not clkk1;
end if;
clkk<=clkk1;
end process;end behav;RTL電路圖:
波形圖:
2.二選一模塊設(shè)計(jì) 實(shí)驗(yàn)程序:library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;
y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;RTL電路圖:
波形圖:
3.8路彩燈的三種花型控制模塊設(shè)計(jì) 程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;
q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” then
s<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when “00001”=>q<=“10001000”;when “00010”=>q<=“11001100”;when “00011”=>q<=“11101110”;
when “00100”=>q<=“11111111”;when “00101”=>q<=“00000000”;when “00110”=>q<=“00011000”;when “00111”=>q<=“00111100”;when “01000”=>q<=“01111110”;when “01001”=>q<=“11111111”;when “01010”=>q<=“11100111”;when “01011”=>q<=“11000011”;when “01100”=>q<=“10000001”;when “01101”=>q<=“00000000”;when “01110”=>q<=“10000000”;when “01111”=>q<=“11000000”;when “10000”=>q<=“11100000”;when “10001”=>q<=“11110000”;when “10010”=>q<=“11111000”;when “10011”=>q<=“11111100”;when “10100”=>q<=“11111110”;when “10101”=>q<=“11111111”;when “10110”=>q<=“11111110”;when “10111”=>q<=“11111100”;when “11000”=>q<=“11111000”;when “11001”=>q<=“11110000”;when “11010”=>q<=“11100000”;when “11011”=>q<=“11000000”;when “11100”=>q<=“10000000”;when “11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;
RTL電路圖:
波形圖:
4.綜合程序 library ieee;use ieee.std_logic_1164.all;entity fenpin2 is
port(clk:in std_logic;
clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is begin
process(clk)
variable clkk1:std_logic:='0';
begin
if clk'event and clk='1' then
end if;
clkk<=clkk1;
end process;end behav;library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;
y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;library ieee;
clkk1:= not clkk1;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;
q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” then
s<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when “00001”=>q<=“10001000”;when “00010”=>q<=“11001100”;when “00011”=>q<=“11101110”;when “00100”=>q<=“11111111”;when “00101”=>q<=“00000000”;when “00110”=>q<=“00011000”;when “00111”=>q<=“00111100”;when “01000”=>q<=“01111110”;when “01001”=>q<=“11111111”;when “01010”=>q<=“11100111”;when “01011”=>q<=“11000011”;
when “01100”=>q<=“10000001”;when “01101”=>q<=“00000000”;when “01110”=>q<=“10000000”;when “01111”=>q<=“11000000”;when “10000”=>q<=“11100000”;when “10001”=>q<=“11110000”;when “10010”=>q<=“11111000”;when “10011”=>q<=“11111100”;when “10100”=>q<=“11111110”;when “10101”=>q<=“11111111”;when “10110”=>q<=“11111110”;when “10111”=>q<=“11111100”;when “11000”=>q<=“11111000”;when “11001”=>q<=“11110000”;when “11010”=>q<=“11100000”;when “11011”=>q<=“11000000”;when “11100”=>q<=“10000000”;when “11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng is port(clk,s,rst:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture one of balucaideng is
signal h0,h1:std_logic;component fenpin2
port(clk:in std_logic;
clkk:out std_logic);end component;component mux21 port(a,b,s:in std_logic;
y:out std_logic);end component;component color8 port(clk,rst :in std_logic;
q:out std_logic_vector(7 downto 0));end component;begin u1: fenpin2 port map(clk=>clk,clkk=>h0);u2: mux21 port map(a=>h0,b=>clk,s=>s;y=>h1);u3: color8 port map(clk=>h1,rst=>rst,q=>q);end;波形圖:
六、實(shí)驗(yàn)總結(jié)
第四篇:彩燈控制器eda課程設(shè)計(jì)(定稿)
目錄
1.引言..............................................................3 2.EDA技術(shù).........................................................5 2.1 EDA技術(shù)介紹..................................................5 2.2硬件描述語言..................................................5 3 Quartus II介紹..................................................8 3.1 Quartus II軟件介紹..........................................8 3.2 Quartus II軟件界面介紹......................................9 3.2.1 代碼輸入界面..............................................9 3.2.2 編譯界面..................................................9 3.2.3 波形仿真界面.............................................10 4 系統(tǒng)設(shè)計(jì).........................................................12 4.1 設(shè)計(jì)過程.....................................................12 4.1.1 設(shè)計(jì)內(nèi)容及要求...........................................12 4.1.2 輸入與輸出說明...........................................12 4.1.3 設(shè)計(jì)過程思路分析.........................................12 4.2 程序分析及仿真...............................................13 4.2.1花型控制電路模塊.........................................13 4.2.2 顯示電路模塊...........................................14 4.2.3 發(fā)聲電路模塊...........................................17 4.3 程序仿真圖...................................................17 5 下載.............................................................19 5.1 芯片選定.....................................................19 5.2引腳設(shè)定.....................................................19 5.3 程序下載.....................................................20 5.4 結(jié)果顯示.....................................................20
課程設(shè)計(jì)說明書 設(shè)計(jì)總結(jié).........................................................22 參考文獻(xiàn)...........................................................23 附錄:源代碼程序...................................................24
課程設(shè)計(jì)說明書
1.引言
伴隨著計(jì)算機(jī)、集成電路和電子設(shè)計(jì)技術(shù)的發(fā)展,當(dāng)今社會(huì)是數(shù)字化的社會(huì),也是數(shù)字集成電路廣泛應(yīng)用的社會(huì),數(shù)字本身在不斷的進(jìn)行更新?lián)Q代。它由早起的電子管、晶體管、小中規(guī)模集成電路發(fā)展到超大規(guī)模集成電路以及許多具有特定功能的專用集成電路。EDA技術(shù)在過去的幾十年里取得了巨大的進(jìn)步。EDA技術(shù)使得設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件便可完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn)。如今,EDA軟件工具已經(jīng)成為電子信息類產(chǎn)品的支柱產(chǎn)業(yè)。從高性能的微處理器、數(shù)字信號(hào)處理器一直到彩電、音響和電子玩具電路等,EDA技術(shù)不單是應(yīng)用于前期的計(jì)算機(jī)模擬仿真、產(chǎn)品調(diào)試,而且也在P哪的制作、電子設(shè)備的研制與生產(chǎn)、電路板的焊接、朋比的制作過程等有重要作用??梢哉f電子EDA技術(shù)已經(jīng)成為電子工業(yè)領(lǐng)域不可缺少的技術(shù)支持。相比傳統(tǒng)的電路系統(tǒng)的設(shè)計(jì)方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(LibraryBased)的設(shè)計(jì)的特點(diǎn)。因此設(shè)計(jì)者可以不必了解硬件結(jié)構(gòu)。從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行系統(tǒng)方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)用VHDL對(duì)電路的行為進(jìn)行描述,并進(jìn)行仿真和糾錯(cuò),然后在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證,最后再用邏輯綜合優(yōu)化工具生成具體的門級(jí)邏輯電路的網(wǎng)表,下載到具體的CPLD器件中去,從而實(shí)現(xiàn)可編程的專用集成電路(ASIC)的設(shè)計(jì)。
而EDA技術(shù)就是以微電子技術(shù)為物理層面,現(xiàn)代電子設(shè)計(jì)為靈魂,計(jì)算機(jī)軟件技術(shù)為手段,最終形成集成電子系統(tǒng)或?qū)S眉呻娐稟SIC為目的的一門新興技術(shù)。
VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language, 翻譯成中文就是超高速集成電路硬件描述語言,誕生于1982年。1987年底,VHDL被美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本。
現(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。
隨著EDA技術(shù)的高速發(fā)展,電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了深刻的變化,大規(guī)
課程設(shè)計(jì)說明書
??删幊踢壿嬈骷﨏PLD/FPGA的出現(xiàn),給設(shè)計(jì)人員帶來了諸多方便。利用它進(jìn)行產(chǎn)品開發(fā),不僅成本低、周期短、可靠性高,而且具有完全的知識(shí)產(chǎn)權(quán)。利用VHDL語言設(shè)計(jì)彩燈控制器設(shè)計(jì),使其實(shí)現(xiàn)彩燈控制器變形,發(fā)聲等功能,突出了其作為硬件描述語言的良好的可讀性、可移植性和易讀性等優(yōu)點(diǎn)。此程序通過下載到特定芯片后,可應(yīng)用于實(shí)際的控制器系統(tǒng)中。
本文基于FPGA開發(fā)系統(tǒng),在QuartusII 7.2軟件平臺(tái)上,完成了自動(dòng)售貨機(jī)控制器的設(shè)計(jì)和與仿真,并下載到試驗(yàn)箱進(jìn)行硬件實(shí)現(xiàn)。首先,本文介紹了QuartusII 7.2軟件的基本使用方法和VHDL硬件描述語言的特點(diǎn),采用VHDL 硬件描述語言描述自動(dòng)售貨機(jī)控制器,完成對(duì)電路的功能仿真;在設(shè)計(jì)過程中,重點(diǎn)探討了彩燈控制器設(shè)計(jì)的設(shè)計(jì)思路和功能模塊劃分;然后,初步探討了電路邏輯綜合的原理,該軟件對(duì)彩燈控制器設(shè)計(jì)電路進(jìn)行了邏輯綜合;最后,使用EDA實(shí)驗(yàn)開發(fā)系統(tǒng)進(jìn)行電路的下載和驗(yàn)證,驗(yàn)證結(jié)果表明設(shè)計(jì)的彩燈控制器設(shè)計(jì)完成了預(yù)期的功能。
課程設(shè)計(jì)說明書
2.EDA技術(shù)
2.1EDA技術(shù)介紹
EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)縮寫,是90年代初從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測(cè)試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來的。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語言HDL(Hardware Description language)完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合及優(yōu)化、布局布線、仿真以及對(duì)于特定目標(biāo)芯片的適配編譯和編程下載等工作。EDA技術(shù)(即Electronic Design Automation技術(shù))就是依賴強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語言HDL(Hardware DdscriptionLangurage)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。它在硬件實(shí)現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計(jì)、ASIC測(cè)試和封裝、FPGA(GieldPeogrammable Gate Array)/CPLD(Complex Programmable Logic Device)編程下載和自動(dòng)測(cè)試等技術(shù);在計(jì)算機(jī)輔助工程方面融合了計(jì)算機(jī)輔助設(shè)計(jì)(CAD),計(jì)算機(jī)輔助制造(CAM),計(jì)算機(jī)輔助測(cè)試(CAT),計(jì)算機(jī)輔助工程(CAE)技術(shù)以及多種計(jì)算機(jī)語言的設(shè)計(jì)概念;而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容,如電子線路設(shè)計(jì)理論、數(shù)字信號(hào)處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長(zhǎng)線技術(shù)理論等。
2.2硬件描述語言
硬件描述語言HDL是EDA技術(shù)的重要組成部分,常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和SystemC。其中VHDL、Verilog和現(xiàn)在的EDA設(shè)計(jì)中使用最多,并且我們學(xué)習(xí)的是VHDL的編程方法和實(shí)用技術(shù)。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,由IEEE(The Institute of Electrical and Electronics Engineets)進(jìn)一步發(fā)展,并在1987年作為“IEEE標(biāo)準(zhǔn)1076”公布。從此VHDL成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。VHDL技術(shù)與傳統(tǒng)的數(shù)字電子系統(tǒng)或IC設(shè)計(jì)相比之下有很大的優(yōu)勢(shì),主要表現(xiàn)在: 第一,VHDL語言具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建 模和描述,從而大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性。第二,VHDL具有也具體硬件電路武官和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電 路行為描述和系統(tǒng)描述的能力,課程設(shè)計(jì)說明書
并在語言易讀性和層次化,結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。
當(dāng)今社會(huì)是數(shù)字化的社會(huì),也是數(shù)字集成電路廣泛應(yīng)用的社會(huì),數(shù)字本身在不斷的進(jìn)行更新?lián)QVHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language, 翻譯成中文就是超高速集成電路硬件描述語言,誕生于1982年。1987年底,VHDL被美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。
自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本。
現(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。
傳統(tǒng)的硬件電路設(shè)計(jì)方法是采用自下而上的設(shè)計(jì)方法,即根據(jù)系統(tǒng)對(duì)硬件的要求,詳細(xì)編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對(duì)系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計(jì);各功能模塊電路設(shè)計(jì)、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。采用傳統(tǒng)方法設(shè)計(jì)數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時(shí),設(shè)計(jì)者必須具備較好的設(shè)計(jì)經(jīng)驗(yàn),而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計(jì)者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(Hardware Description Language,簡(jiǎn)稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計(jì)環(huán)境中使用,這給設(shè)計(jì)者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語言作為可相互交流的設(shè)計(jì)環(huán)境已勢(shì)在必行。于是,美國(guó)于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,簡(jiǎn)稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言。設(shè)計(jì)者可以利用這種語言來描述自己的設(shè)計(jì)思想,然后利用電子設(shè)計(jì)自動(dòng)化工具進(jìn)行仿真,再自動(dòng)綜合到門電路,最后用PLD實(shí)現(xiàn)其功能。
VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級(jí)。寄存器傳輸級(jí)和邏輯門多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此
課程設(shè)計(jì)說明書
VHDL幾乎覆蓋了以往各種硬件語言的功能,整個(gè)自頂向下或由下向上的電路設(shè)計(jì)過程都可以用VHDL來完成。VHDL還具有以下優(yōu)點(diǎn):
1.VHDL的寬范圍描述能力使它成為高層進(jìn)設(shè)計(jì)的核心,將設(shè)計(jì)人員的工作重心提高到了系統(tǒng)功能的實(shí)現(xiàn)與調(diào)試,而花較少的精力于物理實(shí)現(xiàn)。
2.VHDL可以用簡(jiǎn)潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯設(shè)計(jì),靈活且方便,而且也便于設(shè)計(jì)結(jié)果的交流、保存和重用。
3.VHDL的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。
4.VHDL是一個(gè)標(biāo)準(zhǔn)語言,為眾多的EDA廠商支持,因此移植性好。關(guān)于VHDL語言,最后需要說明的是:與常規(guī)的順序執(zhí)行的計(jì)算機(jī)程序不同,VHDL從根本上講是并發(fā)執(zhí)行的。因此,我們通常稱之為代碼,而不是程序。在VHDL中,只有在進(jìn)程(PROCESS)、函數(shù)(FUNCTION)和過程(PROCEDURE)內(nèi)部的語句才是順序執(zhí)行的。
VHDL語言具有良好的可讀性,即容易被計(jì)算機(jī)接受,也容易被讀者理解。使用期長(zhǎng),不會(huì)因工藝變化而使描述過時(shí)。因?yàn)閂HDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。
課程設(shè)計(jì)說明書 Quartus II介紹
3.1 Quartus II軟件介紹
Quartus II 是Altera公司單芯片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境,也是適合SOPC的最全面的設(shè)計(jì)環(huán)境。擁有現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)設(shè)計(jì)的所有解決方案。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺(tái),該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。
Quartus II也支持第三方的仿真工具,對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。Quartus II還支持層次化設(shè)計(jì),可以在一個(gè)新的編輯環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計(jì)的問題,并且在輸入之后,Quartus II的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。
Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對(duì)Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡(jiǎn)便的使用方法。
Altera 公司的Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。
課程設(shè)計(jì)說明書
3.2 Quartus II軟件界面介紹
3.2.1 代碼輸入界面
新建一個(gè)工程,選擇File→New Project Wizard,在出現(xiàn)的對(duì)話框中輸入工作路徑和工程名稱(應(yīng)與實(shí)體名稱相同),新建完工程后,選擇File→New→VHDL File,然后新出現(xiàn)的空白窗口中輸入代碼,代碼輸入界面如圖3-1所示:
圖3-1 代碼輸入界面
3.2.2 編譯界面
代碼輸入完畢后,選擇Processing→Start Compilation或直接單擊(Start Compilation)進(jìn)行編譯,編譯界面如圖3-2所示:
課程設(shè)計(jì)說明書
圖3-2 編譯界面
3.2.3 波形仿真界面
編譯沒有錯(cuò)誤后,選擇File→New→Vector Waveform File,自己設(shè)置輸入的值,設(shè)置好后單擊 進(jìn)行波形仿真,仿真前界面如圖3-3所示:
圖3-3波形仿真前界面
仿真后界面如圖3-4所示:
課程設(shè)計(jì)說明書
3-4波形仿真后界面
課程設(shè)計(jì)說明書 系統(tǒng)設(shè)計(jì)
4.1 設(shè)計(jì)過程
4.1.1 設(shè)計(jì)內(nèi)容及要求
1.設(shè)計(jì)內(nèi)容:
(1)設(shè)計(jì)一個(gè)彩燈控制器,使8個(gè)彩燈(發(fā)光二極管)能連續(xù)發(fā)出六種種以上不同的花型,花型自擬(全亮,全滅除外),每種花型持續(xù)的時(shí)間為10秒鐘。
(2)使用數(shù)碼管顯示當(dāng)前的花型序號(hào)(分別為A、B、C,D,E,F(xiàn))以及該花型的顯示時(shí)間。
(3)每種花型顯示時(shí)對(duì)應(yīng)發(fā)出不用的聲音(4)系統(tǒng)要有整體復(fù)位信號(hào) 2.設(shè)計(jì)要求:
(1)根據(jù)任務(wù)要求確定電路各功能模塊;(2)寫出設(shè)計(jì)程序;(3)給出時(shí)序仿真結(jié)果;(4)實(shí)現(xiàn)硬件調(diào)試;
4.1.2 輸入與輸出說明
1.輸入:
rst,clk,clker分別為彩燈控制器的整體復(fù)位,時(shí)鐘脈沖發(fā)生以及發(fā)聲器分頻時(shí)鐘脈沖;
2.輸出:
x表示彩燈控制器六種種以上不同的花型,y表示每種花型持續(xù)的時(shí)間(10秒鐘),M表示數(shù)碼管顯示的當(dāng)前的花型序號(hào)(分別為A、B、C,D,E,F(xiàn)),Z為每種花型顯示時(shí)對(duì)應(yīng)發(fā)出不用的聲音。
4.1.3 設(shè)計(jì)過程思路分析
如圖4.1整個(gè)系統(tǒng)有需要三個(gè)輸入信號(hào),分別為彩燈控制器的整體復(fù)位,計(jì)時(shí)時(shí)鐘脈沖以及發(fā)聲器分頻時(shí)鐘脈沖,輸出信號(hào)要能表示彩燈控制器六種種以上不同的花型,表示每種花型持續(xù)的時(shí)間(10秒鐘)和花型序號(hào)以及每種花型對(duì)
課程設(shè)計(jì)說明書
應(yīng)發(fā)出不用的聲音。系統(tǒng)框圖如下:主要模塊組成:花型控制模塊和顯示電路模塊以及蜂鳴器發(fā)聲模塊。時(shí)序電路是根據(jù)時(shí)鐘脈沖信號(hào)的設(shè)置得到相應(yīng)的輸出信號(hào),并將此信號(hào)作為花型控制模塊和顯示電路時(shí)鐘信號(hào)。顯示電路輸入時(shí)鐘信號(hào)的周期,有規(guī)律的輸出設(shè)定的六種彩燈變化類型以及數(shù)碼管顯示花型序號(hào)和持續(xù)時(shí)間。時(shí)序電路是根據(jù)另一時(shí)鐘脈沖信號(hào)的設(shè)置得到相應(yīng)的輸出信號(hào),并將此信號(hào)作為發(fā)聲模塊的時(shí)鐘信號(hào)的輸入時(shí)鐘信號(hào)的周期,進(jìn)行有規(guī)律的輸出設(shè)定蜂鳴器對(duì)應(yīng)花型變化發(fā)出的各種聲音。該程序采用層次設(shè)計(jì)法,頂層采用原理圖設(shè)計(jì),底層采用VHDL 設(shè)計(jì)。以下是它的方框圖。底層分為三個(gè)子電路模塊,分別是時(shí)序控制電路模塊和顯示電路模塊以及蜂鳴器發(fā)聲模塊。
圖 4.1 模塊組成
4.2 程序分析及仿真
4.2.1花型控制電路模塊
花型控制電路模塊是8 路彩燈電路的核心部分。它主控著8 路彩燈的花型種類。模塊主要采用狀態(tài)機(jī)如圖4.2來實(shí)現(xiàn),用狀態(tài)機(jī)來設(shè)計(jì)靈活性很強(qiáng)。按設(shè)計(jì)要求要實(shí)現(xiàn)六種花型01100110、010000010、1000001、00011000、00100100、11100111,用S0、S1、S2、S3、S4、S5 來表示6 種循環(huán),以1表示燈亮,以0表示燈滅狀態(tài)的狀態(tài)。仿真圖如圖4.2:
圖 4.2 狀態(tài)轉(zhuǎn)換圖
課程設(shè)計(jì)說明書
a7:process(pr_state)begin casepr_state is when a=> x<=“01100110”;nx_state<=b;when b=> x<=“01000010”;nx_state<=c;when c=> x<=“1000001”;z<=clk2;when d=> x<=“00011000”;nx_state<=e;when e=> x<=“00100100”;nx_state<=f;when f=> x<=“11100111”;nx_state<=a;end case;end process;
圖 4.3 花型控制電路模塊仿真
4.2.2
顯示電路模塊
顯示電路模塊的要求是使用數(shù)碼管顯示當(dāng)前的花型序號(hào)(分別為A、B、C,D,E,F(xiàn))以及該花型的顯示時(shí)間?;ㄐ涂刂齐娐纺K采用狀態(tài)機(jī)實(shí)現(xiàn),在狀態(tài)機(jī)的
課程設(shè)計(jì)說明書
時(shí)序邏輯電路部分已經(jīng)采用計(jì)數(shù)器計(jì)時(shí)的方法直到計(jì)數(shù)器計(jì)時(shí)達(dá)到時(shí)才進(jìn)入下一個(gè)狀態(tài),如下為狀態(tài)機(jī)時(shí)序邏輯電路程序:
process(clk,rst)variablecount:integer range 0 to 10;begin if(rst='1')then pr_state<=a;count:=0;elsif(clk'event and clk='1')then count:=count+1;if(count=10)then pr_state<=nx_state;count:=0;end if;end if;y<=count;end process;為用數(shù)碼管顯示當(dāng)前的花型序號(hào)(分別為A、B、C,D,E,F(xiàn))以及該花型的顯示時(shí)間,只需要將顯示當(dāng)前的花型序號(hào)程序二進(jìn)制代碼以及該花型的顯示的時(shí)間的二進(jìn)制代碼添加到狀態(tài)中即可,程序如下:
a7:process(pr_state)begin casepr_state is when a=> x<=“01100110”;m<=“1110111”;nx_state<=b;z<=clker;when b=> x<=“01000010”;m<=“1111100”;nx_state<=c;z<=clk1;when c=>
課程設(shè)計(jì)說明書
x<=“1000001”;m<=“0111001”;nx_state<=d;z<=clk2;when d=> x<=“00011000”;m<=“1011110”;nx_state<=e;z<=clk3;when e=> x<=“00100100”;m<=“1111001”;nx_state<=f;z<=clk4;when f=> x<=“11100111”;m<=“1110001”;nx_state<=a;z<=clk5;end case;end process;仿真圖如下:
圖4.4 顯示電路模塊
課程設(shè)計(jì)說明書
4.2.3發(fā)聲電路模塊
發(fā)生電路采用蜂鳴器,而蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件,它分為有源蜂鳴器和無源蜂鳴器兩種,有源蜂鳴器直接接上額定電源就可連續(xù)發(fā)聲,而無源蜂鳴器工作需要加入其理想信號(hào)方波,該課程設(shè)計(jì)采用無源蜂鳴器。對(duì)于每種花型顯示時(shí)對(duì)應(yīng)發(fā)出不用的聲音,這里就需要對(duì)其中輸入的時(shí)鐘信號(hào)進(jìn)行分頻,改變temp的值能產(chǎn)生出不同頻率的聲音。在程序中添加不同的進(jìn)程(process),來產(chǎn)生不同頻率的方波。程序如下:
a1:process(clker)variable temp1:integer range 0 to 15;begin ifclker'event and clker='1'then temp1:=temp1+1;if temp1=2 then clk1<=not clk1;temp1:=0;end if;end if;end process;發(fā)聲電路模塊輸出信號(hào)z同樣可以反映在狀態(tài)機(jī)的組合邏輯電路中,程序4.2.1中的組合邏輯電路
圖4.5 發(fā)聲電路模塊
4.3 程序仿真圖
綜合以上各模塊程序仿真圖如下:
課程設(shè)計(jì)說明書
圖4.6 程序仿真圖
課程設(shè)計(jì)說明書 下載
5.1 芯片選定
選擇Assignments→devives然后選擇芯片,芯片設(shè)定界面如圖5-1所示:
圖5.1 芯片選定
5.2引腳設(shè)定
選擇Assignments→Pins然后設(shè)定引腳,引腳設(shè)定界面如圖5-2所示:
課程設(shè)計(jì)說明書
圖5.2 引腳設(shè)定
5.3 程序下載
引腳設(shè)定好后,將下載盒子插到USB接口,點(diǎn)擊,選擇Hardward和start當(dāng)下載到100%時(shí),就可以通過試驗(yàn)箱進(jìn)行驗(yàn)證,下載驗(yàn)證如圖5-3所示:
圖5.3 程序下載
5.4 結(jié)果顯示
程序下載到實(shí)驗(yàn)板上完成后,程序運(yùn)行結(jié)果在實(shí)驗(yàn)板上得到實(shí)現(xiàn),八個(gè)LED發(fā)光二極管變換產(chǎn)生六種不同的花型樣式,七段譯碼管顯示與之對(duì)應(yīng)的變換的花
課程設(shè)計(jì)說明書
型序號(hào)A,B,C,D,E,F,同時(shí)LED譯碼管也開始計(jì)時(shí),到達(dá)10秒后變換到下一個(gè)花型,蜂鳴器也對(duì)應(yīng)不同花型發(fā)出不同的聲音,程序運(yùn)行結(jié)果顯示正確。如下圖:
圖 5.4 實(shí)驗(yàn)板
課程設(shè)計(jì)說明書 設(shè)計(jì)總結(jié)
通過這次課程設(shè)計(jì)對(duì)EDA技術(shù)有了更進(jìn)一步的熟悉,VHDL 語言和C語言等其他語言還是有很大的區(qū)別。VHDL是EDA技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。其主要的也是最大的優(yōu)點(diǎn)就在于設(shè)計(jì)者可以專心致力于其功能的實(shí)現(xiàn),而不需要對(duì)不影響功能的與工藝有關(guān)的因素花費(fèi)過多的時(shí)間和精力。在實(shí)際操作中發(fā)現(xiàn)設(shè)計(jì)和課本上的知識(shí)有很大聯(lián)系,但又高于課本,一個(gè)簡(jiǎn)單的原理要把它應(yīng)用以及和其他功能綜合起來就有些困難。通過設(shè)計(jì)也鞏固了我們的書本知識(shí)以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對(duì)EDA的了解。不過本次設(shè)計(jì)也存在一些不足,暴露了自己對(duì)EDA的掌握還有所欠缺。在設(shè)計(jì)過程中,分頻分的太大,頻率太小的話,揚(yáng)聲器的聲音體現(xiàn)不出顯示不同花型時(shí)的區(qū)別;頻率太大的話,數(shù)碼管顯示速度太快,嘗試分頻時(shí)使用不同的脈沖信號(hào),但沒有成功。在反復(fù)調(diào)試中,最后還是成功了,但原理還不是很清楚。同時(shí),在課程設(shè)計(jì)過程中通過與老師、同學(xué)的交流,也了解了他們對(duì)于這門技術(shù)的看法和今后這門技術(shù)的發(fā)展方向,也感謝老師對(duì)我設(shè)計(jì)的指導(dǎo)和同學(xué)對(duì)我的幫助??偟膩碚f,這次設(shè)計(jì)還是有所收獲的。
課程設(shè)計(jì)說明書
參考文獻(xiàn)
[1] VokneiA.Pedroni.《VHDL數(shù)字電路設(shè)計(jì)教程》.電子工業(yè)出版社,2008.5
[2] 潘松,黃繼業(yè).《EDA技術(shù)實(shí)用教程》(第二版).科學(xué)出版社,2005.2 [3] 焦素敏.《EDA應(yīng)用技術(shù)》.清華大學(xué)出版社,2002.4 [4] 曾繁泰,陳美金.VHDL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001 [5] 張昌凡等.可編程邏輯器件及VHDL設(shè)計(jì)技術(shù)[M].廣州:華南理工大學(xué)出版社,2001
課程設(shè)計(jì)說明書
附錄:源代碼程序
libraryieee;use ieee.std_logic_1164.all;entity led is port(rst,clk,clker:instd_logic;x:out std_logic_vector(7 downto 0);y:out integer range 0 to 10;m:out std_logic_vector(6 downto 0);z:out std_logic);end led;architecturebhv of led is signal clk1,clk2,clk3,clk4,clk5:std_logic;type state is(a,b,c,d,e,f);signalpr_state,nx_state:state;begin a1:process(clker)variable temp1:integer range 0 to 15;begin ifclker'event and clker='1'then temp1:=temp1+1;if temp1=2 then clk1<=not clk1;temp1:=0;end if;end if;end process;a2:process(clker)variable temp2:integer range 0 to 15;begin ifclker'event and clker='1'then temp2:=temp2+1;if temp2=4 then clk2<=not clk2;
課程設(shè)計(jì)說明書
temp2:=0;end if;end if;end process;a3:process(clker)variable temp3:integer range 0 to 15;begin ifclker'event and clker='1'then temp3:=temp3+1;if temp3=8 then clk3<=not clk3;temp3:=0;end if;end if;end process;a4:process(clker)variable temp4:integer range 0 to 16;begin ifclker'event and clker='1'then temp4:=temp4+1;if temp4=16 then clk4<=not clk4;temp4:=0;end if;end if;end process;a5:process(clker)variable temp5:integer range 0 to 33;begin ifclker'event and clker='1'then temp5:=temp5+1;if temp5=32 then clk5<=not clk5;temp5:=0;
課程設(shè)計(jì)說明書
end if;end if;end process;a6: process(clk,rst)variablecount:integer range 0 to 10;begin if(rst='1')then pr_state<=a;count:=0;elsif(clk'event and clk='1')then count:=count+1;if(count=10)then pr_state<=nx_state;count:=0;end if;end if;y<=count;end process;a7:process(pr_state)begin casepr_state is when a=> x<=“01100110”;m<=“1110111”;nx_state<=b;z<=clker;when b=> x<=“01000010”;m<=“1111100”;nx_state<=c;z<=clk1;when c=> x<=“10000001”;m<=“0111001”;
課程設(shè)計(jì)說明書
nx_state<=d;z<=clk2;when d=> x<=“00011000”;m<=“1011110”;nx_state<=e;z<=clk3;when e=> x<=“00100100”;m<=“1111001”;nx_state<=f;z<=clk4;when f=> x<=“11100111”;m<=“1110001”;nx_state<=a;z<=clk5;end case;end process;endbhv;
第五篇:數(shù)電課程設(shè)計(jì)循環(huán)彩燈控制器
課
程
設(shè)
計(jì)
說
明
書
班 級(jí):電子信息0901
學(xué) 號(hào):0501090108
學(xué)生姓名:張亞軍
指導(dǎo)教師:曹建生
日 期:2011.1.04
緒論
自1879年美國(guó)科學(xué)家愛迪生發(fā)明了白熾燈以來,便結(jié)束了人類“黑暗“的歷史,給人類以光明,創(chuàng)造了巨大的財(cái)富。如今燈光已成為人民生活中必不可少的家用品。而相續(xù)發(fā)展起來的的循環(huán)彩燈也成為時(shí)代前沿的時(shí)尚藝術(shù),它以現(xiàn)代高科技為基礎(chǔ),隨著高技術(shù)日新月異的發(fā)展,其藝術(shù)性和表現(xiàn)力都產(chǎn)生了質(zhì)的飛躍,實(shí)現(xiàn)了藝術(shù)上的創(chuàng)新與突破,不斷創(chuàng)造出令人驚嘆、叫絕的視覺藝術(shù)效果,給人們帶來了美的享受和心靈上的震撼。
伴隨著人們生活環(huán)境的不斷改善和美化,在許多場(chǎng)合可以看到霓虹燈。LED彩燈由于其豐富的燈光色彩,低廉的造價(jià)以及控制簡(jiǎn)單等特點(diǎn)而得到了廣泛的應(yīng)用,用彩燈來裝飾街道和城市建筑物已經(jīng)成為一種時(shí)尚。但目前市場(chǎng)上各式樣的LED彩燈控制器大多數(shù)用全硬件電路實(shí)現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據(jù)不同場(chǎng)合、不同時(shí)間段的需要來調(diào)節(jié)亮燈時(shí)間、模式、閃爍頻率等動(dòng)態(tài) 參數(shù)。這種彩燈控制器結(jié)構(gòu)往往有芯片過多、電路復(fù)雜、功率損耗大等缺點(diǎn)而且價(jià)格昂貴。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性,影響亮燈效果。因此有必要對(duì)現(xiàn)有的彩燈控制器進(jìn)行改進(jìn)。
利用控制電路可使彩燈按一定的規(guī)律不斷的改變狀態(tài),不僅可以獲得良好的觀賞效果,而且可以省電(與全部彩燈始終全亮相比)。再由于人們對(duì)于物質(zhì)生活的要求也在逐漸提高,不光是對(duì)各種各樣的生活電器的需要,也開始在環(huán)境的幽雅方面有了更高的要求。比如日光燈已經(jīng)不能滿足于我們的需要,彩燈的運(yùn)用已經(jīng)遍布于人們的生活中,從歌舞廳到卡拉OK包房,從節(jié)日的祝賀到日常生活中的點(diǎn)綴。這些不緊說明了我們對(duì)生活的要求有了質(zhì)的飛躍,也說明科技在現(xiàn)實(shí)運(yùn)用中有了較大的發(fā)
展。在這一設(shè)計(jì)中我們將涉及有關(guān)彩燈控制器的設(shè)計(jì),從原理上使我們對(duì)這一設(shè)計(jì)有所了解。將其確實(shí)的與我們生活相聯(lián)系起來。
課 程 設(shè) 計(jì) 任 務(wù) 書
一. 設(shè)計(jì)題目 : 循環(huán)彩燈控制器電路 二. 主要內(nèi)容及要求
(1)共有紅、綠、黃3色彩燈各9個(gè),要求按一定順序和時(shí)間關(guān)系運(yùn)行。
(2)動(dòng)作要求:先紅燈,后綠燈,再黃燈,分別按0.5S的速度跑動(dòng)一次,然后,全部紅燈亮5S,再黃燈,后綠燈,各一次。以此循環(huán)。
(3)對(duì)各組燈的控制,要求有驅(qū)動(dòng)電路。
(4)對(duì)跑動(dòng)電路,可以每3個(gè)一組,交叉安裝,分別點(diǎn)亮每一組,利用視覺暫停,達(dá)到跑動(dòng)的效果。三.進(jìn)度安排
1、老師給出選題內(nèi)容,課程設(shè)計(jì)的相關(guān)要求,指導(dǎo)時(shí)間及任務(wù)完成期限。
2、根據(jù)課程設(shè)計(jì)內(nèi)容及要求構(gòu)造整個(gè)設(shè)計(jì)思路,復(fù)習(xí)數(shù)字電路中觸發(fā)器、譯碼器、計(jì)數(shù)器、譯碼顯示器等部分內(nèi)容。
3、分析彩燈控制器的組成、各部分功能及工作原理。查出各芯片引腳排列及功能。進(jìn)行電路的設(shè)計(jì)及仿真模擬。
4、根據(jù)電路的原理寫出設(shè)計(jì)方案。
5、設(shè)計(jì)方案的檢查,修正,改進(jìn),按要求打印方案。
應(yīng)用價(jià)值
在家庭裝飾、商業(yè)區(qū)、許多戶外廣告、公益廣告等的燈光布置中經(jīng)常需要完成彩燈循環(huán)點(diǎn)亮以實(shí)現(xiàn)燈光動(dòng)態(tài)效果,做到廣告、彩燈等作品色彩鮮艷,富有創(chuàng)藝,變化形式豐富,起著宣傳和美化環(huán)境的作用,營(yíng)造文明和亮麗氛圍,增添人們生活樂趣。彩燈控制現(xiàn)已廣泛用于廣告、舞廳、商店方面。伴隨著經(jīng)濟(jì)的發(fā)展和夜市的興起循環(huán)彩燈的用途將越來越廣,必然是現(xiàn)代都市的發(fā)展和人們生活水平提高.循環(huán)彩燈設(shè)計(jì)
一 方案設(shè)計(jì)與論證
該任務(wù)要求:先紅燈,后綠燈,再黃燈,分別按0.5S的速度跑動(dòng)一次,然后,全部紅燈亮5S,再黃燈,后綠燈,各一次。以此循環(huán)。根據(jù)此要求電路總體上可以分為三部分:一部分電路為控制0.5s的跑動(dòng)。一部分電路為控制5s的跑動(dòng)。一部分電路為實(shí)現(xiàn)這兩種跑動(dòng)的循環(huán)。因此可以選用兩個(gè)555多諧振蕩器(一個(gè)周期為0.5秒,一個(gè)為5秒)用來控制跑動(dòng)的速度,再選兩個(gè)4017芯片,因?yàn)?017芯片在正常工作下,連續(xù)送入時(shí)鐘脈沖時(shí),其十個(gè)輸出端會(huì)依次輸出高電平。這樣可以用一個(gè)4017芯片點(diǎn)亮0.5s的跑動(dòng),用一個(gè)4017芯片來點(diǎn)亮5s的跑動(dòng)。選用一個(gè)JK觸發(fā)器和模擬開關(guān)4066芯片來實(shí)現(xiàn)循環(huán)功能,即用JK觸發(fā)器來控制4066芯片的開通和關(guān)閉。
二,單元電路設(shè)計(jì)與參數(shù)計(jì)算
在整個(gè)電路中,其主要的組成部分有:
555定時(shí)器和4017芯片組成的 3個(gè)一組0.5s依次跑動(dòng):
(由于仿真時(shí),設(shè)置的時(shí)間跟實(shí)際理論計(jì)算的不符合,故仿真時(shí)時(shí)間可能不是0.5s)555定時(shí)器和4017芯片組成的9個(gè)一組持續(xù)亮5s的(由于仿真時(shí),設(shè)置的時(shí)間跟實(shí)際理論計(jì)算的不符合,故
仿真時(shí)時(shí)間可能不是5s)4066和74LS76組成的一個(gè)循環(huán)電路:
(本來是要用hc4060+CD4013(D觸發(fā)器,用它做2分頻電路)+32768Hz的晶振組成秒定時(shí),產(chǎn)生秒脈沖來做循環(huán)電路的,不過由于其中的芯片沒接觸過也比較復(fù)雜,所以就沒用此方案,改為用4066和74LS76組成的循環(huán)電路。)
設(shè)計(jì)過程中各個(gè)單元的詳細(xì)原理、電路圖和仿真狀態(tài)如下:
第一部分電路:實(shí)現(xiàn)3個(gè)一組紅燈,后黃燈,再綠燈,分別依次跑動(dòng)一次的電路,電路如下圖:
此電路主要用到一個(gè)555多諧振蕩器和一個(gè)4017芯片,4017芯片有十個(gè)輸出端口,而每3個(gè)一組的燈都接一個(gè)4017的輸出端口,這樣可控制任務(wù)中的9組燈。
電路中的555多諧振蕩器的輸出端接4017的脈沖輸入控制,555多諧振蕩器不斷的產(chǎn)生脈沖送入4017芯片的脈沖輸入端,從而使4017芯片的輸出端(01,02,03,04,05,06,07,08,09)依次為高電平,這樣就控制指燈不斷的跑動(dòng)!
第二部分電路:用來實(shí)現(xiàn)全部9個(gè)一組紅燈,再黃燈,后綠燈,各亮一次。電路如下圖:
此電路主要用到一個(gè)555多諧振蕩器和一個(gè)4017芯片,4017芯片有十個(gè)輸出端,而每9個(gè)億組的燈都接一個(gè)4017的輸出端(共接三個(gè)),這樣可控制任務(wù)中的3組燈。
電路中的555多諧振蕩器的輸出端接4017的脈沖輸入控制,555多諧振蕩器不斷的產(chǎn)生脈沖送入4017芯片的脈沖輸入端,從而使4017芯片的輸出端(01,02,03)依次為高電平,這樣就控制3組指燈持續(xù)亮5s依次跑動(dòng)循環(huán)!
1:用來實(shí)現(xiàn)兩種的跑動(dòng)不斷循第三部分電路環(huán)。電路如下圖:
此部分電路主要是用一個(gè)4066BP芯片和一個(gè)74LS76N芯片來現(xiàn)實(shí)。4066BP芯片為模擬開關(guān)芯片,它集成了四個(gè)模擬開關(guān)(在此用到兩個(gè)),每個(gè)模擬開關(guān)有2個(gè)端子,一個(gè)為控制端,主要接高電平或低電平,其佘兩個(gè)端子為輸入輸出端。當(dāng)控制接高電平時(shí),開關(guān)接通,控制端接低電平時(shí)開關(guān)斷開。74LS76N芯片為集成JK觸發(fā)器。在此電路中觸發(fā)器的J,K 和清零端都接高電平。這樣每給觸發(fā)器一個(gè)觸發(fā)邊沿其輸出端就翻轉(zhuǎn)一次。Q端接4066BP的一個(gè)開關(guān)的控制端。Q非接4066BP的另一個(gè)開關(guān)的控制端。這樣可以使4066BP用到的兩個(gè)開關(guān)一個(gè)接通時(shí)而另一個(gè)就斷開。而觸發(fā)器的脈沖輸入端接第一部分電路中的4017的第十(09)輸出端口和第二部分電路中的4017的03輸出端口的或門的結(jié)果。而4066模擬開關(guān)用到的兩個(gè)開關(guān)的輸入端接12V直流電源,其一個(gè)開關(guān)的輸出端接第一部分電路中的555多諧振蕩器電源端,別一個(gè)開關(guān)輸出端接第二部分電路中的555多諧振蕩器的電源端!這樣就實(shí)現(xiàn)了若第一部分的電路工作時(shí)第二部分電路就不工作。而第二部分電路工作時(shí)第一部分電路就不工作。即可實(shí)現(xiàn)交替循環(huán)工作!
三
總原理圖及工作過程
1.總原理圖
2電路完整工作過程
電路運(yùn)行時(shí)第一部分的555多諧振蕩器首先工作不斷的給控制著3組燈(3個(gè)一組)的4017芯片送去脈沖,從而使4017的十個(gè)輸出端依次為輸出高電平。接到高電平的組燈就會(huì)發(fā)光。這樣就實(shí)現(xiàn)先紅燈,后黃燈,再綠燈,分別依次0.5s跑動(dòng)。當(dāng)最后的綠燈亮完后,即第一部分的單元電路中的4017的第十個(gè)輸出端(09)輸出高電平時(shí),這就給74LS76觸發(fā)器送去一個(gè)脈沖,于
是觸發(fā)器的Q端就翻轉(zhuǎn)輸出低電平使4066模擬開關(guān)的一個(gè)開關(guān)變?yōu)閿嚅_,從而使第一部分的電路處于不工作狀態(tài)。而觸發(fā)器的Q非端同時(shí)了輸出一個(gè)高電平使4066的另一個(gè)開關(guān)導(dǎo)通,這時(shí)第二部分的電路開始運(yùn)行。這樣就使全部紅燈,再黃燈,后綠燈,各亮一次。而當(dāng)綠燈全部亮完后,這時(shí)第二部分的4017的第四個(gè)輸出端(03)輸出高電平,也給觸發(fā)器送去一個(gè)脈沖。于Q端和Q非端翻轉(zhuǎn)。這樣第二部分的4066的模擬開關(guān)斷開,控制第二部分的模擬開關(guān)斷開使第二部分的電路不工作。,而控制著第一部分的4066模擬開關(guān)導(dǎo)通,使第一部分的電路工作3個(gè)一組的組燈依次點(diǎn)亮、依次跑動(dòng)。如此實(shí)現(xiàn)了3個(gè)一組先紅燈,后黃燈,再綠燈0.5s依次跑動(dòng),讓后再9個(gè)一組,先紅燈,后黃燈,再綠燈持續(xù)亮5s.如此循環(huán)下去。
四 安裝與調(diào)試
1、按照電路圖進(jìn)行接線,按照單元電路設(shè)計(jì)中的方法連接好每一塊電路,然后把每一塊接在一起。對(duì)每單元電路進(jìn)行調(diào)試,在對(duì)每部分電路進(jìn)行調(diào)試時(shí)仿真狀態(tài)跟設(shè)計(jì)和預(yù)想的一樣,沒什么大問題。
2、把各單元電路接在一起調(diào)試時(shí),3個(gè)一組隔0.5s跑動(dòng)亮的正常,不過9個(gè)一組的持續(xù)5s的出現(xiàn)錯(cuò)誤,就 12
是0.5s和5s的兩個(gè)功能電路都一起工作,達(dá)不到要設(shè)計(jì)的要求。
3、把0.5s跑動(dòng)單元電路中的4017芯片的第十個(gè)輸出端口和持續(xù)亮5s的單元電路中的4017芯片的第四個(gè)輸出端口用一個(gè)或門連起來后就能正常工作了。不過,持續(xù)亮5s的功能中,亮黃跟綠燈時(shí)會(huì)有三個(gè)紅燈也一起亮的(問題解決不了)。不過總體的功能跟效果還是達(dá)到要求。
五 結(jié)論與心得
通過此次的課程設(shè)計(jì),我對(duì)電路的設(shè)計(jì)流程有了一定的了解,對(duì)仿真軟件也有一定的認(rèn)識(shí)。在調(diào)試的過程中遇到打開電源開關(guān)的瞬間一個(gè)紅燈亮0.5S然后所有燈全亮,通過運(yùn)用檢修方法查出是系統(tǒng)內(nèi)部的問題,改正后恢復(fù)正常。所有燈一會(huì)正常一會(huì)不工作,經(jīng)仔細(xì)檢查發(fā)現(xiàn)在電源處接觸不良,改正后恢復(fù)正常??偟膩碚f,本次的課程設(shè)計(jì)進(jìn)行的還算順利,不過對(duì)于結(jié)果有點(diǎn)不怎么滿意,就是持續(xù)亮5S的功能有點(diǎn)不完善,但總的結(jié)果還算達(dá)到了設(shè)計(jì)要求。本次所用的芯片大部分都是基礎(chǔ)的,不過有個(gè)別的不怎么了解,不過通過此次課程設(shè)計(jì),我對(duì)這些未曾接觸過的芯片都有一定的認(rèn)識(shí),對(duì)其功能也有一定的了解。比如4066,4017。這次的課程設(shè)計(jì)是我更加熟悉芯片的功能跟用法,讓我更好的運(yùn)用邏 13
輯門,使我所學(xué)的知識(shí)得到鞏固,并且這次的設(shè)計(jì)培養(yǎng)了我的獨(dú)立思考的能力和操作的能力。
六
參考文獻(xiàn)
1.《電子技術(shù)基礎(chǔ)》,康華光 主編,高等教育出版社; 2梁宗善.電子技術(shù)基礎(chǔ)課程設(shè)計(jì)[M].武漢:華中理工大學(xué)出版社
3.《數(shù)字電路指南》,阮祁忠、蔡聲鎮(zhèn)編著,福建科學(xué)技術(shù)出版社
4彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)[M].北京:高等教育出版社
5謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試(第二版)[M].武漢:華中科技大學(xué)出版社。