欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EDA課設(shè)

      時(shí)間:2019-05-15 11:45:10下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《EDA課設(shè)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《EDA課設(shè)》。

      第一篇:EDA課設(shè)

      EDA課程設(shè)計(jì)報(bào)告

      課題名稱:智力競(jìng)賽搶答器

      班級(jí):11電科2班

      姓名:代維寬

      學(xué)號(hào):201114580207

      同組人:聞仔遜

      指導(dǎo)老師:賈默伊

      任務(wù)書

      一、用VHDL運(yùn)用層次化設(shè)計(jì)方法設(shè)計(jì)一個(gè)小型數(shù)字系統(tǒng)

      題目:智力競(jìng)賽搶答器

      二、說(shuō)明書內(nèi)容:

      1.系統(tǒng)設(shè)計(jì)要求(功能)2.系統(tǒng)設(shè)計(jì)方案(包括頂層電路圖)3.VHDL源程序及仿真波形圖 4.課程設(shè)計(jì)注釋 5.設(shè)計(jì)解釋、說(shuō)明 6.獨(dú)特之處

      三、成績(jī)?cè)u(píng)定

      1.設(shè)計(jì)內(nèi)容及掌握情況

      2.說(shuō)明書。包括電子檔(各類文件的可執(zhí)行性及說(shuō)明書)和紙質(zhì)

      3.答辯情況

      目錄

      第一章:系統(tǒng)設(shè)計(jì)

      1系統(tǒng)設(shè)計(jì)要求???????????????????1 2系統(tǒng)設(shè)計(jì)方案???????????????????2 第二章:VHDL原程序及仿真波形圖

      1、搶答啟動(dòng)模塊??????????????????3(1)按鍵識(shí)別子模塊?????????????????3(2)倒計(jì)時(shí)子模塊??????????????????5

      2、選手搶答模塊??????????????????7(1)單個(gè)選手按鍵子模塊???????????????7(2)判斷搶答選手子模塊???????????????9

      3、加減分模塊???????????????????11(1)組別判斷子模塊?????????????????11(2)加減及寄存器子模塊???????????????12(3)分?jǐn)?shù)選擇輸出模塊????????????????15

      4、顯示模塊????????????????????16

      5、蜂鳴器模塊???????????????????18

      第三章設(shè)計(jì)心得及總結(jié)

      智力競(jìng)賽搶答器

      1系統(tǒng)設(shè)計(jì)要求

      1.設(shè)計(jì)一智力競(jìng)賽搶答器,可同時(shí)供8名選手參加比賽。2.給節(jié)目主持人設(shè)置一個(gè)控制開關(guān),控制系統(tǒng)清零和搶答開始。

      3.搶答器具有鎖存功能和顯示功能。搶答開始后,若有選手按動(dòng)搶答按鈕,編號(hào)立即鎖存,并在LED數(shù)碼管上顯示選手編號(hào),同時(shí)揚(yáng)聲器響,禁止其他選手搶答。

      4.搶答器具有搶答定時(shí)功能,時(shí)間由主持人確定。5.參賽選手在設(shè)定的時(shí)間內(nèi)搶答有效,定時(shí)器停止工作。

      6.如果定時(shí)時(shí)間到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警,并封鎖輸入電路,禁止超時(shí)搶答,定時(shí)器顯示00。

      7.為每組設(shè)計(jì)一個(gè)計(jì)分電路,0~999分,可加分,也可減分。

      對(duì)于一個(gè)搶答器系統(tǒng),可將其分為五個(gè)模塊:選手搶答模塊、搶答啟動(dòng)模塊、加減分模塊、顯示模塊、蜂鳴器控制模塊。整體框圖如下:

      圖一 總體框圖

      其中搶答啟動(dòng)模塊具有啟動(dòng)搶答及啟動(dòng)定時(shí)功能,輸出使能信號(hào)給選手識(shí)別模塊,以及搶答剩余時(shí)間給顯示模塊;選手識(shí)別模塊完成鎖存搶答信號(hào)的功能,并輸出選手號(hào)給顯示模塊;蜂鳴器對(duì)搶答成功以及超時(shí)鳴聲報(bào)警;顯示模塊對(duì)輸入的數(shù)據(jù)進(jìn)行顯示。

      2系統(tǒng)設(shè)計(jì)方案

      智力競(jìng)賽搶答器擬由單片CPLDFPGA來(lái)實(shí)現(xiàn),經(jīng)分析設(shè)計(jì)要求,擬定整個(gè)系統(tǒng)由五個(gè)單元組成,原理圖如下所示:

      主要VHDL源程序

      1、搶答啟動(dòng)模塊

      啟動(dòng)模塊除了有啟動(dòng)的功能外,還有啟動(dòng)定時(shí)的功能。定時(shí)時(shí)間分為5秒和20秒兩種,使用兩個(gè)按鍵對(duì)應(yīng)兩種限時(shí)搶答。

      將本模塊再劃分為2個(gè)子模:一個(gè)模塊完成按鍵識(shí)別的功能,另一模塊完成倒計(jì)時(shí)功能。

      1)按鍵識(shí)別子模塊

      按鍵的識(shí)別即對(duì)輸入信號(hào)進(jìn)行電平變化檢測(cè),電平發(fā)生跳變就認(rèn)為是鍵被按下。但VHDL程序中一個(gè)結(jié)構(gòu)體內(nèi)不能同時(shí)對(duì)兩個(gè)信號(hào)進(jìn)行電平跳變的檢測(cè),所以對(duì)本模塊的程序設(shè)計(jì)采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn),并使用統(tǒng)一的時(shí)鐘信號(hào)來(lái)掃描按鍵的電平狀態(tài)。模塊圖如下:

      圖2 按鍵識(shí)別子模塊

      對(duì)START5和START20兩個(gè)按鍵定義三種狀態(tài),START5按下為ST1狀態(tài),此時(shí)兩個(gè)按鍵“START5&START20”輸入電平為“01”;START20按下為ST2狀態(tài),此時(shí)電平為“10”;兩個(gè)都沒(méi)按下為ST0狀態(tài),此時(shí)電平為“11”。

      本模塊程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY START_5_20 IS PORT(CLK1,RST,START5,START20:IN STD_LOGIC;

      B,A:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--輸出定時(shí)初值

      S_FLAG:OUT STD_LOGIC);

      --置數(shù)信號(hào)

      END ENTITY;ARCHITECTURE ONE OF START_5_20 IS SIGNAL DATAIN:STD_LOGIC_VECTOR(1 DOWNTO 0);TYPE ST_TYPE IS(ST0,ST1,ST2);

      --定義狀態(tài)

      SIGNAL C_ST:ST_TYPE;BEGIN

      DATAIN<=START5&START20;

      --兩個(gè)輸入信號(hào)放在一起判斷 BEGIN

      IF RST='0' THEN

      --復(fù)位 B<=“0000”;A<=“0000”;C_ST<=ST0;S_FLAG<='0';ELSIF CLK1'EVENT AND CLK1='1' THEN CASE C_ST IS WHEN ST0=> IF DATAIN=“01” THEN

      C_ST<=ST1;

      --輸入信號(hào)為01,轉(zhuǎn)ST1狀態(tài) S_FLAG<='1';

      --置數(shù)信號(hào)有效 B<=“0000”;A<=“0101”;

      --定時(shí)初值“05” ELSIF DATAIN=“10” THEN

      C_ST<=ST2;

      --輸入信號(hào)為10,轉(zhuǎn)ST1狀態(tài)

      S_FLAG<='1';

      --置數(shù)信號(hào)有效 B<=“0010”;A<=“0000”;

      --定時(shí)初值“20”

      ELSE C_ST<=ST0;--輸入信號(hào)為11,保持ST0狀態(tài)

      END IF;

      C_ST<=ST0;--防按鍵抖動(dòng),為11時(shí)才轉(zhuǎn)ST0狀態(tài) S_FLAG<='0';

      --置數(shù)信號(hào)無(wú)效

      ELSE C_ST<=ST1;

      --按鍵沒(méi)彈起,繼續(xù)等待

      END IF;

      ELSE C_ST<=ST2;END IF;PROCESS(RST,CLK1)WHEN ST1=>IF DATAIN=“11” THEN WHEN ST2=>IF DATAIN=“11” THEN C_ST<=ST0;S_FLAG<='0';WHEN OTHERS=>C_ST<=ST0;B<=“0000”;A<=“0000”;END CASE;END IF;END PROCESS;END ARCHITECTURE;本模塊仿真波形如圖所示。

      圖3 按鍵識(shí)別模塊仿真波形

      2)倒計(jì)時(shí)子模塊

      倒計(jì)時(shí)需要1Hz的脈沖輸入,每來(lái)一個(gè)上升沿,進(jìn)行一次減一運(yùn)算,將結(jié)果輸出到TIMEB、TIMEA;置數(shù)信號(hào)LOAD輸入有效,讀入B、A端口的數(shù)據(jù);輸入L_CR信號(hào)與選手識(shí)別模塊連接,當(dāng)選手搶答成功后,L_CR信號(hào)為0,將倒計(jì)時(shí)清0.;若倒計(jì)時(shí)到,沒(méi)有選手搶答,則在SR1輸出1使揚(yáng)聲器發(fā)聲。同時(shí)輸出信號(hào)給選手搶答模塊,禁止選手搶答。

      圖4倒計(jì)時(shí)模塊

      本模塊程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DE_COUNT IS PORT(CLK2,LOAD,L_CR,RST:IN STD_LOGIC;

      B,A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      TIMEB,TIMEA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      TIMEOUT,SR1:OUT STD_LOGIC);END ENTITY;ARCHITECTURE TWO OF DE_COUNT IS BEGIN

      PROCESS(LOAD,L_CR,RST,CLK2)VARIABLE P1,P0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN

      IF LOAD='1' THEN P1:=B;P0:=A;

      --指數(shù)信號(hào)有效,將B、A值讀入P1、P0 ELSIF L_CR='0' THEN

      --有選手搶答成功,L_CR輸入為0,定時(shí)時(shí)間清0 P1:=“0000”;P0:=“0000”;TIMEOUT<='0';SR1<='1';ELSIF RST='0' THEN P1:=“0000”;P0:=“0000”;TIMEOUT<='0';SR1<='0';

      ELSIF(CLK2'EVENT AND CLK2='1')THEN

      IF P0=“0000” THEN

      IF P1>0 THEN P1:=P1-1;P0:=“1001”;

      --若個(gè)位為0,十位減1,個(gè)位賦為9 END IF;ELSE P0:=P0-1;

      --若個(gè)位不為0,個(gè)位直接減一

      IF P0=“0000” AND P1=“0000” THEN TIMEOUT<='0';SR1<='1';

      --若時(shí)間到,輸出鎖存信號(hào) END IF;END IF;

      END IF;TIMEB<=P1;TIMEA<=P0;END PROCESS;END ARCHITECTURE;

      程序中,因?yàn)槊看螠p一后的時(shí)間值需要保存,用于下次繼續(xù)減一,所以程序中使用了不完整的IF語(yǔ)句引入寄存器,用于保存每次減一后的時(shí)間值。P1、P0定義為變量而不是信號(hào)的原因是,變量的賦值是即時(shí)的,減一后可以馬上進(jìn)行判斷;若定義為信號(hào),不能即時(shí)進(jìn)行判斷,并且減一操作后的賦值要經(jīng)過(guò)一個(gè)δ延時(shí),程序不好控制。

      本模塊仿真波形如圖所示:

      圖5 倒計(jì)時(shí)模塊仿真波形

      用元件例化語(yǔ)句將以上兩個(gè)子模塊組合,得到整個(gè)搶答啟動(dòng)模塊。如下圖所示:

      圖6 由兩個(gè)子模塊組成搶答啟動(dòng)模塊

      兩個(gè)子模塊組合的程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY STARTER IS PORT(CLK1,CLK2,L_CR,RST,START5,START20:IN STD_LOGIC;

      TIMEB,TIMEA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      TIMEOUT,SR1:OUT STD_LOGIC);END ENTITY;ARCHITECTURE THREE OF STARTER IS

      COMPONENT START_5_20 IS

      --調(diào)用元件START_5_20聲明

      PORT(CLK1,RST,START5,START20:IN STD_LOGIC;

      B,A:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      S_FLAG:OUT STD_LOGIC);END COMPONENT;COMPONENT DE_COUNT IS

      --調(diào)用元件DE_COUNT聲明

      PORT(CLK2,LOAD,L_CR,RST:IN STD_LOGIC;

      B,A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      TIMEB,TIMEA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      TIMEOUT,SR1:OUT STD_LOGIC);END COMPONENT;SIGNAL m,n:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL p:STD_LOGIC;

      --對(duì)應(yīng)圖7中的中間信號(hào) BEGIN

      --按照?qǐng)D7將兩個(gè)元件連接起來(lái)

      U1:START_5_20 PORT MAP(CLK1=>CLK1,START5=>START5,START20=>START20,RST=>RST,B=>m,A=>n,S_FLAG=>p);U2:DE_COUNT PORT MAP(CLK2=>CLK2,B=>m,A=>n,LOAD=>p,RST=>RST,L_CR=>L_CR,TIMEB=>TIMEB,TIMEA=>TIMEA, TIMEOUT=>TIMEOUT,SR1=>SR1);END ARCHITECTURE;

      2、選手搶答模塊

      在一個(gè)結(jié)構(gòu)體中用8個(gè)進(jìn)程同時(shí)對(duì)8個(gè)選手按鍵電平變化的監(jiān)測(cè)是不可實(shí)現(xiàn)的,所以將本模塊劃分為兩個(gè)子模塊:?jiǎn)蝹€(gè)選手按鍵模塊和判斷搶答選手模塊。最后將8個(gè)選手按鍵模塊和1個(gè)判斷搶答選手模塊連接起來(lái),得到整個(gè)選手搶答模塊。

      1)單個(gè)選手按鍵子模塊

      按鍵輸入相當(dāng)于該實(shí)體的時(shí)鐘信號(hào),鍵被按下,等于來(lái)一個(gè)脈沖,輸出信號(hào)給判斷模塊進(jìn)行選手號(hào)的判斷。只要有選手搶答成功,相關(guān)模塊會(huì)輸出信號(hào)使8個(gè)按鍵模塊的LOCK信號(hào)有效,禁止其他選手搶答。如圖所示。

      圖7 單個(gè)選手按鍵模

      本模塊程序如下:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BUTTON1 IS PORT(LOCK , BUTTON , RST :IN STD_LOGIC;PRESSED:OUT STD_LOGIC);END ENTITY;ARCHITECTURE B1 OF BUTTON1 IS BEGIN

      PROCESS(RST , BUTTON)

      --使用進(jìn)程時(shí)刻監(jiān)測(cè)RST、BUTTON信號(hào) BEGIN

      IF RST='0' THEN

      PRESSED<='0';

      --復(fù)位

      IF LOCK='1' THEN

      --鍵被按下并且LOCK信號(hào)無(wú)效 PRESSED<='1';

      --則輸出信號(hào)給判斷模塊 END IF;ELSIF BUTTON'EVENT AND BUTTON='0' THEN END IF;END PROCESS;END ARCHITECTURE;

      圖8 倒計(jì)時(shí)模塊仿真波形

      2)判斷搶答選手子模塊

      本子模塊接收8個(gè)按鍵子模塊的輸出信號(hào),如收到1號(hào)子模塊輸出的高電平,則輸出選手號(hào)“0001”;并發(fā)出信號(hào)使揚(yáng)聲器發(fā)聲并控制8個(gè)按鍵子模塊使它們的LOCK信號(hào)有效,禁止其他選手搶答。本子模塊端口設(shè)置如圖所示。

      圖9判斷選手模塊

      本子模塊程序如下:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY IDENTIFIER IS

      PORT(PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8:IN STD_LOGIC;P_NUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);LOCK,SR1:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF IDENTIFIER IS

      SIGNAL P:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN

      P<=PP8&PP7&PP6&PP5&PP4&PP3&PP2&PP1;

      --8個(gè)輸入放在一起判斷 BEGIN

      CASE P IS

      WHEN “00000001”=>P_NUM<=“0001”;LOCK<='0';SR1<='1';--1號(hào)選手 WHEN “00000010”=>P_NUM<=“0010”;LOCK<='0';SR1<='1';--2號(hào)選手 WHEN “00000100”=>P_NUM<=“0011”;LOCK<='0';SR1<='1';--3號(hào)選手 WHEN “00001000”=>P_NUM<=“0100”;LOCK<='0';SR1<='1';--4號(hào)選手 WHEN “00010000”=>P_NUM<=“0101”;LOCK<='0';SR1<='1';--5號(hào)選手 WHEN “00100000”=>P_NUM<=“0110”;LOCK<='0';SR1<='1';--6號(hào)選手 WHEN “01000000”=>P_NUM<=“0111”;LOCK<='0';SR1<='1';--7號(hào)選手 WHEN “10000000”=>P_NUM<=“1000”;LOCK<='0';SR1<='1';--8號(hào)選手 WHEN OTHERS=>P_NUM<=“0000”;LOCK<='1';SR1<='0';PRO1:PROCESS(P)

      --輸入若發(fā)生變化,馬上啟動(dòng)進(jìn)程進(jìn)行判斷

      END CASE;END PROCESS;END ARCHITECTURE;9

      圖10 判斷搶答選手模塊仿真波形

      所以將以上兩個(gè)子模塊用元件例化語(yǔ)句連接起來(lái),組成整個(gè)選手搶答模塊,如下圖所示

      圖11 選手搶答模塊

      實(shí)現(xiàn)程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BUTTON IS

      PORT(P1,P2,P3,P4,P5,P6,P7,P8,RST,LOCK:IN STD_LOGIC;P_NUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);LOCK_S,SR1:OUT STD_LOGIC);END ENTITY;ARCHITECTURE BB1 OF BUTTON IS COMPONENT BUTTON1 IS

      --調(diào)用元件BUTTON1聲明

      PORT(LOCK,B,RST:IN STD_LOGIC;PRESSED:OUT STD_LOGIC);END COMPONENT;COMPONENT IDENTIFIER IS

      --調(diào)用元件IDENTIFIER聲明

      PORT(PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8:IN STD_LOGIC;P_NUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);10 LOCK,SR1:OUT STD_LOGIC);END COMPONENT;SIGNAL a1,a2,a3,a4,a5,a6,a7,a8:STD_LOGIC;

      --定義圖12中的中間信號(hào) BEGIN

      --按照?qǐng)D12將兩個(gè)元件連接起來(lái)

      U1:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P1,RST=>RST,PRESSED=>a1);U2:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P2,RST=>RST,PRESSED=>a2);U3:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P3,RST=>RST,PRESSED=>a3);U4:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P4,RST=>RST,PRESSED=>a4);U5:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P5,RST=>RST,PRESSED=>a5);U6:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P6,RST=>RST,PRESSED=>a6);U7:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P7,RST=>RST,PRESSED=>a7);U8:BUTTON1 PORT MAP(LOCK=>LOCK,B=>P8,RST=>RST,PRESSED=>a8);U9:IDENTIFIER PORT MAP(PP1=>a1,PP2=>a2,PP3=>a3,PP4=>a4,PP5=>a5,PP6=>a6,PP7=>a7,PP8=>a8,P_NUM=>P_NUM,LOCK=>LOCK_S,SR1=>SR1);END ARCHITECTURE;

      3、加減分模塊

      加減分模塊要識(shí)別按下的按鍵:加5分按鍵及減5分按鍵。所以采用狀態(tài)機(jī)的方法來(lái)識(shí)別。將本模塊劃分為三個(gè)子模塊:組別判斷子模塊,加減及寄存器子模塊,分?jǐn)?shù)選擇輸出子模塊。

      1)組別判斷子模塊

      該模塊要實(shí)現(xiàn)的功能是根據(jù)搶答成功的選手編號(hào),判斷出該選手屬于哪組,并輸出使能信號(hào)允許該組的分?jǐn)?shù)寄存器進(jìn)行加減操作。如圖所示。

      圖12 組別判斷模塊

      實(shí)現(xiàn)程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODE IS PORT(CLK:IN STD_LOGIC;P_NUM:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      EN1,EN2,EN3,EN4:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF DECODE IS

      SIGNAL E:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN

      PROCESS(CLK)

      --引入時(shí)鐘信號(hào),協(xié)調(diào)各部分電路的工作

      BEGIN IF CLK'EVENT AND CLK='1' THEN

      CASE P_NUM IS WHEN “0001”=>E<=“0001”;WHEN “0010”=>E<=“0001”;--

      1、2號(hào)選手屬第一組

      WHEN “0011”=>E<=“0010”;WHEN “0100”=>E<=“0010”;--

      3、4號(hào)選手屬第二組 WHEN “0101”=>E<=“0100”;WHEN “0110”=>E<=“0100”;--

      5、6號(hào)選手屬第三組 WHEN “0111”=>E<=“1000”;WHEN “1000”=>E<=“1000”;--

      7、8號(hào)選手屬第四組 WHEN OTHERS=>E<=“0000”;

      --其他情況則四個(gè)分?jǐn)?shù)鎖存器都不工作

      END CASE;END IF;

      END PROCESS;

      EN4<=E(3);EN3<=E(2);EN2<=E(1);EN1<=E(0);END ARCHITECTURE;程序仿真波形如圖所示:

      圖13 組別判斷模塊仿真波形

      2)加減及寄存器子模塊

      本模塊的狀態(tài)機(jī)轉(zhuǎn)換過(guò)程為:將ADD和SUB信號(hào)并置,并檢測(cè)其電平變化。當(dāng)ADD按下時(shí),“ADD&SUB”的電平為“01”,彈起時(shí)恢復(fù)為“11”。當(dāng)SUB按下時(shí),“ADD&SUB”的電平為“10”,彈起時(shí)恢復(fù)為“11”。本模塊另外還需實(shí)現(xiàn)的功能是寄存功能。如下圖所示:

      圖14 加減及寄存器模塊

      實(shí)現(xiàn)程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER1 IS PORT(CLK,EN:IN STD_LOGIC;

      ADD,SUB:IN STD_LOGIC;

      AA2,AA1,AA0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY;ARCHITECTURE ONE OF COUNTER1 IS SIGNAL A:STD_LOGIC_VECTOR(1 DOWNTO 0);TYPE ST_TYPE IS(ST0,ST1,ST2);SIGNAL C_ST:ST_TYPE;BEGIN A<=ADD&SUB;

      --將ADD信號(hào)和SUB信號(hào)并置在一起判斷

      PROCESS(CLK)VARIABLE P2,P1,P0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN

      IF EN='1' THEN

      --使能端有效,才對(duì)該分?jǐn)?shù)寄存器進(jìn)行操作

      IF CLK'EVENT AND CLK='1' THEN

      CASE C_ST IS

      WHEN ST0=>IF A=“01” THEN--A為“01”,說(shuō)明ADD按下

      C_ST<=ST1;

      --下一狀態(tài)轉(zhuǎn)ST1,以等待按鍵彈起

      IF P0=“1001” THEN--個(gè)位為9,進(jìn)1為0,再向十位進(jìn)1

      P0:=“0000”;

      IF P1=“1001” THEN

      --十位為9,進(jìn)一為0

      P1:=“0000”;

      IF P2=“1001” THEN

      --百位為9,進(jìn)一為0

      P2:=“0000”;

      ELSE P2:=P2+1;

      --百位不為9,百位加1

      END IF;

      ELSE P1:=P1+1;

      --十位不為9,加一

      END IF;

      ELSE P0:=P0+1;

      --個(gè)位不為9,加一

      END IF;

      ELSIF A=“10” THEN

      --A為“10”,說(shuō)明SUB按下

      C_ST<=ST2;--下一狀態(tài)轉(zhuǎn)ST2,以等待按鍵彈起

      IF(P2/=0 OR P1/=0 OR P0/=0)THEN

      IF P0=“0000” THEN P0:=“1001”;

      P1:=P1-1;--個(gè)位向十位借1 P2:=P2-1;--十位向百位借1

      IF P1=“0000” THEN

      ELSE P1:=P1-1;--十位不為0,直接減1

      END IF;

      P1:=“1001”;

      ELSE P0:=P0-1;--個(gè)位不為0,直接減1

      END IF;

      END IF;

      ELSE C_ST<=ST0;

      END IF;WHEN ST1=>IF A=“11” THEN

      --A為“11”,說(shuō)明按鍵彈起

      C_ST<=ST0;

      --回到ST0繼續(xù)監(jiān)視按鍵

      ELSE C_ST<=ST1;--否則等待按鍵彈起

      END IF;

      C_ST<=ST0;WHEN ST2=>IF A=“11” THEN

      ELSE C_ST<=ST2;

      END IF;WHEN OTHERS=>C_ST<=ST0;END CASE;END IF;END IF;

      AA2<=P2;AA1<=P1;AA0<=P0;

      --操作后的分?jǐn)?shù)輸出 END PROCESS;END ARCHITECTURE;

      加減及寄存器模塊仿真波形圖如下:

      圖15 加減及寄存器模塊仿真波形

      圖中,加分按鍵ADD按下,輸出“010”;減分按鍵SUB按下,輸出回到“000”;又來(lái)兩個(gè)加分按鍵,輸出“020”。當(dāng)EN信號(hào)無(wú)效時(shí),有按鍵按下輸出不變。

      3)分?jǐn)?shù)選擇輸出模塊

      四組分?jǐn)?shù)要顯示出來(lái),需要12個(gè)7段數(shù)碼管。若只顯示當(dāng)前搶答成功選手的分?jǐn)?shù),則只需3個(gè)數(shù)碼管。所以設(shè)置一個(gè)分?jǐn)?shù)選擇器,根據(jù)搶答成功的選手編號(hào),選擇其分?jǐn)?shù)輸出給顯示模塊顯示。

      程序?yàn)椋?/p>

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MUXX IS PORT(P_NUM,AA2,AA1,AA0,BB2,BB1,BB0:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      CC2,CC1,CC0,DD2,DD1,DD0:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      D2,D1,D0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY;ARCHITECTURE ONE OF MUXX IS BEGIN

      PROCESS(P_NUM)

      --P_NUM為選手編號(hào)

      BEGIN

      CASE P_NUM IS

      WHEN “0001”=>D2<=AA2;D1<=AA1;D0<=AA0;WHEN “0010”=>D2<=AA2;D1<=AA1;D0<=AA0;--1號(hào)和2號(hào)選手為一組 WHEN “0011”=>D2<=BB2;D1<=BB1;D0<=BB0;WHEN “0100”=>D2<=BB2;D1<=BB1;D0<=BB0;--3號(hào)和4號(hào)選手為一組 WHEN “0101”=>D2<=CC2;D1<=CC1;D0<=CC0;WHEN “0110”=>D2<=CC2;D1<=CC1;D0<=CC0;--5號(hào)和6號(hào)選手為一組 WHEN “0111”=>D2<=DD2;D1<=DD1;D0<=DD0;WHEN “1000”=>D2<=DD2;D1<=DD1;D0<=DD0;--7號(hào)和8號(hào)選手為一組 WHEN OTHERS=>D2<=“0000”;D1<=“0000”;D0<=“0000”;

      END CASE;

      END PROCESS;END ARCHITECTURE;仿真波形如圖所示。

      圖16分?jǐn)?shù)選擇輸出模塊仿真波形

      4、顯示模塊

      本模塊根據(jù)送來(lái)的數(shù)據(jù):搶答成功選手號(hào),選手分?jǐn)?shù)、倒計(jì)時(shí)時(shí)間,將相應(yīng)的字形碼送數(shù)碼管顯示。端口設(shè)置如圖所示。

      圖17顯示模塊

      圖18數(shù)碼管分配

      顯示0,“00111111”;3F;顯示1,“00000110”;06;顯示2,“01011011”;5B;顯示3,“01001111”;4F;顯示4,“01100110”;66;顯示5,“01101101”;6D;顯示6,“01111101”;7D;顯示7,“00000111”;07;顯示8,“01111111”;7F;顯示9,“01101111”;6F;顯示10,“00000000”;00;

      17圖中,BT為數(shù)碼管的位選信號(hào),SG為數(shù)碼管的段選信號(hào)。另外圖18為數(shù)碼管的分配。左起第一位為選手編號(hào),第3、4位為該選手的分?jǐn)?shù),最后兩位為倒計(jì)時(shí)。程序如下:

      LIBRARY IEEE;16

      USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DISPLAY IS

      PORT(CLK:IN STD_LOGIC;SCORE2,SCORE1,SCORE0,P_NUMBER,TIMEB,TIMEA:IN BT,SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

      STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE ONE OF DISPLAY IS SIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN P1:PROCESS(CLK)

      BEGIN

      IF CLK'EVENT AND CLK='1' THEN

      --時(shí)鐘信號(hào)一來(lái),顯示下一位 CNT8<=CNT8+1;END IF;END PROCESS;BEGIN

      CASE CNT8 IS

      WHEN “000”=>BT<=“10000000”;A<=P_NUMBER;--第一位顯示選手號(hào)

      WHEN “001”=>BT<=“01000000”;A<=“1010”;

      --第二位不用,滅

      WHEN “010”=>BT<=“00100000”;A<=SCORE2;

      --第三位顯示分?jǐn)?shù)百位

      WHEN “011”=>BT<=“00010000”;A<=SCORE1;

      --第四位顯示分?jǐn)?shù)十位

      WHEN “100”=>BT<=“00001000”;A<=SCORE0;

      --第五位顯示分?jǐn)?shù)個(gè)位

      WHEN “101”=>BT<=“00000100”;A<=“1010”;

      --第六位不用,滅

      WHEN “110”=>BT<=“00000010”;A<=TIMEB;

      --第七位顯示倒計(jì)時(shí)十位

      WHEN “111”=>BT<=“00000001”;A<=TIMEA;

      --第八位顯示倒計(jì)時(shí)個(gè)位 END CASE;P2:PROCESS(CNT8)

      END PROCESS;BEGIN

      CASE A IS

      --根據(jù)數(shù)據(jù)選擇相應(yīng)的字形碼送數(shù)碼管顯示

      WHEN “0000”=>SG<=“00111111”;WHEN “0001”=>SG<=“00000110”;

      WHEN “0010”=>SG<=“01011011”;WHEN “0011”=>SG<=“01001111”;

      WHEN “0100”=>SG<=“01100110”;WHEN “0101”=>SG<=“01101101”;

      WHEN “0110”=>SG<=“01111101”;WHEN “0111”=>SG<=“00000111”;

      WHEN “1000”=>SG<=“01111111”;WHEN “1001”=>SG<=“01101111”;

      WHEN “1010”=>SG<=“00000000”;WHEN OTHERS=>NULL;END CASE;P3:PROCESS(A)END PROCESS;END ARCHITECTURE;本模塊仿真波形如圖所示。

      圖19顯示模塊仿真波形

      5、蜂鳴器模塊

      當(dāng)SR1鳴聲信號(hào)來(lái)時(shí),輸出CLK2(2KHz)驅(qū)動(dòng)蜂鳴器發(fā)聲。CLK1用于掃描SR1的電平變化,SR1上升沿來(lái)到,允許CLK2輸出,并持續(xù)一段時(shí)間。模塊圖如下:

      圖20蜂鳴器模塊

      本模塊程序如下:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SPEAKER IS PORT(CLK1,SR1,CLK2:IN STD_LOGIC;

      S:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF SPEAKER IS TYPE ST_TYPE IS(ST0,ST1);SIGNAL C_ST:ST_TYPE;SIGNAL A:STD_LOGIC;BEGIN PROCESS(CLK1)

      VARIABLE P:STD_LOGIC_VECTOR(7 DOWNTO 0);--P用于定時(shí),使蜂鳴器發(fā)聲持續(xù)

      BEGIN

      IF CLK1'EVENT AND CLK1='1' THEN

      CASE C_ST IS WHEN ST0=>IF SR1='1' THEN

      --SR1信號(hào)有上升沿

      P:=“00111111”;18

      C_ST<=ST1;A<='1';--蜂鳴器發(fā)聲,開始定時(shí)

      ELSE C_ST<=ST0;A<='0';--否則等待

      END IF;

      P:=P-1;C_ST<=ST1;

      A<='0';--定時(shí)到,蜂鳴器停止發(fā)聲 IF SR1='1' THEN

      C_ST<=ST1;--等待系統(tǒng)復(fù)位 END IF;WHEN ST1=>IF P/=0 THEN

      --定時(shí)還沒(méi)到,等待

      ELSE

      ELSE C_ST<=ST0;--復(fù)位

      END IF;WHEN OTHERS=>C_ST<=ST0;A<='0';END CASE;END IF;S<=CLK2 AND A;

      --只有A為1時(shí),蜂鳴器才發(fā)聲 END PROCESS;END ARCHITECTURE;本模塊的仿真波形如圖所示。

      圖21 蜂鳴器模塊仿真波形

      3設(shè)計(jì)心得及總結(jié)

      剛開始確定這個(gè)課題時(shí),我首先確定了要用到哪些知識(shí),主要是VHDL程序的設(shè)計(jì),軟件的仿真。首先我查閱課本質(zhì)料,找了不少關(guān)于這方面的程序,盡量的把它們都弄懂了。然后我確定了總體方案,把整體方案劃分成了幾個(gè)模塊,形成了一個(gè)整體的框架,然后各個(gè)擊破。有了總體的思路做指導(dǎo)我很快我就仿真調(diào)試好了搶答啟動(dòng)模塊選手搶答模塊,這樣一來(lái)就增加了我的信心,一鼓作氣拿下了以后的模塊。當(dāng)然任何事情都不會(huì)一帆風(fēng)順,也遇到許多難題,不懂的地方我就請(qǐng)叫老師和同學(xué),最后所有的模塊都被我一個(gè)一個(gè)的做出來(lái)了,我很高興,覺(jué)得我這兩天來(lái)的努力沒(méi)有白費(fèi)。

      此次課程設(shè)計(jì)不僅加強(qiáng)了我對(duì)專業(yè)知識(shí)的學(xué)習(xí)與了解,更有許多的感慨,主要有以下幾點(diǎn):

      (1)加強(qiáng)了我們動(dòng)手、思考和解決問(wèn)題的能力。我們很少能有這種機(jī)會(huì)來(lái)鍛煉自己,通過(guò)這次課程設(shè)計(jì),起到了很好的鍛煉效果。

      (2)我在做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)的鞏固和加強(qiáng),課本 的知識(shí)太多,平時(shí)課間的學(xué)習(xí)并不能很好的理解程序的功能,所以在這次課程設(shè)計(jì)過(guò)程中,我們了解了很多程序的功能,并且對(duì)于其在實(shí)際中的使用有了更多的認(rèn)識(shí)。

      (3)我們兩人一組相互合作,共同解決問(wèn)題也認(rèn)識(shí)到了團(tuán)隊(duì)精神的重要性

      最后,我要感謝老師和同學(xué)們給我的幫助,沒(méi)有你們的幫助,我是不能完成此次課程設(shè)計(jì)的,真的很感謝你們!

      第二篇:EDA簡(jiǎn)易數(shù)字頻率計(jì)~課設(shè)報(bào)告

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      《EDA技術(shù)》課程設(shè)計(jì)報(bào)告

      題目:簡(jiǎn)易數(shù)字頻率計(jì)

      專業(yè):

      本組成員:

      簡(jiǎn)述

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      隨著數(shù)字電子技術(shù)的發(fā)展,頻率測(cè)量成為一項(xiàng)越來(lái)越普遍的工作,因此測(cè)頻計(jì)常受到人們的青睞。目前許多高精度的數(shù)字頻率計(jì)都采用單片機(jī)加上外部的高速計(jì)數(shù)器來(lái)實(shí)現(xiàn),然而單片機(jī)的時(shí)鐘頻率不高導(dǎo)致測(cè)頻速度比較慢,并且在這種設(shè)計(jì)中,由于PCB版的集成度不高,導(dǎo)致PCB板走線長(zhǎng),因此難以提高計(jì)數(shù)器的工作頻率。為了克服這種缺點(diǎn),大大提高測(cè)量精度和速度,我們可以設(shè)計(jì)一種可編程邏輯器件來(lái)實(shí)現(xiàn)數(shù)字頻率計(jì)。

      EDA技術(shù)是以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件語(yǔ)言為系統(tǒng)邏輯描述的主要方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過(guò)有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的設(shè)計(jì),最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。其設(shè)計(jì)的靈活性使得EDA技術(shù)得以快速發(fā)展和廣泛應(yīng)用。以QUARTUSII軟件為設(shè)計(jì)平臺(tái),采用VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字頻率計(jì)的整體設(shè)計(jì)。

      EDA技術(shù)已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。電子設(shè)計(jì)自動(dòng)化是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化設(shè)計(jì)的技術(shù),它與電子技術(shù),微電子技術(shù)的發(fā)展密切相關(guān),它吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作為工作平臺(tái),促進(jìn)了工程發(fā)展。EDA的一個(gè)重要特征就是使用硬件描述語(yǔ)言(HDL)來(lái)完成的設(shè)計(jì)文件,VHDL語(yǔ)言是經(jīng)IEEE確認(rèn)的標(biāo)準(zhǔn)硬件語(yǔ)言,在電子設(shè)計(jì)領(lǐng)域受到了廣泛的接受。

      1.設(shè)計(jì)概述

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      1.1設(shè)計(jì)原理

      在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,因此,頻率的測(cè)量就顯得更為重要。測(cè)量頻率的方法有多種,其中電子計(jì)數(shù)器測(cè)量頻率具有精度高、使用方便、測(cè)量迅速,以及便于實(shí)現(xiàn)測(cè)量過(guò)程自動(dòng)化等優(yōu)點(diǎn),是頻率測(cè)量的重要手段之一。

      數(shù)字式頻率計(jì)的測(cè)量原理有兩類:一是直接測(cè)頻法,即在一定閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù);二是間接測(cè)頻法即測(cè)周期法,如周期測(cè)頻法。直接測(cè)頻法適用于高頻信號(hào)的頻率測(cè)量,通常采用計(jì)數(shù)器、數(shù)據(jù)鎖存器及控制電路實(shí)現(xiàn),并通過(guò)改變計(jì)數(shù)器閥門的時(shí)間長(zhǎng)短在達(dá)到不同的測(cè)量精度;間接測(cè)頻法適用于低頻信號(hào)的頻率測(cè)量。

      本設(shè)計(jì)中使用的就是直接測(cè)頻法,即用計(jì)數(shù)器在計(jì)算1s內(nèi)輸入信號(hào)周期的個(gè)數(shù),其測(cè)頻范圍為1Hz~9999Hz。

      1.2原理框圖

      1.3 系統(tǒng)原理圖

      系統(tǒng)原理圖仿真

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      分析說(shuō)明:clk為1HZ,待測(cè)信號(hào)sig為10HZ 1.5 引腳圖

      2.設(shè)計(jì)思路

      頻率測(cè)量的基本原理是計(jì)算每秒鐘內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù)。這就要求測(cè)頻控制信號(hào)發(fā)生器testpl的計(jì)數(shù)使能信號(hào)tsten能產(chǎn)生一個(gè)1秒脈寬的周期信號(hào),并對(duì)頻率計(jì)的每一計(jì)數(shù)器cnt10的使能端en進(jìn)行同步控制。當(dāng)tsten為高電平“1”時(shí),允許計(jì)數(shù);為低電平“0”時(shí)停止計(jì)數(shù),并保持其計(jì)數(shù)結(jié)果。在停止計(jì)數(shù)期間,首先需要一個(gè)鎖存信號(hào)load的上跳沿將計(jì)數(shù)器在前1 秒種的計(jì)數(shù)值鎖存進(jìn)16位鎖存器reg16b中。鎖存信號(hào)之后,必須有一個(gè)清零信號(hào)clr_cnt對(duì)計(jì)數(shù)器進(jìn)行清零,為下1 秒的計(jì)數(shù)操作做準(zhǔn)備。,然后由外部數(shù)碼管控制器ledcom控制的7段譯碼器ymq譯出,并穩(wěn)定顯示。

      3.模塊劃分

      3.1 測(cè)頻控制信號(hào)發(fā)生器testpl模塊:

      輸入端clk收到1Hz信號(hào)后,其輸出端testen控制各個(gè)cnt10的使能,clr_cnt控制各個(gè)cnt10的清零,load控制鎖存器內(nèi)數(shù)據(jù)的輸出。

      仿真圖如下:

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      3.2 十進(jìn)制計(jì)數(shù)器cnt10模塊:

      有一時(shí)鐘使能輸入端en,用于鎖定計(jì)數(shù)值。當(dāng)高電平“1”時(shí)計(jì)數(shù)允許計(jì)數(shù),低電平“0”時(shí)禁止計(jì)數(shù)。多位十進(jìn)制計(jì)數(shù)器時(shí),最低位的計(jì)數(shù)器的clk端輸入被測(cè)信號(hào),各計(jì)數(shù)器的進(jìn)位輸出端c10將信號(hào)輸?shù)较乱晃皇M(jìn)制計(jì)數(shù)器cnt10的輸入端clk,最高位十進(jìn)制計(jì)數(shù)器cnt10的進(jìn)位輸出端c10不處理。

      仿真圖如下:

      3.3 16位鎖存器reg16b模塊:將已有16 位bcd碼存在于此模塊的輸入口din[15..0],在信號(hào)load的上升沿后即被鎖存到寄存器reg16b的內(nèi)部,并由reg16b的輸出端dout[15..0]輸出,設(shè)置鎖存器的好處是,數(shù)碼管上顯示的數(shù)據(jù)穩(wěn)定,不會(huì)由于周期性的清零信號(hào)而不斷閃爍。

      仿真圖如下:

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      3.4 數(shù)碼管控制器ledcom模塊:兩個(gè)輸入端一個(gè)為datain[15..0],另一個(gè)為數(shù)碼管顯示選擇的掃描頻率輸入端clk,輸出端為數(shù)碼管選擇信號(hào)com[3..0]和對(duì)應(yīng)顯示的數(shù)碼管的BCD碼信號(hào)端dataout[3..0],數(shù)碼管顯示選擇隨掃描頻率clk循環(huán)變化,實(shí)現(xiàn)穩(wěn)定顯示。

      仿真圖如下:

      3.5

      譯碼器ymq模塊:輸入端d_in[3..0]將接收BCD碼信號(hào),譯碼后輸出端d_out[7..0]輸出8為7段數(shù)碼管信號(hào),其中輸出的第8位均為高電平“1”可以使四個(gè)數(shù)碼管的小數(shù)點(diǎn)不顯示。經(jīng)譯碼器的處理輸出后數(shù)碼管顯示相應(yīng)的數(shù)值。

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      4.VHDL頂層文件:

      library ieee;use ieee.std_logic_1164.all;entity lx is port(clk: in std_logic;led: out std_logic_vector(7 downto 0);ledc: out std_logic_vector(2 downto 0));end lx;architecture art of lx is--十進(jìn)制計(jì)數(shù)器

      component cnt10--待調(diào)用的有時(shí)鐘使能的十進(jìn)制計(jì)數(shù)器端口定義

      port(clk,clr,en: in std_logic;q: out std_logic_vector(3 downto 0);c10: out std_logic);end component;--16位鎖存器

      component reg16b--待調(diào)用的32位鎖存器端口定義 port(load: in std_logic;din: in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0));end component;--測(cè)頻控制器

      component testpl--待調(diào)用的測(cè)頻控制信號(hào)發(fā)生器端口定義 port(clk:in std_logic;

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      tsten:out std_logic;clr_cnt:out std_logic;load:out std_logic);end component;--數(shù)碼管選擇器

      component ledcom--待調(diào)用的數(shù)碼管選擇器端口定義 port(clk:in std_logic;datain: in std_logic_vector(15 downto 0);dataout: out std_logic_vector(3 downto 0);sel: out std_logic_vector(2 downto 0));end component;--譯碼器

      component ymq--待調(diào)用的譯碼器端口定義 port(d_in: in std_logic_vector(3 downto 0);d_out: out std_logic_vector(7 downto 0));end component;signal clk1,clk2,clk3: std_logic;--clk1為1Hz信號(hào),clk2為被測(cè)信號(hào),clk3為數(shù)碼管掃描信號(hào)

      signal tsten,clr,load: std_logic;signal c1,c2,c3,c4: std_logic;signal qout,rout: std_logic_vector(15 downto 0);signal datao: std_logic_vector(3 downto 0);begin u0:testpl port map(clk1,tsten,clr,load);u1:cnt10 port map(clk2,clr,tsten,qout(3 downto 0),c1);u2:cnt10 port map(c1,clr,tsten,qout(7 downto 4),c2);u3:cnt10 port map(c2,clr,tsten,qout(11 downto 8),c3);u4:cnt10 port map(c3,clr,tsten,qout(15 downto 12),c4);u5:reg16b port map(load,qout(15 downto 0),rout);u6:ledcom port map(clk3,rout,datao,ledc);u8:ymq port map(datao,led);end art;

      5.心得體會(huì)

      這次課程設(shè)計(jì)中,我不僅復(fù)習(xí)鞏固了課堂所學(xué)的理論知識(shí),提高

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      了對(duì)所學(xué)知識(shí)的綜合應(yīng)用能力,并從根本上了解了VHDL語(yǔ)言的一些基本用法,應(yīng)用了原來(lái)不會(huì)或者不熟練的句型,如if句,case句等,也學(xué)會(huì)了一些基本功能的實(shí)現(xiàn)方法,如分頻,狀態(tài)控制等等,從另外一個(gè)角度重新審視了上學(xué)期完全從硬件角度出發(fā)的電路設(shè)計(jì),明白了軟硬件之間的交互。通過(guò)這個(gè)課題,對(duì)系統(tǒng)框圖、邏輯流程圖、狀態(tài)轉(zhuǎn)移圖的設(shè)計(jì)有了一定的了解。也懂得了系統(tǒng)的前期設(shè)計(jì)對(duì)于后續(xù)的編程和調(diào)試的重要性。

      本課題采用了自下而上的設(shè)計(jì)方法,根據(jù)系統(tǒng)對(duì)硬件的要求,畫出系統(tǒng)控制流程圖;然后根據(jù)控制流程圖,分化模塊,利用模塊實(shí)現(xiàn)功能;最后進(jìn)行仿真和調(diào)試。

      每個(gè)成功的背后都要面對(duì)無(wú)數(shù)次的失敗,這次課設(shè)也不例外。雖然遇到不少問(wèn)題與困難,但通過(guò)老師以及同學(xué)的幫助,都一一得到順利地解決。我想這必定會(huì)為將來(lái)的實(shí)踐積累寶貴的經(jīng)驗(yàn)和教訓(xùn)??傊?,這次課設(shè)我們都受益匪淺。整個(gè)過(guò)程氛圍濃厚,本人也態(tài)度十分認(rèn)真,積極向老師和同學(xué)求教并在此過(guò)程中收獲良多,能夠進(jìn)一步了解和使用一門與硬件直接打交道的基本語(yǔ)言對(duì)我們將來(lái)的學(xué)習(xí)和工作都會(huì)十分有益。

      6.五個(gè)模塊的程序源代碼

      6.1 測(cè)頻控制信號(hào)發(fā)生器

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testpl is port(clk:in std_logic;--1Hz信號(hào)

      tsten:out std_logic;--計(jì)數(shù)器使能信號(hào) clr_cnt:out std_logic;--計(jì)數(shù)器清零信號(hào) load:out std_logic);--鎖存器輸出控制信號(hào) end testpl;architecture art of testpl is signal div2clk:std_logic;begin process(clk)begin if clk'event and clk='1'then div2clk<=not div2clk;--div2clk為2Hz end if;end process;process(clk ,div2clk)begin if(clk='0'and div2clk='0')then clr_cnt<='1';--當(dāng)div2clk與clk同時(shí)為零時(shí)計(jì)數(shù)器清零 else clr_cnt<='0';--當(dāng)div2clk處于的高電平時(shí)計(jì)數(shù)器計(jì)數(shù) end if;end process;load<=not div2clk;--鎖存器輸出與計(jì)數(shù)器使能信號(hào)反相 tsten<=div2clk;end art;

      有時(shí)鐘使能的十進(jìn)制計(jì)數(shù)器

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk,clr,en: in std_logic;--clk:計(jì)數(shù)器時(shí)鐘,clr:清零信號(hào),en:計(jì)數(shù)使能信號(hào)

      q: out std_logic_vector(3 downto 0);--q:4位計(jì)數(shù)結(jié)果輸出

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      c10: out std_logic);--計(jì)數(shù)進(jìn)位

      end cnt10;architecture art of cnt10 is signal cqi: std_logic_vector(3 downto 0);begin process(clk,clr)begin if clr='1' then cqi<=“0000”;--當(dāng)輸入的clr_cnt為低電平0時(shí)清零

      elsif clk'event and clk='1' then if en='1' then--當(dāng)輸入的tesen為高電平1時(shí)允許計(jì)數(shù)

      if(cqi<9)then cqi<=cqi+1;else cqi<=“0000”;--等于9則計(jì)數(shù)器清零

      end if;--當(dāng)輸入的tesen為低電平0時(shí)禁止計(jì)數(shù),鎖定計(jì)數(shù)值 end if;end if;end process;--產(chǎn)生進(jìn)位 process(cqi)begin if cqi=“1001” then c10<='1';--當(dāng)加的9時(shí)產(chǎn)生進(jìn)位輸出 else c10<='0';end if;end process;q<=cqi;end art;

      16位鎖存器

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg16b is port(load: in std_logic;--輸出鎖存控制信號(hào) din: in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0));end reg16b;

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      architecture art of reg16b is begin process(load,din)begin if load'event and load='1'then--load為高電平時(shí)teten為低電平,計(jì)數(shù)器禁止

      dout<=din;--鎖存輸入的數(shù)據(jù) end if;end process;end art;

      6.4 數(shù)碼管控制器

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ledcom is port(clk:in std_logic;--數(shù)碼管掃描頻率

      datain: in std_logic_vector(15 downto 0);--鎖存器輸入的16位信號(hào) dataout: out std_logic_vector(3 downto 0);--輸出至譯碼器的4位信號(hào)

      sel: buffer std_logic_vector(2 downto 0));--輸出數(shù)碼管選擇信號(hào) end ledcom;architecture art of ledcom is begin--sel同掃描頻率clk循環(huán)變化 process(clk)begin if rising_edge(clk)then if sel>=7 then

      sel <=“000”;

      else sel<=sel+1;end if;end if;

      end process;--數(shù)碼管選擇 process(sel,datain)

      begin case sel is when “000”=> dataout<=datain(3 downto 0);

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      when “001”=> dataout<=datain(7 downto 4);when “010”=> dataout<=datain(11 downto 8);when “011”=> dataout<=datain(15 downto 12);when others =>NULL;end case;end process;end art;

      七段數(shù)碼管的譯碼器

      library IEEE;use IEEE.std_logic_1164.all;entity ymq is port(d_in: in std_logic_vector(3 downto 0);--數(shù)碼管控制器輸入四位信號(hào)

      d_out: out std_logic_vector(6 downto 0));--輸出8位信號(hào)

      end ymq;--第8位d_out[7]為逗號(hào) architecture art of ymq is begin process(d_in)begin case d_in is--第8位為1高電平逗號(hào)不顯示 when “0000” => d_out<=“1111110”;--0 when “0001” => d_out<=“0110000”;--1 when “0010” => d_out<=“1101101”;--2 when “0011” => d_out<=“1111001”;--3 when “0100” => d_out<=“0110010”;--4 when “0101” => d_out<=“1011011”;--5 when “0110” => d_out<=“1011111”;--6 when “0111” => d_out<=“1110000”;--7 when “1000” => d_out<=“1111111”;--8 when “1001” => d_out<=“1111011”;--9 when others =>NULL;end case;end process;end art;7.參考文獻(xiàn)

      1、王小軍 主編.《VHDL簡(jiǎn)明教程》.清華大學(xué)出版社,1997

      EDA課程設(shè)計(jì)~簡(jiǎn)易數(shù)字頻率計(jì)

      2、潘松、王國(guó)棟 主編.《VHDL應(yīng)用教程》電子科技大學(xué)出版社,2000

      3、甘歷 主編.《VHDL應(yīng)用于開發(fā)實(shí)踐》科學(xué)出版社,2003

      4、劉愛榮 主編.《EDA技術(shù)與CPLD/FPGA開發(fā)應(yīng)用簡(jiǎn)明教程》.清華大學(xué)出版社,2007

      第三篇:EDA課設(shè)電子琴設(shè)計(jì).

      武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 課程設(shè)計(jì)任務(wù)書

      學(xué)生姓名:-專業(yè)班級(jí):電子科學(xué)與技術(shù)0903班 指導(dǎo)教師: 李成軍 工作單位: 信息工程學(xué)院 題 目: 簡(jiǎn)易電子琴設(shè)計(jì) 初始條件:

      QUARTUS 軟件,微機(jī),EDA-IV型實(shí)驗(yàn)箱。課題要求:

      結(jié)合所學(xué)的知識(shí),利用QUARTUS采用VHDL語(yǔ)言設(shè)計(jì)樂(lè)曲演奏電路,可以演奏8個(gè)音符:1、2、3、4、5、6、7、1。

      課題內(nèi)容: 時(shí)間安排: 1、2011年6月11日集中,聽老師作課設(shè)安排與報(bào)告格式要求說(shuō)明。2、2012年6月12日至6月16日,選好課題,學(xué)習(xí)相關(guān)資料,開始課 設(shè)。3、2012年6月17日至6月19日,進(jìn)行硬件調(diào)試。4、2012年6月20至6月21日,撰寫實(shí)驗(yàn)報(bào)告。5、2012年6月22日,檢查硬件,進(jìn)行答辯,提交設(shè)計(jì)報(bào)告。

      設(shè)計(jì)一個(gè)簡(jiǎn)易的八音符電子琴,可以通過(guò)按鍵輸入來(lái)控制蜂鳴器輸出不同音調(diào)。指導(dǎo)教師簽名: 2012年 月 日 系主任(或責(zé)任教師)簽名: 2012年 月 日 武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 目錄

      摘要................................................................................................................................3 Abstract..........................................................................................................................4 緒論................................................................................................................................5 1設(shè)計(jì)簡(jiǎn)介.....................................................................................................................6 1.1 課程設(shè)計(jì)的目的..............................................................................................6 1.2 課程設(shè)計(jì)的內(nèi)容..............................................................................................6 2.VHDL簡(jiǎn)介.................................................................................................................7 2.1 VHDL的特點(diǎn)...................................................................................................7 2.2VHDL特點(diǎn)........................................................................................................8 2.3VHDL設(shè)計(jì)流程...............................................................................................8 3程序過(guò)程.....................................................................................................................9 3.1設(shè)計(jì)總體模塊...................................................................................................9 3.2模塊原理及程序...............................................................................................9

      4波形仿真...................................................................................................................12 5總結(jié)體會(huì)...................................................................................................................13 參考文獻(xiàn)......................................................................................................................14 附錄 源程序................................................................................................................15 武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 摘要

      隨著基于CPLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,EDA技術(shù)在電子信息、通信、自動(dòng)控制用計(jì)算機(jī)等領(lǐng)域的重要性日益突出。作為一個(gè)學(xué)電子信息專業(yè)的學(xué)生,我們必須不斷地了解更多的新產(chǎn)品信息,這就更加要求我們對(duì)EDA有個(gè)全面的認(rèn)識(shí)。本程序設(shè)計(jì)的是簡(jiǎn)易電子琴的設(shè)計(jì)。采用EDA作為開發(fā)工具,VHDL語(yǔ)言為硬件描述語(yǔ)言,QUARTUS作為程序運(yùn)行平臺(tái),所開發(fā)的程序通過(guò)調(diào)試運(yùn)行、波形仿真驗(yàn)證,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。本程序使用的硬件描述語(yǔ)言VHDL,可以大大降低了硬件數(shù)字系統(tǒng)設(shè)計(jì)的入門級(jí)別,讓人感覺(jué)就是C語(yǔ)言的近親。通過(guò)老師的指導(dǎo)和自己的學(xué)習(xí)完成了預(yù)想的功能。關(guān)鍵詞:電子琴 ;quartus;EDA;VHDL語(yǔ)言 武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      Abstract With the expansion and deepening of CPLD EDA technology development and applications, EDA technology in the electronic information, communication, automatic control computers and other areas of importance have become increasingly prominent.As an electronic information of professional students, we must continue to learn more about the new product information, it is even more we have a comprehensive understanding of EDA.The program design is the design of simple keyboard.Using EDA as a development tool, VHDL language for hardware description language, QUARTUS run as a program platform, the development of program debugging and running, the waveform simulation, the initial realization of the design goals.This program uses the hardware description language VHDL, can greatly reduce the entry level of the hardware design of digital systems, and close relatives of people feel is the C language.Through the guidance of their teachers and their own learning to complete the desired function.Keywords: electronic organ;the quartus;the EDA;VHDL language 武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      緒論

      EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫。EDA技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言

      HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使設(shè)計(jì)者的工作僅局限于利用軟件的方式來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn),可以說(shuō)EDA技術(shù)的產(chǎn)生與發(fā)展是電子設(shè)計(jì)技術(shù)的一個(gè)巨大進(jìn)步。EDA技術(shù)融合了眾多電子設(shè)計(jì)技術(shù)和計(jì)算機(jī)輔助技術(shù),使得它在現(xiàn)代電子學(xué)方面的應(yīng)用越來(lái)越廣泛,也成為電子、電氣類大學(xué)生必須熟練掌握的一種設(shè)計(jì)工具。

      硬件描述性語(yǔ)言HDL是EDA技術(shù)的重要組成部分,常見HDL的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC等。其中VHDL、Verilog在現(xiàn)在的EDA設(shè)計(jì)中使用的最多,也擁有了幾乎所有主流EDA工具的支持,而相對(duì)于其他語(yǔ)言VHDL更加完善。VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,是硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。它作為一個(gè)規(guī)范語(yǔ)言和建模語(yǔ)言,具有與具體硬件電路無(wú)關(guān)及設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,而且還有很強(qiáng)的電路行為描述和建模能力,能從多個(gè)層次的數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化了硬件設(shè)計(jì)的任務(wù),提高了設(shè)計(jì)效率和可靠性。武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 1設(shè)計(jì)簡(jiǎn)介

      1.1 課程設(shè)計(jì)的目的

      鞏固和運(yùn)用所學(xué)課程,理論聯(lián)系實(shí)際,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的獨(dú)立工作能力,通過(guò)對(duì)一個(gè)簡(jiǎn)易的八音符電子琴的設(shè)計(jì),進(jìn)一步加深對(duì)計(jì)算機(jī)原理以及數(shù)字電路應(yīng)用技術(shù)方面的了解與認(rèn)識(shí),進(jìn)一步熟悉數(shù)字電路系統(tǒng)設(shè)計(jì)、制作與調(diào)試的方法和步驟。鞏固所學(xué)課堂知識(shí),理論聯(lián)系實(shí)際,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的獨(dú)立工作能力。為了進(jìn)一步了解計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu),深入學(xué)習(xí)EDA技術(shù),用VHDL語(yǔ)言去控制將會(huì)使我們對(duì)本專業(yè)知識(shí)可以更好地掌握。

      1.2 課程設(shè)計(jì)的內(nèi)容

      設(shè)計(jì)一個(gè)簡(jiǎn)易的八音符電子琴,它可通過(guò)按鍵輸入來(lái)控制音響。當(dāng)按下不同按鍵時(shí),蜂鳴器發(fā)出不同頻率聲響,來(lái)實(shí)現(xiàn)簡(jiǎn)易電子琴功能。

      武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 2.VHDL簡(jiǎn)介 2.1 VHDL的特點(diǎn)

      VHDL語(yǔ)言功能強(qiáng)大、設(shè)計(jì)靈活。VHDL語(yǔ)言可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制,它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言雖不能比擬的。VHDL還支持多種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支

      持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)定的硬件描述性語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL。因?yàn)閂HDL易讀和結(jié)構(gòu)化且易于修改設(shè)計(jì)所以在硬件電路設(shè)計(jì)過(guò)程中,VHDL語(yǔ)言得到廣泛應(yīng)用。

      VHDL語(yǔ)言獨(dú)立于器件的設(shè)計(jì)與工藝無(wú)關(guān)。因而設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要考慮選擇器件得問(wèn)題,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。

      VHDL語(yǔ)言易于共享和復(fù)用。VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。

      VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。這個(gè)特點(diǎn)很好的符合了市場(chǎng)需求。對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述的設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。

      總之,由于VHDL語(yǔ)言有的這些優(yōu)良的特點(diǎn),它被廣泛的應(yīng)用在電子線路和電子系統(tǒng)的設(shè)計(jì)中。

      武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 2.2VHDL優(yōu)點(diǎn)

      (1)與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。

      (2)VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。

      (3)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。(4)對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。

      (4)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。

      2.3VHDL設(shè)計(jì)流程

      (1)設(shè)計(jì)輸入根據(jù)電路設(shè)計(jì)所提出的要求,將程序輸入到VHDL編輯器中去編輯。

      (2)功能級(jí)模擬用VHDL,模擬器對(duì)編輯后的程序進(jìn)行模擬,如果達(dá)不到設(shè)計(jì)要求,則可以重新修改程序,直到通過(guò)功能模擬。

      (3)邏輯綜合與優(yōu)化 將通過(guò)功能模擬的程序放到VHDL編譯器中,進(jìn)行邏輯綜合與優(yōu)化。

      (4)門級(jí)模擬對(duì)電路用VHDL。仿真器仿真??蓪?duì)門級(jí)電路的延時(shí)、定時(shí)狀態(tài)、驅(qū)動(dòng)能力等進(jìn)行仿真。如不符合要求,可重復(fù)步驟(3),再門級(jí)模擬,直到符合要求止。

      (5)版圖生成 用相應(yīng)的軟件處理后,就可以拿去制版。武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 3程序過(guò)程 3.1設(shè)計(jì)總體模塊

      圖3-1電子琴總體模塊

      Clk為實(shí)驗(yàn)板時(shí)鐘輸入,key[7..0]分別對(duì)應(yīng)八個(gè)按鍵輸入,buz為輸出端,連接蜂鳴器。

      3.2模塊原理及程序 1、2、3、4、5、6、7、1分別對(duì)應(yīng)的頻率分別為2616HZ、2936HZ、3295HZ、3490HZ、3920HZ、4399HZ、4940HZ、5232HZ。在程序里可以對(duì)20M時(shí)鐘頻率進(jìn)行分頻來(lái)得到所需頻率而發(fā)出不同音調(diào)。

      20M時(shí)鐘要得到上面所需頻率需要進(jìn)行分頻,分頻系數(shù)分別為3822、3405、3034、2865、2551、2273、2024、1911,可以令時(shí)鐘計(jì)數(shù)一定次數(shù)后反向從而達(dá)到分頻的效果得到所需不同音調(diào)對(duì)應(yīng)的頻率。程序中定義8個(gè)常數(shù)來(lái)作為計(jì)數(shù)對(duì)應(yīng)值:

      constant duo : std_logic_vector(12 downto 0):=“0111011101110”;constant lai : std_logic_vector(12 downto 0):= “0110101001101”;constant mi : std_logic_vector(12 downto 0):= “0101111011010”;constant fa : std_logic_vector(12 downto 0):= “0101100110001”;constant suo : std_logic_vector(12

      downto 0):= “0100111110111”;constant la : std_logic_vector(12 downto 0):= “0100011100001”;constant xi : std_logic_vector(12 downto 0):= “0011111101000”;武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      constant duo1 : std_logic_vector(12 downto 0):= “0011101110111”;8個(gè)按鍵分別對(duì)應(yīng)8個(gè)頻率的脈沖,當(dāng)一個(gè)按鍵按下去后此時(shí)該按鍵對(duì)應(yīng)引腳輸入高電平,故可利用“01000000”這種形式來(lái)表示哪個(gè)按鍵按下,而不同按鍵對(duì)應(yīng)不同頻率輸出。對(duì)應(yīng)關(guān)系分別為:

      “10000000”對(duì)應(yīng)1的頻率; “01000000”對(duì)應(yīng)2的頻率; “00100000”對(duì)應(yīng)3的頻率;

      “00010000”對(duì)應(yīng)4的頻率; “00001000”對(duì)應(yīng)5的頻率; “00000100”對(duì)應(yīng)6的頻率; “00000010”對(duì)應(yīng)7的頻率; “00000001”對(duì)應(yīng)1的頻率;

      故可用以下程序來(lái)實(shí)現(xiàn)不同按鍵對(duì)應(yīng)不同頻率的要求:

      when“10000000”=>if(clk1 /= duo)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;

      (clk1 /= lai)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00100000”=>if(clk1 /= mi)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      when“00010000”=>if(clk1 /= fa)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00001000”=>if(clk1 /= suo)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000100”=>if(clk1 /= la)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000010”=>if(clk1 /= xi)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000001”=>if(clk1 /= duo1)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when others=>null;武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 4波形仿真

      圖4-1 波形仿真圖

      由仿真波形可以看到,當(dāng)按鍵輸入不同值時(shí),蜂鳴器也將發(fā)出不同頻率聲響。武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      5總結(jié)體會(huì)

      經(jīng)過(guò)努力,簡(jiǎn)易電子琴的設(shè)計(jì)基本上完成了。在整個(gè)設(shè)計(jì)過(guò)程中,包括前期中期和后期,我都有著許多不同的體會(huì):

      1)這個(gè)設(shè)計(jì)的基本是接觸一門新的語(yǔ)言并加以應(yīng)用,對(duì)于我來(lái)說(shuō),沒(méi)有想到的是入手的速度比我的預(yù)料快,在以前編程的基礎(chǔ)上,從接觸到開始動(dòng)手編程的時(shí)間得到了很大的縮短。知識(shí)的接收速度在很大的程度上決定了動(dòng)手的時(shí)間。

      2)VHDL的編程與C語(yǔ)言的編程有著本質(zhì)的不同,然而以往形成的舊編程習(xí)慣在VHDL編程中依然起著很大的作用。一通百通,不是沒(méi)有道理的。對(duì)于學(xué)習(xí)新的知識(shí)并予以應(yīng)用的信心,顯得更足了。

      3)VHDL的設(shè)計(jì)關(guān)鍵是電路邏輯設(shè)計(jì),而一個(gè)程序的關(guān)鍵是總體設(shè)計(jì)。對(duì)于硬件設(shè)計(jì)接觸不多的我們清楚這一點(diǎn)也許不無(wú)好處。

      4)通過(guò)這個(gè)程序設(shè)計(jì)讓我學(xué)會(huì)一種新的語(yǔ)言,對(duì)數(shù)字系統(tǒng)結(jié)構(gòu)也有了更進(jìn)一步的了解和認(rèn)識(shí),對(duì)我以后的學(xué)習(xí)有很大的幫助。希望其他人在看再做類似設(shè)計(jì)時(shí)有所借鑒。

      通過(guò)幾天的課程設(shè)計(jì),我對(duì)數(shù)據(jù)庫(kù)軟件EDA技術(shù)、VHDL、等系列知識(shí)都有了一定的了解。使用EDA技術(shù)開發(fā)頁(yè)面的能力也有了很大提高。武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì)

      參考文獻(xiàn)

      [1]潘松 黃繼業(yè).EDA技術(shù)與VHDL(第二版).北京:清華大學(xué)出版社,2005.7 [2]康華光.電子技術(shù)基礎(chǔ).北京:高等教育出版社.2006.1 [3]付家才.EDA工程實(shí)踐技術(shù).北京:化學(xué)工業(yè)出版社,2007.1 [4]漢澤西.EDA技術(shù)及其應(yīng)用.北京:北京航空航天大學(xué)出版社,2004.5 [5]趙剛.EDA技術(shù)簡(jiǎn)明教程.成都:四川大學(xué)出版社,2004.6 [6]章彬宏 周正林.EDA應(yīng)用技術(shù).北京:北京理工大學(xué)出版社,2007.7 [7]劉艷萍 高振斌 李志平.EDA實(shí)用技術(shù)及應(yīng)用.北京:國(guó)防工業(yè)出版社,2006.1

      武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 附錄 源程序

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity music is port(clk:in std_logic;key:in std_logic_vector(7 downto 0);buz:out std_logic);end music;architecture beh of music is signal clk1:std_logic_vector(12 downto 0);constant duo : std_logic_vector(12 downto 0):=“0000000001110”;constant lai : std_logic_vector(12 downto 0):= “0000000001101”;constant mi : std_logic_vector(12 downto 0):= “0000000011010”;constant fa : std_logic_vector(12 downto 0):= “0000000010011”;constant suo : std_logic_vector(12 downto 0):= “0000000010010”;constant la : std_logic_vector(12 downto 0):= “0000000010001”;constant xi : std_logic_vector(12 downto 0):= “0000000010000”;constant duo1 : std_logic_vector(12 downto 0):= “0000000001111”;signal buzz:std_logic;signal key_out:std_logic_vector(7 downto 0);begin buz<=buzz;key_out<=key;process(clk)begin if clk'event and clk='1' then case key_out is when“10000000”=>if(clk1 /= duo)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“01000000”=>if(clk1 /= lai)then clk1<=clk1+“0000000000001”;

      else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00100000”=>if(clk1 /= mi)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) buzz<=not buzz;end if;when“00010000”=>if(clk1 /= fa)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00001000”=>if(clk1 /= suo)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000100”=>if(clk1 /= la)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000010”=>if(clk1 /= xi)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when“00000001”=>if(clk1 /= duo1)then clk1<=clk1+“0000000000001”;else clk1<=“0000000000000”;buzz<=not buzz;end if;when others=>null;end case;end if;end process;end beh;武漢理工大學(xué)《電子線路EDA》課程設(shè)計(jì) 本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表

      指導(dǎo)教師簽字: 年 月 日

      第四篇:可控脈沖發(fā)生器的設(shè)計(jì)EDA課設(shè)報(bào)告資料

      可控脈沖發(fā)生器的設(shè)計(jì)

      一、設(shè)計(jì)目的

      1.了解可控脈沖發(fā)生器的實(shí)現(xiàn)機(jī)理。2.學(xué)會(huì)用示波器觀察FPGA產(chǎn)生的信號(hào)。3.學(xué)習(xí)用VHDL編寫復(fù)雜功能的代碼。

      二、設(shè)計(jì)原理

      1.EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫。EDA技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使設(shè)計(jì)者的工作僅局限于利用軟件的方式來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn),可以說(shuō)EDA技術(shù)的產(chǎn)生與發(fā)展是電子設(shè)計(jì)技術(shù)的一個(gè)巨大進(jìn)步。EDA技術(shù)融合了眾多電子設(shè)計(jì)技術(shù)和計(jì)算機(jī)輔助技術(shù),使得它在現(xiàn)代電子學(xué)方面的應(yīng)用越來(lái)越廣泛,也成為電子、電氣類大學(xué)生必須熟練掌握的一種設(shè)計(jì)工具。

      2.VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,是硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。VHDL語(yǔ)言功能強(qiáng)大、設(shè)計(jì)靈活。VHDL語(yǔ)言可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制,它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。

      VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言雖不能比擬的。VHDL還支持多種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。

      由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)定的硬件描述性語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL。因?yàn)閂HDL易讀和結(jié)構(gòu)化且易于修改設(shè)計(jì)所以在硬件電路設(shè)計(jì)過(guò)程中,VHDL語(yǔ)言得到廣泛應(yīng)用。

      VHDL語(yǔ)言易于共享和復(fù)用。VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。

      VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。這個(gè)特點(diǎn)很好的符合了市場(chǎng)需求。對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述的設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表??傊?,由于VHDL語(yǔ)言有的這些優(yōu)良的特點(diǎn),它被廣泛的應(yīng)用在電子線路和電子系統(tǒng)的設(shè)計(jì)中。

      3.Quartus II是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。

      Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫(kù),使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。

      此外,Quartus II通過(guò)和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。

      4.脈沖發(fā)生器就是要產(chǎn)生一個(gè)脈沖波形,而可控脈沖發(fā)生器則是要產(chǎn)生一個(gè)周期和占空比可變的脈沖波形??煽孛}沖發(fā)生器的實(shí)現(xiàn)原理比較簡(jiǎn)單,可以簡(jiǎn)單的理解為一個(gè)計(jì)數(shù)器對(duì)輸入的時(shí)鐘信號(hào)進(jìn)行分頻的過(guò)程。通過(guò)改變計(jì)數(shù)器的上限值來(lái)達(dá)到改變周期的目的,通過(guò)改變電平翻轉(zhuǎn)的閾值來(lái)達(dá)到改變占空比的目的。下面舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明其工作原理。

      假如有一個(gè)計(jì)數(shù)器T對(duì)時(shí)鐘分頻,其計(jì)數(shù)的范圍是從0~N,另取一個(gè)M(0≤M≤N),若輸出為Q,那么Q只要滿足條件

      時(shí),通過(guò)改變N值,即可改變輸出的脈沖波的周期;改變M值,即可改變脈沖波的占空比。這樣輸出的脈沖波的周期和占空比分別為:

      ?1Q???00?T?MM?T?N周期?(N?1)TCLOCKM占空比??100%N?

      1三、設(shè)計(jì)內(nèi)容

      編寫實(shí)現(xiàn)可控脈沖發(fā)生器程序,通過(guò)脈沖周期和占空比改變實(shí)現(xiàn)不同脈沖的輸出。用QuartusII軟件對(duì)設(shè)計(jì)進(jìn)行編譯、綜合、仿真,給出相應(yīng)的時(shí)序仿真波形和硬件電路圖。

      四、設(shè)計(jì)流程 1.程序

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;

      USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CC IS

      PORT(CLK: IN STD_LOGIC;

      --時(shí)鐘輸入

      RST : IN STD_LOGIC;

      --復(fù)位輸入

      NU,ND : IN STD_LOGIC;

      --輸入:控制頻率的改變

      MU,MD : IN STD_LOGIC;

      --輸入:控制占空比的改變

      FOUT : OUT STD_LOGIC

      --波形輸出);

      END CC;ARCHITECTURE BEHAVE OF CC IS SIGNAL N_BUFFER,M_BUFFER:STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL N_COUNT :STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL CLKIN : STD_LOGIC;SIGNAL CLK_COUNT : STD_LOGIC_VECTOR(12 DOWNTO 0);--產(chǎn)生一個(gè)低速時(shí)鐘,用于按鍵判斷

      BEGIN

      PROCESS(CLK)

      --計(jì)數(shù)器累加

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN

      IF(N_COUNT=N_BUFFER)THEN

      N_COUNT<=“00000000000”;

      ELSE

      N_COUNT<=N_COUNT+1;

      END IF;

      END IF;

      END PROCESS;

      PROCESS(CLK)

      --波形判斷

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN

      IF(N_COUNT

      FOUT<='1';ELSIF(N_COUNT>M_BUFFER AND N_COUNT

      THEN 6

      FOUT<='0';

      END IF;

      END IF;

      END PROCESS;

      PROCESS(CLK)

      BEGIN IF(CLK'EVENT AND CLKIN='1')THEN

      CLK_COUNT<=CLK_COUNT+1;

      END IF;

      CLKIN<=CLK_COUNT(12);

      END PROCESS;

      PROCESS(CLKIN)

      --頻率及占空比的改變1

      BEGIN

      IF(CLK'EVENT AND CLKIN='0')THEN

      IF(RST='0')THEN

      M_BUFFER<=“01000000000”;

      N_BUFFER<=“10000000000”;

      ELSIF(NU='0')THEN 7

      N_BUFFER<=N_BUFFER+1;

      ELSIF(ND='0')THEN

      N_BUFFER<=N_BUFFER-1;

      ELSIF(MU='0')THEN

      M_BUFFER<=M_BUFFER+1;

      ELSIF(MD='0')THEN

      M_BUFFER<=M_BUFFER-1;

      END IF;

      END IF;

      END PROCESS;END BEHAVE;

      2.管腳分配:

      3.時(shí)序仿真圖:

      4.硬件電路圖:

      5.現(xiàn)象:

      五、心得體會(huì)

      通過(guò)這次EDA課程設(shè)計(jì),我對(duì)課堂上所學(xué)到的理論知識(shí)的理解加深了許多,自己動(dòng)腦、動(dòng)手設(shè)計(jì)的能力也得到了較大提高。

      在這次課程設(shè)計(jì)的過(guò)程中,我對(duì)VHDL語(yǔ)言有了更深的認(rèn)識(shí)。通過(guò)查閱相關(guān)資料和動(dòng)手設(shè)計(jì)我發(fā)現(xiàn)我以前對(duì)VHDL語(yǔ)言的認(rèn)識(shí)太過(guò)膚淺,認(rèn)為VHDL語(yǔ)言只能用于設(shè)計(jì)小型的電路系統(tǒng)。但有了更深刻的認(rèn)識(shí)之后我發(fā)現(xiàn)學(xué)好VHDL語(yǔ)言可以設(shè)計(jì)出大規(guī)模的、功能復(fù)雜的電路系統(tǒng)。以前之所以會(huì)有錯(cuò)誤的認(rèn)識(shí)是因?yàn)樽约簩?duì)VHDL語(yǔ)言的了解和掌握還不夠?,F(xiàn)在仔細(xì)想想,這次課程設(shè)計(jì)使得我對(duì)VHDL語(yǔ)言的理解與應(yīng)用能力得到了較大的提升,也讓我認(rèn)識(shí)到只要升入學(xué)習(xí),提升的空間永遠(yuǎn)的存在的。

      另一方面我也發(fā)現(xiàn)了動(dòng)手實(shí)踐的重要性。動(dòng)手實(shí)踐是理論知識(shí)得以靈活運(yùn)用的必要前提,也是今后今后走上工作崗位之后能夠很好的完成設(shè)計(jì)工作的技術(shù)保證。只有遇到實(shí)際問(wèn)題并根據(jù)自己對(duì)課堂上獲得的專業(yè)知識(shí)的理解來(lái)解決它才能真正的提高自己的能力。這也提醒我在平時(shí)的學(xué)習(xí)生活中不能一味埋頭于課本知識(shí),當(dāng)今社會(huì)競(jìng)爭(zhēng)越來(lái)越激烈,社會(huì)對(duì)人才的要求越來(lái)越全面,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須靠動(dòng)手能力做支撐。因此在學(xué)習(xí)之余我們應(yīng)該積極參加各種與專業(yè)知識(shí)有關(guān)的實(shí)踐活動(dòng)和知識(shí)競(jìng)賽,鞏固所學(xué)的理論知識(shí),多注重培養(yǎng)實(shí)際動(dòng)手能力和專業(yè)技術(shù)能力,這樣才能在以后的工作崗位上有所作為。

      數(shù)字秒表設(shè)計(jì)

      一、設(shè)計(jì)目的

      本設(shè)計(jì)的任務(wù)就是設(shè)計(jì)一個(gè)數(shù)字鐘,要求顯示格式為小時(shí)-分鐘-秒鐘。系統(tǒng)時(shí)鐘選擇時(shí)鐘模塊的50MHz,要得到1Hz時(shí)鐘信號(hào),必須對(duì)系統(tǒng)時(shí)鐘進(jìn)行50000000次分頻。用S1按鍵作為系統(tǒng)時(shí)鐘復(fù)位,復(fù)位后全部顯示00-00-00。

      二、設(shè)計(jì)原理

      數(shù)碼管的八個(gè)段a,b,c,d,e,f,g,h(h是小數(shù)點(diǎn))都分別連接到SEG0~SEG7,8個(gè)數(shù)碼管分別由八個(gè)選通信號(hào)DIG0~DIG7來(lái)選擇,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如果希望8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)DIG0~DIG7分別被單獨(dú)選通,并在此同時(shí),在段信號(hào)輸入口SEG0~SEG7加上該對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃描就能實(shí)現(xiàn)動(dòng)態(tài)掃描顯示的目的。雖然每次只有1個(gè)數(shù)碼管顯示,但只要掃描顯示速率足夠快,利用人眼的視覺(jué)余輝效應(yīng),我們?nèi)詴?huì)感覺(jué)所有的數(shù)碼管都在同時(shí)顯示。

      三、設(shè)計(jì)主要內(nèi)容

      本設(shè)計(jì)要求掌握使用QuartusII設(shè)計(jì)數(shù)字系統(tǒng)的設(shè)計(jì)思路和設(shè)計(jì)方法。學(xué)習(xí)VHDL基本邏輯電路的綜合設(shè)計(jì)應(yīng)用。掌握VHDL語(yǔ)言的語(yǔ)法規(guī)范,掌握時(shí)序電路描述方法。掌握多個(gè)數(shù)碼管動(dòng)態(tài)掃描顯示的原理及設(shè)計(jì)方法。

      設(shè)計(jì)一個(gè)由共陰八位數(shù)碼管作為顯示、按鍵作為控制系統(tǒng)的數(shù)字鐘電路,要求利用實(shí)驗(yàn)室設(shè)備完成系統(tǒng)設(shè)計(jì)并運(yùn)行調(diào)試。

      四、設(shè)計(jì)流程 1.程序:

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity stopwatch is

      port(Clk

      : in

      std_logic;

      --時(shí)鐘輸入

      reset

      : in

      std_logic;

      --復(fù)位輸入

      start,over

      : in

      std_logic;

      --秒表控制輸入

      ledag

      : out std_logic_vector(6 downto 0);--七段碼管顯示輸出

      SEL

      : buffer std_logic_vector(2 downto 0)--七段碼管掃描驅(qū)動(dòng));

      end stopwatch;architecture behave of stopwatch is

      signal Disp_Temp

      : integer range 0 to 15;

      signal Disp_Decode

      : std_logic_vector(6 downto 0);

      signal mSEC1,mSEC10 : integer range 0 to 9;

      signal SEC1,SEC10

      : integer range 0 to 9;

      signal MIN1,MIN10

      : integer range 0 to 9;

      signal HOUR1,HOUR10 : integer range 0 to 9;

      signal Clk1kHz

      : std_logic;

      signal Clk100Hz

      : std_logic;

      signal Start_Flag

      : std_logic;

      signal Music_Count

      : std_logic_vector(2 downto 0);

      begin

      PROCESS(clk)--generate 100hz clock signal

      variable cnt : INTEGER RANGE 0 TO 499999;--產(chǎn)生100Hz時(shí)鐘的分頻計(jì)數(shù)器

      BEGIN

      IF clk='1' AND clk'event THEN

      IF cnt=499999 THEN cnt:=0;

      ELSE

      IF cnt<250000 THEN clk100hz<='1';

      ELSE clk100hz<='0';

      END IF;

      cnt:=cnt+1;

      END IF;

      END IF;

      END PROCESS;

      PROCESS(clk)--generate 1khz clock signal

      variable cnt1 : INTEGER RANGE 0 TO 49999;--產(chǎn)生1kHz時(shí)鐘的分頻計(jì)數(shù)器

      BEGIN

      IF clk='1' AND clk'event THEN

      IF cnt1=49999 THEN cnt1:=0;

      ELSE

      IF cnt1<25000 THEN clk1khz<='1';

      ELSE clk1khz<='0';

      END IF;

      cnt1:=cnt1+1;

      END IF;

      END IF;

      END PROCESS;

      process(Clk100Hz)

      begin

      if(reset='0')then

      --系統(tǒng)復(fù)位

      mSEC1<=0;

      mSEC10<=0;

      SEC1<=0;

      SEC10<=0;

      MIN1<=0;

      MIN10<=0;

      HOUR1<=0;

      HOUR10<=0;

      Start_Flag<='0';

      elsif(start='0' and Start_Flag='0')then

      Start_Flag<='1';

      elsif(over='0' and Start_Flag='1')then

      Start_Flag<='0';

      elsif(Clk100Hz'event and Clk100Hz='1')then

      --正常運(yùn)行

      if(Start_Flag='1')then

      if(mSEC1=9)then

      mSEC1<=0;

      if(mSEC10=9)then

      mSEC10<=0;

      if(SEC1=9)then

      SEC1<=0;

      if(SEC10=5)then

      SEC10<=0;

      if(MIN1=9)then

      MIN1<=0;

      if(MIN10=5)then

      MIN10<=0;

      if(HOUR1=9)then

      HOUR1<=0;

      if(HOUR10=9)then

      HOUR10<=0;

      else

      HOUR10<=HOUR10+1;

      end if;

      else

      HOUR1<=HOUR1+1;

      end if;

      else

      MIN10<=MIN10+1;

      end if;

      else

      MIN1<=MIN1+1;

      end if;

      else

      SEC10<=SEC10+1;

      end if;

      else

      SEC1<=SEC1+1;

      end if;

      else

      mSEC10<=mSEC10+1;

      end if;

      else

      mSEC1<=mSEC1+1;

      end if;

      end if;

      end if;

      end process;

      process(SEL)

      begin

      if(HOUR1=0)then

      case(SEL+1)is

      when “111”=>Disp_Temp<=mSEC1;

      when “110”=>Disp_Temp<=mSEC10;

      when “101”=>Disp_Temp<=10;

      when “100”=>Disp_Temp<=SEC1;

      when “011”=>Disp_Temp<=SEC10;

      when “010”=>Disp_Temp<=10;

      when “001”=>Disp_Temp<=MIN1;

      when “000”=>Disp_Temp<=MIN10;

      end case;

      else

      case(SEL+1)is

      when “111”=>Disp_Temp<=SEC1;

      when “110”=>Disp_Temp<=SEC10;

      when “101”=>Disp_Temp<=10;

      when “100”=>Disp_Temp<=MIN1;

      when “011”=>Disp_Temp<=MIN10;

      when “010”=>Disp_Temp<=10;

      when “001”=>Disp_Temp<=HOUR1;

      when “000”=>Disp_Temp<=HOUR10;

      end case;

      end if;

      end process;process(Clk1khz)

      begin

      if(Clk1khz'event and Clk1khz='1')then

      --掃描累加

      SEL<=SEL+1;

      ledag<=Disp_Decode;

      end if;

      end process;

      process(Disp_Temp)

      --顯示轉(zhuǎn)換

      begin

      case Disp_Temp is

      when 0=>Disp_Decode<= “0111111”;

      --0

      when 1=>Disp_Decode<= “0000110”;

      --1

      when 2=>Disp_Decode<= “1011011”;

      --2

      when 3=>Disp_Decode<= “1001111”;

      --3

      when 4=>Disp_Decode<= “1100110”;

      --4

      when 5=>Disp_Decode<= “1101101”;

      --5

      when 6=>Disp_Decode<= “1111101”;

      --6

      when 7=>Disp_Decode<= “0000111”;

      --7

      when 8=>Disp_Decode<= “1111111”;

      --8

      when 9=>Disp_Decode<= “1101111”;

      --9

      when 10=>Disp_Decode<= “1000000”;

      ---

      when others=>Disp_Decode<=“0000000”;

      --全滅

      end case;

      end process;

      end behave;

      2.管腳分配:

      2.時(shí)序仿真圖:

      4.硬件電路圖:

      5.現(xiàn)象:

      五、設(shè)計(jì)總結(jié)

      通過(guò)本次的課程設(shè)計(jì),我初步了解了VHDL語(yǔ)言的編程思想,以及利用EDA軟件進(jìn)行電子電路設(shè)計(jì)的方法,通過(guò)對(duì)一個(gè)課題的分析,將實(shí)驗(yàn)的內(nèi)容進(jìn)行分塊解讀,具體到每一個(gè)模塊的具體作用,然后將各個(gè)功能的模塊通過(guò)連線進(jìn)行總體的電路實(shí)現(xiàn),也可以通過(guò)VHDL語(yǔ)言對(duì)各個(gè)模塊進(jìn)行組合,然后需要在程序編譯成功的基礎(chǔ)上,安裝硬件,將程序下載到具體的芯片上進(jìn)行硬件的實(shí)現(xiàn)。通過(guò)整個(gè)實(shí)驗(yàn)的完成,我從老師和同學(xué)那里學(xué)到了更多關(guān)于VHDL編程,仿真以及硬件實(shí)現(xiàn)的知識(shí),自己以前模糊不清的地方也通過(guò)此次的課程設(shè)計(jì)了解清楚了,并且通過(guò)這次課程設(shè)計(jì),我也鍛煉了獨(dú)立思考,獨(dú)立操作的能力,雖然對(duì)于VHDL語(yǔ)言的應(yīng)用我還很生疏,但是此次的課程設(shè)計(jì)卻讓我學(xué)到了很多,也對(duì)這門語(yǔ)言有了更深的理解,對(duì)EDA軟件的使用有了更多的體會(huì)。

      第五篇:EDA結(jié)課論文

      EDA技術(shù)應(yīng)用報(bào)告

      ——微波爐控制器的應(yīng)用實(shí)例

      院(系、部): 姓

      名: 學(xué)

      號(hào): 年

      級(jí): 專

      業(yè): 任課教師:

      信息工程學(xué)院 安 蕊 080719 大學(xué)本科三年級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)

      李 洋

      2010 年 11月 9 日·北京

      目 錄

      一、EDA技術(shù)的發(fā)展及應(yīng)用..................................1 1.EDA簡(jiǎn)介..............................................1 2.EDA發(fā)展史............................................1 3.EDA技術(shù)的發(fā)展趨勢(shì)....................................2

      二、EDA技術(shù)的工程應(yīng)用實(shí)例................................3 1.設(shè)計(jì)的基本要求與內(nèi)容.................................3 2.系統(tǒng)的分析設(shè)計(jì)方案...................................3 3.系統(tǒng)仿真結(jié)果.........................................6 4.設(shè)計(jì)技巧分析.........................................7 5.系統(tǒng)擴(kuò)展思路.........................................7

      三、心得體會(huì).............................................8

      四、參考文獻(xiàn).............................................9

      一、EDA技術(shù)的發(fā)展及應(yīng)用

      1.EDA簡(jiǎn)介

      EDA在通信行業(yè)(電信)里的另一個(gè)解釋是企業(yè)數(shù)據(jù)架構(gòu),EDA給出了一個(gè)企業(yè)級(jí)的數(shù)據(jù)架構(gòu)的總體視圖,并按照電信企業(yè)的特征,進(jìn)行了框架和層級(jí)的劃分。EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,在20世紀(jì)60年代中期從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。由于它是一門剛剛發(fā)展起來(lái)的新技術(shù),涉及面廣,內(nèi)容 豐富,理解各異,所以目前尚無(wú)一個(gè)確切的定義。但從EDA技術(shù)的幾個(gè)主要方面的內(nèi)容來(lái)看,可以理解為:EDA技術(shù)是以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語(yǔ)言為系統(tǒng)邏輯描述的主要表達(dá)方式,以 計(jì)算 機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過(guò)有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件的方式設(shè)計(jì)電子系統(tǒng)到硬件系統(tǒng)的一門新技術(shù)??梢詫?shí)現(xiàn)邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合及優(yōu)化,邏輯布局布線、邏輯仿真。完成對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒?/p>

      20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技術(shù)較先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。這些器件可以通過(guò)軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過(guò)程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。

      EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。

      利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過(guò)計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過(guò)程的計(jì)算機(jī)上自動(dòng)處理完成。

      現(xiàn)在對(duì)EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過(guò)程中,從設(shè)計(jì)、性能測(cè)試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。

      2.EDA發(fā)展史

      EDA技術(shù)是伴隨著計(jì)算機(jī)、集成電路、電子系統(tǒng)的設(shè)計(jì)發(fā)展起來(lái)的,至今已有30多年的歷程。大致可以分為三個(gè)發(fā)展階段。

      20世紀(jì)70年代的CAD(計(jì)算機(jī)輔助設(shè)計(jì))階段:這一階段的主要特征是利用計(jì)算機(jī)輔助進(jìn)行電路原理圖編輯,PCB布同布線,使得設(shè)計(jì)師從傳統(tǒng)高度重復(fù)繁雜的繪圖勞動(dòng)中解脫出來(lái)。20世紀(jì)80年代的CAE(計(jì)算機(jī)輔助工程設(shè)計(jì))階段:這一階段的主要特征是以邏輯摸擬、定時(shí)分析、故障仿真、自動(dòng)布局布線為核心,重點(diǎn)解決電路設(shè)計(jì)的功能檢測(cè)等問(wèn)題,使設(shè)計(jì)而能在產(chǎn)品制作之前預(yù)知產(chǎn)品的功能與性能。

      20世紀(jì)90年代是EDA(電子設(shè)計(jì)自動(dòng)化)階段:這一階段的主要特征是以高級(jí)描述語(yǔ)言,系統(tǒng)級(jí)仿真和綜合技術(shù)為特點(diǎn),采用“自頂向下”的設(shè)計(jì)理念,將設(shè)計(jì)前期的許多高層次設(shè)計(jì)由EDA工具來(lái)完成。

      EDA是電子技術(shù)設(shè)計(jì)自動(dòng)化,也就是能夠幫助人們?cè)O(shè)計(jì)電子電路或系統(tǒng)的軟件工具。該工具可以在電子產(chǎn)品的各個(gè)設(shè)計(jì)階段發(fā)揮作用,使設(shè)計(jì)更復(fù)雜的電路和系統(tǒng)成為可能。在原理圖設(shè)計(jì)階段,可以使用EDA中的仿真工具論證設(shè)計(jì)的正確性;在芯片設(shè)計(jì)階段,可以使用EDA中的芯片設(shè)計(jì)工具設(shè)計(jì)制作芯片的版圖:在電路板設(shè)計(jì)階段,可以使用EDA中電路板設(shè)計(jì)工具設(shè)計(jì)多層電路板。特別是支持硬件描述語(yǔ)言的EDA工具的出現(xiàn),使復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)自動(dòng)化成為可能,只要用硬件描述語(yǔ)言將數(shù)字系統(tǒng)的行為描述正確,就可以進(jìn)行該數(shù)字系統(tǒng)的芯片設(shè)計(jì)與制造。有專家認(rèn)為,21世紀(jì)將是四A技術(shù)的高速發(fā)展期,EDA技術(shù)將是對(duì)21世紀(jì)產(chǎn)生重大 影響 的十大技術(shù)之一。

      3.EDA技術(shù)的發(fā)展趨勢(shì)

      面對(duì)當(dāng)今飛速發(fā)展的電子產(chǎn)品市場(chǎng),設(shè)計(jì)師需要更加實(shí)用、快捷的EDA工具,使用統(tǒng)一的集成化設(shè)計(jì)環(huán)境,改變傳統(tǒng)設(shè)計(jì)思路,將精力集中到設(shè)計(jì)構(gòu)思、方案比較和尋找優(yōu)化設(shè)計(jì)等方面,需要以最快的速度,開發(fā)出性能優(yōu)良、質(zhì)量一流的電子產(chǎn)品,對(duì)EDA技術(shù)提出了更高的要求。未來(lái)的EDA技術(shù)將在仿真、時(shí)序分析、集成電路自動(dòng)測(cè)試、高速印刷電路板設(shè)計(jì)及開發(fā)操作平臺(tái)的擴(kuò)展等方面取得新的突破,向著功能強(qiáng)大、簡(jiǎn)單易學(xué)、使用方便的方向發(fā)展。

      (1)可編程邏輯器件發(fā)展趨勢(shì)

      可編程邏輯器件已經(jīng)成為當(dāng)今世界上最富吸引力的半導(dǎo)體器件,在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中扮演著越來(lái)越重要的角色。過(guò)去的幾年里,可編程器件市場(chǎng)的增長(zhǎng)主要來(lái)自大容量的可編程邏輯器件CPLD和FPGA,其未來(lái)的發(fā)展趨勢(shì)如下:

      1)向高密度、高速度、寬頻帶方向發(fā)展 2)向在系統(tǒng)可編程方向發(fā)展

      3)向可預(yù)測(cè)延時(shí)方向發(fā)展

      4)向混合可編程技術(shù)方向發(fā)展 5)向低電壓、低功耗方面發(fā)展

      (2)開發(fā)工具的發(fā)展趨勢(shì)

      面對(duì)當(dāng)今飛速發(fā)展的電子產(chǎn)品市場(chǎng),電子設(shè)計(jì)人員需要更加實(shí)用、快捷的開發(fā)工具,使用統(tǒng)一的集成化設(shè)計(jì)環(huán)境,改變優(yōu)先考慮具體物理實(shí)現(xiàn)方式的傳統(tǒng)設(shè)計(jì)思路,將精力集中到設(shè)計(jì)構(gòu)思、方案比較和尋找優(yōu)化設(shè)計(jì)等方面,以最快的速度開發(fā)出性能優(yōu)良、質(zhì)量一流的電子產(chǎn)品。開發(fā)工具的發(fā)展趨勢(shì)如下:

      1)具有混合信號(hào)處理能力 2)高效的仿真工具

      3)理想的邏輯綜合、優(yōu)化工具

      (3)系統(tǒng)描述方式的發(fā)展趨勢(shì) 1)描述方式簡(jiǎn)便化

      2)描述方式高效化和統(tǒng)一化

      二、EDA技術(shù)的工程應(yīng)用實(shí)例

      ——微波爐控制器的設(shè)計(jì)與分析 1.設(shè)計(jì)的基本要求與內(nèi)容:

      現(xiàn)需設(shè)計(jì)一個(gè)微波爐控制器WBLKZQ,其外部接口如圖1所示。通過(guò)該控制器再配以4個(gè)七段數(shù)碼二極管完成微波爐的定時(shí)及信息顯示。

      圖1 微波爐控制器外部接口符號(hào)圖

      其中圖1中的各信號(hào)的功能及要求如下:

      CLK是秒時(shí)鐘脈沖輸入,它接收每秒一個(gè)時(shí)鐘脈沖的節(jié)拍信號(hào)。RESET為復(fù)位信號(hào),高電平有效,用于芯片的復(fù)位功能。TEST為測(cè)試信號(hào),高電平有效,用于測(cè)試4個(gè)七段數(shù)碼二極管工作是否正常。

      2.系統(tǒng)的分析設(shè)計(jì)方案:

      (1)微波爐控制器的總體設(shè)計(jì)方案

      根據(jù)該微波爐控制器的功能設(shè)計(jì)要求,本系統(tǒng)可由以下4個(gè)模塊組成:① 狀態(tài)控制器KZQ;② 數(shù)據(jù)裝載器ZZQ;③ 烹調(diào)計(jì)時(shí)器JSQ;④ 顯示譯碼器YMQ47。其內(nèi)部組成原理圖如圖2所示。

      圖2 微波爐控制器WBLKZQ的內(nèi)部組成原理圖

      1)狀態(tài)控制器KZQ的功能是控制微波爐工作過(guò)程中的狀態(tài)轉(zhuǎn)換,并發(fā)出有關(guān)控制信息;輸入信號(hào)為CLK、TEST、START、SET_T、RESET和DONE,輸出信號(hào)為L(zhǎng)D_DONE、LD_CLK、LD_8888和COOK信號(hào)。

      2)數(shù)據(jù)裝載器ZZQ的功能是根據(jù)KZQ發(fā)出的控制信號(hào)選擇定時(shí)時(shí)間、測(cè)試數(shù)據(jù)或烹調(diào)完成信息的裝入。

      3)計(jì)時(shí)器JSQ的功能是負(fù)責(zé)烹調(diào)過(guò)程中的時(shí)間遞減計(jì)數(shù),并提供烹調(diào)完成時(shí)的狀態(tài)信號(hào)供KZQ產(chǎn)生烹調(diào)完成信號(hào)。

      4)顯示譯碼器YMQ47的功能就是負(fù)責(zé)將各種顯示信息的BCD轉(zhuǎn)換成七段數(shù)碼管顯示的驅(qū)動(dòng)信息編碼。需要譯碼的信息有:數(shù)字0~9,字母d、o、n、E。

      (2)狀態(tài)控制器KZQ的設(shè)計(jì)

      狀態(tài)控制器KZQ的功能是控制微波爐工作過(guò)程中的狀態(tài)轉(zhuǎn)換,并發(fā)出有關(guān)控制信息,因此我們可用一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)它。經(jīng)過(guò)對(duì)微波爐工作過(guò)程中的狀態(tài)轉(zhuǎn)換條件及輸出信號(hào)進(jìn)行分析,我們可得到其狀態(tài)轉(zhuǎn)換圖如圖3所示,其輸入、輸出端口如圖4所示。

      圖3 KZQ的狀態(tài)轉(zhuǎn)換圖

      圖4 KZQ的輸入、輸出端口圖

      (3)數(shù)據(jù)裝載器ZZQ的設(shè)計(jì)

      ZZQ的輸入、輸出端口如圖5所示,根據(jù)其應(yīng)完成的邏輯功能,它本質(zhì)上就是一個(gè)三選一數(shù)據(jù)選擇器。本設(shè)計(jì)采用一個(gè)進(jìn)程來(lái)完成,但由于三個(gè)被選擇的數(shù)據(jù)只有一個(gè)來(lái)自輸入端口,因此另兩個(gè)被選擇的數(shù)據(jù)則通過(guò)在進(jìn)程的說(shuō)明部分定義兩個(gè)常數(shù)來(lái)產(chǎn)生。

      圖5 ZZQ的輸入、輸出端口圖

      (4)烹調(diào)計(jì)時(shí)器JSQ的設(shè)計(jì)

      烹調(diào)計(jì)時(shí)器JSQ為減數(shù)計(jì)數(shù)器,其最大計(jì)時(shí)時(shí)間為59:59。因此我們可用兩個(gè)減計(jì)數(shù)十進(jìn)制計(jì)數(shù)器DCNT10和兩個(gè)減計(jì)數(shù)六進(jìn)制計(jì)數(shù)器DCNT6級(jí)聯(lián)構(gòu)成。JSQ的內(nèi)部組成原理如圖6所示。

      圖6 JSQ的內(nèi)部組成原理圖

      (5)顯示譯碼器YMQ47的設(shè)計(jì)

      本顯示譯碼器YMQ47不但要對(duì)數(shù)字0~9進(jìn)行顯示譯碼,還要對(duì)字母d、o、n、E進(jìn)行顯示譯碼,其譯碼對(duì)照表如表1所示。

      表1 YMQ47的譯碼對(duì)照表

      3.系統(tǒng)仿真結(jié)果

      (1)系統(tǒng)的有關(guān)仿真

      狀態(tài)控制器KZQ、數(shù)據(jù)裝載器ZZQ和烹調(diào)計(jì)時(shí)器JSQ的仿真分別如圖

      7、圖8和圖9所示。

      圖7 狀態(tài)控制器KZQ的仿真圖

      圖8 數(shù)據(jù)裝載器ZZQ的仿真圖

      圖9 烹調(diào)計(jì)時(shí)器JSQ的仿真圖

      4.設(shè)計(jì)技巧分析

      (1)在狀態(tài)控制器KZQ中,利用狀態(tài)機(jī)的設(shè)計(jì)方法簡(jiǎn)化了設(shè)計(jì)。

      (2)在數(shù)據(jù)裝載器ZZQ的設(shè)計(jì)中,利用三個(gè)裝載信號(hào)的組合LD_8888 & LD_DONE & LD_CLK賦給變量TEMP,巧妙地解決了裝載數(shù)據(jù)的選擇問(wèn)題。

      (3)在烹調(diào)計(jì)時(shí)器JSQ的設(shè)計(jì)中,利用兩個(gè)減法十進(jìn)制計(jì)數(shù)器和兩個(gè)減法六進(jìn)制計(jì)數(shù)器的串級(jí)組合,非常簡(jiǎn)便地實(shí)現(xiàn)了59′59″數(shù)之間的計(jì)時(shí)和初始數(shù)據(jù)的裝載。

      5.系統(tǒng)擴(kuò)展思路

      (1)本微波爐控制器要求系統(tǒng)時(shí)鐘CLK固定為1 Hz,而預(yù)置時(shí)間數(shù)據(jù)輸入總線DATA0位數(shù)太多(為16位),因此我們可對(duì)該系統(tǒng)進(jìn)行改進(jìn),增加一個(gè)分頻電路FPQ和一個(gè)“虛擬式”按鍵預(yù)置數(shù)據(jù)輸入電路YZDL(如圖10所示),以使系統(tǒng)的通用性更好寫。

      (2)設(shè)計(jì)外圍電路:系統(tǒng)用方波信號(hào)源,直流工作電源。

      圖10 微波爐控制器WBLKZQ擴(kuò)充后的內(nèi)部組成原理圖

      三、心得體會(huì)

      這學(xué)期EDA課程歷經(jīng)了10周,在這半學(xué)期的日子里,付出了很多,流了不少汗水,但真的學(xué)到了很多很多的東西,不僅是課本上所講過(guò)的知識(shí),更有很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)一次次的實(shí)驗(yàn)和這次論文,我在一步步加深對(duì)EDA的了解,讓我對(duì)它也有了更加濃厚的興趣。特別是在實(shí)驗(yàn)操作過(guò)程中,每一個(gè)子模塊編寫調(diào)試成功時(shí),心里都特別的開心。但是在編寫一些其他的程序時(shí),也遇到了不少問(wèn)題,出現(xiàn)很多錯(cuò)誤,在老師的幫助以及自己的細(xì)心的檢查下,終于找出了錯(cuò)誤和警告,排除困難后,程序編譯就通過(guò)了,心里也終于舒了一口氣。

      通過(guò)這學(xué)期的EDA課程使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正的學(xué)為所用,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在實(shí)踐的過(guò)程中會(huì)遇到問(wèn)題,也會(huì)發(fā)現(xiàn)了自己的不足之處——對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。

      對(duì)于本次的論文,我同樣是受益匪淺,查閱資料過(guò)程中進(jìn)一步了解到了關(guān)于EDA技術(shù)的歷史,更了解了EDA技術(shù)幾十年來(lái)它的發(fā)展經(jīng)歷和作用,以及今后的發(fā)展方向和趨勢(shì),同時(shí)也再一次體會(huì)到了要將學(xué)到的知識(shí)與生活中的事物聯(lián)系起來(lái)。通過(guò)對(duì)智力搶答器基本工作原理的理解與實(shí)際操作,我還基本掌握了EDA相關(guān)軟件的使用方法。在整個(gè)過(guò)程中我雖然碰到了許多的問(wèn)題,但是通過(guò)課上老師的詳細(xì)講解以及在網(wǎng)上搜集的資料,最后都得到了解決,可以說(shuō)是取得了基本滿意的成果。

      在論文的最后,感謝李老師一學(xué)期的辛勞付出,為我們帶來(lái)了生動(dòng)的課堂知識(shí),感謝周老師的耐心與幫助,使我們的實(shí)驗(yàn)?zāi)軌驁A滿完成,在此,謝謝老師們了!!

      四、參考文獻(xiàn)

      1、李 洋《EDA技術(shù)實(shí)用教程》(第2版)機(jī)械工業(yè)出版社2009.8 201-280

      2、章彬宏《EDA應(yīng)用技術(shù)》 北京 高等教育出版社 2007 76-93

      3、包 明《EDA技術(shù)與可編程器件的應(yīng)用》北京航天航空大學(xué)出版社 2007 58-72

      4、潘松 王國(guó)棟《VHDL實(shí)用教程》(修訂版)電子科技大學(xué)出版社 2001.7 13-24

      5、朱力恒《電子技術(shù)仿真實(shí)驗(yàn)教程》北京 電子工業(yè)出版社 2003 23-29

      下載EDA課設(shè)word格式文檔
      下載EDA課設(shè).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        ERP課設(shè)

        ERP原理與應(yīng)用 課程設(shè)計(jì)報(bào)告-電器公司ERP系統(tǒng)應(yīng)用班級(jí):1121808 姓名:丁賢民 學(xué)號(hào):201120180827 指導(dǎo)老師:徐瑋 日期:2014.6.25 一. 實(shí)驗(yàn)時(shí)間和地點(diǎn): 2014.06.25~2014.06.26 二.......

        課設(shè)心得體會(huì)

        經(jīng)歷了編c語(yǔ)言課程設(shè)計(jì)后,我對(duì)這一學(xué)期c語(yǔ)言所學(xué)內(nèi)容有了更加深刻的了解和掌握,特別是一直不懂的鏈表和指針,現(xiàn)在發(fā)現(xiàn)自己都能運(yùn)用了,很開心自己的進(jìn)步。所以,雖然寫程序的過(guò)程......

        Matlab課設(shè)

        武漢理工大學(xué)《Matlab課程設(shè)計(jì)》課程設(shè)計(jì)說(shuō)明書 目錄 摘要 ............................................................................................. 2 一、Matla......

        課設(shè)說(shuō)明

        財(cái)務(wù)管理學(xué)課程設(shè)計(jì)一、課程設(shè)計(jì)教學(xué)目的及基本要求《財(cái)務(wù)管理課程設(shè)計(jì)》是財(cái)務(wù)管理專業(yè)開設(shè)的一門實(shí)踐教學(xué)課程。開設(shè)本課程的目的和任務(wù),主要是:培養(yǎng)學(xué)生運(yùn)用財(cái)務(wù)管理的基本......

        課設(shè)心得體會(huì)

        課設(shè)心得體會(huì) 大學(xué)三年期間的課程設(shè)計(jì),這次應(yīng)該是在實(shí)驗(yàn)室呆的時(shí)間最長(zhǎng)也最煩惱的一次,做課設(shè)期間,遇到了很多的問(wèn)題,雖然嘴上會(huì)說(shuō),學(xué)校真的是不想讓人活了,好煩呀之類,但我們卻從......

        課設(shè)心得

        課程設(shè)計(jì)心得 在這學(xué)期的期末課設(shè)中我們很幸運(yùn)的接觸到了嵌入式,通過(guò)歷時(shí)兩天的課程設(shè)計(jì),我們對(duì)嵌入式雖然說(shuō)不上熟練,不過(guò)也算是已經(jīng)入門。 通過(guò)老師介紹,我們知道當(dāng)今社會(huì),嵌入......

        課設(shè)規(guī)范

        電 子 工 程 學(xué) 院 課程設(shè)計(jì)報(bào)告格式及要求 一、封面:?jiǎn)为?dú)1頁(yè)(見樣件) 二、摘要、關(guān)鍵詞:中文(250~300字)、英文;單獨(dú)1頁(yè) 中文摘要前加:“摘要:”,英文摘要前加“Abstract:”。 關(guān)鍵詞一......

        課設(shè)小結(jié)

        本次課程設(shè)計(jì)我們小組順利的完成了鍋爐內(nèi)膽水溫與循環(huán)水流量串級(jí)控制系統(tǒng)。我們通過(guò)討論對(duì)過(guò)程參數(shù)方面的知識(shí)有了更加深入的了解。我負(fù)責(zé)的是傳模擬量采集模塊。 和以前做......