欧美色欧美亚洲高清在线观看,国产特黄特色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í)驗(yàn)設(shè)計(jì)報(bào)告

      時(shí)間:2019-05-12 12:34:55下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《EDA綜合實(shí)驗(yàn)設(shè)計(jì)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《EDA綜合實(shí)驗(yàn)設(shè)計(jì)報(bào)告》。

      第一篇:EDA綜合實(shí)驗(yàn)設(shè)計(jì)報(bào)告

      Beijing Jiaotong University

      EDA實(shí)驗(yàn)設(shè)計(jì)報(bào)告

      指導(dǎo)老師:劉彪

      學(xué)

      院:電子信息工程學(xué)院 姓

      名:黃家維 學(xué)

      號(hào):13213012 班

      級(jí):電子1301

      實(shí)驗(yàn)地點(diǎn):電氣樓406

      實(shí)驗(yàn)日期:2014年5月29日星期四

      實(shí)驗(yàn)一熟悉QuartusII軟件的安裝及使用(4學(xué)時(shí))

      我們通過(guò)下載及安裝,可在電腦上運(yùn)行Altera Quartus II。打開(kāi)軟件,新建一個(gè)工程,在工程底下新建一個(gè)VHDL File,即可實(shí)現(xiàn)編程功能。編完程序后點(diǎn)擊Start Compilation可試運(yùn)行程序,待編寫(xiě)的程序運(yùn)行無(wú)誤后,再在此工程下新建一個(gè)Vector Waveform File,給程序中的輸入變量賦值,保存后點(diǎn)擊Start Simulation即可實(shí)現(xiàn)程序的仿真。實(shí)驗(yàn)

      二、組合邏輯電路的設(shè)計(jì) 實(shí)驗(yàn)方案設(shè)計(jì)、實(shí)驗(yàn)方法、1.實(shí)驗(yàn)方案

      8-3優(yōu)先編碼器的VHDL描述有多種方法,設(shè)計(jì)過(guò)程中可以根據(jù)真值表采用case…when語(yǔ)句、with…select語(yǔ)句、if…then結(jié)構(gòu)等多種手段實(shí)現(xiàn),也可以根據(jù)真值表分析輸入輸出間的邏輯關(guān)系,根據(jù)邏輯關(guān)系寫(xiě)出其布爾表達(dá)式,根據(jù)布爾代數(shù)式調(diào)用基本邏輯門元件實(shí)現(xiàn)8-3優(yōu)先編碼器。

      本實(shí)驗(yàn)中根據(jù)真值表用if-then結(jié)構(gòu)實(shí)現(xiàn)8-3優(yōu)先編碼器 2.實(shí)驗(yàn)方法

      首先根據(jù)前文所述,對(duì)照真值表的列出的不同輸入邏輯狀態(tài),分情況依次輸出于輸入的對(duì)應(yīng)關(guān)系,而后編譯綜合,由開(kāi)發(fā)系統(tǒng)自行實(shí)現(xiàn)電路功能。實(shí)驗(yàn)步驟

      1.設(shè)計(jì)輸入 利用FILENew菜單輸入VHDL源程序,創(chuàng)建源文件 2.設(shè)計(jì)項(xiàng)目的創(chuàng)建 1)原文件存儲(chǔ)…..2)利用FILEProjectSet Project… 3.設(shè)計(jì)編譯 ….4.器件選擇及管腳分配 …..5.設(shè)計(jì)仿真 …..6.時(shí)序分析 …..7.編程下載(可選)….LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ENCODER IS

      PORT(D:IN TO 7);

      A:OUT STD_LOGIC_VECTOR(0 TO 2));END;ARCHITECTURE XIANI OF ENCODER IS BEGIN PROCESS(D)BEGIN IF

      (D(7)='0')THEN A<=“111”;

      ELSIF(D(6)='0')THEN A<=“110”;

      STD_LOGIC_VECTOR(0

      ELSIF(D(5)='0')THEN A<=“101”;

      ELSIF(D(4)='0')THEN A<=“100”;

      ELSIF(D(3)='0')THEN A<=“011”;

      ELSIF(D(2)='0')THEN A<=“010”;

      ELSIF(D(1)='0')THEN A<=“001”;

      ELSIF(D(0)='0')THEN A<=“000”;

      ELSE A<=“ZZZ”;

      END IF;END PROCESS;END;

      1用CASE語(yǔ)句設(shè)計(jì)一個(gè)4-16譯碼器。設(shè)計(jì)思路:

      通過(guò)case語(yǔ)句可實(shí)現(xiàn)使能端的控制及4-16譯碼器的功能,即輸入一個(gè)四位二進(jìn)制數(shù),即可使輸出的16個(gè)端口中相應(yīng)的端口電平發(fā)生變化。用case語(yǔ)句來(lái)實(shí)現(xiàn)譯碼器中相應(yīng)數(shù)值選擇的功能恰到好處。程序:

      其中實(shí)體名為SB2,when “0000”=> outt(15 downto 0)<=“***0”等語(yǔ)句即可實(shí)現(xiàn)從0011譯碼到第4位輸出發(fā)生變化。具體程序如下: library ieee;use ieee.std_logic_1164.all;entity SB2 is

      port(inn:in std_logic_vector(3 downto 0);

      shi:in std_logic;

      outt:out std_logic_vector(15 downto 0));end entity SB2;architecture sb of SB2 is

      begin process(inn,shi)begin if shi='1' then case inn is when “0000”=>

      outt(15 0)<=“***0”;when “0001”=>

      outt(15 0)<=“***1”;when “0010”=>

      outt(15 0)<=“***1”;when “0011”=>

      outt(15 0)<=“***1”;when “0100”=>

      outt(15 0)<=“***1”;when “0101”=>

      outt(15 0)<=“***1”;when “0110”=>

      outt(15

      downto

      downto

      downto

      downto

      downto

      downto

      downto 0)<=“***1”;when “0111”=>

      outt(15 0)<=“***1”;when “1000”=>

      outt(15 0)<=“***1”;when “1001”=>

      outt(15 0)<=“***1”;when “1010”=>

      outt(15 0)<=“***1”;when “1011”=>

      outt(15 0)<=“***1”;when “1100”=>

      outt(15 0)<=“***1”;when “1101”=>

      outt(15 0)<=“***1”;

      downto

      downto

      downto

      downto

      downto

      downto

      downto when “1110”=> outt(15 downto 0)<=“***1”;when “1111”=>

      outt(15

      downto 0)<=“***1”;when others

      =>outt(15

      downto 0)<=“***1”;end case;end if;end process;end architecture;仿真波形:

      當(dāng)輸入inn為0000時(shí),輸出outt中的第16個(gè)端口變?yōu)榈碗娖?,即?shí)現(xiàn)了譯碼的功能。實(shí)際仿真波形如下圖。

      實(shí)驗(yàn)3:時(shí)序電路設(shè)計(jì)

      設(shè)計(jì)4位二進(jìn)制同步加/減法可逆計(jì)數(shù)器,其中 輸入: clr:

      異步清零(高電平有效)clk:

      時(shí)鐘輸入

      d3-d0:

      4位二進(jìn)制數(shù)輸入端 updown:

      加/減法控制信號(hào)(‘1’加,‘0’減)輸出: q3-q0:

      4位二進(jìn)制計(jì)數(shù)輸出 co:

      進(jìn)位輸出 bo:

      借位輸出 設(shè)計(jì)思路:

      用if語(yǔ)句實(shí)現(xiàn)清零及加減法的選擇。若選擇updown=1,則當(dāng)時(shí)鐘輸入為高電平時(shí)輸入的d就加1,當(dāng)d=1111時(shí)進(jìn)位輸出co就變1,最后將d中的數(shù)送給q來(lái)輸出,以達(dá)到4位二進(jìn)制同步加/減法可逆計(jì)數(shù)器的設(shè)計(jì)。程序:

      其中實(shí)體名為

      CTRDIV16,程序中兩個(gè)關(guān)鍵的if語(yǔ)句即可實(shí)現(xiàn)加減法的控制及進(jìn)位、借位的輸出。具體程序如下: library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity CTRDIV16 is

      port(clk:in STD_LOGIC;

      updown:in STD_LOGIC;

      clr:in STD_LOGIC;

      q:out STD_LOGIC_VECTOR downto 0);

      co,bo:out std_logic);end CTRDIV16;

      (3 architecture sbb of CTRDIV16 is signal d:std_logic_vector(3 downto 0);begin process(clk,clr,updown)begin if clr='1' then

      d<=“0000”;elsif clk'event and clk='1' then

      if updown='1' then

      d<=d+'1';

      co<='0';

      bo<='0';

      else

      d<=d-'1';

      co<='0';

      bo<='0';

      end if;

      if d=“1111” and updown='1' then

      co<='1';

      bo<='0';

      end if;

      if d=“0000” and updown='0' then

      bo<='1';

      co<='0';

      end if;end if;end process;process(d)begin q<=d;end process;end sbb;仿真波形:

      若選取updown=1(加法),通過(guò)波形即可看出,該程序已經(jīng)實(shí)現(xiàn)了d的加法運(yùn)算,同時(shí)在d=1111時(shí),進(jìn)位輸出co跳轉(zhuǎn)一次,即有一個(gè)進(jìn)位。

      若選取updown=0(減法),該程序也實(shí)現(xiàn)了d的減法運(yùn)算,同時(shí)在d=0000是,借位輸出bo跳轉(zhuǎn)一次,即有一個(gè)借位輸出。具體仿真波形如下。

      updown=1(加法)updown=0(減法)

      實(shí)驗(yàn)感想:

      quartusII可以模擬硬件設(shè)計(jì),即為硬件程序燒寫(xiě)模擬軟件,操作簡(jiǎn)單,易于運(yùn)行。它讓我熟練了實(shí)際硬件的使用語(yǔ)言和邏輯順序,并能實(shí)現(xiàn)一些簡(jiǎn)單硬件的程序編制和模擬仿真,使我對(duì)VHDL和EDA有了更加具體而深刻的認(rèn)識(shí),我認(rèn)為這次實(shí)驗(yàn)設(shè)計(jì)對(duì)使我獲益匪淺,一定會(huì)為我以后的學(xué)習(xí)生活帶來(lái)不少的益處。

      第二篇:數(shù)字鐘實(shí)驗(yàn)設(shè)計(jì)報(bào)告

      數(shù)字鐘實(shí)驗(yàn)設(shè)計(jì)報(bào)告

      數(shù)字鐘設(shè)計(jì)

      一 設(shè)計(jì)任務(wù)

      1.基本功能:以數(shù)字形式顯示時(shí)、分、秒的時(shí)間,小時(shí)的計(jì)時(shí)要求為“24翻1”,分和秒的計(jì)時(shí)要求為60進(jìn)位; 2.擴(kuò)展功能:校時(shí)、正點(diǎn)報(bào)時(shí)及鬧時(shí)功能;

      二 電路工作原理及分析

      數(shù)字電子鐘主要由以下幾個(gè)部分組成:秒信號(hào)發(fā)生器,時(shí)、分、秒計(jì)數(shù)器,顯示器,校時(shí)校分電路,報(bào)時(shí)電路。

      2.1數(shù)字鐘的基本邏輯功能框圖

      圖1 數(shù)字鐘的基本邏輯功能框圖

      2.2振蕩器的設(shè)計(jì)

      振蕩器是數(shù)字鐘的核心。振蕩器的穩(wěn)定度及頻率的精確度決定了數(shù)字鐘的準(zhǔn)確程度。通常選用石英晶體構(gòu)成振蕩器電路。一般來(lái)說(shuō),振蕩的頻率越高,計(jì)時(shí)精度越高。如果精度要求不高則可以采用由集成邏輯門與R、C組成的時(shí)鐘源振蕩器或集成電路計(jì)時(shí)器555與R、C組成的多諧振蕩器,電路參數(shù)如圖2所示.接通電源后,電容C1被充電,當(dāng)Vc上升到2Vcc/3時(shí),使vo為低電平,同時(shí)放電三極管T導(dǎo)通,此時(shí)電容C1通過(guò)R2和T放電,Vc下降。當(dāng)Vc下降到Vcc/3時(shí),vo翻轉(zhuǎn)為高電平。電容C1放電所需時(shí)間為 tpL=R2ln2≈0.7R2C1 當(dāng)放電結(jié)束時(shí),T截止,Vcc將通過(guò)R1、R2向電容器 C1充電,一;Vc由Vcc/3上升到2Vcc/3所需的時(shí)間為

      當(dāng)平。如得到 振 故

      tpH=(R1+R2)C1ln2≈0.7(R1+R2)C Vc 上升到2Vcc/3 時(shí),電路又翻轉(zhuǎn)為低電此周而復(fù)始,于是,是在電路的輸出端就一個(gè)周期性的矩形波。其振蕩頻率為 f=1/(tpL+tpH)≈1.43/[(R1+2R2)C] 蕩周期:T=T1+T2=(R1+2R2)C1In2 得 R1+2R2=T/C1In2=0.142k 選定R1=0.1K,R2=0.021k

      圖2 555振蕩器(圖中R1,R2值不為實(shí)際值)

      圖3 555振蕩器產(chǎn)生的波形

      2.3時(shí)、分、秒計(jì)數(shù)器電路

      時(shí)、分、秒計(jì)數(shù)器電路由秒個(gè)位和秒十位,分個(gè)位和分十位及時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器電路構(gòu)成,其中秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,而時(shí)個(gè)位和時(shí)十位為24進(jìn)制計(jì)數(shù)器。

      2.4校時(shí)電路

      通過(guò)開(kāi)關(guān),觸發(fā)器,邏輯門組成的校時(shí)電路來(lái)校時(shí)。校時(shí)電路時(shí)用來(lái)對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整的.三 數(shù)字電路的設(shè)計(jì)

      3.1計(jì)數(shù)電路的設(shè)計(jì)

      由2個(gè)74LS90計(jì)數(shù)器和4個(gè)74LS290計(jì)數(shù)器組成的時(shí)分秒的計(jì)數(shù)電路。

      3.1.1六十進(jìn)制計(jì)數(shù)電路

      秒計(jì)數(shù)和分計(jì)數(shù)單元為60進(jìn)制計(jì)數(shù)器,其輸出為8421BCD碼。采用十進(jìn)制計(jì)數(shù)器74LS290來(lái)實(shí)現(xiàn)時(shí)間計(jì)數(shù)單元的計(jì)數(shù)功能。由圖可知,74LS90為異步清零計(jì)數(shù)器,有異步清零端12,13腳(高電平有效)。

      圖4 六十進(jìn)制計(jì)數(shù)器

      (1)秒計(jì)數(shù)器電路的電路圖如圖4所示

      秒個(gè)位計(jì)數(shù)單元為10進(jìn)制計(jì)數(shù)器,無(wú)需進(jìn)制轉(zhuǎn)換,當(dāng)QAQBQCQD從1001變成0000時(shí),U1 向U3 的輸入端發(fā)出一個(gè)脈沖信號(hào),使秒十位進(jìn)1位。

      秒十位計(jì)數(shù)單元為6進(jìn)制,當(dāng)QAQBQCQD變成0110時(shí),通過(guò)與QBQC相連的導(dǎo)線,給U3 兩個(gè)清零端一個(gè)信號(hào),把它的兩個(gè)清零端都變成1,計(jì)數(shù)器的輸出被置零,跳過(guò)0110到1111的狀態(tài),又從0000開(kāi)始,如此重復(fù),十位和個(gè)位合起來(lái)就是60進(jìn)制。

      (2)分計(jì)數(shù)器

      分的個(gè)位和十位計(jì)數(shù)單元的狀態(tài)轉(zhuǎn)換和秒的是一樣的,只是它要把進(jìn)位信號(hào)傳輸給時(shí)的個(gè)位計(jì)數(shù)單元,電路圖如圖4所示

      3.1.2二十四進(jìn)制計(jì)數(shù)器電路

      時(shí)計(jì)數(shù)單元為24進(jìn)制計(jì)數(shù)器,其輸出為8421BCD碼。采用十進(jìn)制計(jì)數(shù)器74LS90來(lái)實(shí)現(xiàn)時(shí)間計(jì)數(shù)單元的計(jì)數(shù)功能。

      時(shí)計(jì)數(shù)器電路的電路圖如圖5所示

      圖5 二十四進(jìn)制計(jì)數(shù)器

      當(dāng)“時(shí)”十位的QAQBQCQD為0000或0001時(shí),“時(shí)”的個(gè)位計(jì)數(shù)單元是十進(jìn)制計(jì)數(shù)器,當(dāng)個(gè)位的QAQBQCQD到1010時(shí),通過(guò)與非門使得個(gè)位74LS90上的清零端為0,則計(jì)數(shù)器的輸出直接置零,從0000開(kāi)始。當(dāng)十位的QAQBQCQD為0010時(shí),通過(guò)與非門使得該74LS90的清零端為0,“時(shí)”的十位又重新從0000開(kāi)始,此時(shí)的個(gè)位計(jì)數(shù)單元變成4進(jìn)制,即當(dāng)個(gè)位計(jì)數(shù)單元的QAQBQCQD為0100時(shí),就要又從0000開(kāi)始計(jì)數(shù),這樣就實(shí)現(xiàn)了“時(shí)”24進(jìn)制的計(jì)數(shù)。

      3.2校時(shí)電路的設(shè)計(jì)

      數(shù)字鐘應(yīng)具有分校正和時(shí)校正功能,因此,應(yīng)截?cái)喾謧€(gè)位和時(shí)個(gè)位的直接計(jì)數(shù)通路,并采用正常計(jì)時(shí)信號(hào)與校正信號(hào)可以隨時(shí)切換的電路接入其中。如圖6所示,當(dāng)開(kāi)關(guān)J1按下時(shí),直接給分個(gè)位計(jì)數(shù)器一個(gè)脈沖信號(hào),使分計(jì)數(shù)器進(jìn)1位,同時(shí)不影響數(shù)字鐘的運(yùn)行。同理,由J2對(duì)時(shí)計(jì)數(shù)器進(jìn)行校對(duì)。

      圖6 校時(shí)校分電路

      3.3 整點(diǎn)報(bào)時(shí)設(shè)計(jì)

      仿廣播電臺(tái)正點(diǎn)報(bào)時(shí)電路的功能要求時(shí):每當(dāng)數(shù)字鐘計(jì)時(shí)快要到正點(diǎn)時(shí)發(fā)出聲響,通常按照4低音1高音的順序發(fā)出間斷聲響,以最后一聲高音結(jié)束的時(shí)刻是整點(diǎn)時(shí)刻。

      每當(dāng)數(shù)字鐘計(jì)時(shí)快要到正點(diǎn)時(shí)發(fā)出聲響,按照4低音1高音的頻率發(fā)出間 斷聲響,前4低音聲響頻率為500HZ,后1高音聲響頻率為1000HZ。并以最后一 聲高音結(jié)束的時(shí)刻為正點(diǎn)時(shí)刻。本設(shè)計(jì)中,報(bào)時(shí)電路采用TTL與非門。報(bào)時(shí)電路如圖1.5所示。4聲低音分別發(fā)生在59分51秒、53秒、55秒及57秒,最后一 聲高音發(fā)生在59分59秒,聲響均持續(xù)1秒。如表1.2所示。由表可得式1.1。只有當(dāng)分十位的Q2M2Q0M2=11,分個(gè)位的Q3M1Q0M1=11,秒個(gè)位的Q2S2Q0S=11及秒個(gè)位的Q0S1=1時(shí),音響電路才能工作。

      3.4 報(bào)時(shí)電路的安裝與調(diào)試

      按照原理圖及實(shí)物連線圖接線。報(bào)時(shí)音響電路采用三極管3DG130來(lái)推動(dòng)喇叭。報(bào)時(shí)所需的500Hz和1000Hz音頻信號(hào),分別取分頻器的500Hz輸出端和1000Hz輸出端。

      四 主要芯片的技術(shù)參數(shù)

      4.1 74LS90芯片

      74LS90芯片結(jié)構(gòu)及引腳分布如圖7所示,74LS90計(jì)數(shù)器是一種中規(guī)模的二一五進(jìn)制計(jì)數(shù)器。它由四個(gè)主從JK觸發(fā)器和一些附加門電路組成,整個(gè)電路可分兩部分,其中FA觸發(fā)器構(gòu)成一位二進(jìn)制計(jì)數(shù)器;FD、FC、FB構(gòu)成異步五進(jìn)制計(jì)數(shù)器,在74LS90計(jì)數(shù)器電路中,設(shè)有專用置“0”端R1、R2和置位(置“9”)端S1、S2。

      圖7 74LS90芯片

      4.2 74LS290芯片

      74LS190芯片的管腳分布如圖8所示,其中,R9(1)、R9(2)稱為置“9”端,R0(1)、R0(2)稱為置“0”端;A、B端為計(jì)數(shù)時(shí)鐘輸入端,QAQBQCQD為輸出端,NC表示空腳。74LS290具有以下功能:

      置“9”功能:當(dāng)R9(1)= R9(2)=1時(shí),不論其他輸入端狀態(tài)如何,計(jì)數(shù)器輸出QAQBQCQD=1001,而1001(2進(jìn)制)=9(10進(jìn)制),故又稱為異步置數(shù)功能。

      置“0”功能:當(dāng)R9(1)和 R9(2)不全為1,并且R0(1)=R0(2)=1時(shí),不論其他輸入端狀態(tài)如何,計(jì)數(shù)器輸出QAQBQCQD=0000,故又稱為異步清零功能或復(fù)位功能。

      計(jì)數(shù)功能:當(dāng)R9(1)和 R9(2)不全為1,并且R0(1)和R0(2)不全為1時(shí),輸入計(jì)數(shù)脈沖,計(jì)數(shù)器開(kāi)始計(jì)數(shù)。

      圖8 74LS290芯片

      五 心得體會(huì)

      通過(guò)這次綜合試驗(yàn)設(shè)計(jì),大大提高了我分析問(wèn)題的能力,同時(shí)提高了運(yùn)用電工領(lǐng)域有關(guān)的軟件進(jìn)行電路模擬仿真的能力,將自己在課堂上學(xué)到的數(shù)電知識(shí)得到充分發(fā)揮,解決了很多問(wèn)題,同時(shí)學(xué)到了很多元件和芯片的各種用途及性能,從中學(xué)到了很多書(shū)上沒(méi)有明白的問(wèn)題

      本次的課程設(shè)計(jì),是對(duì)所學(xué)的數(shù)電知識(shí)的一次綜合應(yīng)用,既考驗(yàn)了我的知識(shí)掌握程度,也鍛煉了我的動(dòng)手能力。在此過(guò)程中,我學(xué)到很多新知識(shí),對(duì)電工電子課程的學(xué)習(xí)也更有興趣了。雖然此次課程設(shè)計(jì)花費(fèi)了一番功夫,卻讓我收獲了很多,讓我知道了學(xué)無(wú)止境,永遠(yuǎn)不能滿足現(xiàn)有的知識(shí),人生就像在爬山,一座山峰的后面還有更高山峰在等著你。

      在這次數(shù)字電子鐘課程設(shè)計(jì)中,也非常感謝同學(xué)的幫助!

      第三篇:EDA設(shè)計(jì)報(bào)告

      EDA

      多 功 能 數(shù) 字 時(shí) 鐘

      專業(yè):11級(jí)應(yīng)用電子技術(shù) 班級(jí):二班

      學(xué)號(hào):110372021307 姓名:賀成林 指導(dǎo)老師:祝宏

      日期:2012年6月29日

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、課程設(shè)計(jì)是一實(shí)踐教學(xué)環(huán)節(jié),是針對(duì)《數(shù)字電子技術(shù)》課程的要求,結(jié)合實(shí)踐對(duì)學(xué)生進(jìn)行綜合設(shè)計(jì)性訓(xùn)練,在自學(xué)和實(shí)踐訓(xùn)練中培養(yǎng)學(xué)生理論聯(lián)系實(shí)踐和實(shí)踐動(dòng)手能力,獨(dú)立地解決實(shí)際問(wèn)題能力。

      2、通過(guò)課程設(shè)計(jì)是使學(xué)生熟悉和了解可編程專用數(shù)字邏輯電路的設(shè)計(jì)、開(kāi)發(fā)流程,熟悉和了解現(xiàn)代EDA設(shè)計(jì)工具,掌握數(shù)字電子系統(tǒng)層次化的設(shè)計(jì)方法。

      已知條件:MAX+Plus軟件

      基本功能:

      1、以數(shù)字形式顯示時(shí)、分、秒的時(shí)間;

      2、小時(shí)計(jì)數(shù)器為24進(jìn)制;

      3、分秒計(jì)數(shù)器為60進(jìn)制。

      二、實(shí)驗(yàn)要求、綜合應(yīng)用《數(shù)字電子技術(shù)基礎(chǔ)》課程中的理論知識(shí)去獨(dú)立地完成一個(gè)設(shè)計(jì)課題;

      2、熟悉和了解現(xiàn)代EDA設(shè)計(jì)、編程、編譯、仿真及下載技術(shù)的全過(guò)程。

      三、EDA 技術(shù)介紹

      1、EDA 技術(shù)概況

      EDA 是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫(xiě),在 20 世 紀(jì) 90 年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。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)度。

      2、ALTERA QUARTUS II 軟件介紹

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

      四、關(guān)鍵詞

      數(shù)字計(jì)數(shù)器、動(dòng)態(tài)顯示、快速校分、整點(diǎn)報(bào)時(shí)、時(shí)段控制。

      五、實(shí)驗(yàn)步驟

      1、秒計(jì)數(shù)器是60進(jìn)制的。當(dāng)下面的74161到9時(shí)等下一個(gè)脈沖來(lái)是向上面的74161計(jì)數(shù),到5時(shí)將兩個(gè)74161共同預(yù)置。從而實(shí)現(xiàn)00—59秒的計(jì)數(shù)功能。

      電路圖如下:

      進(jìn)行編譯及波形仿真,如下圖: 將上述文件保存并打包,如圖:

      2、分計(jì)數(shù)器是60進(jìn)制的。功能如秒計(jì)數(shù)器。其電路圖如下:

      波形圖仿真及打包圖如下:

      3、小時(shí)計(jì)數(shù)器是24進(jìn)制的。當(dāng)下面的74161到9時(shí)等下一個(gè)脈沖來(lái)是向上面的74161計(jì)數(shù)。但是等到上面的記到2時(shí)下面的將不能超過(guò)4,所以等上面的記到2,下面的記到4時(shí)就將兩個(gè)74161共同預(yù)置。從而實(shí)現(xiàn)00—24秒的計(jì)數(shù)功能。

      原理圖如下:

      仿真的波形圖及打包的文件圖如下:

      4、校時(shí)。校時(shí)是通過(guò)加快時(shí)分的計(jì)數(shù)速度來(lái)快速校準(zhǔn)時(shí)間的。實(shí)際上我們把秒脈沖cps加到分計(jì)數(shù)和時(shí)計(jì)數(shù)上,是他們加快計(jì)數(shù)速度。所以其中我們需要通過(guò)開(kāi)關(guān)來(lái)選擇。

      原理圖及打包圖如下:

      5、時(shí)段控制:時(shí)段控制是通過(guò)7485集成電路的數(shù)據(jù)比較來(lái)控制的。

      原理圖及打包圖如下:

      6、整點(diǎn)報(bào)時(shí):整點(diǎn)報(bào)時(shí)是通過(guò)整點(diǎn)時(shí)的二進(jìn)制數(shù)據(jù)規(guī)律來(lái)報(bào)時(shí)的。

      原理圖及打包圖如下:

      7、將時(shí)分秒打包文件連成多功能數(shù)字電路圖如下:

      8、多功能數(shù)字鐘硬件測(cè)試原理圖如下:

      9、部分制作過(guò)程圖,如下:

      六、實(shí)驗(yàn)工具

      裝有QuartusⅡ軟件的電腦,EDA開(kāi)發(fā)板,相關(guān)EDA設(shè)計(jì)方面的書(shū)籍。

      七、設(shè)計(jì)中遇到問(wèn)題及解決方法

      1、實(shí)驗(yàn)后期的引腳分配及下載方法不當(dāng),實(shí)驗(yàn)所用電腦沒(méi)有

      quartus11.0 的 驅(qū)動(dòng)。耗費(fèi)時(shí)間較多。解決方法:參閱西安電子科技大學(xué)出版社出版的《數(shù)字電路設(shè)計(jì)及 Verilog HDL 實(shí)現(xiàn)》第 394 頁(yè)關(guān)于引腳分配和下載驗(yàn)證的介紹;

      2、下載驗(yàn)證過(guò)程中時(shí)段控制部分有錯(cuò)誤,原代碼在軟件上仿真沒(méi)有錯(cuò)誤,但是下載到實(shí)驗(yàn)板驗(yàn)證時(shí),出現(xiàn)錯(cuò)誤。解決方法:通過(guò)去請(qǐng)教同學(xué)及查閱相關(guān)資料得到解決。

      八、特點(diǎn)和實(shí)用性

      利用 QuartusII 軟件,結(jié)合所學(xué)的數(shù)字電路的知識(shí)設(shè)計(jì)一個(gè) 24 時(shí)多功能數(shù) 字鐘,具有正常分、秒計(jì)時(shí),動(dòng)態(tài)顯示、快速校分、整點(diǎn)報(bào)時(shí)、時(shí)段控制的功能。分析整個(gè)電路的工作原理,分別說(shuō)明各子模塊的設(shè)計(jì)原理和調(diào)試、仿真、編 程下載的過(guò)程,并對(duì)最終結(jié)果進(jìn)行總結(jié),最后提出在實(shí)驗(yàn)過(guò)程中出現(xiàn)的問(wèn)題和解 決的方案。通過(guò)實(shí)驗(yàn)掌握一些邏輯組合器件的基本功能和用法,同時(shí)體會(huì)利用軟件設(shè)計(jì) 電路的方便快捷,避免硬件布線的繁瑣,提高效率。

      九、心得體會(huì)

      1、設(shè)計(jì)必須要有整體概念,提前熟悉軟件。剛開(kāi)始時(shí)沒(méi)頭緒,不知道該怎 樣分塊,進(jìn)度很慢,加上對(duì)軟件不是很熟悉,比如:封裝要注意哪些,哪些不能 運(yùn)行,哪些是不正確的操作等等,走了很多冤枉路。

      2、設(shè)計(jì)的模塊要分塊調(diào)試,免得等所有都完工了再調(diào)試出錯(cuò),那樣的話很 難確定是什么出錯(cuò),更加沒(méi)頭緒。有必要的話做一部分后就送到平臺(tái)上調(diào)試,這 樣會(huì)大大減少出錯(cuò)率。

      3、沒(méi)有硬件軟件化的概念,開(kāi)始設(shè)計(jì)時(shí)沒(méi)有總體的規(guī)劃,不知道什么是可行 的,什么是封裝,怎樣使搭配組合最優(yōu)化。

      4、遇到問(wèn)題先自己摸索,查閱資料要有技巧,避免沒(méi)有目的和思路。明白 自己要解決什么問(wèn)題。同時(shí)請(qǐng)教老師,和同學(xué)交流。良好的溝通很重要。針對(duì)本次的畢業(yè)設(shè)計(jì),用我國(guó)著名的數(shù)學(xué)家的話概括一下我的感受: “科學(xué)上沒(méi)有平坦的大道,真理長(zhǎng)河中有無(wú)數(shù)礁石險(xiǎn)灘。只有不為畏攀登的采藥者,只有不怕 巨浪的弄潮兒,才能登上高峰采得仙草,深入水底覓得驪珠?!?/p>

      十、參閱教材及文獻(xiàn)

      1、蔣立平編著《數(shù)字電路》.南京理工大學(xué)翻??;

      2、南京理工大學(xué)電子技術(shù)中心編著.《EDA 設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)》 南京理工大學(xué),2008 年;

      3、譚會(huì)生,張昌凡.《EDA 技術(shù)及應(yīng)用》.西安電子科技大學(xué)出版社,2001年;

      4、《數(shù)字電路設(shè)計(jì)及 Verilog HDL 實(shí)現(xiàn)》 西安電子科技大學(xué)出版社出版;

      5、《電子線路實(shí)驗(yàn)設(shè)計(jì)與仿真講義》。

      第四篇:EDA實(shí)習(xí)報(bào)告

      EDA實(shí)驗(yàn)報(bào)告

      系別:

      班級(jí):

      姓名:

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

      目錄

      1.EDA介紹

      2.Quartus II軟件介紹

      3.實(shí)習(xí)任務(wù)

      4.封裝引腳圖

      5.設(shè)計(jì)程序

      6.結(jié)果顯示

      7.實(shí)習(xí)心得

      1.EDA介紹

      EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)縮寫(xiě)。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語(yǔ)言HDL(Hardware Description language)完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合及優(yōu)化、布局布線、仿真以及對(duì)于特定目標(biāo)芯片的適配編譯和編程下載等工作。硬件描述語(yǔ)言HDL是相對(duì)于一般的計(jì)算機(jī)軟件語(yǔ)言,如:C、PASCAL而言的。HDL語(yǔ)言使用與設(shè)計(jì)硬件電子系統(tǒng)的計(jì)算機(jī)語(yǔ)言,它能描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接方式。設(shè)計(jì)者可利用HDL程序來(lái)描述所希望的電路系統(tǒng),規(guī)定器件結(jié)構(gòu)特征和電路的行為方式;然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD內(nèi)部結(jié)構(gòu),并實(shí)現(xiàn)相應(yīng)邏輯功能的的門級(jí)或更底層的結(jié)構(gòu)網(wǎng)表文件或下載文件。目前,就FPGA/CPLD開(kāi)發(fā)來(lái)說(shuō),比較常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL[1]。

      幾乎所有適于大學(xué)生做的數(shù)字邏輯電路實(shí)驗(yàn)都可以在計(jì)算機(jī)上利用EDA(Electronic Design Automatic—電子設(shè)計(jì)自動(dòng)化)軟件進(jìn)行設(shè)計(jì)、仿真,只有極少量外部配件不能在計(jì)算機(jī)上進(jìn)行仿真。因此,在實(shí)驗(yàn)前期階段,即實(shí)驗(yàn)預(yù)習(xí)階段的主要應(yīng)用工具是EDA軟件,利用EDA軟件可以設(shè)計(jì)、仿真實(shí)驗(yàn)課題,進(jìn)行虛擬實(shí)驗(yàn)。通過(guò)虛擬實(shí)驗(yàn)使實(shí)驗(yàn)者在進(jìn)入真實(shí)實(shí)驗(yàn)前就能對(duì)預(yù)做的實(shí)驗(yàn)有相當(dāng)?shù)牧私?,甚至可以預(yù)測(cè)到實(shí)驗(yàn)的結(jié)果。這樣在實(shí)際做實(shí)驗(yàn)時(shí),可以把許多設(shè)計(jì)型實(shí)驗(yàn)的難度降低,同時(shí)能有更多的時(shí)間讓實(shí)驗(yàn)者動(dòng)手做實(shí)驗(yàn),研究問(wèn)題,提高實(shí)驗(yàn)效率。當(dāng)前數(shù)字電路設(shè)計(jì)已由計(jì)算機(jī)輔助設(shè)計(jì)進(jìn)入到以計(jì)算機(jī)為主的設(shè)計(jì)時(shí)代。

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

      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)開(kāi)發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開(kāi)發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開(kāi)發(fā)平臺(tái)。

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

      3.1 設(shè)計(jì)信號(hào)發(fā)生器使其能在儀器上顯示正弦、三角、方波、鋸齒波(其中的兩種波形)

      2設(shè)計(jì)頻率計(jì)使其能測(cè)出制定波形的頻率

      4.波形發(fā)生器封裝引腳圖

      5.波形發(fā)生器程序(正弦波,方波)

      Boxing4

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY boxing4 IS PORT(RIN:in std_logic;

      clk: IN std_logic;SINT:in std_logic_VECTOR(1 downto 0);--set:in std_logic;--_vector;--(1 downto 0);rs,rw,en,lcdon,lcdbon : OUT STD_LOGIC;YOUT:out std_logic_vector(7 downto 0);data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END boxing4;ARCHITECTURE fwm OF boxing4 IS

      TYPE states IS(clear_display,set_initial,set_cgram,write_cgram,set_addram1,diaplay_cgram,set_addram2,diaplay_cgrom);--clear_display-清屏;--set_initial-初始化設(shè)置;--set_cgram-設(shè)置 cgram 地址;--write_cgram-字模寫(xiě)入 cgram;--set_addram1-設(shè)置顯示 cgram 字符的 addram 地址;--diaplay_cgram-顯示 cgram 字符;--set_addram2-設(shè)置顯示 cgrom 字符的 addram 地址;--diaplay_cgrom-顯示 cgrom 字符 SIGNAL state:states;TYPE ram_array0 IS ARRAY(0 TO 7)OF STD_LOGIC_VECTOR(7 DOWNTO 0);--定義 ram_array0 為二維數(shù)組

      TYPE ram_array1 IS ARRAY(0 TO 7)OF ram_array0;--定義 ram_array1 為三維數(shù)組 SIGNAL lcd_clk : STD_LOGIC;SIGNAL data1,data2,data3:INTEGER RANGE 0 TO 9;--signal n:std_logic;SIGNAL net1,net2:std_logic_vector(7 downto 0);--signal net3:std_logic;

      COMPONENT choice4_1

      PORT(s:in std_logic_vector(1 downto 0);

      d1,d2: in std_logic_vector(7 downto 0);

      y: out std_logic_vector(7 downto 0));END COMPONENT;COMPONENT fangbo PORT(clkf,rf:in std_logic;

      qf:out std_logic_vector(7 downto 0));END COMPONENT;COMPONENT sin PORT(clksin,rsin:in std_logic;

      da:out std_logic_vector(7 downto 0));END COMPONENT;BEGIN u1: fangbo PORT MAP(clkf=>CLK,rf=>RIN,qf=>net1);u2: sin PORT MAP(clksin=>CLK,rsin=>RIN,da=>net2);u3: choice4_1 PORT MAP(s=>SINT,d1=>net1,d2=>net2,y=>YOUT);en <=lcd_clk;rw<= '0';lcdon<='1';lcdbon<='1';data1<=1;data2<=2;data3<=5;

      PROCESS(clk)

      CONSTANT m : INTEGER:=50000;--50M 分頻到 1kHz。

      VARIABLE cout : INTEGER RANGE 0 TO 50000000:=0;BEGIN

      IF clk'EVENT AND clk='0' THEN cout:=cout+1;

      IF cout<=m/2 THEN lcd_clk<='1';

      ELSIF cout

      ELSE cout:=0;

      END IF;

      END IF;

      END PROCESS;

      PROCESS(lcd_clk)CONSTANT cgram : ram_array1:=(--自定義 8 個(gè) 5*8 字符的字模(X“00”,X“0E”,X“00”,X“0E”,X“00”,X“1F”,X“00”,X“00”),--SAN(X“04”,X“1F”,X“04”,X“07”,X“05”,X“09”,X“13”,X“01”),--FANG(X“00”,X“1f”,X“04”,X“04”,X“17”,X“14”,X“14”,X“1f”),--ZHENG(X“0E”,X“02”,X“0E”,X“08”,X“08”,X“0e”,X“02”,X“0e”),--ZUO XIAN(X“04”,X“1E”,X“04”,X“08”,X“1e”,X“04”,X“09”,X“1f”),--YOU XIAN(X“00”,X“13”,X“0A”,X“03”,X“1a”,X“02”,X“0a”,X“13”),--ZUO BO(X“08”,X“1F”,X“09”,X“1E”,X“14”,X“08”,X“14”,X“03”),--YOU BO(X“18”,X“18”,X“07”,X“08”,X“08”,X“08”,X“07”,X“00”)--℃字符數(shù)據(jù)存儲(chǔ)器);

      VARIABLE datacnt:INTEGER RANGE 0 TO 15;

      VARIABLE cnt: STD_LOGIC_VECTOR(7 DOWNTO 0);

      VARIABLE num:INTEGER RANGE 0 TO 7;BEGIN--wait until net3='0';RISING_EDGE(lcd_clk);

      IF RISING_EDGE(lcd_clk)THEN

      --if sint=“00”then

      case sint is

      when “11”=>

      CASE state IS

      WHEN clear_display=> rs<='0';data<=“00000001”;state<=set_Initial;--清屏

      WHEN set_initial=>

      IF datacnt<3 THEN rs<='0';data<=“00111000”;datacnt:=datacnt+1;--設(shè)置功能:8 位,兩行,5×8/每字符,重復(fù) 3 次

      ELSIF datacnt=3 THEN rs<='0';data<=“00000110”;datacnt:=datacnt+1;--顯示模式:完成一個(gè)字符碼傳送后,AC 自動(dòng)加 1;顯

      ELSIF datacnt=4 THEN rs<='0';data<=“00001100”;datacnt:=datacnt+1;--顯示控制:顯示開(kāi),光標(biāo)關(guān),光標(biāo)不閃爍

      ELSE rs<='0';datacnt:=0;state <= set_cgram;

      END IF;

      WHEN set_cgram=>rs<='0';--設(shè)置 CGRAM 字符地址

      data<=“01000000”+cnt;state<=write_cgram;--設(shè)置 CGRAM 字符地址 000

      IF num <8 THEN cnt:=cnt+“00001000”;--設(shè)置 CGRAM 字符地址加 1

      END IF;

      WHEN write_cgram=> rs<='1';--在 指 定 的--CGRAM 字符地址寫(xiě)入對(duì)應(yīng)的 8 個(gè) 5*8 字符字模

      data <= cgram(num)(datacnt);datacnt:=datacnt+1;state <= write_cgram;--寫(xiě)入 CGRAM 字符地址 000 的 5*8--字符字模

      IF datacnt=8 THEN num:=num+1;datacnt:=0;state <= set_cgram;--寫(xiě)入下一個(gè)自定義--的 5*8 字符字模

      IF num =7 THEN num:=0;cnt:=“00000000”;state<=set_addram1;--8 個(gè) 5*8 字符字模寫(xiě)--入完成

      END IF;

      END IF;

      WHEN set_addram1=>rs<='0';--設(shè)置 ADDRAM 地址 1

      data<=“10000000”;state<=diaplay_cgram;

      WHEN diaplay_cgram=>rs<='1';--顯示 ADDRAM 地址對(duì)應(yīng)的 CGRAM 字符

      --if sint=“00”then

      IF datacnt=0 THEN data<=X“02”;datacnt:=datacnt+1;

      ELSIF datacnt=1 THEN data<=X“03”;datacnt:=datacnt+1;

      ELSIF datacnt=2 THEN data <= X“04”;datacnt:=datacnt+1;

      ELSIF datacnt=3 THEN data<=X“05”;datacnt:=datacnt+1;

      ELSIF datacnt=4 THEN data<=X“06”;datacnt:=datacnt+1;

      ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=7 THEN data<=X“46”;datacnt:=datacnt+1;

      ELSIF datacnt=8 THEN data<=X“3a”;datacnt:=datacnt+1;

      ELSIF datacnt=9 THEN data<=X“31”;datacnt:=datacnt+1;

      ELSIF datacnt=10 THEN data<=X“30”;datacnt:=datacnt+1;

      ELSIF datacnt=11 THEN data<=X“4d”;datacnt:=datacnt+1;

      ELSIF datacnt=12 THEN data<=X“48”;datacnt:=datacnt+1;

      ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;--顯示 cgrom 中指定的

      ELSIF datacnt=14 THEN data<=X“5a”;datacnt:=datacnt+1;

      ELSE data<=X“20”;datacnt:=0;state <= set_addram2;

      END IF;

      WHEN set_addram2=>rs<='0';--設(shè)置 ADDRAM 地址 2

      data<=“11000000”;state<=diaplay_cgrom;

      WHEN diaplay_cgrom=>rs<='1';

      IF datacnt=0 THEN data<=X“4A”;datacnt:=datacnt+1;

      ELSIF datacnt=1 THEN data<=X“41”;datacnt:=datacnt+1;

      ELSIF datacnt=2 THEN data<=X“43”;datacnt:=datacnt+1;

      ELSIF datacnt=3 THEN data<=X“4B”;datacnt:=datacnt+1;

      ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=7 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=8 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=9 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=10 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=11 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;

      ELSIF datacnt=12 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data2+48,8);datacnt:=datacnt+1;

      ELSIF datacnt=14 THEN data<=CONV_STD_LOGIC_VECTOR(data1+48,8);datacnt:=datacnt+1;

      ELSE data<=X“56”;datacnt:=0;state <= set_addram1;

      END IF;

      END CASE;

      --end if;

      when “01”=>

      --elsif sint =“01”then

      CASE state IS

      WHEN clear_display=> rs<='0';data<=“00000001”;state<=set_Initial;--清屏

      WHEN set_initial=>

      IF datacnt<3 THEN rs<='0';data<=“00111000”;datacnt:=datacnt+1;--設(shè)置功能:8 位,兩行,5×8/每字符,重復(fù) 3 次

      ELSIF datacnt=3 THEN rs<='0';data<=“00000110”;datacnt:=datacnt+1;--顯示模式:完成一個(gè)字符碼傳送后,AC 自動(dòng)加 1;顯

      ELSIF datacnt=4 THEN rs<='0';data<=“00001100”;datacnt:=datacnt+1;--顯示控制:顯示開(kāi),光標(biāo)關(guān),光標(biāo)不閃爍

      ELSE rs<='0';datacnt:=0;state <= set_cgram;

      END IF;

      WHEN set_cgram=>rs<='0';--設(shè)置 CGRAM 字符地址

      data<=“01000000”+cnt;state<=write_cgram;--設(shè)置 CGRAM 字符地址 000

      IF num <8 THEN cnt:=cnt+“00001000”;--設(shè)置 CGRAM 字符地址加 1

      END IF;

      WHEN write_cgram=> rs<='1';--在 指 定 的--CGRAM 字符地址寫(xiě)入對(duì)應(yīng)的 8 個(gè) 5*8 字符字模

      data <= cgram(num)(datacnt);datacnt:=datacnt+1;state <= write_cgram;--寫(xiě)入 CGRAM 字符地址 000 的 5*8--字符字模

      IF datacnt=8 THEN num:=num+1;datacnt:=0;state <= set_cgram;--寫(xiě)入下一個(gè)自定義--的 5*8 字符字模

      IF num =7 THEN num:=0;cnt:=“00000000”;state<=set_addram1;--8 個(gè) 5*8 字符字模寫(xiě)--入完成

      END IF;

      END IF;

      WHEN set_addram1=>rs<='0';--設(shè)置 ADDRAM 地址 1

      data<=“10000000”;state<=diaplay_cgram;

      WHEN diaplay_cgram=>rs<='1';--顯示 ADDRAM 地址對(duì)應(yīng)的 CGRAM 字符

      --if sint=“00”then

      IF datacnt=0 THEN data<=X“01”;datacnt:=datacnt+1;

      ELSIF datacnt=1 THEN data<=X“05”;datacnt:=datacnt+1;

      ELSIF datacnt=2 THEN data <= X“06”;datacnt:=datacnt+1;

      ELSIF datacnt=3 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=7 THEN data<=X“46”;datacnt:=datacnt+1;

      ELSIF datacnt=8 THEN data<=X“3a”;datacnt:=datacnt+1;

      ELSIF datacnt=9 THEN data<=X“31”;datacnt:=datacnt+1;

      ELSIF datacnt=10 THEN data<=X“30”;datacnt:=datacnt+1;

      ELSIF datacnt=11 THEN data<=X“4d”;datacnt:=datacnt+1;

      ELSIF datacnt=12 THEN data<=X“48”;datacnt:=datacnt+1;

      ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;--顯示 cgrom 中指定的

      ELSIF datacnt=14 THEN data<=X“5a”;datacnt:=datacnt+1;

      ELSE data<=X“20”;datacnt:=0;state <= set_addram2;

      END IF;

      WHEN set_addram2=>rs<='0';--設(shè)置 ADDRAM 地址 2

      data<=“11000000”;state<=diaplay_cgrom;

      WHEN diaplay_cgrom=>rs<='1';

      IF datacnt=0 THEN data<=X“4A”;datacnt:=datacnt+1;

      ELSIF datacnt=1 THEN data<=X“41”;datacnt:=datacnt+1;

      ELSIF datacnt=2 THEN data<=X“43”;datacnt:=datacnt+1;

      ELSIF datacnt=3 THEN data<=X“4B”;datacnt:=datacnt+1;

      ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=7 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=8 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=9 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=10 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=11 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;

      ELSIF datacnt=12 THEN data<=X“20”;datacnt:=datacnt+1;

      ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data2+48,8);datacnt:=datacnt+1;

      ELSIF datacnt=14 THEN data<=CONV_STD_LOGIC_VECTOR(data1+48,8);datacnt:=datacnt+1;

      ELSE data<=X“56”;datacnt:=0;state <= set_addram1;

      END IF;

      END CASE;

      --end if;

      when others =>null;

      end case;

      END IF;end process;END fwm;

      Choice4-1

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      --程序包 entity choice4_1 is

      --定義實(shí)體 port(s:in std_logic_vector(1 downto 0);

      --信號(hào)選擇端口s d1,d2: in std_logic_vector(7 downto 0);--d1d2d3d4分別連接四個(gè)波形發(fā)生模塊

      y: out std_logic_vector(7 downto 0));--定義輸出信號(hào)端口 end choice4_1;architecture behav of choice4_1 is

      --結(jié)構(gòu)體 begin

      process(s)

      begin

      case s is

      --case when語(yǔ)句進(jìn)行信號(hào)位的選擇

      when “01”=>y<=d1;

      when “11”=>y<=d2;

      when others=>null;

      end case;end process;

      --進(jìn)程結(jié)束 end behav;

      --結(jié)構(gòu)體結(jié)束

      fangbo

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fangbo is port(clkf,rf:in std_logic;qf:out std_logic_vector(7 downto 0));end entity;architecture behav of fangbo is signal a:bit;begin process(clkf,rf)--計(jì)數(shù)分頻

      variable cnt:integer range 0 to 256;begin if(rf='0')then a<='0';elsif clkf'event and clkf='1' then if cnt<255 then--進(jìn)行分頻 cnt:=cnt+1;else cnt:=0;a<=not a;end if;end if;end process;process(clkf,a)--信號(hào)輸出 begin if clkf'event and clkf='1' then if a='1' then qf<=“11111111”;else

      qf<=“00000000”;end if;end if;end process;end behav;

      sin

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sin is port(clksin,rsin:in std_logic;da:out BIT_vector(7 downto 0));end entity;architecture behav of sin is signal a:bit;begin process(clksin,rsin)--計(jì)數(shù)分頻 variable cnt:integer range 0 to 256;begin if(rsin='0')then a<='0';elsif clksin'event and clksin='1' then if cnt<4 then--進(jìn)行分頻 cnt:=cnt+1;else cnt:=0;a<=not a;end if;end if;end process;--process(clksin,a)process(a)

      variable tmp:std_logic_vector(7 downto 0);variable d:BIT_vector(7 downto 0);begin--if a='0' then--d:=“00000000”;--elsif clksin'event and clksin='1' then if a'event and a='1' then if tmp=“00111111” then tmp:=“00000000”;else tmp:=tmp+1;end if;case tmp is when “00000000”=>d:=“11111111”;when “00000001”=>d:=“11111110”;when “00000010”=>d:=“11111100”;when “00000011”=>d:=“11111001”;when “00000100”=>d:=“11110101”;when “00000101”=>d:=“11101111”;when “00000110”=>d:=“11101001”;when “00000111”=>d:=“11100001”;when “00001000”=>d:=“11011001”;when “00001001”=>d:=“11001111”;when “00001010”=>d:=“11000101”;when “00001011”=>d:=“10111010”;when “00001100”=>d:=“10101110”;when “00001101”=>d:=“10100010”;when “00001110”=>d:=“10010110”;when “00001111”=>d:=“10001010”;when “00010000”=>d:=“01111100”;when “00010001”=>d:=“01100000”;when “00010010”=>d:=“01100011”;when “00010011”=>d:=“01010111”;when “00010100”=>d:=“01001011”;when “00010101”=>d:=“01000000”;when “00010110”=>d:=“00110101”;when “00010111”=>d:=“00101011”;when “00011000”=>d:=“00100010”;when “00011001”=>d:=“00011010”;when “00011010”=>d:=“00010011”;when “00011011”=>d:=“00001101”;when “00011100”=>d:=“00001000”;when “00011101”=>d:=“00000001”;when “00011110”=>d:=“00000001”;when “00011111”=>d:=“00000000”;when “00100000”=>d:=“00000000”;when “00100001”=>d:=“00000001”;when “00100010”=>d:=“00000001”;when “00100011”=>d:=“00001000”;when “00100100”=>d:=“00001101”;when “00100101”=>d:=“00010011”;when “00100110”=>d:=“00011010”;when “00100111”=>d:=“00100010”;when “00101000”=>d:=“00101011”;when “00101001”=>d:=“00110101”;when “00101010”=>d:=“01000000”;when “00101011”=>d:=“01001011”;when “00101100”=>d:=“01010111”;when “00101101”=>d:=“01100011”;when “00101110”=>d:=“01100000”;when “00101111”=>d:=“01111100”;when “00110000”=>d:=“10001001”;when “00110001”=>d:=“10010110”;when “00110010”=>d:=“10100010”;when “00110011”=>d:=“10101110”;when “00110100”=>d:=“10111010”;when “00110101”=>d:=“11000101”;when “00110110”=>d:=“11011001”;when “00110111”=>d:=“11011001”;when “00111000”=>d:=“11100001”;when “00111001”=>d:=“11101001”;when “00111010”=>d:=“11101111”;when “00111011”=>d:=“11110101”;when “00111100”=>d:=“11111001”;when “00111101”=>d:=“11111100”;when “00111110”=>d:=“11111110”;when “00111111”=>d:=“11111111”;when others=>null;end case;end if;da<=d SRL 1;--幅度調(diào)整 end process;end behav;

      頻率計(jì)

      1、頻率產(chǎn)生器: library ieee;use ieee.std_logic_1164.all;library lpm;use lpm.lpm_components.all;entity lpm_counter0 is port(clock: in std_logic;q: out std_logic_vector(26 downto 0));end lpm_counter0;architecture syn of lpm_counter0 is signal sub_wire0 : std_logic_vector(26 downto 0);component lpm_counter generic(lpm_direction : string;

      lpm_port_updown : string;lpm_type : string;lpm_width : natural);port(clock : in std_logic;

      q : out std_logic_vector(26 downto 0));end component;begin q <= sub_wire0(26 downto 0);lpm_counter_component : lpm_counter generic map(lpm_direction => “up”,lpm_port_updown => “port_unused”,lpm_type => “l(fā)pm_counter”,lpm_width => 27)port map(clock => clock,q => sub_wire0);end syn;

      2、測(cè)頻控制信號(hào)發(fā)生器 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為0.5Hz 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;

      3、有時(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é)果輸出 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為低電平1時(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;4、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;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;

      5、數(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) com: out std_logic_vector(3 downto 0));--輸出數(shù)碼管選擇信號(hào) end ledcom;architecture art of ledcom is signal comclk: std_logic_vector(1 downto 0);begin--comclk同掃描頻率clk循環(huán)變化 process(clk)begin if rising_edge(clk)then if comclk>=3 then

      comclk <=“00”;

      else comclk<=comclk+1;end if;end if;end process;--數(shù)碼管選擇

      process(comclk)begin case comclk is when “00” => com<=“1000”;when “01” => com<=“0100”;when “10” => com<=“0010”;when “11” => com<=“0001”;when others =>NULL;end case;end process;--對(duì)應(yīng)數(shù)碼管的輸出

      process(comclk,datain)begin case comclk is when “11”=> dataout<=datain(3 downto 0);when “10”=> dataout<=datain(7 downto 4);when “01”=> dataout<=datain(11 downto 8);when “00”=> dataout<=datain(15 downto 12);when others =>NULL;end case;end process;end art;

      6、七段數(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(7 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<=“11000000”;--0 when “0001” => d_out<=“11111001”;--1 when “0010” => d_out<=“10100100”;--2 when “0011” => d_out<=“10110000”;--3 when “0100” => d_out<=“10011001”;--4 when “0101” => d_out<=“10010010”;--5 when “0110” => d_out<=“10000010”;--6 when “0111” => d_out<=“11111000”;--7 when “1000” => d_out<=“10000000”;--8 when “1001” => d_out<=“10010000”;--9 when others =>NULL;end case;end process;end art;

      7、元件聲明及例化將各個(gè)元器件依據(jù)設(shè)計(jì)相連 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(3 downto 0));end lx;architecture art of lx is component lpm_counter0--待調(diào)用的頻率生成器端口定義 PORT(clock: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(26 DOWNTO 0));end component;--十進(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;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);com: out std_logic_vector(3 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);u9:lpm_counter0 port map(clk,q(25)=>clk1,q(15)=>clk2,q(17)=>clk3);end art;

      6.結(jié)果顯示

      7.實(shí)習(xí)心得

      第五篇:EDA實(shí)習(xí)報(bào)告

      貴州師范大學(xué)學(xué)生

      實(shí)習(xí)報(bào)告

      科目:EDA實(shí)習(xí)

      專業(yè): 電氣工程及其自動(dòng)化 班級(jí): 10電氣

      姓名: 李啟應(yīng)

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

      實(shí)驗(yàn)項(xiàng)目名稱:數(shù)字電子鐘的設(shè)計(jì) 實(shí)驗(yàn)項(xiàng)目性質(zhì):普通試驗(yàn) 所屬課程名稱:VHDL程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)VHDL語(yǔ)言的一些基本特點(diǎn)。2 掌握VHDL程序的基本結(jié)構(gòu)。3掌握VHDL程序設(shè)計(jì)方法。要能夠用vhdl語(yǔ)言讀懂并編寫(xiě)eda程序,對(duì)eda設(shè)計(jì)的總體框架能有較好的把握,掌握各模塊的調(diào)用方式。

      二、實(shí)驗(yàn)內(nèi)容和要求

      設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,顯示時(shí)(2位),分(2位),秒(2位),具體要求是:具有時(shí)分秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí);數(shù)碼管動(dòng)態(tài)顯示時(shí),分,秒;具有清零功能。

      在軟件工具平臺(tái)上,進(jìn)行VHDL語(yǔ)言的各模塊編程輸入、編譯實(shí)現(xiàn)和仿真驗(yàn)證。

      三、實(shí)驗(yàn)主要儀器設(shè)備和材料

      計(jì)算機(jī),開(kāi)發(fā)環(huán)境MAX-PLUSII,ZY11EDA實(shí)驗(yàn)系統(tǒng),VHDL語(yǔ)言。

      四、實(shí)驗(yàn)方法、步驟及結(jié)果測(cè)試

      1、設(shè)計(jì)思路:

      數(shù)字鐘的主體是計(jì)數(shù)器,它記錄并顯示接收到的秒脈沖個(gè)數(shù),其中秒和分位60進(jìn)制計(jì)數(shù)器,小時(shí)為24進(jìn)制計(jì)數(shù)器,分別產(chǎn)生3位BCD碼。BCD碼經(jīng)譯碼,驅(qū)動(dòng)后接數(shù)碼顯示電路。

      根據(jù)實(shí)驗(yàn)要求,將設(shè)計(jì)分為5個(gè)主要部分,時(shí)功能模塊、分功能模塊、秒功能模塊、掃描儀功能模塊和7段LED功能模塊。在時(shí)、分、秒模塊中,包括復(fù)位和預(yù)置數(shù),其主要思路如下:

      秒鐘的模塊:設(shè)計(jì)一個(gè)60進(jìn)制的計(jì)數(shù)器,以clk為其時(shí)鐘信號(hào),每60個(gè)clk后產(chǎn) 生一個(gè)進(jìn)位信號(hào)CF給分鐘模塊,作為分鐘進(jìn)程的響應(yīng)信號(hào)。秒鐘模塊VHDL程序見(jiàn)附錄1: 仿真波形如下:

      封裝如下圖:

      分鐘的模塊:同理于秒鐘的模塊,設(shè)計(jì)一個(gè)60進(jìn)制的計(jì)數(shù)器,以CFM為其時(shí)鐘信號(hào),每60個(gè)CFM后產(chǎn)生一個(gè)進(jìn)位信號(hào)CFM給小時(shí)模塊,作為小時(shí)模塊進(jìn)程的響應(yīng)信號(hào)。分鐘模塊VHDL程序見(jiàn)附錄二: 仿真波形如下:

      封裝如下圖:

      小時(shí)的模塊:為24進(jìn)制計(jì)數(shù)器,在分的進(jìn)位信號(hào)CFM的激發(fā)下計(jì)數(shù),從0到23的時(shí)候產(chǎn)生一個(gè)信號(hào)CFH,全部清0,重新開(kāi)始計(jì)時(shí)。小時(shí)模塊VHDL程序見(jiàn)附錄三: 仿真波形如下:

      封裝如下圖:

      掃描儀模塊:在掃描儀內(nèi)部,有一個(gè)3-8譯碼器的片選信號(hào),當(dāng)3-8譯碼器的片選信號(hào)為000時(shí),片選信號(hào)選中7段LED模塊中的秒的個(gè)位,當(dāng)3-8譯碼器的片選信號(hào)為001時(shí),片選信號(hào)選中7段LED模塊中的秒的十位,當(dāng)3-8譯碼器的片選信號(hào)為010時(shí),片選信號(hào)選中7段LED模塊中的分的個(gè)位,當(dāng)3-8譯碼器的片選信號(hào)為011時(shí),片選信號(hào)選中7段LED模塊中的分的十位,當(dāng)3-8譯碼器的片選信號(hào)為100時(shí),片選信號(hào)選中7段LED模塊中的時(shí)的個(gè)位,當(dāng)3-8譯碼器的片選信號(hào)為101時(shí),片選信號(hào)選中7段LED模塊中的時(shí)的十位,就這樣動(dòng)態(tài)掃描,當(dāng)輸入的時(shí)鐘信號(hào)頻率很高的時(shí)候,就形成了我們的時(shí)鐘。

      掃描儀模塊VHDL程序見(jiàn)附錄四: 仿真波形如下:

      封裝如下圖:

      7段LED模塊:根據(jù)動(dòng)態(tài)掃描儀的片選信號(hào)來(lái)依次點(diǎn)亮我們所需的時(shí)間。7段LED模塊VHDL程序見(jiàn)附錄五: 仿真波形如下:

      封裝如下圖: 綜合以上5大模塊,把它們用線連接起來(lái)就得到我們的總的電路圖:如下圖所示: 其工作原理為:掃描儀3-8譯碼器的片選信號(hào)根據(jù)時(shí)分秒的輸入選中7段LED模塊,然后再由時(shí)分秒中產(chǎn)生的3位BCD碼來(lái)輸出秒的個(gè)位,十位、時(shí)的個(gè)位,十位、小時(shí)的個(gè)位,十位。

      4.總結(jié):

      在實(shí)驗(yàn)這兩周的時(shí)間里,我們做過(guò)DC觸發(fā)器、DQ觸發(fā)器、3-8譯碼器、二選一電路和四選一電路等,最后綜合做了數(shù)字時(shí)鐘電路,通過(guò)這次實(shí)習(xí),我對(duì)用VHDL來(lái)編程有了更深的了解,在要編程的時(shí)候,我學(xué)會(huì)了分模塊進(jìn)行,因?yàn)橐婚_(kāi)始的時(shí)候設(shè)計(jì)一個(gè)時(shí)鐘系統(tǒng)比較麻煩,沒(méi)有分模塊之前總是會(huì)有差錯(cuò),而之后思路就會(huì)比較清晰,有明確的方案,在對(duì)照書(shū)本里的編程規(guī)則與語(yǔ)句,就完成了這次的設(shè)計(jì),總之就是獲益良多。附錄1:秒鐘模塊VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second is port(clk,reset:in std_logic;cf:out std_logic;second1_out:out std_logic_vector(3 downto 0);second10_out:out std_logic_vector(2 downto 0));end entity second;architecture one of second is signal second1n:std_logic_vector(3 downto 0);signal second10n:std_logic_vector(2 downto 0);begin second1_out<=second1n;second10_out<=second10n;process(clk,reset)begin if(reset='1')then second1n<=“0000”;second10n<=“000”;elsif(clk' event and clk='1')then if(second1n=“1001”)then 7 second1n<=“0000”;if(second10n=“101”)then second10n<=“000”;cf<='1';else second10n<=second10n+1;end if;else second1n<=second1n+1;end if;end if;end process;end architecture one;附錄二:分鐘模塊VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute is port(clk,reset:in std_logic;cf:out std_logic;minute1_out:out std_logic_vector(3 downto 0);minute10_out:out std_logic_vector(2 downto 0));end entity minute;architecture one of minute is signal minute1n:std_logic_vector(3 downto 0);signal minute10n:std_logic_vector(2 downto 0);begin minute1_out<=minute1n;minute10_out<=minute10n;process(clk,reset)begin if(reset='1')then minute1n<=“0000”;minute10n<=“000”;elsif(clk' event and clk='1')then if(minute1n=“1001”)then minute1n<=“0000”;if(minute10n=“101”)then minute10n<=“000”;cf<='1';else minute10n<=minute10n+1;end if;else minute1n<=minute1n+1;end if;end if;end process;end architecture one;附錄三:小時(shí)模塊VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour is port(clk,reset:in std_logic;hour1_out:out std_logic_vector(3 downto 0);hour10_out:out std_logic_vector(1 downto 0));end entity hour;architecture one of hour is signal hour1n:std_logic_vector(3 downto 0);signal hour10n:std_logic_vector(1 downto 0);begin hour1_out<=hour1n;hour10_out<=hour10n;process(clk,reset)begin if(reset='1')then hour1n<=“0000”;hour10n<=“00”;elsif(clk' event and clk='1')then if(hour1n=“1001”or(hour1n=“0011”and hour10n=“0010”))then hour1n<=“0000”;if(hour10n=“10”)then hour10n<=“00”;else hour10n<=hour10n+1;end if;else hour1n<=hour1n+1;end if;end if;end process;end architecture one;附錄四:掃描儀模塊VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity saomiaoyi is port(clk:in std_logic;reset:in std_logic;second1,minute1,hour1:in std_logic_vector(3 downto 0);second_10,minute_10:in std_logic_vector(2 downto 0);hour_10:in std_logic_vector(1 downto 0);dataout:out std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0));end entity saomiaoyi;architecture one of saomiaoyi is signal count:std_logic_vector(2 downto 0);begin sel<=count;process(clk,reset)begin if(reset='1')then dataout<=“0000”;elsif(clk'event and clk='1')then if count>=“101” then count<=“000”;else count<=count+1;end if;end if;case count is when“000”=>dataout<=second1;when“001”=>dataout<='0'& second_10;when“010”=>dataout<=minute1;when“011”=>dataout<='0'& minute_10;when“100”=>dataout<=hour1;when others =>dataout<=“00”& hour_10;end case;end process;end architecture one;

      附錄五:7段LED模塊VHDL程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY led_7 IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END entity led_7;ARCHITECTURE one OF led_7 IS BEGIN PROCESS(A)BEGIN CASE A(3 DOWNTO 0)IS WHEN “0000” => LED7S <= “0111111”;--X“3F” 0 WHEN “0001” => LED7S <= “0000110”;--X“06” 1 WHEN “0010” => LED7S <= “1011011”;--X“5B” 2 WHEN “0011” => LED7S <= “1001111”;--X“4F” 3 WHEN “0100” => LED7S <= “1100110”;--X“66” 4 WHEN “0101” => LED7S <= “1101101”;--X“6D” 5 WHEN “0110” => LED7S <= “1111101”;--X“7D” 6 WHEN “0111” => LED7S <= “0000111”;--X“07” 7 WHEN “1000” => LED7S <= “1111111”;--X“7F” 8 WHEN “1001” => LED7S <= “1101111”;--X“6F” 9 WHEN OTHERS => NULL;END CASE;END PROCESS;END ARCHITECTURE one;

      下載EDA綜合實(shí)驗(yàn)設(shè)計(jì)報(bào)告word格式文檔
      下載EDA綜合實(shí)驗(yàn)設(shè)計(jì)報(bào)告.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)范文推薦

        EDA實(shí)習(xí)報(bào)告

        電子設(shè)計(jì)自動(dòng)化技術(shù)EDA實(shí)習(xí)報(bào)告 目錄 引 言 (1)EDA簡(jiǎn)介 (2)EDA的設(shè)計(jì)流程 第一章實(shí)訓(xùn)目的 第二章 實(shí)訓(xùn)內(nèi)容 一、EDA 開(kāi)發(fā)軟件Max+plus II 或Quartus II 1.1基本原理 1.2條件......

        實(shí)驗(yàn)設(shè)計(jì)報(bào)告心得體會(huì)大全[5篇材料]

        部分學(xué)生的反應(yīng) 實(shí)驗(yàn)心得體會(huì) 這個(gè)學(xué)期我們學(xué)習(xí)了測(cè)試技術(shù)這門課程,它是一門綜合應(yīng)用相關(guān)課程的知識(shí)和內(nèi)容來(lái)解決科研、生產(chǎn)、國(guó)防建設(shè)乃至人類生活所面臨的測(cè)試問(wèn)題的課程。......

        實(shí)驗(yàn)設(shè)計(jì)報(bào)告的各種心得體會(huì)

        實(shí)訓(xùn)心得體會(huì): 為期一周的高頻電子線路實(shí)訓(xùn)就這樣告一段落了,我們通過(guò)這一周緊鑼密鼓的實(shí)訓(xùn),我們對(duì)于通信電子電路的這門課程又有了更直觀更深刻的了解。 首先我們?cè)趯?shí)訓(xùn)的第一......

        網(wǎng)絡(luò)營(yíng)銷教學(xué)實(shí)驗(yàn)2_綜合實(shí)驗(yàn)設(shè)計(jì)

        網(wǎng)絡(luò)營(yíng)銷教學(xué)實(shí)驗(yàn)二、網(wǎng)絡(luò)營(yíng)銷管理綜合應(yīng)用 1.實(shí)驗(yàn)?zāi)康?在全部課程授課即將完成之前,為了使大家增加對(duì)網(wǎng)絡(luò)營(yíng)銷知識(shí)的綜合應(yīng)用能力,重點(diǎn)突出對(duì)在線市場(chǎng)調(diào)研、企業(yè)網(wǎng)站策劃及......

        EDA萬(wàn)年歷課程設(shè)計(jì)報(bào)告

        《EDA技術(shù)及其應(yīng)用》 實(shí) 訓(xùn) 報(bào) 告 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 目 錄 一 設(shè)計(jì)要求 ...................................... 2 1.0 設(shè)計(jì)目的及意義 ...........................

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

        時(shí) 間 學(xué) 院 專業(yè)班級(jí) 姓 名 學(xué) 號(hào) 教 師 成 績(jī) 北京科技大學(xué)——自1105班——王瑋——41151133 EDA課程設(shè)計(jì)報(bào)告 2013年12月 北京科技大學(xué)——自1105班——王瑋——4115......

        EDA實(shí)訓(xùn)報(bào)告

        《EDA技術(shù)及其應(yīng)用》 實(shí) 訓(xùn) 報(bào) 告 班 級(jí) 08級(jí)電子信息工程技術(shù)2班 姓 名 學(xué) 號(hào) 指導(dǎo)教師 2010年 5 月 26 日 鄭州信息科技職業(yè)學(xué)院 機(jī)械電子工程系 目錄 一、 實(shí)訓(xùn)名稱??......

        心理學(xué)實(shí)驗(yàn)設(shè)計(jì)

        字體大小對(duì)不同自戀水平大學(xué)生詞匯分類任務(wù)的影響 摘要 本研究從認(rèn)知加工的角度對(duì)自戀者的特征進(jìn)行研究,采用自我相關(guān)詞匯、他人相關(guān)詞匯、積極詞匯、消極詞匯作為實(shí)驗(yàn)材料,通......