當前位置:首頁 » 軟體設計 » eda課程設計

eda課程設計

發布時間: 2020-12-21 13:32:16

㈠ EDA課程設計心得體會

這個是我做的「微機控制系統」的你照著改一下:
心得體會:
本系統主要介紹了鍋爐的液位檢測控制,還介紹了對溫度和壓力的檢測控制,介紹了8051單片機和其它一些單片機在鍋爐控制系統中的應用,介紹了它們的引腳和在系統中的電路圖,本設計還採用了多種感測器來對液位、溫度和壓力的信號採集,利用LED來進行信號的輸出顯示,我設計的硬體系統的結構簡化,系統精度高,具有良好的人機交互功能,並設有液位報警、高壓、低壓和閥門失靈等故障報警,有問題立即就能發現。通過自動調節控制液位並實現鍋爐內溫度和水位的報警。液位控制在設定值上正常運行不需要人工干預,操作人員勞動強度小。
採用單片機設計出的工業鍋爐控制器,能夠針對汽包水位的不同狀態和不同外界條件進行控制,汽包水位運行穩定、控製品質良好、控制效果明顯改善;同時大大提高了控制系統的抗干擾能力,保證了工業鍋爐的穩定運行。控制裝置具有成本低、抗干擾能力強、控制性能好等優點,且系統硬、軟體維護簡單方便,尤其適用於工業控制現場,具有良好的應用前景。
本系統所採用的感測器性能穩定,測量准確,大大簡化現場安裝,具有較高的性價比,有較大的工程應用價值,而且利用計算機單片機技術對鍋爐生產過程進行自動控制有著重要的意義。其優越性主要在於:首先,通過對鍋爐燃燒過程進行有效控制,使燃燒在合理的空燃比條件下進行,可以提高燃燒效率。由於工業鍋爐耗煤量大,燃燒熱效率每提高 1%都會產生巨大的經濟效益。其次,鍋爐控制過程的自動化處理以及監控軟體良好的人機界面,操作人員在監控計算機上能根據控制效果及時修運行參數,這樣能有效地減少工人的疲勞和失誤,提高生產過程的實時性、安全性。隨著計算機控制技術應用的普及、可靠性的提高及價格的下降,工業鍋爐的微機控制必將得到更加廣泛的應用。

㈡ 課程設計EDA誰能幫我做一個EDA的簡易cpu課程設計,要程序,波形圖,和block框圖

EDA是電子設計自動化(Electronic Design Automation)的縮寫,在20世紀60年代中期從計算機輔助設計(CAD)、計算機輔助製造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發展而來的。
20世紀90年代,國際上電子和計算機技術較為先進的國家,一直在積極探索新的電子電路設計方法,並在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。這些器件可以通過軟體編程而對其硬體結構和工作方式進行重構,從而使得硬體的設計可以如同軟體設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設計過程和設計觀念,促進了EDA技術的迅速發展。
EDA技術就是以計算機為工具,設計者在EDA軟體平台上,用硬體描述語言VHDL完成設計文件,然後由計算機自動地完成邏輯編譯、化簡、分割、綜合、優化、布局、布線和模擬,直至對於特定目標晶元的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現,極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。

㈢ EDA 課程設計 ——拔河游戲機

一、總體設計思想
電子拔河游戲機是一種能容納甲乙雙方參賽游戲電路。由一排發光二極體表示拔河的「電子繩」。由甲乙雙方通過按紐開關使發光二極體向一方的終點延伸,當延伸到某方的最後一個發光二極體時, 則該方獲勝,連續比賽多局以定勝負。

1.基本原理
本電路要求使用9個發光二極體,開機後只有中間一個發亮,此即拔河的中心點。游戲雙方各持一個按鈕,迅速地、不斷地按動,產生脈沖,誰按得快,亮點就向誰的方向移動,每按一次,亮點移動一次。亮點移到任一方終端二極體時,這一方就獲勝,此時雙方按鈕均無作用,輸出保持,只有復位後才使亮點恢復到中心。最後用數碼管顯示獲勝者的盤數。
由設計內容可知,首先需要一個十進制的計數器,用於對雙方按鈕的次數計數,並通過解碼器顯示在數碼管上。設計要求用50MHz的頻率,而設計用到的是1K Hz的頻率,所以要設計一個程序進行分頻。其次,顯視控制部分設計要求在發光二極體上顯示游戲狀態,雙方每按十次,亮點向先按十次移動一次,對脈沖進行計數,每十次移一位。需接入一個清零端 ,用於復位。再次,運用VHDL程序語言進行各個模塊的程序編寫,控制電路的正常運行。最後,將以上程序組裝起來,就可得到所需要的拔河游戲機
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity bahe is
port (a,b,rst,clk:in std_logic;
sg,led:out std_logic_vector(8 downto 0);
bt:out std_logic_vector(7 downto 0));
end bahe;
----------------------------------
architecture one of bahe is
component cnt10
port (clk,rst,en:std_logic;
cout:out std_logic;
cq:out std_logic_vector(3 downto 0));
end component;
component scan
port (clk :in std_logic;
a1, a2,a3,b1,b2,b3:in std_logic_vector(3 downto 0);
sg:out std_logic_vector(8 downto 0);
bt: out std_logic_vector(7 downto 0));
end component;
component lmov
port (kl ,kr:in std_logic_vector(3 downto 0) ;
led:out std_logic_vector(8 downto 0);
en : out std_logic;
rst:in std_logic);
end component;
signal e,f,ca1,ca2,cb1,cb2:std_logic;
signal cqa1,cqa2,cqa3,cqb1,cqb2,cqb3:std_logic_vector(3 downto 0);
begin
u1: cnt10 port map (en=>e,rst=>rst,clk=>a,cout=>ca1,cq=>cqa1);
u2: cnt10 port map (en=>e,rst=>rst,clk=>ca1,cout=>ca2,cq=>cqa2);
u3: cnt10 port map (en=>e,rst=>rst,clk=>ca2,cq=>cqa3);
u4: cnt10 port map (en=>e,rst=>rst,clk=>b,cout=>cb1,cq=>cqb1);
u5: cnt10 port map (en=>e,rst=>rst,clk=>cb1,cout=>cb2,cq=>cqb2);
u6: cnt10 port map (en=>e,rst=>rst,clk=>cb2,cq=>cqb3);
u7: scan port map (a1=>cqa1,a2=>cqa2,a3=>cqa3,b1=>cqb1,
b2=>cqb2,b3=>cqb3,clk=>clk,sg=>sg,bt=>bt);
u8:lmov port map (en=>e,kl=>cqa2,kr=>cqb2,rst=>rst,led=>led);
end architecture one;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt10 is
port(clk,rst,en:std_logic;
cout:out std_logic;
cq:out std_logic_vector(3 downto 0));
end;
architecture one of cnt10 is
begin
process(clk,rst,en)
variable cqi:std_logic_vector(3 downto 0);
begin
if rst='1' then
cqi:=(others=>'0');
elsif clk'event and clk='1' then
if en='1' then
if cqi<9 then cqi:=cqi+1;
else cqi :=(others=>'0');
end if ;
end if;
end if;
if c qi=9 then cout<='0' ;
else cout<='1';
end if;
cq<=cqi;
end process;
end;
電路的VHDL程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity scan is
port (clk :in std_logic;
a1,a2,a3,b1,b2,b3:in std_logic_vector(3 downto 0);
sg:out std_logic_vector(8 downto 0);
bt: out std_logic_vector(7 downto 0));
end;
architecture one of scan is
signal cnt4:std_logic_vector(2 downto 0);
signal a:std_logic_vector(3 downto 0);
signal clk1:std_logic;
begin
p1:process(cnt4)
begin
case cnt4 is
when "000"=>bt<="10000000";a<=a1;
when "001"=>bt<="01000000";a<=a2;
when "010"=>bt<="00100000";a<=a3;
when "011"=>bt<="00000100";a<=b1;
when "100"=>bt<="00000010";a<=b2;
when "101"=>bt<="00000001";a<=b3;
when others=>bt<="00000000";
end case ;
end process p1;
---------------------------------
p2:process (clk)
variable ct:integer range 0 to 50000;
begin
if clk'event and clk='1' then --1000HZ
if ct<49999 then
ct:=ct+1;
clk1<='0';
else
ct:=0;
clk1<='1';
end if;
end if;
end process p2;
process(clk1)
begin
if clk1'event an d clk1='1' then
if cnt4<5 then
cnt4<=cnt4+1;
else
cnt4<="000";
end if;
end if;
end process;
------------------------------------
process (a)
begin
case a is
when "0000"=>sg<="100000000";
when "0001"=>sg<="111110001";
when "0010"=>sg<="001001000";
when "0011"=>sg<="001100000";
when "0100"=>sg<="000110010";
when "0101"=>sg<="000100100";
when "0110"=>sg<="000000100";
when "0111"=>sg<="111110000";
when "1000"=>sg<="000000000";
when "1001"=>sg<="100011111";
when "1010"=>sg<="000100100";
when "1011"=>sg<="000011000";
when "1100"=>sg<="010001100";
when "1101"=>sg<="001001000";
when "1110"=>sg<="001000000";
when "1111"=>sg<="000011111";
when others=>null;
end case ;
end process;
end;
⑸ 勝負顯示
將雙方終端二極體正極經非門後的輸出分別接到二個CC4518計數器的EN端,CC4518的兩組4位BCD碼分別接到實驗裝置的兩組解碼顯示器的A、B、C、D插口處。當一方取勝時,該方終端二極體發亮,產生一個上升沿,使相應的計數器進行加一計數,於是就得到了雙方取勝次數的顯示,若一位數不夠,則進行二位數的級聯。
⑹ 復位
其VHDL程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity lmov is
port (kl ,kr:in std_logic_vector(3 downto 0) ;
led:out std_logic_vector(8 downto 0);
en : out std_logic;
rst:in std_logic);
end ;
architecture one of lmov is
begin
process(rst,kl,kr)
begin
if rst='1' then led<="111101111";en<='1';
elsif kl-kr=1 then led<="111011111";en<='1';
elsif kl-kr=2 then led<="110111111";en<='1';
elsif kl-kr=3 then led<="101111111";en<='1';
elsif kl-kr=4 then led<="011111111";en<='0';
elsif kr-kl=1 then led<="111110111";en<='1';
elsif kr-kl=2 then led<="111111011";en<='1' ;
elsif kr-kl=3 then led<="111111101";en<='1';
elsif kl-kr=4 then led<="111111110";en<='0';
elsif kr-kl=0 then led<="111101111";en<='1';
else null;
end if;
end process;
end;

㈣ 用VHDL語言設計一個交通燈,EDA課程設計

首先最簡單的方法是列出真值表。寫出邏輯表達式。然後根據邏輯表達式來寫出vhdl程序。在編譯=》模擬=》功能分析=》輸出延時=》下載程序 1.設計原理
在這個實例中,我們設計一個簡單的十字路口交通燈。交通燈分東西和南北兩個方向,均通過數碼管和指示燈指示當前的狀態。設兩個方向的流量相當,紅燈時間45s,綠燈時間40s,黃燈時間5s.
從交通燈的工作機理來看,無論是東西方向還是南北方向,都是一個減法計數器。只不過計數時還要判斷紅綠燈情況,再設置計數器的模值。
下表所示為一個初始狀態和4個跳變狀態。交通燈工作時狀態將在4個狀態間循環跳變,整個交通燈則完全按照減計數器原理進行設計。
狀態 當前計數值 下一個CLOCK到來時新模值
東西方向指示 南北方向指示 東西-南北方向指示 東西方向指示 南北方向指示 東西-南北方向指示
初始 0 0 45 40 紅-綠
1 6 1 紅-綠 5 5 紅-黃
2 1 1 紅-黃 40 45 綠-紅
3 1 6 綠-紅 5 5 黃-紅
4 1 1 45 40 紅-綠
2.部分程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity traffic is
port(clk, urgency: in std_logic;
east_west:buffer std_logic_vector(7 downto 0);--東西方向時鍾計數
south_north: buffer std_logic_vector(7 downto 0); --南北方向的時鍾計數
led:buffer std_logic_vector(5 downto 0)); --交通指示燈
end traffic;

architecture arch of traffic is
。。。。。。。
end arch;

3.具體設計步驟
1) 建立一個新的工程完成上面的電路設計
2) 編譯電路並使用功能模擬來驗證設計
3) 引腳配置,如Part I中討論的,這些配置是確保VHDL代碼中輸出埠能使用PFGA晶元上連接到LEDR和LEDG的引腳。重新編譯項目,並下載到FPGA晶元上。
4) 測試電路的正確性。

㈤ EDA課程設計報告

課程來設計總結
通過本次實驗用源計算機操作的形式編輯計數器程序和繪制出了利用計數器原理的分頻器原理圖,了解了利用軟體繪制原理圖和編程的方法,以及用計算機形象的模擬計數器和分頻器的波形,在實驗中通過形象的方法結合圖形進行分析把在書上學習的理論知識進行實踐。不僅更好的理解和掌握了用軟體設計圖形和運行模擬的方法,也通過實驗把理論知識轉化為實際的圖形加以理解,更好的理解和掌握了此方面的知識。為以後的實踐積累了經驗

㈥ EDA課程設計:彩燈控制器

以前做的設計,粘貼時圖形沒出來,參考一下,記得給分啊

一.設計目的
1、學習開發軟體和MAX+plus Ⅱ的使用方法,熟悉可編程邏輯器件的使用,通過製作來了解彩燈控制系統。
2、進一步掌握數字電路課程所學的知識。
3、了解數字電路設計的一般思路,進一步解決和分析問題。
4、培養自己的編程和謹慎的學習態度
二、.設計題目內容和要求
(1)課題內容:
用EDA技術設計一個彩燈控制器,使彩燈(LED管)能連續發出三種以上不同的花型(自擬);
隨著彩燈顯示圖案的變化,發出不同的音響聲。
要求使用7段數碼管顯示當前顯示的花型,如第一種花型顯示A1,第二種花型顯示b2,第三種花型顯示C3
(2)主要任務:完成該系統的硬體和軟體的設計,並利用實驗箱製作出實物演示,調試好後並能實際運用(指導教師提供製作所需的器件),最後就課程設計本身提交一篇課程設計報告。
三、總體方案設計與選擇
1 總體方案的設計
方案一:電路分為三個部分:彩燈花型模塊、聲音模塊,時鍾模塊。用時鍾控制聲音和花型,整體使用相同的變數與信號,主體框圖如下;

圖三—1-1方案一的的流程圖
方案二:電路分為五個模塊:分頻器模塊、16進制計數器、4進制計數器,4選1選擇器、彩燈控制器。其中彩燈控制器是用來輸出不同的花樣,彩燈控制器的輸出則是用一個16進制的計數器來控制,揚聲器的輸出時用不同的頻率來控制,所以用了一個集成分頻器來使輸入的頻率被分為幾種不同的頻率,不同頻率的選擇性的輸出則是用一個4選一的選擇器來控制。整體框圖如下:

圖三—1-2方案二的流程圖
2、方案的選擇
方案一是將融合在一起,原理思路簡單,元件種類使用少,但是在編程時要使用同一變數和信號,這樣就會給編程帶來很大的困難,另外中間單元連線較多,不容易檢查,門電路使用較多,電路的抗干擾能力會下降。
方案二將彩燈花型控制與聲音控制分開,各單元電路只實現一種功能,電路設計模塊化,且編程時將工作量分開,出現錯誤時較容易檢查,連線較少且容易組裝和調試。
結合兩個方案的優缺點,我選擇容易編程、組裝和調試的方案二。

四、模塊電路的設計
1、分頻器模塊
設計要求顯示不同的彩燈的時候要伴隨不同的音樂,所以設計分頻器來用不同的頻率控制不同的音樂輸出。
模塊說明:
Rst:輸入信號 復位信號 用來復位分頻器的輸出使輸出為「0」,及沒有音樂輸出。
Clk:輸入信號 模塊的功能即為分頻輸入的頻率信號。
Clk_4、clk8、clk_12、clk_16:輸出信號 即為分頻模塊對輸入信號clk的分頻,分別為1/4分頻輸出、1/8分頻輸出、1/12分頻輸出、1/16分頻輸出。不同的頻率會發出不同的聲音。如圖

圖四-1分頻器電路圖
2、16進制計數器
16進制模塊用來控制彩燈輸出模塊,即確定彩燈控制器的不同的輸出。
Rst:輸入信號 復位信號 用來復位16進制使其輸出為「00000」,即彩燈不亮。
Clk1:輸入信號 用來給模塊提供工作頻率。
Count_out[3..0]:輸出信號 即為16進制計數器的輸出,此輸出信號作為彩燈的輸入信號。
如圖四-2
圖四-2 16進制計數器電路圖
3、4進制計數器模塊
4進制計數器作為選擇器的輸入來控制選擇器選擇不同的頻率作為輸出控制揚聲器工作。
Clk2:輸入信號 來為計數器提供工作頻率。
Rst:輸入信號 復位信號 使計數器的輸出為「00」。
如圖四-3
圖四-3 4進制計數器電路圖
4、4選1選擇器模塊
Rst:輸入信號復位信號使選擇器的輸出為「0」。
In1、in2、in3、in4:輸入信號接分頻器的輸出。
Inp[1..0]:輸入信號接4進制計數器的輸出用來控制選擇器的選擇不同的輸入選擇不同的輸出。
Output2:輸出信號直接接揚聲器即輸出的是不同的頻率來控制揚聲器播放聲音
如圖四—4
圖四—4 4選1選擇器電路圖
5、彩燈控制模塊
彩燈控制採用的模式6來進行顯示。
圖四—5—1模式6結構圖
彩燈控制模塊用來直接控制彩燈的輸出,使彩燈表現出不同的花樣。
Rst:輸入信號 使彩燈控制模塊的輸出為「00000000」,即讓彩燈無輸出。
Input[4..0]:輸入信號 不同的輸入使彩燈控制模塊有不同的輸出即彩燈顯示出不同的花樣。
Output3[7..0]:輸出信號 直接與數碼管相連來控制數碼管。
如圖四—5—2
圖四-5-2 彩燈控制電路圖
五、EDA設計與模擬
1、源程序:
----------------------------------------------分頻器模塊-----------------------------------------

LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYfenpinqi IS

PORT
(
clk2,rst :IN std_logic;
clk_12,clk_4,clk_16,clk_8 : OUT std_logic
);

ENDfenpinqi;

ARCHITECTUREcd OF fenpinqi IS
begin
p1:process(clk2,rst)
variable a:integer range 0 to 20;

begin
if rst='1' then
clk_4<='0'; ----- 復位信號控制部分
else
if clk2'event and clk2='1'then
if a>=3 then
a:=0;
clk_4<='1';
else
a:=a+1;
clk_4<='0';
end if;
end if;
end if;
endprocess p1;

p2:process(clk2,rst)
variable b:integer range 0 to 20;

begin
if rst='1' then
clk_16<='0'; ----- 復位信號控制部分
else
if clk2'event and clk2='1'then
if b>=15 then
b:=0;
clk_16<='1';
else
b:=b+1;
clk_16<='0';
end if;
end if;
end if;
endprocess p2;

p3:process(clk2,rst)
variable c:integer range 0 to 20;

begin
if rst='1' then
clk_8<='0'; ----- 復位信號控制部分
else
if clk2'event and clk2='1'then
if c>=7 then
c:=0;
clk_8<='1';
else
c:=c+1;
clk_8<='0';
end if;
end if;
end if;
endprocess p3;

p4:process(clk2,rst)
variable d:integer range 0 to 40;

begin
if rst='1' then
clk_12<='0'; ----- 復位信號控制部分
else
if clk2'event and clk2='1'then
if d>=11 then
d:=0;
clk_12<='1';
else
d:=d+1;
clk_12<='0';
end if;
end if;
end if;
endprocess p4;
endcd;

----------------------------------------------4選1選擇器---------------------------------------
LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYxzq4_1 IS

PORT
(
rst:in std_logic;
inp:in integer range 0 to 3;
in1,in2,in3,in4 : In std_logic;

output2 :OUT std_logic
);

ENDxzq4_1;

ARCHITECTUREa OF xzq4_1 IS

BEGIN

PROCESS (rst,inp)
BEGIN
if(rst='1') then output2<='0';

else
case inp is
when 0=>output2<=in1;
when 1=>output2<=in2;
when 2=>output2<=in3;
when 3=>output2<=in4;
when others=>null;
end case;
end if;
END PROCESS;
ENDa;

-------------------------------------------彩燈控制模塊----------------------------------------
LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYcaideng IS

PORT
(
input :
IN INTEGER RANGE
0 TO 15;
rst:in std_logic;
output3 :OUT std_logic_vector(7 downto 0);
sm :out std_logic_vector(6 downto 0)
);

ENDcaideng;

ARCHITECTUREa OF caideng IS

BEGIN

PROCESS (input)
BEGIN
if rst='1' thenoutput3<="00000000";sm<="0000000";
else
case input is
when 0=>output3<="00111000";sm<="0000110";
when1=>output3<="00001111";sm<="0000110";
when2=>output3<="00111110";sm<="0000110";
when3=>output3<="01111111";sm<="0000110";

when4=>output3<="01011011";sm<="1011011";
when5=>output3<="01110110";sm<="1011011";
when6=>output3<="00001111";sm<="1011011";
when7=>output3<="01111111";sm<="1011011";

when8=>output3<="01101101";sm<="1001111";
when9=>output3<="00000111";sm<="1001111";
when10=>output3<="01110111";sm<="1001111";
when11=>output3<="01111011";sm<="1001111";

when12=>output3<="00111000";sm<="1100110";
when13=>output3<="00111111";sm<="1100110";
when14=>output3<="00111110";sm<="1100110";
when 15=>output3<="01111001";sm<="1100110";
when others=>null;

end case;
end if;
end process;
end a;

--------------------------------------------16進制計數器模塊-----------------------------------

LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYcounter_16 IS

PORT
(
clk,rst :IN std_logic;
count_out :
OUT INTEGER RANGE
0 TO 15);

ENDcounter_16;

ARCHITECTUREa OF counter_16 IS
BEGIN

PROCESS (rst,clk)
variable temp:integer range 0 to 16;
BEGIN

IF rst='1' THEN
temp:=0;

ELSIF (clk'event and clk='1') THEN

temp:=temp+1;
if(temp=15) then
temp:=0;
end if;
END IF;
count_out<=temp;
END PROCESS;
ENDa;

-------------------------------4進制計數器模塊----------------------------------
LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYcounter_4 IS

PORT
(
clk,rst :IN std_logic;
count_out :OUT integer range 0 to 3 );

ENDcounter_4;

ARCHITECTUREa OF counter_4 IS
BEGIN

PROCESS (rst,clk)
variable temp:integer range 0 to 16;
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;
ENDa;

-------------------------------------------主程序----------------------------------
LIBRARYieee;
USEieee.std_logic_1164.all;

ENTITYproject IS
PORT (clk1,rst,clk2: IN std_logic;
Out1: OUT std_logic_vector(7 downto 0);
Out2 :out std_logic_vector(6 downto0);
Out3: OUT std_logic);
ENDproject;

ARCHITECTUREstruct OF project IS
COMPONENT counter_16 IS
PORT(clk,rst : IN std_logic;
count_out : OUT integer range 0 to 15 );
ENDCOMPONENT;

COMPONENT fenpinqi IS
PORT(clk2,rst : IN std_logic;
clk_12,clk_4,clk_16,clk_8 : OUT std_logic);
END COMPONENT ;

COMPONENT counter_4 IS
PORT(clk,rst :IN std_logic;
count_out :OUT integer range 0 to 3 );

ENDCOMPONENT;

COMPONENT xzq4_1 IS
PORT
(
rst:in std_logic;
inp:in integer range 0 to 3;
in1,in2,in3,in4 : In std_logic;

output2 :OUT std_logic
);

ENDCOMPONENT;

COMPONENT caideng IS
PORT
(
input: IN INTEGER RANGE 0 TO 15;
rst:in std_logic;
output3 :OUT std_logic_vector(7 downto 0);
sm :out std_logic_vector(6 downto 0)
);

ENDCOMPONENT;

SIGNALu: integer range 0 to 15;
SIGNALw: integer range 0 to 3;
SIGNALv1,v2,v3,v4: std_logic;

BEGIN
U1:counter_16PORT MAP(clk1,rst,u);
U2:fenpinqiPORT MAP(clk2,rst, v1,v2,v3,v4);
U3:counter_4PORT MAP(v3,rst,w);
U4:xzq4_1 PORT MAP(rst,w, v1,v2,v3,v4,out3);
U5:caidengPORT MAP(u,rst,out1,out2);
ENDstruct;
2、彩燈控制器模擬結果及數據分析
分析:如上圖,clk1控制的是彩燈模塊,clk2控制的是聲音模塊,當rst為高電平是輸出全為0,ck1每出現四個高電平,花型發生一次變化,out2分別顯示1、2、3、4,out1顯示不同的花型,out3發出聲音,如圖脈沖數不同表示發出的聲音不同,但是聲音與花型相比有一定的延遲。
六、硬體實現
1、引腳鎖定圖
2、硬體模擬圖
顯示第一組花型之一
顯示第二組花型之一
顯示第三組花型之一

顯示的第四組花型之一

七、總體電路
整個系統就是各個分模塊組成來實現最後的彩燈控制功能,系統又兩個時鍾來控制一個是控制16進制計數器即控制彩燈控制模塊來實現彩燈的不同輸出,另一個時鍾為分頻器的輸入來進行分頻處理,最後用來控制揚聲器發出不同的音樂,為了使效果明顯盡量達到要求分頻處理的時鍾的頻率比實現彩燈控制的時鍾頻率要高。
將各個模塊連在一起採用在課程中學到的元件例化,將各個模塊的引腳連在一起,使之成為一個整體。元件例化是VHDL設計實體構自上而下層次化設計的重要途徑。整體電路如圖五—1

圖七—1 整體電路圖
八、心得體會
1、在設計時遇到一些主要問題如下:怎麼將各個模塊連在一起、開始硬體模擬時總是出現錯誤,設計方案的選擇。最後我選擇了元件例化將各個模塊連在一起,模擬時是因為短路帽接錯了,當時沒有注意,在方案的選擇時我們選了實現比較簡單的分模塊方案
2、這次的EDA課程設計我學到得東西很多明白了理論與實踐之間的差距,而且對DEA課程有了更深入的理解,尤其是知道了怎麼去應用所學的知識,怎麼去利用網路實現自己的要求,具體體會如下:
(1)要想完成編程就要對DEA知識很熟悉,這樣才能加快編程的速度,另外在編程時一定要小心,稍微有一點粗心都會有很多的錯誤出現,在出現錯誤後要學會尋找錯誤原因如名稱前後不一、數據類型不同、符號寫錯等等
(2)拿道題目後要注意分析,要學會總體把握,然後再一一一細化、學會將復雜的問題簡單化,分析時一定要有一個明確的目標。
(3)要學會理論聯系實際,在程序導入到實驗箱後,居然不顯示結果,認真的檢查看看操作是否有錯誤、試驗箱中該短路的是否已用短路帽短路、又重新檢查了一下程序,結果發現是短路帽接錯了,所以看似很簡單的操作自己操作起來可能會有很大的漏洞,所以親自動手是很重要的。
(4)當自己的只是有限時,要注意運用網路等一切資源,要學會知識的靈活運用在查閱的過程中學到了很多在書本所沒有學到的知識,通過查閱相關資料進一步加深了對EDA的了解
總的來說,通過這次課程設計不僅鍛煉了我們的動手和動腦能力,也使我懂得了理論與實際相結合的重要性,只有理論知識是遠遠不夠的,要把所學的理論知識與實踐相結合起來,才能提高自己的實際動手能力和獨立思考的能力。還有最重要的一點就是要有一絲不苟的精神和端正認真的態度,遇到困難後要學會積極的面對。
3、在此設計中聲音會有一定的延遲,可以考慮用花型輸出信號作為4選1的控制信號
九、參考書目:
趙偉軍,《Protel99se教程》,北京,人民郵電出版社,1996年
金西,《VHDL與復雜數字系統設計》,西安,西安電子科技大學出版社,2003
漢澤西,《EDA技術及其應用》,北京,北京航空航天大學出版社,2004
[4] 黃任,《VHDL入門.解惑.經典實例.經驗總結》,北京,北京航空航天大學出版社,2005
[5] 李洋,《EDA技術 使用教程》,北京,機械工業出版社,2009
[6] 網路資源:EDA課程設計、EDA課程設計—彩燈控制器等

㈦ EDA課程設計輸入有幾種,分別是什麼

可以原理圖輸入,也可以文本輸入目前的有verilog hdl 、vhdl 、system verilog、system C等硬體描述語言,當然主流內的是原理容圖、verilog hdl、vhdl 三者混合輸入,可以用Quartus II實現altera器件的設計輸入

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837