久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

EDA課程設計彩燈控制器

時間:2019-05-15 11:45:11下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《EDA課程設計彩燈控制器》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《EDA課程設計彩燈控制器》。

第一篇:EDA課程設計彩燈控制器

沈陽理工大學EDA技術課程設計報告

1設計目的

熟練掌握EDA技術利用計算機方面的課程解決專業課程方面點具體問題,達到解決問題,完成課程設計任務,培養實踐的目的。

2設計要求和任務

利用所學的EDA設計方法設計彩燈控制器,熟練使用使用QUARTUSII應用軟件,進一步學習使用VHDL語言、原理圖等EDA設計方法進行綜合題目的方法。

功能要求: 1.要有多種花型變化(至少4種).2.多種花型可以自動變換,循環往復.3.彩燈變換的快慢節拍可以選擇.4.具有清零開關.總體設計思路及原理描述

3.1功能描述

在電路中以 1 代表燈亮,以 0 代表燈滅,由 0,1按不同的規律組合代表不同的燈光圖案,同時使其選擇不同的頻率,從而實現多種圖案多種頻率的花樣功能顯示。在該電路中只需簡單的修改程序就可以靈活地調整彩燈圖案和變化方式。下面就以一個十六路彩燈控制系統的實現為例進行簡單說明。此十六路彩燈控制系統設定有六種花樣變化 ,這六種花樣可以進行自動切換 ,并且每種花樣可以選擇不同的頻率。

3.2設計原理

用VHDL進行設計 ,首先應該了解 ,VHDL語言一種全方位硬件描述語言 ,包括系統行為級 ,寄存傳輸級和邏輯門級多個設計層次。應充分利用DL “自頂向下” 的設計優點以及層次化的設計概層次概念對于設計復雜的數字系統是非常

沈陽理工大學EDA技術課程設計報告

有用它使得人們可以從簡單的單元入手 ,逐漸構成龐大而復雜的系統。首先應進行系統模塊的劃分 ,規定每一模塊的功能以及各個模塊之間的接口。最終設計方案為:以一個十六路彩燈花樣控制器、一個四頻率輸出分頻器 ,一個四選一控制器和一個時間選擇器總共四部分來完成設計。四選一控制器從分頻器選擇不同頻率的時鐘信號輸送到彩燈花樣控制器 ,從而達到控制彩燈閃爍速度的快慢 ,時間選擇器控制每種速度維持的時間長短。整個十六路彩燈控制系統設計的模塊圖如圖 1所示

圖一

4分層次方案設計及代碼描述

4.1子模塊及其功能

本次設計分為四個子模塊 ,即十六路彩燈花樣控制器、四頻率輸出分頻器 ,四選一控制器和時間選擇器 ,其子模塊及其功能如下: 2

沈陽理工大學EDA技術課程設計報告

4.1.1四頻率輸出分頻器

在本次設計中 ,設計了六種花樣 ,要求這六種花樣以不同的頻率顯示 ,而只有一個輸入的時鐘信號 ,所以對所輸入的時鐘信號進行 2 分頻 ,4 分頻 ,8分頻 ,16分頻 ,得到四種頻率信號 ,CLKDIV模塊用來完成此功能。

4.1.2時間選擇器

時間選擇器實際上是兩個分頻器 ,其中一個頻率是另一個頻率的兩倍。本來這兩個分頻器是可以在上述的四頻率輸出器中實現的 ,但為了方便地為四選一控制器提供不同的時間選擇條件 ,就將這兩個分頻器獨立開來。這兩個輸出的時鐘信號組合起來就可以為四選一控制器提供 00,01,10,11 四個時間選擇條件 ,如

下圖三所示。

圖二

4.1.3四選一控制器

四選一控制器功能是從分頻器中選擇不同頻率的時鐘信號送給彩燈控制器 ,實現彩燈閃爍的頻率變化。

4.1.4彩燈控制器

彩燈控制電路是整個設計的核心 ,它負責整個設計的輸出效果即各種彩燈圖案的樣式變化。該程序充分地說明了用 VHDL設計電路的 “彈” 性 ,即可通過改變程序中輸出變量 Q 的位數來改變彩燈的數目。其中 ,P1進程對燈閃的速度控制有兩種方式可改變燈閃的速度:一是改變外部時鐘的賦值 ,二是改變信號U 的位數。P2進程能進行彩燈的圖案控制 ,改變 s的位數即可改變要控制圖案的數目 ,改變輸出變量 Q 的組合即可變幻彩燈圖案。

最后 ,當各個模塊均完成上述操作之后 ,即可利用MAXPLUS2的原理圖輸

沈陽理工大學EDA技術課程設計報告

入 ,調用各個元器件(底層文件),以原理圖的形式形成最后的十六路彩燈顯示系統(頂層文件),并且進行仿真。仿真通過 ,即可下載到指定的 CPLD芯片里面 ,并進行實際連線 ,進行最后的硬件測試。當然 ,可以將各個模塊所生成的元件符號存放在元件庫中 ,用以被其它人或其它的設計所重復調用 ,以簡化后面的設計。

4.2 代碼描述

4.2.1 時序控制電路部分

程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity timecontrol is--定義實體 port(clk: in std_logic;--時鐘信號 clr: in std_logic;--復位信號 opt: in std_logic;--快慢控制信號 clkout: out std_logic--輸出時鐘信號);end timecontrol;architecture one of timecontrol is signal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0);--定義計數器 begin process(clk,clr,opt)begin 4

沈陽理工大學EDA技術課程設計報告

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;--輸出分頻后的信號 end architecture one;

4.2.2顯示控制電路部分

程序如下: library ieee;use ieee.std_logic_1164.all;

沈陽理工大學EDA技術課程設計報告

entity showcontrol is port(clk: in std_logic;--輸入時鐘信號 clr: in std_logic;--復位信號

led: out std_logic_vector(15 downto 0));--彩燈輸出

end showcontrol;architecture one1 of showcontrol is type states is--狀態機狀態列舉(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

沈陽理工大學EDA技術課程設計報告

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;

沈陽理工大學EDA技術課程設計報告

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--定義元件:時序控制電路 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);--例化時序控制模塊

沈陽理工大學EDA技術課程設計報告

u2: showcontrol port map(clk=>clk_tmp,clr=>clr,led=>led);--例化顯示電路模塊 end architecture one3;

5各模塊的時序仿真圖

5.1時序控制電路timecontrol的仿真圖如下:

圖三

功能:時序控制電路metronome的功能是,用OPT控制輸入信號CKL_IN的快慢節拍。而CLR是控制開關。且從圖中可以看出,當復位信號為高電平時,電路時鐘輸出清零,當快慢信號OPT為低電平時,時序控制電路四分頻起作用,當快慢信號OPT為高電平時,時序控制電路八分頻起作用,仿真結果符合電路要求。

沈陽理工大學EDA技術課程設計報告

5.2 顯示控制電路showcontrol的仿真圖如下:

圖四

功能:顯示控制電路showcontrol的功能是控制花形的。且從圖中可以看出,當復位信號有效時彩燈輸出為零,否則,顯示電路在十六種不同狀態間轉換。

5.3 頂層電路root系統的仿真圖如下:

沈陽理工大學EDA技術課程設計報告

圖五

功能:整個電路root系統是把showcontrol與timecontrol綜合成一個電路。且從圖中可以看出,從圖中可以看出當OPT為高電平時彩燈狀態轉換慢,為低電平時轉換要快,當復位信號有效時,所用輸出都清零。

6總結

通過這次課程設計使我懂得了理論與實際相結合是很重要的,通過這次的課程設計,發現自己的實踐經驗還是不足的,以后多應該以理論為基礎,然后應用到實踐中來,從理論中得出結論,才能提高自己的實際動手能力和獨立思考的能力。

在這次的課程設計里深入的接觸了運用電子集成元器件制作多路彩燈的過程,并和同學一起討論用軟件制作出了這一個多路彩燈控制系統。正所謂“紙上談兵終覺淺,覺知此事要躬行。”學習任何知識,都要進行實踐,只有那樣才能達到事半功倍的效果。

沈陽理工大學EDA技術課程設計報告 參考文獻

《EDA技術與數字系統設計》

鄒彥主編

電子工業出版社

《EDA技術實用教程》,潘松、黃繼業,科學出版社 《數字電子技術基礎》(第五版),閻石,高等教育出版社

《電子設計自動化(EDA)手冊》,王丹、童如松,電子工業出版社 《EDA技術程設計》,劉江海,華中科技大學出版社

第二篇:eda課程設計-彩燈控制器

1.設計目的

學習EDA開發軟件和MAX+plus Ⅱ的使用方法,熟悉可編程邏輯器件的使用,通過制作來了解彩燈控制系統。2.設計題目描述和要求

1)設計一個彩燈控制器,使彩燈(LED管)能連續發出四種以上不同的顯示形式;

2)隨著彩燈顯示圖案的變化,發出不同的音響聲。3)擴充其它功能。3.設計原理 3.1 方案論證

這次的彩燈設計采用的是分模塊來完成的,包括分頻器、計數器、選擇器、彩燈控制器。其中彩燈控制器是用來輸出不同的花樣,彩燈控制器的輸出則是用一個32進制的計數器來控制,揚聲器的輸出時用不同的頻率來控制,所以用了一個集成分頻器來使輸入的頻率被分為幾種不同的頻率,不同頻率的選擇性的輸出則是用一個4選一的選擇器來控制。基于上述的介紹本次的彩燈控制采用的模式6來進行顯示。

圖3-1-1 模式6結構圖

3.2 模塊設計

1)集成分頻器模塊

設計要求顯示不同的彩燈的時候要伴隨不同的音樂,所以設計分頻器來用不同的頻率控制不同的音樂輸出。模塊說明:

Rst:輸入信號 復位信號 用來復位集成分頻器的輸出使輸出為“0”,及沒有音樂輸出。

Clk:輸入信號 模塊的功能即為分頻輸入的頻率信號。

Clk_

4、clk_

6、clk_

8、clk_10:輸出信號 即為分頻模塊對輸入信號clk的分頻,分別為1/4分頻輸出、1/6分頻輸出、1/8分頻輸出、1/10分頻輸出。

圖3-2-1 集成分頻器

2)32進制計數器模塊

32進制模塊用來控制彩燈輸出模塊,即確定彩燈控制器的不同的輸出。Rst:輸入信號 復位信號 用來復位32進制使其輸出為“00000”。Clk:輸入信號 用來給模塊提供工作頻率。

Count_out[4..0]:輸出信號 即為32進制計數器的輸出。

圖3-2-2 32進制計數器

3)彩燈控制模塊

彩燈控制模塊用來直接控制彩燈的輸出,使彩燈表現出不同的花樣。Rst:輸入信號 使彩燈控制模塊的輸出為“00000000”,即讓彩燈無輸出。Input[4..0]:輸入信號 不同的輸入使彩燈控制模塊有不同的輸出即彩燈顯示出不同的花樣。

Output[7..0]:輸出信號 直接與彩燈相連來控制彩燈。

圖3-2-3 彩燈控制模塊 4)4選1選擇器模塊

Rst:輸入信號 復位信號 使選擇器的輸出為“0”。In1、in2、in3、in4:輸入信號 接分頻器的輸出。

Inp[1..0]:輸入信號 接4進制計數器的輸出用來控制選擇器的選擇不同的輸入選擇不同的輸出。

Output:輸出信號 直接接揚聲器即輸出的是不同的頻率來控制揚聲器播放音樂。

圖3-2-4 4選1選擇器

5)4進制計數器模塊

4進制計數器作為選擇器的輸入來控制選擇器選擇不同的頻率作為輸出控制揚聲器工作。

Clk:輸入信號 來為計數器提供工作頻率。

Rst:輸入信號 復位信號 使計數器的輸出為“00”。

圖3-2-5 4進制計數器

3.3 系統結構

整個系統就是各個分模塊組成來實現最后的彩燈控制功能,系統又兩個時鐘來控制一個是控制32進制計數器即控制彩燈控制模塊來實現彩燈的不同輸出,另一個時鐘為分頻器的輸入來進行分頻處理,最后用來控制揚聲器發出不同的音樂,具體分頻處理的時鐘的頻率比實現彩燈控制的時鐘頻率要高。

圖 3-3-1 系統功能模塊

4.總結

這次的EDA課程設計有一周的時間,在這一周的時間里我們充分合理的安排了自己的時間來使本次的課程設計能夠順利的完成,當然我們在本次的設計中并不是一帆風順的,我們遇到了一些的問題,例如我們開始時用的文本的方式用一個總的程序來完成,可以在設計的過程中我們發現程序編到后面變量越到很容易搞混淆同時各個進程間的聯系也越來越模糊以至于后面我們自己都不知道程序的整體框圖是什么,導致后面不能夠繼續下去,后面我們再一次對我們這次的設計題目進行了分析和整理,最后我和我的同伴決定采用分模塊的方式來完成本次的課題設計,當然最重要的是分析各個模塊間的關系。最后我們采用上面分析的結構框圖。最后我們的設計很成功,仿真和硬件測試都是正確的,實現了我們的設計要求和目的。

在這次設計中我們收獲了很多,首先最直接的收獲就是我們鞏固了這門課程所學過的知識,把它運用到了實踐當中,并且學到了很多在書本撒和那個所沒有學到的知識,通過查閱相關資料進一步加深了對EDA的了。總的來說,通過這次課程設計不僅鍛煉了我們的動手和動腦能力,也使我懂得了理論與實際相結合的重要性,只有理論知識是遠遠不夠的,要把所學的理論知識與實踐相結合起來,才能提高自己的實際動手能力和獨立思考的能力。在我們的共同努力和指導老師的指引下我們圓滿的完成了彩燈控制器的設計,實現了設計目的。

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';

-----

復位信號控制部分 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';

-----

復位信號控制部分

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

復位信號控制部分7

復位信號控制部分

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進制計數器模塊----

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進制計數器模塊---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附錄三 時序仿真

第三篇:EDA課程設計:八路彩燈控制器

EDA課程設計

設計題目:基于VHDL的8路彩燈控制器設計

一、課程設計的目的

1.熟悉QuartusⅡ軟件的使用方法,使用VHDL 文本輸入設計法進行任務設計。2.增強自己實際動手能力,獨立解決問題的能力。3.通過課程設計對所學的知識進行更新及鞏固.二、課程設計的基本要求

本次課程設計是設計一個8路彩燈控制器,能夠控制8路彩燈按照兩種節拍,三種花型循環變化。設計完成后,通過仿真驗證與設計要求進行對比,檢驗設計是否正確。

三、課程設計的內容

編寫硬件描述語言VHDL程序,設計一個兩種節拍、三種花型循環變化的8路彩燈控制器,兩種節拍分別為0.25s和0.5s。三種花型分別是:

(1)8路彩燈分成兩半,從左至右順次漸漸點亮,全亮后則全滅。(2)從中間到兩邊對稱地漸漸點亮,全亮后仍由中間向兩邊逐次熄滅。(3)8路彩燈從左至右按次序依次點亮,全亮后逆次序依次熄滅。

四、實驗環境

PC機一臺;軟件QuartusⅡ6.0

五、課程設計具體步驟及仿真結果

1、系統總體設計框架結構

分頻模塊:把時鐘脈沖二分頻,得到另一個時鐘脈沖,讓這兩種時鐘脈沖來交替控制花型的速度。

二選一模塊:選擇兩種頻率中的一個控制彩燈的花型。

8路彩燈的三種花型控制模塊:整個系統的樞紐,顯示彩燈亮的情況。

2、系統硬件單元電路設計

1.分頻模塊設計 實驗程序: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.二選一模塊設計 實驗程序: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路彩燈的三種花型控制模塊設計 程序: 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;波形圖:

六、實驗總結

第四篇:彩燈控制器eda課程設計(定稿)

目錄

1.引言..............................................................3 2.EDA技術.........................................................5 2.1 EDA技術介紹..................................................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 系統設計.........................................................12 4.1 設計過程.....................................................12 4.1.1 設計內容及要求...........................................12 4.1.2 輸入與輸出說明...........................................12 4.1.3 設計過程思路分析.........................................12 4.2 程序分析及仿真...............................................13 4.2.1花型控制電路模塊.........................................13 4.2.2 顯示電路模塊...........................................14 4.2.3 發聲電路模塊...........................................17 4.3 程序仿真圖...................................................17 5 下載.............................................................19 5.1 芯片選定.....................................................19 5.2引腳設定.....................................................19 5.3 程序下載.....................................................20 5.4 結果顯示.....................................................20

課程設計說明書 設計總結.........................................................22 參考文獻...........................................................23 附錄:源代碼程序...................................................24

課程設計說明書

1.引言

伴隨著計算機、集成電路和電子設計技術的發展,當今社會是數字化的社會,也是數字集成電路廣泛應用的社會,數字本身在不斷的進行更新換代。它由早起的電子管、晶體管、小中規模集成電路發展到超大規模集成電路以及許多具有特定功能的專用集成電路。EDA技術在過去的幾十年里取得了巨大的進步。EDA技術使得設計者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件便可完成對系統硬件功能的實現。如今,EDA軟件工具已經成為電子信息類產品的支柱產業。從高性能的微處理器、數字信號處理器一直到彩電、音響和電子玩具電路等,EDA技術不單是應用于前期的計算機模擬仿真、產品調試,而且也在P哪的制作、電子設備的研制與生產、電路板的焊接、朋比的制作過程等有重要作用。可以說電子EDA技術已經成為電子工業領域不可缺少的技術支持。相比傳統的電路系統的設計方法,VHDL具有多層次描述系統硬件功能的能力,支持自頂向下(Top to Down)和基于庫(LibraryBased)的設計的特點。因此設計者可以不必了解硬件結構。從系統設計入手,在頂層進行系統方框圖的劃分和結構設計,在方框圖一級用VHDL對電路的行為進行描述,并進行仿真和糾錯,然后在系統一級進行驗證,最后再用邏輯綜合優化工具生成具體的門級邏輯電路的網表,下載到具體的CPLD器件中去,從而實現可編程的專用集成電路(ASIC)的設計。

而EDA技術就是以微電子技術為物理層面,現代電子設計為靈魂,計算機軟件技術為手段,最終形成集成電子系統或專用集成電路ASIC為目的的一門新興技術。

VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language, 翻譯成中文就是超高速集成電路硬件描述語言,誕生于1982年。1987年底,VHDL被美國國防部確認為標準硬件描述語言。自IEEE公布了VHDL的標準版本,IEEE-1076之后,各EDA公司相繼推出了自己的VHDL設計環境,或宣布自己的設計工具可以和VHDL接口。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本。

現在,VHDL和Verilog作為IEEE的工業標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,VHDL于Verilog語言將承擔起大部分的數字系統設計任務。目前,它在中國的應用多數是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC。

隨著EDA技術的高速發展,電子系統的設計技術和工具發生了深刻的變化,大規

課程設計說明書

模可編程邏輯器件CPLD/FPGA的出現,給設計人員帶來了諸多方便。利用它進行產品開發,不僅成本低、周期短、可靠性高,而且具有完全的知識產權。利用VHDL語言設計彩燈控制器設計,使其實現彩燈控制器變形,發聲等功能,突出了其作為硬件描述語言的良好的可讀性、可移植性和易讀性等優點。此程序通過下載到特定芯片后,可應用于實際的控制器系統中。

本文基于FPGA開發系統,在QuartusII 7.2軟件平臺上,完成了自動售貨機控制器的設計和與仿真,并下載到試驗箱進行硬件實現。首先,本文介紹了QuartusII 7.2軟件的基本使用方法和VHDL硬件描述語言的特點,采用VHDL 硬件描述語言描述自動售貨機控制器,完成對電路的功能仿真;在設計過程中,重點探討了彩燈控制器設計的設計思路和功能模塊劃分;然后,初步探討了電路邏輯綜合的原理,該軟件對彩燈控制器設計電路進行了邏輯綜合;最后,使用EDA實驗開發系統進行電路的下載和驗證,驗證結果表明設計的彩燈控制器設計完成了預期的功能。

課程設計說明書

2.EDA技術

2.1EDA技術介紹

EDA是電子設計自動化(Electronic Design Automation)縮寫,是90年代初從CAD(計算機輔助設計)、CAM(計算機輔助制造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術是以計算機為工具,根據硬件描述語言HDL(Hardware Description language)完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局布線、仿真以及對于特定目標芯片的適配編譯和編程下載等工作。EDA技術(即Electronic Design Automation技術)就是依賴強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(Hardware DdscriptionLangurage)為系統邏輯描述手段完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優化和仿真測試,直至實現既定的電子線路系統功能。它在硬件實現方面融合了大規模集成電路制造技術、IC版圖設計、ASIC測試和封裝、FPGA(GieldPeogrammable Gate Array)/CPLD(Complex Programmable Logic Device)編程下載和自動測試等技術;在計算機輔助工程方面融合了計算機輔助設計(CAD),計算機輔助制造(CAM),計算機輔助測試(CAT),計算機輔助工程(CAE)技術以及多種計算機語言的設計概念;而在現代電子學方面則容納了更多的內容,如電子線路設計理論、數字信號處理技術、數字系統建模和優化技術及長線技術理論等。

2.2硬件描述語言

硬件描述語言HDL是EDA技術的重要組成部分,常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和SystemC。其中VHDL、Verilog和現在的EDA設計中使用最多,并且我們學習的是VHDL的編程方法和實用技術。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,由IEEE(The Institute of Electrical and Electronics Engineets)進一步發展,并在1987年作為“IEEE標準1076”公布。從此VHDL成為硬件描述語言的業界標準之一。VHDL技術與傳統的數字電子系統或IC設計相比之下有很大的優勢,主要表現在: 第一,VHDL語言具有很強的電路描述和建模能力,能從多個層次對數字系統進行建 模和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性。第二,VHDL具有也具體硬件電路武官和與設計平臺無關的特性,并且具有良好的電 路行為描述和系統描述的能力,課程設計說明書

并在語言易讀性和層次化,結構化設計方面,表現了強大的生命力和應用潛力。

當今社會是數字化的社會,也是數字集成電路廣泛應用的社會,數字本身在不斷的進行更新換VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language, 翻譯成中文就是超高速集成電路硬件描述語言,誕生于1982年。1987年底,VHDL被美國國防部確認為標準硬件描述語言。

自IEEE公布了VHDL的標準版本,IEEE-1076之后,各EDA公司相繼推出了自己的VHDL設計環境,或宣布自己的設計工具可以和VHDL接口。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本。

現在,VHDL和Verilog作為IEEE的工業標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,VHDL于Verilog語言將承擔起大部分的數字系統設計任務。目前,它在中國的應用多數是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC。

傳統的硬件電路設計方法是采用自下而上的設計方法,即根據系統對硬件的要求,詳細編制技術規格書,并畫出系統控制流圖;然后根據技術規格書和系統控制流圖,對系統的功能進行細化,合理地劃分功能模塊,并畫出系統的功能框圖;接著就進行各功能模塊的細化和電路設計;各功能模塊電路設計、調試完成后,將各功能模塊的硬件電路連接起來再進行系統的調試,最后完成整個系統的硬件設計。采用傳統方法設計數字系統,特別是當電路系統非常龐大時,設計者必須具備較好的設計經驗,而且繁雜多樣的原理圖的閱讀和修改也給設計者帶來諸多的不便。為了提高開發的效率,增加已有開發成果的可繼承性以及縮短開發周期,各ASIC研制和生產廠家相繼開發了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設計環境中使用,這給設計者之間的相互交流帶來了極大的困難。因此,開發一種強大的、標準化的硬件描述語言作為可相互交流的設計環境已勢在必行。于是,美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,簡稱VHDL。這是一種用形式化方法來描述數字電路和設計數字邏輯系統的語言。設計者可以利用這種語言來描述自己的設計思想,然后利用電子設計自動化工具進行仿真,再自動綜合到門電路,最后用PLD實現其功能。

VHDL是一種全方位的硬件描述語言,包括系統行為級。寄存器傳輸級和邏輯門多個設計層次,支持結構、數據流和行為三種描述形式的混合描述,因此

課程設計說明書

VHDL幾乎覆蓋了以往各種硬件語言的功能,整個自頂向下或由下向上的電路設計過程都可以用VHDL來完成。VHDL還具有以下優點:

1.VHDL的寬范圍描述能力使它成為高層進設計的核心,將設計人員的工作重心提高到了系統功能的實現與調試,而花較少的精力于物理實現。

2.VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯設計,靈活且方便,而且也便于設計結果的交流、保存和重用。

3.VHDL的設計不依賴于特定的器件,方便了工藝的轉換。

4.VHDL是一個標準語言,為眾多的EDA廠商支持,因此移植性好。關于VHDL語言,最后需要說明的是:與常規的順序執行的計算機程序不同,VHDL從根本上講是并發執行的。因此,我們通常稱之為代碼,而不是程序。在VHDL中,只有在進程(PROCESS)、函數(FUNCTION)和過程(PROCEDURE)內部的語句才是順序執行的。

VHDL語言具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關,當工藝改變時,只需修改相應程序中的屬性參數即可。

課程設計說明書 Quartus II介紹

3.1 Quartus II軟件介紹

Quartus II 是Altera公司單芯片可編程系統(SOPC)設計的綜合性環境,也是適合SOPC的最全面的設計環境。擁有現場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)設計的所有解決方案。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發平臺,該平臺支持一個工作組環境下的設計要求,其中包括支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。

Quartus II也支持第三方的仿真工具,對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。Quartus II還支持層次化設計,可以在一個新的編輯環境中對使用不同輸入設計方式完成的模塊進行調用,從而解決了原理圖與HDL混合輸入設計的問題,并且在輸入之后,Quartus II的編譯器將給出設計輸入的錯誤報告。

Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一,功能集中,易學易用等特點。

Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。

Maxplus II 作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。目前Altera已經停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設計輔助工具,集成了SOPC和HardCopy設計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。

Altera 公司的Quartus II 作為一種可編程邏輯的設計環境, 由于其強大的設計能力和直觀易用的接口,越來越受到數字系統設計者的歡迎。

課程設計說明書

3.2 Quartus II軟件界面介紹

3.2.1 代碼輸入界面

新建一個工程,選擇File→New Project Wizard,在出現的對話框中輸入工作路徑和工程名稱(應與實體名稱相同),新建完工程后,選擇File→New→VHDL File,然后新出現的空白窗口中輸入代碼,代碼輸入界面如圖3-1所示:

圖3-1 代碼輸入界面

3.2.2 編譯界面

代碼輸入完畢后,選擇Processing→Start Compilation或直接單擊(Start Compilation)進行編譯,編譯界面如圖3-2所示:

課程設計說明書

圖3-2 編譯界面

3.2.3 波形仿真界面

編譯沒有錯誤后,選擇File→New→Vector Waveform File,自己設置輸入的值,設置好后單擊 進行波形仿真,仿真前界面如圖3-3所示:

圖3-3波形仿真前界面

仿真后界面如圖3-4所示:

課程設計說明書

3-4波形仿真后界面

課程設計說明書 系統設計

4.1 設計過程

4.1.1 設計內容及要求

1.設計內容:

(1)設計一個彩燈控制器,使8個彩燈(發光二極管)能連續發出六種種以上不同的花型,花型自擬(全亮,全滅除外),每種花型持續的時間為10秒鐘。

(2)使用數碼管顯示當前的花型序號(分別為A、B、C,D,E,F)以及該花型的顯示時間。

(3)每種花型顯示時對應發出不用的聲音(4)系統要有整體復位信號 2.設計要求:

(1)根據任務要求確定電路各功能模塊;(2)寫出設計程序;(3)給出時序仿真結果;(4)實現硬件調試;

4.1.2 輸入與輸出說明

1.輸入:

rst,clk,clker分別為彩燈控制器的整體復位,時鐘脈沖發生以及發聲器分頻時鐘脈沖;

2.輸出:

x表示彩燈控制器六種種以上不同的花型,y表示每種花型持續的時間(10秒鐘),M表示數碼管顯示的當前的花型序號(分別為A、B、C,D,E,F),Z為每種花型顯示時對應發出不用的聲音。

4.1.3 設計過程思路分析

如圖4.1整個系統有需要三個輸入信號,分別為彩燈控制器的整體復位,計時時鐘脈沖以及發聲器分頻時鐘脈沖,輸出信號要能表示彩燈控制器六種種以上不同的花型,表示每種花型持續的時間(10秒鐘)和花型序號以及每種花型對

課程設計說明書

應發出不用的聲音。系統框圖如下:主要模塊組成:花型控制模塊和顯示電路模塊以及蜂鳴器發聲模塊。時序電路是根據時鐘脈沖信號的設置得到相應的輸出信號,并將此信號作為花型控制模塊和顯示電路時鐘信號。顯示電路輸入時鐘信號的周期,有規律的輸出設定的六種彩燈變化類型以及數碼管顯示花型序號和持續時間。時序電路是根據另一時鐘脈沖信號的設置得到相應的輸出信號,并將此信號作為發聲模塊的時鐘信號的輸入時鐘信號的周期,進行有規律的輸出設定蜂鳴器對應花型變化發出的各種聲音。該程序采用層次設計法,頂層采用原理圖設計,底層采用VHDL 設計。以下是它的方框圖。底層分為三個子電路模塊,分別是時序控制電路模塊和顯示電路模塊以及蜂鳴器發聲模塊。

圖 4.1 模塊組成

4.2 程序分析及仿真

4.2.1花型控制電路模塊

花型控制電路模塊是8 路彩燈電路的核心部分。它主控著8 路彩燈的花型種類。模塊主要采用狀態機如圖4.2來實現,用狀態機來設計靈活性很強。按設計要求要實現六種花型01100110、010000010、1000001、00011000、00100100、11100111,用S0、S1、S2、S3、S4、S5 來表示6 種循環,以1表示燈亮,以0表示燈滅狀態的狀態。仿真圖如圖4.2:

圖 4.2 狀態轉換圖

課程設計說明書

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

顯示電路模塊

顯示電路模塊的要求是使用數碼管顯示當前的花型序號(分別為A、B、C,D,E,F)以及該花型的顯示時間。花型控制電路模塊采用狀態機實現,在狀態機的

課程設計說明書

時序邏輯電路部分已經采用計數器計時的方法直到計數器計時達到時才進入下一個狀態,如下為狀態機時序邏輯電路程序:

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;為用數碼管顯示當前的花型序號(分別為A、B、C,D,E,F)以及該花型的顯示時間,只需要將顯示當前的花型序號程序二進制代碼以及該花型的顯示的時間的二進制代碼添加到狀態中即可,程序如下:

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<=“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 顯示電路模塊

課程設計說明書

4.2.3發聲電路模塊

發生電路采用蜂鳴器,而蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、電話機、定時器等電子產品中作發聲器件,它分為有源蜂鳴器和無源蜂鳴器兩種,有源蜂鳴器直接接上額定電源就可連續發聲,而無源蜂鳴器工作需要加入其理想信號方波,該課程設計采用無源蜂鳴器。對于每種花型顯示時對應發出不用的聲音,這里就需要對其中輸入的時鐘信號進行分頻,改變temp的值能產生出不同頻率的聲音。在程序中添加不同的進程(process),來產生不同頻率的方波。程序如下:

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;發聲電路模塊輸出信號z同樣可以反映在狀態機的組合邏輯電路中,程序4.2.1中的組合邏輯電路

圖4.5 發聲電路模塊

4.3 程序仿真圖

綜合以上各模塊程序仿真圖如下:

課程設計說明書

圖4.6 程序仿真圖

課程設計說明書 下載

5.1 芯片選定

選擇Assignments→devives然后選擇芯片,芯片設定界面如圖5-1所示:

圖5.1 芯片選定

5.2引腳設定

選擇Assignments→Pins然后設定引腳,引腳設定界面如圖5-2所示:

課程設計說明書

圖5.2 引腳設定

5.3 程序下載

引腳設定好后,將下載盒子插到USB接口,點擊,選擇Hardward和start當下載到100%時,就可以通過試驗箱進行驗證,下載驗證如圖5-3所示:

圖5.3 程序下載

5.4 結果顯示

程序下載到實驗板上完成后,程序運行結果在實驗板上得到實現,八個LED發光二極管變換產生六種不同的花型樣式,七段譯碼管顯示與之對應的變換的花

課程設計說明書

型序號A,B,C,D,E,F,同時LED譯碼管也開始計時,到達10秒后變換到下一個花型,蜂鳴器也對應不同花型發出不同的聲音,程序運行結果顯示正確。如下圖:

圖 5.4 實驗板

課程設計說明書 設計總結

通過這次課程設計對EDA技術有了更進一步的熟悉,VHDL 語言和C語言等其他語言還是有很大的區別。VHDL是EDA技術的重要組成部分,其具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的電路行為描述和系統描述的能力,并在語言易讀性和層次化、結構化設計方面,表現了強大的生命力和應用潛力。其主要的也是最大的優點就在于設計者可以專心致力于其功能的實現,而不需要對不影響功能的與工藝有關的因素花費過多的時間和精力。在實際操作中發現設計和課本上的知識有很大聯系,但又高于課本,一個簡單的原理要把它應用以及和其他功能綜合起來就有些困難。通過設計也鞏固了我們的書本知識以及通過借閱書籍和上網查找資料,也豐富了自己對EDA的了解。不過本次設計也存在一些不足,暴露了自己對EDA的掌握還有所欠缺。在設計過程中,分頻分的太大,頻率太小的話,揚聲器的聲音體現不出顯示不同花型時的區別;頻率太大的話,數碼管顯示速度太快,嘗試分頻時使用不同的脈沖信號,但沒有成功。在反復調試中,最后還是成功了,但原理還不是很清楚。同時,在課程設計過程中通過與老師、同學的交流,也了解了他們對于這門技術的看法和今后這門技術的發展方向,也感謝老師對我設計的指導和同學對我的幫助。總的來說,這次設計還是有所收獲的。

課程設計說明書

參考文獻

[1] VokneiA.Pedroni.《VHDL數字電路設計教程》.電子工業出版社,2008.5

[2] 潘松,黃繼業.《EDA技術實用教程》(第二版).科學出版社,2005.2 [3] 焦素敏.《EDA應用技術》.清華大學出版社,2002.4 [4] 曾繁泰,陳美金.VHDL程序設計[M].北京:清華大學出版社,2001 [5] 張昌凡等.可編程邏輯器件及VHDL設計技術[M].廣州:華南理工大學出版社,2001

課程設計說明書

附錄:源代碼程序

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;

課程設計說明書

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;

課程設計說明書

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”;

課程設計說明書

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;

第五篇:數電課程設計循環彩燈控制器

班 級:電子信息0901

學 號:0501090108

學生姓名:張亞軍

指導教師:曹建生

日 期:2011.1.04

緒論

自1879年美國科學家愛迪生發明了白熾燈以來,便結束了人類“黑暗“的歷史,給人類以光明,創造了巨大的財富。如今燈光已成為人民生活中必不可少的家用品。而相續發展起來的的循環彩燈也成為時代前沿的時尚藝術,它以現代高科技為基礎,隨著高技術日新月異的發展,其藝術性和表現力都產生了質的飛躍,實現了藝術上的創新與突破,不斷創造出令人驚嘆、叫絕的視覺藝術效果,給人們帶來了美的享受和心靈上的震撼。

伴隨著人們生活環境的不斷改善和美化,在許多場合可以看到霓虹燈。LED彩燈由于其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾街道和城市建筑物已經成為一種時尚。但目前市場上各式樣的LED彩燈控制器大多數用全硬件電路實現,電路結構復雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據不同場合、不同時間段的需要來調節亮燈時間、模式、閃爍頻率等動態 參數。這種彩燈控制器結構往往有芯片過多、電路復雜、功率損耗大等缺點而且價格昂貴。此外從功能效果上看,亮燈模式少而且樣式單調,缺乏用戶可操作性,影響亮燈效果。因此有必要對現有的彩燈控制器進行改進。

利用控制電路可使彩燈按一定的規律不斷的改變狀態,不僅可以獲得良好的觀賞效果,而且可以省電(與全部彩燈始終全亮相比)。再由于人們對于物質生活的要求也在逐漸提高,不光是對各種各樣的生活電器的需要,也開始在環境的幽雅方面有了更高的要求。比如日光燈已經不能滿足于我們的需要,彩燈的運用已經遍布于人們的生活中,從歌舞廳到卡拉OK包房,從節日的祝賀到日常生活中的點綴。這些不緊說明了我們對生活的要求有了質的飛躍,也說明科技在現實運用中有了較大的發

展。在這一設計中我們將涉及有關彩燈控制器的設計,從原理上使我們對這一設計有所了解。將其確實的與我們生活相聯系起來。

課 程 設 計 任 務 書

一. 設計題目 : 循環彩燈控制器電路 二. 主要內容及要求

(1)共有紅、綠、黃3色彩燈各9個,要求按一定順序和時間關系運行。

(2)動作要求:先紅燈,后綠燈,再黃燈,分別按0.5S的速度跑動一次,然后,全部紅燈亮5S,再黃燈,后綠燈,各一次。以此循環。

(3)對各組燈的控制,要求有驅動電路。

(4)對跑動電路,可以每3個一組,交叉安裝,分別點亮每一組,利用視覺暫停,達到跑動的效果。三.進度安排

1、老師給出選題內容,課程設計的相關要求,指導時間及任務完成期限。

2、根據課程設計內容及要求構造整個設計思路,復習數字電路中觸發器、譯碼器、計數器、譯碼顯示器等部分內容。

3、分析彩燈控制器的組成、各部分功能及工作原理。查出各芯片引腳排列及功能。進行電路的設計及仿真模擬。

4、根據電路的原理寫出設計方案。

5、設計方案的檢查,修正,改進,按要求打印方案。

應用價值

在家庭裝飾、商業區、許多戶外廣告、公益廣告等的燈光布置中經常需要完成彩燈循環點亮以實現燈光動態效果,做到廣告、彩燈等作品色彩鮮艷,富有創藝,變化形式豐富,起著宣傳和美化環境的作用,營造文明和亮麗氛圍,增添人們生活樂趣。彩燈控制現已廣泛用于廣告、舞廳、商店方面。伴隨著經濟的發展和夜市的興起循環彩燈的用途將越來越廣,必然是現代都市的發展和人們生活水平提高.循環彩燈設計

一 方案設計與論證

該任務要求:先紅燈,后綠燈,再黃燈,分別按0.5S的速度跑動一次,然后,全部紅燈亮5S,再黃燈,后綠燈,各一次。以此循環。根據此要求電路總體上可以分為三部分:一部分電路為控制0.5s的跑動。一部分電路為控制5s的跑動。一部分電路為實現這兩種跑動的循環。因此可以選用兩個555多諧振蕩器(一個周期為0.5秒,一個為5秒)用來控制跑動的速度,再選兩個4017芯片,因為4017芯片在正常工作下,連續送入時鐘脈沖時,其十個輸出端會依次輸出高電平。這樣可以用一個4017芯片點亮0.5s的跑動,用一個4017芯片來點亮5s的跑動。選用一個JK觸發器和模擬開關4066芯片來實現循環功能,即用JK觸發器來控制4066芯片的開通和關閉。

二,單元電路設計與參數計算

在整個電路中,其主要的組成部分有:

555定時器和4017芯片組成的 3個一組0.5s依次跑動:

(由于仿真時,設置的時間跟實際理論計算的不符合,故仿真時時間可能不是0.5s)555定時器和4017芯片組成的9個一組持續亮5s的(由于仿真時,設置的時間跟實際理論計算的不符合,故

仿真時時間可能不是5s)4066和74LS76組成的一個循環電路:

(本來是要用hc4060+CD4013(D觸發器,用它做2分頻電路)+32768Hz的晶振組成秒定時,產生秒脈沖來做循環電路的,不過由于其中的芯片沒接觸過也比較復雜,所以就沒用此方案,改為用4066和74LS76組成的循環電路。)

設計過程中各個單元的詳細原理、電路圖和仿真狀態如下:

第一部分電路:實現3個一組紅燈,后黃燈,再綠燈,分別依次跑動一次的電路,電路如下圖:

此電路主要用到一個555多諧振蕩器和一個4017芯片,4017芯片有十個輸出端口,而每3個一組的燈都接一個4017的輸出端口,這樣可控制任務中的9組燈。

電路中的555多諧振蕩器的輸出端接4017的脈沖輸入控制,555多諧振蕩器不斷的產生脈沖送入4017芯片的脈沖輸入端,從而使4017芯片的輸出端(01,02,03,04,05,06,07,08,09)依次為高電平,這樣就控制指燈不斷的跑動!

第二部分電路:用來實現全部9個一組紅燈,再黃燈,后綠燈,各亮一次。電路如下圖:

此電路主要用到一個555多諧振蕩器和一個4017芯片,4017芯片有十個輸出端,而每9個億組的燈都接一個4017的輸出端(共接三個),這樣可控制任務中的3組燈。

電路中的555多諧振蕩器的輸出端接4017的脈沖輸入控制,555多諧振蕩器不斷的產生脈沖送入4017芯片的脈沖輸入端,從而使4017芯片的輸出端(01,02,03)依次為高電平,這樣就控制3組指燈持續亮5s依次跑動循環!

1:用來實現兩種的跑動不斷循第三部分電路環。電路如下圖:

此部分電路主要是用一個4066BP芯片和一個74LS76N芯片來現實。4066BP芯片為模擬開關芯片,它集成了四個模擬開關(在此用到兩個),每個模擬開關有2個端子,一個為控制端,主要接高電平或低電平,其佘兩個端子為輸入輸出端。當控制接高電平時,開關接通,控制端接低電平時開關斷開。74LS76N芯片為集成JK觸發器。在此電路中觸發器的J,K 和清零端都接高電平。這樣每給觸發器一個觸發邊沿其輸出端就翻轉一次。Q端接4066BP的一個開關的控制端。Q非接4066BP的另一個開關的控制端。這樣可以使4066BP用到的兩個開關一個接通時而另一個就斷開。而觸發器的脈沖輸入端接第一部分電路中的4017的第十(09)輸出端口和第二部分電路中的4017的03輸出端口的或門的結果。而4066模擬開關用到的兩個開關的輸入端接12V直流電源,其一個開關的輸出端接第一部分電路中的555多諧振蕩器電源端,別一個開關輸出端接第二部分電路中的555多諧振蕩器的電源端!這樣就實現了若第一部分的電路工作時第二部分電路就不工作。而第二部分電路工作時第一部分電路就不工作。即可實現交替循環工作!

總原理圖及工作過程

1.總原理圖

2電路完整工作過程

電路運行時第一部分的555多諧振蕩器首先工作不斷的給控制著3組燈(3個一組)的4017芯片送去脈沖,從而使4017的十個輸出端依次為輸出高電平。接到高電平的組燈就會發光。這樣就實現先紅燈,后黃燈,再綠燈,分別依次0.5s跑動。當最后的綠燈亮完后,即第一部分的單元電路中的4017的第十個輸出端(09)輸出高電平時,這就給74LS76觸發器送去一個脈沖,于

是觸發器的Q端就翻轉輸出低電平使4066模擬開關的一個開關變為斷開,從而使第一部分的電路處于不工作狀態。而觸發器的Q非端同時了輸出一個高電平使4066的另一個開關導通,這時第二部分的電路開始運行。這樣就使全部紅燈,再黃燈,后綠燈,各亮一次。而當綠燈全部亮完后,這時第二部分的4017的第四個輸出端(03)輸出高電平,也給觸發器送去一個脈沖。于Q端和Q非端翻轉。這樣第二部分的4066的模擬開關斷開,控制第二部分的模擬開關斷開使第二部分的電路不工作。,而控制著第一部分的4066模擬開關導通,使第一部分的電路工作3個一組的組燈依次點亮、依次跑動。如此實現了3個一組先紅燈,后黃燈,再綠燈0.5s依次跑動,讓后再9個一組,先紅燈,后黃燈,再綠燈持續亮5s.如此循環下去。

四 安裝與調試

1、按照電路圖進行接線,按照單元電路設計中的方法連接好每一塊電路,然后把每一塊接在一起。對每單元電路進行調試,在對每部分電路進行調試時仿真狀態跟設計和預想的一樣,沒什么大問題。

2、把各單元電路接在一起調試時,3個一組隔0.5s跑動亮的正常,不過9個一組的持續5s的出現錯誤,就 12

是0.5s和5s的兩個功能電路都一起工作,達不到要設計的要求。

3、把0.5s跑動單元電路中的4017芯片的第十個輸出端口和持續亮5s的單元電路中的4017芯片的第四個輸出端口用一個或門連起來后就能正常工作了。不過,持續亮5s的功能中,亮黃跟綠燈時會有三個紅燈也一起亮的(問題解決不了)。不過總體的功能跟效果還是達到要求。

五 結論與心得

通過此次的課程設計,我對電路的設計流程有了一定的了解,對仿真軟件也有一定的認識。在調試的過程中遇到打開電源開關的瞬間一個紅燈亮0.5S然后所有燈全亮,通過運用檢修方法查出是系統內部的問題,改正后恢復正常。所有燈一會正常一會不工作,經仔細檢查發現在電源處接觸不良,改正后恢復正常。總的來說,本次的課程設計進行的還算順利,不過對于結果有點不怎么滿意,就是持續亮5S的功能有點不完善,但總的結果還算達到了設計要求。本次所用的芯片大部分都是基礎的,不過有個別的不怎么了解,不過通過此次課程設計,我對這些未曾接觸過的芯片都有一定的認識,對其功能也有一定的了解。比如4066,4017。這次的課程設計是我更加熟悉芯片的功能跟用法,讓我更好的運用邏 13

輯門,使我所學的知識得到鞏固,并且這次的設計培養了我的獨立思考的能力和操作的能力。

參考文獻

1.《電子技術基礎》,康華光 主編,高等教育出版社; 2梁宗善.電子技術基礎課程設計[M].武漢:華中理工大學出版社

3.《數字電路指南》,阮祁忠、蔡聲鎮編著,福建科學技術出版社

4彭介華.電子技術課程設計指導[M].北京:高等教育出版社

5謝自美.電子線路設計·實驗·測試(第二版)[M].武漢:華中科技大學出版社。

下載EDA課程設計彩燈控制器word格式文檔
下載EDA課程設計彩燈控制器.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    EDA課程設計 多路彩燈設計(匯編)

    多路彩燈控制器的設計 O 引言 硬件描述語言(HDL)是相對于一般的計算機軟件語言如C,Pascal而言的。HDL是用于設計硬件電子系統的計算機語言,它描述電子系統的邏輯功能、電路......

    EDA課程設計

    考試序號:28 自動打鈴系統設計說明書 學 生 姓 名:周文江 學 號:14112502521 專 業 班 級:1102 報告提交日期:2013.11.26 湖 南 理 工 學 院 物 電 學 院 目錄 一、題目及要......

    EDA 課程設計

    《電子系統設計自動化》課程設計報告 學 院: 機電工程學院 題 目: 數字時鐘電路設計 課 程: 《電子系統設計自動化》課程設計 專業班級: 電信10級2 班 學生姓名: 劉星 秦玉杰 王......

    《EDA課程設計》

    《EDA課程設計》 課程設計題目: 基于單片機的溫濕度采集系統 姓 名: xxx 學班時地 號:xxxx 級: xxxx 間:2014.4.21~ 2013.5.5 點: xxxxx 指 導老師: xxxxx 目錄 一、電路原理......

    《單片機原理及應用課程設計》節日彩燈控制器的設計

    《單片機原理及應用課程設計》報告 ——節日彩燈控制器的設計 專業:班級: 姓名: 學號:2014年2月 1.課程設計目的 1.1鞏固和加深對單片機原理和接口技術知識的理解; 1.2培養根據......

    基于FPGA的彩燈控制器設計

    鄭州輕工業學院 可編程數字系統設計 題 目 學生姓名 專業班級 學 號 院 (系)指導教師 完成時間 基于FPGA的彩燈控制器的設計 張煥煥 電子信息工程10-2班 電氣信息工程學院......

    eda課程設計5篇

    數字鐘 一、 設計要求 設計一個數字鐘,具體要求如下: 1、 具有時、分、秒計數顯示功能,以24小時循環計時。 2、 具有清零、校時、校分功能。 3、 具有整點蜂鳴器報時以及LED花......

    EDA數字鐘課程設計

    課 程 設 計 報 告 設計題目:用VHDL語言實現數字鐘的設計 班 級:電子1002班 學 號:20102625 姓 名:于曉 指導教師:李世平、李寧 設計時間:2012年12月摘要 數字鐘是一種用數字電路......

主站蜘蛛池模板: 色一情一乱一伦一区二区三区日本| 中文字幕无码精品三级在线电影| 欧美人与动牲猛交a欧美精品| 国产又爽又大又黄a片| 国产三级在线观看播放视频| 中文无码不卡的岛国片| 精品久久久久久无码中文野结衣| 日日摸天天碰中文字幕你懂的| 新妺妺窝人体色7777太粗| 国产精品久久..4399| 久青草国产97香蕉在线视频| 亚洲婷婷五月综合狠狠app| 精品国产福利在线视频| 日本午夜精品一区二区三区电影| 果冻传媒av精品一区| ,粉嫩小泬BBBB免费看| 麻豆精品国产精华精华液好用吗| 亚洲成av人片天堂网老年人| 国产女精品视频网站免费蜜芽| 亚洲成aⅴ人片在线观看| 天堂在线最新版资源www中文| 人妻少妇精品无码专区动漫| 久久精品国产亚洲夜色av网站| 人妻无码av中文系列久| 999在线视频精品免费播放观看| 久久精品这里热有精品| 97夜夜澡人人爽人人| 日韩精品无码一区二区三区四区| 亚洲另类春色校园小说| 强被迫伦姧高潮无码bd电影| 18黑白丝水手服自慰喷水网站| 国产98在线 | 免费、| 国产99久久99热这里只有精品15| 国产经典一区二区三区蜜芽| 欧美成a人片在线观看久| 欧美熟妇另类久久久久久多毛| 久久精品成人欧美大片| 亚洲av无码国产精品色软件| 人妻中文字幕无码专区| 亚洲一卡二卡三卡四卡无卡麻豆| 国内精品久久久久久久coent|