中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      EDA技術(shù)與應(yīng)用課后習(xí)題答案

      時間:2024-08-10 21:32:54 EDA技術(shù)培訓(xùn) 我要投稿

      EDA技術(shù)與應(yīng)用課后習(xí)題答案

        第一章

        1-1 EDA技術(shù)與ASIC設(shè)計和FPGA開發(fā)有什么關(guān)系? P3~4

        答:利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的最后目標(biāo)是完成專用集成電路ASIC的設(shè)計和實現(xiàn);FPGA和CPLD是實現(xiàn)這一途徑的主流器件。FPGA和CPLD通常也被稱為可編程專用IC,或可編程ASIC。FPGA和CPLD的應(yīng)用是EDA技術(shù)有機融合軟硬件電子設(shè)計技術(shù)、SoC(片上系統(tǒng))和ASIC設(shè)計,以及對自動設(shè)計與自動實現(xiàn)最典型的詮釋。

        1-2與軟件描述語言相比,VHDL有什么特點? P6

        答:編譯器將軟件程序翻譯成基于某種特定CPU的機器代碼,這種代碼僅限于這種CPU而不能移植,并且機器代碼不代表硬件結(jié)構(gòu),更不能改變CPU的硬件結(jié)構(gòu),只能被動地為其特定的硬件電路結(jié)構(gòu)所利用。綜合器將VHDL程序轉(zhuǎn)化的目標(biāo)是底層的電路結(jié)構(gòu)網(wǎng)表文件,這種滿足VHDL設(shè)計程序功能描述的電路結(jié)構(gòu),不依賴于任何特定硬件環(huán)境;具有相對獨立性。綜合器在將VHDL(硬件描述語言)表達的電路功能轉(zhuǎn)化成具體的電路結(jié)構(gòu)網(wǎng)表過程中,具有明顯的能動性和創(chuàng)造性,它不是機械的一一對應(yīng)式的“翻譯”,而是根據(jù)設(shè)計庫、工藝庫以及預(yù)先設(shè)置的各類約束條件,選擇最優(yōu)的方式完成電路結(jié)構(gòu)的設(shè)計。

        l-3什么是綜合?有哪些類型?綜合在電子設(shè)計自動化中的地位是什么? P5

        什么是綜合? 答:在電子設(shè)計領(lǐng)域中綜合的概念可以表示為:將用行為和功能層次表達的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實現(xiàn)的模塊組合裝配的過程。

        有哪些類型? 答:(1)從自然語言轉(zhuǎn)換到VHDL語言算法表示,即自然語言綜合。(2)從算法表示轉(zhuǎn)換到寄存器傳輸級(RegisterTransport Level,RTL),即從行為域到結(jié)構(gòu)域的綜合,即行為綜合。(3)從RTL級表示轉(zhuǎn)換到邏輯門(包括觸發(fā)器)的表示,即邏輯綜合。(4)從邏輯門表示轉(zhuǎn)換到版圖表示(ASIC設(shè)計),或轉(zhuǎn)換到FPGA的配置網(wǎng)表文件,可稱為版圖綜合或結(jié)構(gòu)綜合。

        綜合在電子設(shè)計自動化中的地位是什么? 答:是核心地位(見圖1-3)。綜合器具有更復(fù)雜的工作環(huán)境,綜合器在接受VHDL程序并準(zhǔn)備對其綜合前,必須獲得與最終實現(xiàn)設(shè)計電路硬件特征相關(guān)的工藝庫信息,以及獲得優(yōu)化綜合的諸多約束條件信息;根據(jù)工藝庫和約束條件信息,將VHDL程序轉(zhuǎn)化成電路實現(xiàn)的相關(guān)信息。

        1-4在EDA技術(shù)中,自頂向下的設(shè)計方法的重要意義是什么? P7~10

        答:在EDA技術(shù)應(yīng)用中,自頂向下的設(shè)計方法,就是在整個設(shè)計流程中各設(shè)計環(huán)節(jié)逐步求精的過程。

        1-5 IP在EDA技術(shù)的應(yīng)用和發(fā)展中的意義是什么? P11~12

        答:IP核具有規(guī)范的接口協(xié)議,良好的可移植與可測試性,為系統(tǒng)開發(fā)提供了可靠的保證。

        第二章

        2-1 敘述EDA的FPGA/CPLD設(shè)計流程。 P13~16

        答:1.設(shè)計輸入(原理圖/HDL文本編輯);2.綜合;3.適配;4.時序仿真與功能仿真;5.編程下載;6.硬件測試。

        2-2 IP是什么?IP與EDA技術(shù)的關(guān)系是什么? P24~26

        IP是什么? 答:IP是知識產(chǎn)權(quán)核或知識產(chǎn)權(quán)模塊,用于ASIC或FPGA/CPLD中的預(yù)先設(shè)計好的電路功能模塊。

        IP與EDA技術(shù)的關(guān)系是什么? 答:IP在EDA技術(shù)開發(fā)中具有十分重要的地位;與EDA技術(shù)的關(guān)系分有軟IP、固IP、硬IP:軟IP是用VHDL等硬件描述語言描述的功能塊,并不涉及用什么具體電路元件實現(xiàn)這些功能;軟IP通常是以硬件描述語言HDL源文件的形式出現(xiàn)。固IP是完成了綜合的功能塊,具有較大的設(shè)計深度,以網(wǎng)表文件的形式提交客戶使用。硬IP提供設(shè)計的最終階段產(chǎn)品:掩模。

        2-3 敘述ASIC的設(shè)計方法。 P18~19

        答:ASIC設(shè)計方法,按版圖結(jié)構(gòu)及制造方法分有半定制(Semi-custom)和全定制(Full-custom)兩種實現(xiàn)方法。

        全定制方法是一種基于晶體管級的,手工設(shè)計版圖的制造方法。

        半定制法是一種約束性設(shè)計方式,約束的目的是簡化設(shè)計,縮短設(shè)計周期,降低設(shè)計成本,提高設(shè)計正確率。半定制法按邏輯實現(xiàn)的方式不同,可再分為門陣列法、標(biāo)準(zhǔn)單元法和可編程邏輯器件法。

        2-4 FPGA/CPLD在ASIC設(shè)計中有什么用途? P16,18

        答:FPGA/CPLD在ASIC設(shè)計中,屬于可編程ASIC的邏輯器件;使設(shè)計效率大為提高,上市的時間大為縮短。

        2-5 簡述在基于FPGA/CPLD的EDA設(shè)計流程中所涉及的EDA工具,及其在整個流程中的作用。 P19~23

        答:基于FPGA/CPLD的EDA設(shè)計流程中所涉及的EDA工具有:設(shè)計輸入編輯器(作用:接受不同的設(shè)計輸入表達方式,如原理圖輸入方式、狀態(tài)圖輸入方式、波形輸入方式以及HDL的文本輸入方式。);HDL綜合器(作用:HDL綜合器根據(jù)工藝庫和約束條件信息,將設(shè)計輸入編輯器提供的信息轉(zhuǎn)化為目標(biāo)器件硬件結(jié)構(gòu)細節(jié)的信息,并在數(shù)字電路設(shè)計技術(shù)、化簡優(yōu)化算法以及計算機軟件等復(fù)雜結(jié)體進行優(yōu)化處理);仿真器(作用:行為模型的表達、電子系統(tǒng)的建模、邏輯電路的驗證及門級系統(tǒng)的測試);適配器(作用:完成目標(biāo)系統(tǒng)在器件上的布局和布線);下載器(作用:把設(shè)計結(jié)果信息下載到對應(yīng)的實際器件,實現(xiàn)硬件設(shè)計)。

        第三章

        3-1 OLMC(輸出邏輯宏單元)有何功能?說明GAL是怎樣實現(xiàn)可編程組合電路與時序電路的。 P34~36

        OLMC有何功能? 答:OLMC單元設(shè)有多種組態(tài),可配置成專用組合輸出、專用輸入、組合輸出雙向口、寄存器輸出、寄存器輸出雙向口等。

        說明GAL是怎樣實現(xiàn)可編程組合電路與時序電路的? 答:GAL(通用陣列邏輯器件)是通過對其中的OLMC(輸出邏輯宏單元)的編程和三種模式配置(寄存器模式、復(fù)合模式、簡單模式),實現(xiàn)組合電路與時序電路設(shè)計的。

        3-2 什么是基于乘積項的可編程邏輯結(jié)構(gòu)? P33~34,40

        答:GAL、CPLD之類都是基于乘積項的可編程結(jié)構(gòu);即包含有可編程與陣列和固定的或陣列的PAL(可編程陣列邏輯)器件構(gòu)成。

        3-3 什么是基于查找表的可編程邏輯結(jié)構(gòu)? P40~41

        答:FPGA(現(xiàn)場可編程門陣列)是基于查找表的可編程邏輯結(jié)構(gòu)。

        3-4 FPGA系列器件中的LAB有何作用? P43~45

        答:FPGA(Cyclone/Cyclone II)系列器件主要由邏輯陣列塊LAB、嵌入式存儲器塊(EAB)、I/O單元、嵌入式硬件乘法器和PLL等模塊構(gòu)成;其中LAB(邏輯陣列塊)由一系列相鄰的LE(邏輯單元)構(gòu)成的;FPGA可編程資源主要來自邏輯陣列塊LAB。

        3-5 與傳統(tǒng)的測試技術(shù)相比,邊界掃描技術(shù)有何優(yōu)點? P47~50

        答:使用BST(邊界掃描測試)規(guī)范測試,不必使用物理探針,可在器件正常工作時在系統(tǒng)捕獲測量的功能數(shù)據(jù)。克服傳統(tǒng)的外探針測試法和“針床”夾具測試法來無法對IC內(nèi)部節(jié)點無法測試的難題。

        3-6 解釋編程與配置這兩個概念。 P58

        答:編程:基于電可擦除存儲單元的EEPROM或Flash技術(shù)。CPLD一股使用此技術(shù)進行編程。CPLD被編程后改變了電可擦除存儲單元中的信息,掉電后可保存。電可擦除編程工藝的優(yōu)點是編程后信息不會因掉電而丟失,但編程次數(shù)有限,編程的速度不快。

        配置:基于SRAM查找表的編程單元。編程信息是保存在SRAM中的,SRAM在掉電后編程信息立即丟失,在下次上電后,還需要重新載入編程信息。大部分FPGA采用該種編程工藝。該類器件的編程一般稱為配置。對于SRAM型FPGA來說,配置次數(shù)無限,且速度快;在加電時可隨時更改邏輯;下載信息的保密性也不如電可擦除的編程。

        3-7 請參閱相關(guān)資料,并回答問題:按本章給出的歸類方式,將基于乘積項的可編程邏輯結(jié)構(gòu)的PLD器件歸類為CPLD;將基于查找表的可編程邏輯結(jié)構(gòu)的PLD器什歸類為FPGA,那么,APEX系列屬于什么類型PLD器件? MAX II系列又屬于什么類型的PLD器件?為什么? P54~56

        答:APEX(Advanced Logic Element Matrix)系列屬于FPGA類型PLD器件;編程信息存于SRAM中。MAX II系列屬于CPLD類型的PLD器件;編程信息存于EEPROM中。

        第四章

        4-1:畫出與下例實體描述對應(yīng)的原理圖符號元件:

        ENTITY buf3s IS -- 實體1:三態(tài)緩沖器

        PORT (input : IN STD_LOGIC ; -- 輸入端

        enable : IN STD_LOGIC ; -- 使能端

        output : OUT STD_LOGIC ) ; -- 輸出端

        END buf3x ;

        ENTITY mux21 IS --實體2: 2選1多路選擇器

        PORT (in0, in1, sel : IN STD_LOGIC;

        output : OUT STD_LOGIC);

        4-1.答案

        4-2. 圖3-30所示的是4選1多路選擇器,試分別用IF_THEN語句和CASE語句的表達方式寫出此電路的VHDL程序。選擇控制的信號s1和s0的數(shù)據(jù)類型為STD_LOGIC_VECTOR;當(dāng)s1='0',s0='0';s1='0',s0='1';s1='1',s0='0'和 s1='1',s0='1'分別執(zhí)行y<=a、y<=b、y<=c、y<=d。

        4-2.答案

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MUX41 IS

        PORT(s:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --輸入選擇信號

        a,b,c,d:IN STD_LOGIC; --輸入信號

        y:OUT STD_LOGIC);--輸出端

        END ENTITY;

        ARCHITECTURE ART OF MUX41 IS

        BEGIN

        PROCESS(s)

        BEGIN

        IF (S="00") THEN y<=a;

        ELSIF (S="01") TH EN y<=b;

        ELSIF (S="10") TH EN y<=c;

        ELSIF (S="11") TH EN y<=d;

        ELSE y<=NULL;

        END IF;

        EDN PROCESS;

        END ART;

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MUX41 IS

        PORT(s:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --輸入選擇信號

        a,b,c,d:IN STD_LOGIC; --輸入信號

        y:OUT STD_LOGIC);--輸出端

        END MUX41;

        ARCHITECTURE ART OF MUX41 IS

        BEGIN

        PROCESS(s)

        BEGIN

        CASE s IS

        WHEN “00” => y<=a;

        WHEN “01” => y<=b;

        WHEN “10” => y<=c;

        WHEN “11” => y<=d;

        WHEN OTHERS =>NULL;

        END CASE;

        END PROCESS;

        END ART;

        4-3. 圖3-31所示的是雙2選1多路選擇器構(gòu)成的電路MUXK,對于其中MUX21A,當(dāng)s='0'和'1'時,分別有y<='a'和y<='b'。試在一個結(jié)構(gòu)體中用兩個進程來表達此電路,每個進程中用CASE語句描述一個2選1多路選擇器MUX21A。

        4-3.答案

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MUX221 IS

        PORT(a1,a2,a3:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --輸入信號

        s0,s1:IN STD_LOGIC;

        outy:OUT STD_LOGIC);--輸出端

        END ENTITY;

        ARCHITECTURE ONE OF MUX221 IS

        SIGNAL tmp : STD_LOGIC;

        BEGIN

        PR01:PROCESS(s0)

        BEGIN

        IF s0=”0” THEN tmp<=a2;

        ELSE tmp<=a3;

        END IF;

        END PROCESS;

        PR02:PROCESS(s1)

        BEGIN

        IF s1=”0” THEN outy<=a1;

        ELSE outy<=tmp;

        END IF;

        END PROCESS;

        END ARCHITECTURE ONE;

        END CASE;

        4-4.下圖是一個含有上升沿觸發(fā)的D觸發(fā)器的時序電路,試寫出此電路的VHDL設(shè)計文件。

        4-4.答案

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MULTI IS

        PORT(CL:IN STD_LOGIC; --輸入選擇信號

        CLK0:IN STD_LOGIC; --輸入信號

        OUT1:OUT STD_LOGIC);--輸出端

        END ENTITY;

        ARCHITECTURE ONE OF MULTI IS

        SIGNAL Q : STD_LOGIC;

        BEGIN

        PR01: PROCESS(CLK0)

        BEGIN

        IF CLK ‘EVENT AND CLK=’1’

        THEN Q<=NOT(CL OR Q);ELSE

        END IF;

        END PROCESS;

        PR02: PROCESS(CLK0)

        BEGIN

        OUT1<=Q;

        END PROCESS;

        END ARCHITECTURE ONE;

        END PROCESS;

        4-5.給出1位全減器的VHDL描述。要求:

        (1) 首先設(shè)計1位半減器,然后用例化語句將它們連接起來,圖3-32中h_suber是半減器,diff是輸出差,s_out是借位輸出,sub_in是借位輸入。

        (2) 以1位全減器為基本硬件,構(gòu)成串行借位的8位減法器,要求用例化語句來完成此項設(shè)計(減法運算是 x – y - sun_in = diffr)

        4-5.答案

        底層文件1:or2a.VHD實現(xiàn)或門操作

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        USE IEEE.STD_LOGIC_UNSIGNED.ALL;

        ENTITY or2a IS

        PORT(a,b:IN STD_LOGIC;

        c:OUT STD_LOGIC);

        END ENTITY or2a;

        ARCHITECTURE one OF or2a IS

        BEGIN

        c <= a OR b;

        END ARCHITECTURE one;

        底層文件2:h_subber.VHD實現(xiàn)一位半減器

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        USE IEEE.STD_LOGIC_UNSIGNED.ALL;

        ENTITY h_subber IS

        PORT(x,y:IN STD_LOGIC;

        diff,s_out::OUT STD_LOGIC);

        END ENTITY h_subber;

        ARCHITECTURE ONE OF h_subber IS

        SIGNAL xyz: STD_LOGIC_VECTOR(1 DOWNTO 0);

        BEGIN

        xyz <= x & y;

        PROCESS(xyz)

        BEGIN

        CASE xyz IS

        WHEN "00" => diff<='0';s_out<='0';

        WHEN "01" => diff<='1';s_out<='1';

        WHEN "10" => diff<='1';s_out<='0';

        WHEN "11" => diff<='0';s_out<='0';

        WHEN OTHERS => NULL;

        END CASE;

        END PROCESS;

        END ARCHITECTURE ONE;

        頂層文件:f_subber.VHD實現(xiàn)一位全減器

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        USE IEEE.STD_LOGIC_UNSIGNED.ALL;

        ENTITY f_subber IS

        PORT(x,y,sub_in:IN STD_LOGIC;

        diffr,sub_out:OUT STD_LOGIC);

        END ENTITY f_subber;

        ARCHITECTURE ONE OF f_subber IS

        COMPONENT h_subber

        PORT(x,y:IN STD_LOGIC;

        diff,S_out:OUT STD_LOGIC);

        END COMPONENT;

        COMPONENT or2a

        PORT(a,b:IN STD_LOGIC;

        c:OUT STD_LOGIC);

        END COMPONENT;

        SIGNAL d,e,f: STD_LOGIC;

        BEGIN

        u1: h_subber PORT MAP(x=>x,y=>y,diff=>d,s_out=>e);

        u2: h_subber PORT MAP(x=>d,y=>sub_in,diff=>diffr,s_out=>f);

        u3: or2a PORT MAP(a=>f,b=>e,c=>sub_out);

        END ARCHITECTURE ONE;

        END ARCHITECTURE ART;

        4-6.根據(jù)下圖,寫出頂層文件MX3256.VHD的VHDL設(shè)計文件。

        4-6.答案

        MAX3256頂層文件

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        USE IEEE.STD_LOGIC_UNSIGNED.ALL;

        ENTITY MAX3256 IS

        PORT (INA,INB,INCK: IN STD_LOGIC;

        INC: IN STD_LOGIC;

        E,OUT:OUT STD_LOGIC);

        END ENTITY MAX3256;

        ARCHITECTURE ONE OF MAX3256 IS

        COMPONENT LK35 --調(diào)用LK35聲明語句

        PORT(A1,A2:IN STD_LOGIC;

        CLK:IN STD_LOGIC;

        Q1,Q2:OUT STD_LOGIC);

        END COMPONENT;

        COMPONENT D --調(diào)用D觸發(fā)器聲明語句

        PORT(D,C:IN STD_LOGIC;

        CLK:IN STD_LOGIC;

        Q:OUT STD_LOGIC);

        END COMPONENT;

        COMPONENT MUX21--調(diào)用二選一選擇器聲明語句

        PORT(B,A:IN STD_LOGIC;

        S:IN STD_LOGIC;

        C:OUT STD_LOGIC);

        END COMPONENT;

        SIGNAL AA,BB,CC,DD: STD_LOGIC;

        BEGIN

        u1: LK35 PORT MAP(A1=>INA,A2=>INB,CLK=INCK, Q1=>AA,Q2=>BB);

        u2: D PORT MAP(D=>BB;CLK=>INCK,C=>INC,Q=>CC);

        u3: LK35 PORT MAP (A1=>BB,A2=>CC,CLK=INCK, Q1=>DD,Q2=>OUT1);

        u4: MUX21 PORT MAP (B=>AA,A=>DD,S=>BB,C=>E);

        END ARCHITECTURE ONE;

        設(shè)計含有異步清零和計數(shù)使能的16位二進制加減可控計數(shù)器。

        4-7.答案:

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        USE IEEE.STD_LOGIC_UNSIGNED.ALL;

        ENTITY CNT16 IS

        PORT(CLK,RST,EN:IN STD_LOGIC;

        CHOOSE:IN BIT;

        SETDATA:BUFFER INTEGER RANCE 65535 DOWNTO 0;

        COUT: BUFFER INTEGER RANCE 65535 DOWNTO 0);

        END CNT16;

        ARCHITECTURE ONE OF CNT16 IS

        BEGIN

        PROCESS(CLK,RST,SDATA)

        VARIABLE QI:STD_LOGIC_VECTOR(65535 DOWNTO 0);

        BEGIN

        IF RST='1' THEN --計數(shù)器異步復(fù)位

        QI:=(OTHERS=>'0');

        ELSIF SET=’1’ THEN--計數(shù)器一步置位

        QI:=SETDATA;

        ELSIF CLK'EVENT AND CLK='1' THEN --檢測時鐘上升沿

        IF EN=’1’ THEN –檢測是否允許計數(shù)

        IF CHOOSE=’1’ THEN --選擇加法計數(shù)

        QI:=QI+1; --計數(shù)器加一

        ELSE QI=QI-1; --計數(shù)器加一

        END IF;

        END IF;

        END IF;

        COUT<=QI;--將計數(shù)值向端口輸出

        END PROCESS;

        END ONE;

        第五章

        5-1 歸納利用Quartus II進行VHDL文本輸入設(shè)計的流程:從文件輸入一直到SignalTap II測試。P95~P115

        答:1 建立工作庫文件夾和編輯設(shè)計文件;2 創(chuàng)建工程;3 編譯前設(shè)置;4 全程編譯;5 時序仿真;6 引腳鎖定;7 配置文件下載;8 打開SignalTap II編輯窗口;9 調(diào)入SignalTap II的待測信號;10 SignalTap II參數(shù)設(shè)置;11 SignalTap II參數(shù)設(shè)置文件存盤;12 帶有SignalTap II測試信息的編譯下載;13 啟動SignalTap II進行采樣與分析;14 SignalTap II的其他設(shè)置和控制方法。

        5.6

        5.7

        5.8

        5.9

        5.10

        5.12

        5.13

        5.14

        第六章

        6-1 什么是固有延時?什么是慣性延時?P150~151

        答:固有延時(Inertial Delay)也稱為慣性延時,固有延時的主要物理機制是分布電容效應(yīng)。

        6-2 δ是什么?在VHDL中,δ有什么用處?P152

        δ是什么? 答:在VHDL仿真和綜合器中,默認(rèn)的固有延時量(它在數(shù)學(xué)上是一個無窮小量),被稱為δ延時。

        在VHDL中,δ有什么用處?答:在VHDL信號賦值中未給出固有延時情況下,VHDL仿真器和綜合器將自動為系統(tǒng)中的信號賦值配置一足夠小而又能滿足邏輯排序的延時量δ;使并行語句和順序語句中的并列賦值邏輯得以正確執(zhí)行。

        6-4 說明信號和變量的功能特點,以及應(yīng)用上的異同點。P128~P129

        答:變量:變量是一個局部量,只能在進程和子程序中使用。變量不能將信息帶出對它做出定義的當(dāng)前結(jié)構(gòu)。變量的賦值是一種理想化的數(shù)據(jù)傳輸,是立即發(fā)生的,不存在任何延時行為。變量的主要作用是在進程中作為臨時的數(shù)據(jù)存儲單元。

        信號:信號是描述硬件系統(tǒng)的基本數(shù)據(jù)對象,其性質(zhì)類似于連接線;可作為設(shè)計實體中并行語句模塊間的信息交流通道。信號不但可以容納當(dāng)前值,也可以保持歷史值;與觸發(fā)器的記憶功能有很好的對應(yīng)關(guān)系。

        6-5 在VHDL設(shè)計中,給時序電路清零(復(fù)位)有兩種力方法,它們是什么?

        解:設(shè)Q定義成信號,一種方法:Q<=“000…000”; 其中“000…000”反映出信號Q的位寬度。第二種方法:Q<=(OTHERS=>‘0’);其中OTHERS=>‘0’不需要給出信號Q的位寬度,即可對Q清零。

        6-6 哪一種復(fù)位方法必須將復(fù)位信號放在敏感信號表中?給出這兩種電路的VHDL描述。

        解:邊沿觸發(fā)復(fù)位信號要將復(fù)位信號放在進程的敏感信號表中。

        (1)邊沿觸發(fā)復(fù)位信號

        …………………….

        ARCHITECTURE bhv 0F DFF3 IS

        SIGNAL QQ:STD_LOGIC;

        BEGIN

        PROCESS(RST)

        BEGIN

        IF RST’EVENT AND RST=‘1' THEN

        QQ<=(Others=>‘0’);

        END IF;

        END PROCESS;

        Q1<=QQ;

        END;

        ………………………

        (2)電平觸發(fā)復(fù)位信號

        …………………….

        ARCHITECTURE bhv 0F DFF3 IS

        SIGNAL QQ:STD_LOGIC;

        BEGIN

        PROCESS(CLK)

        BEGIN

        IF RST=‘1' THEN

        QQ<=(Others=>‘0’);

        END IF;

        END PROCESS;

        Q1<=QQ;

        END;

        ………………………

        6-7 什么是重載函數(shù)?重載算符有何用處?如何調(diào)用重載算符函數(shù)?

        答:(1)什么是重載函數(shù)? 根據(jù)操作對象變換處理功能。

        (2)重載算符有何用處? 用于兩個不同類型的操作數(shù)據(jù)自動轉(zhuǎn)換成同種數(shù)據(jù)類型,并進行運算處理。

        (3)如何調(diào)用重載算符函數(shù)?采用隱式方式調(diào)用,無需事先聲明。

        6-8 判斷下面三個程序中是否有錯誤,若有則指出錯誤所在,并給出完整程序。

        程序1:

        Signal A,EN : std_logic;

        …………………

        Process(A, EN)

        Variable B: std_log ic;

        Begin

        if EN=l then B<=A; end if; --將“B<=A”改成“B:=A”

        end process;

        程序2:

        Architecture one of sample is

        variable a,b,c:integer;

        begin

        c<=a+b; --將“c<=a+b”改成“c:=a+b”

        end;

        程序3:

        library ieee;

        use ieee.std_logic_1164.all;

        entity mux21 is

        PORT(a,b:in std_logic; sel:in std_loglc;c:out std_logle;); --將“;)”改成“)”

        end sam2; --將“sam2”改成“entity mux21”

        architecture one of mux2l is

        begin

        --增加“process(a,b,sel) begin”

        if sel= '0' then c:=a; else c:=b; end if; --應(yīng)改成“if sel= '0' then c<=a; else c<=b; end if;”

        --增加“end process;”

        end two; --將“two”改成“architecture one”

        7-2 LPM_ROM、LPM_RAM、LPM_FIFO等模塊與FPGA中嵌入的EAB、ESB、M4K有怎樣的聯(lián)系?

        答:ACEXlK系列為EAB;APEX20K系列為ESB;Cyclone系列為M4K

        第八章

        8-1仿照例8-1,將例8-4單進程用兩個進程,即一個時序進程,一個組合進程表達出來。

        --解:【例8-4】的改寫如下:

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MOORE1 IS

        PORT(DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0);

        CLK,RST: IN STD_LOGIC;

        Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

        END MOORE1;

        ARCHITECTURE behav OF MOORE1 IS

        TYPE ST_TYPE IS (ST0,ST1,ST2,ST3,ST4);

        SIGNAL C_ST,N_ST: ST_TYPE;

        BEGIN

        REG: PROCESS(CLK,RST)

        BEGIN

        IF RST='1' THEN C_ST<=ST0; -- Q<="0000";

        ELSIF CLK'EVENT AND CLK='1' THEN

        C_ST<=N_ST;

        END IF;

        END PROCESS REG;

        COM: PROCESS(C_ST,DATAIN)

        BEGIN

        CASE C_ST IS

        WHEN ST0=> IF DATAIN="10" THEN N_ST<=ST1;

        ELSE N_ST<=ST0; END IF;

        Q<="1001";

        WHEN ST1=> IF DATAIN="11" THEN N_ST<=ST2;

        ELSE N_ST<=ST1 ;END IF;

        Q<="0101";

        WHEN ST2=> IF DATAIN="01" THEN N_ST<=ST3;

        ELSE N_ST<=ST0 ;END IF;

        Q<="1100";

        WHEN ST3=> IF DATAIN="00" THEN N_ST<=ST4;

        ELSE N_ST<=ST2; END IF;

        Q<="0010";

        WHEN ST4=>IF DATAIN="11" THEN N_ST<=ST0;

        ELSE N_ST<=ST3 ;END IF;

        Q<="1001" ;

        WHEN OTHERS=> N_ST<=ST0;

        END CASE;

        END PROCESS COM;

        END behav;

        8-2為確保例8-5(2進程Mealy型狀態(tài)機)的狀態(tài)機輸出信號沒有毛刺,試用例8-4的方式構(gòu)成一個單進程狀態(tài),使輸出信號得到可靠鎖存,在相同輸入信號條件下,給出兩程序的仿真波形。

        --解:【例8-5】改寫如下:

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY MEALY1 IS

        PORT(CLK,DATAIN,RESET: IN STD_LOGIC;

        Q:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));

        END MEALY1;

        ARCHITECTURE behav OF MEALY1 IS

        TYPE states IS (st0,st1,st2,st3,st4);

        SIGNAL STX: states;

        BEGIN

        PROCESS(CLK,RESET) --單一進程

        BEGIN

        IF RESET='1' THEN STX<=ST0;

        ELSIF CLK'EVENT AND CLK='1' THEN

        CASE STX IS

        WHEN st0=> IF DATAIN='1' THEN STX<=st1; END IF;

        IF DATAIN='1' THEN Q<="10000";

        ELSE Q<="01010" ; END IF;

        WHEN st1=> IF DATAIN='0' THEN STX<=st2; END IF;

        IF DATAIN='0' THEN Q<="10111";

        ELSE Q<="10100" ; END IF;

        WHEN st2=> IF DATAIN='1' THEN STX<=st3; END IF;

        IF DATAIN='1' THEN Q<="10101";

        ELSE Q<="10011" ; END IF;

        WHEN st3=> IF DATAIN='0' THEN STX<=st4; END IF;

        IF DATAIN='0' THEN Q<="11011";

        ELSE Q<="01001"; END IF ;

        WHEN st4=> IF DATAIN='1' THEN STX<=st0; END IF;

        IF DATAIN='1' THEN Q<="11101";

        ELSE Q<="01101"; END IF;

        WHEN OTHERS=> STX<=st0; Q<="00000";

        END CASE;

        END IF;

        END PROCESS;

        END behav;

        圖8-6控制ADC0809采樣狀態(tài)圖

        -- 【例8-2】根據(jù)圖8-6狀態(tài)圖,采用Moore型狀態(tài)機,設(shè)計ADC0809采樣控制器。

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY ADCINT IS

        PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --來自0809轉(zhuǎn)換好的8位數(shù)據(jù)

        CLK: IN STD_LOGIC; --狀態(tài)機工作時鐘

        EOC: IN STD_LOGIC; --轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換

        ALE:OUT STD_LOGIC; --8個模擬信號通道地址鎖存信號

        START:OUT STD_LOGIC; --轉(zhuǎn)換開始信號

        OE:OUT STD_LOGIC; --數(shù)據(jù)輸出三態(tài)控制信號

        ADDA:OUT STD_LOGIC; --信號通道最低位控制信號

        LOCK0:OUT STD_LOGIC; --觀察數(shù)據(jù)鎖存時鐘

        Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位數(shù)據(jù)輸出

        END ADCINT;

        ARCHITECTURE behav OF ADCINT IS

        TYPE states IS(st0,st1,St2,st3,st4); --定義各狀態(tài)子類型

        SIGNAL current_state,next_state: states:=st0;

        SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);

        SIGNAL LOCK: STD_LOGIC;--轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號

        BEGIN

        ADDA<='1';--當(dāng)ADDA<='0',模擬信號進入通道IN0;當(dāng)ADDA<='1',則進入通道INI

        Q<=REGL;LOCK0<=LOCK;

        COM: PROCESS(current_state,EOC) BEGIN --規(guī)定各狀態(tài)轉(zhuǎn)換方式

        CASE current_state IS

        WHEN st0=> ALE<='0';START<='0';LOCK<='0';OE<='0';

        next_state<=st1; --0809初始化

        WHEN st1=> ALE<='1';START<='1';LOCK<='0';OE<='0';

        next_state<=st2 ;--啟動采樣

        WHEN st2=> ALE<='0';START<='0';LOCK<='0'; OE<='0';

        IF(EOC='1') THEN next_state<=st3;--EOC=1表明轉(zhuǎn)換結(jié)束

        ELSE next_state<=st2; END IF; --轉(zhuǎn)換未結(jié)束,繼續(xù)等待

        WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1';

        next_state<=st4;--開啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)

        WHEN st4=> ALE<='0';START<='0';LOCK<='1';OE<='1';next_state<=st0;

        WHEN OTHERS=>next_state<=st0;

        END CASE;

        END PROCESS COM;

        REG:PROCESS(CLK)

        BEGIN

        IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;

        END PROCESS REG; --由信號current_state將當(dāng)前狀態(tài)值帶出此進程:REG

        LATCH1: PROCESS(LOCK) --此進程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入

        BEGIN

        IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF;

        END PROCESS LATCH1;

        END behav;

        8-5在不改變原代碼功能的條件下用兩種方法改寫例8-2,使其輸出的控制信號(ALE、START、OE、LOCK)沒有毛刺。方法1:將輸出信號鎖存后輸出;方法2:使用狀態(tài)碼直接輸出型狀態(tài)機,并比較這三種狀態(tài)機的特點。

        -- 解:"【例8-2】根據(jù)圖8-6狀態(tài)圖,采用Moore型狀態(tài)機,設(shè)計ADC0809采樣控制器" 方法1(將輸出控制信號鎖存后輸出)的VHDL程序代碼如下:

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY ADCINT IS

        PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --來自0809轉(zhuǎn)換好的8位數(shù)據(jù)

        CLK: IN STD_LOGIC; --狀態(tài)機工作時鐘

        EOC: IN STD_LOGIC; --轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換

        ALE: OUT STD_LOGIC; --8個模擬信號通道地址鎖存信號

        START: OUT STD_LOGIC; --轉(zhuǎn)換開始信號

        OE: OUT STD_LOGIC; --數(shù)據(jù)輸出三態(tài)控制信號

        ADDA: OUT STD_LOGIC; --信號通道最低位控制信號

        LOCK0: OUT STD_LOGIC; --觀察數(shù)據(jù)鎖存時鐘

        Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位數(shù)據(jù)輸出

        END ADCINT;

        ARCHITECTURE behav OF ADCINT IS

        TYPE states IS(st0,st1,St2,st3,st4); --定義各狀態(tài)子類型

        SIGNAL current_state,next_state: states:=st0;

        SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);

        SIGNAL LOCK: STD_LOGIC;--轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號

        SIGNAL ALE0: STD_LOGIC; --8個模擬信號通道地址鎖存信號

        SIGNAL START0: STD_LOGIC; --轉(zhuǎn)換開始信號

        SIGNAL OE0: STD_LOGIC; --數(shù)據(jù)輸出三態(tài)控制信號

        BEGIN

        ADDA<='1';--當(dāng)ADDA<='0',模擬信號進入通道IN0;當(dāng)ADDA<='1',則進入通道INI

        Q<=REGL; --LOCK0<=LOCK;

        COM: PROCESS(current_state,EOC,CLK) BEGIN --規(guī)定各狀態(tài)轉(zhuǎn)換方式

        CASE current_state IS

        WHEN st0=> ALE0<='0';START0<='0';LOCK<='0';OE0<='0';

        next_state<=st1; --0809初始化

        WHEN st1=> ALE0<='1';START0<='1';LOCK<='0';OE0<='0';

        next_state<=st2 ;--啟動采樣

        WHEN st2=> ALE0<='0';START0<='0';LOCK<='0'; OE0<='0';

        IF(EOC='1') THEN next_state<=st3;--EOC=1表明轉(zhuǎn)換結(jié)束

        ELSE next_state<=st2; END IF; --轉(zhuǎn)換未結(jié)束,繼續(xù)等待

        WHEN st3=> ALE0<='0';START0<='0';LOCK<='0';OE0<='1';

        next_state<=st4;--開啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)

        WHEN st4=> ALE0<='0';START0<='0';LOCK<='1';OE0<='1';next_state<=st0;

        WHEN OTHERS=>next_state<=st0;

        END CASE;

        IF CLK'EVENT AND CLK= '1' THEN

        ALE<=ALE0;START<=START0;LOCK0<=LOCK;OE<=OE0;--方法1:信號鎖存后輸出

        END IF;

        END PROCESS COM;

        REG:PROCESS(CLK)

        BEGIN

        IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;

        END PROCESS REG; --由信號current_state將當(dāng)前狀態(tài)值帶出此進程:REG

        LATCH1: PROCESS(LOCK) --此進程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入

        BEGIN

        IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF;

        END PROCESS LATCH1;

        END behav;

        -- 解:"【例8-2】根據(jù)圖8-6狀態(tài)圖,采用Moore型狀態(tài)機,設(shè)計ADC0809采樣控制器" 方法2(使用狀態(tài)碼直接輸出型狀態(tài)機)的VHDL程序代碼(【例8-7】的根據(jù)狀態(tài)編碼表8-1給出ADC0809數(shù)據(jù)采樣的狀態(tài)機)如下:

        LIBRARY IEEE;

        USE IEEE.STD_LOGIC_1164.ALL;

        ENTITY AD0809 IS

        PORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

        CLK,EOC: IN STD_LOGIC;

        ALE,START,OE,ADDA:OUT STD_LOGIC;

        c_state:OUT STD_LOGIC_VECTOR(4 DOWNTO 0);

        Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

        END AD0809;

        ARCHITECTURE behav OF AD0809 IS

        SIGNAL current_state,next_state: STD_LOGIC_VECTOR(4 DOWNTO 0);

        CONSTANT st0: STD_LOGIC_VECTOR(4 DOWNTO 0):="00000";

        CONSTANT st1: STD_LOGIC_VECTOR(4 DOWNTO 0):="11000";

        CONSTANT st2: STD_LOGIC_VECTOR(4 DOWNTO 0):="00001";

        CONSTANT st3: STD_LOGIC_VECTOR(4 DOWNTO 0):="00100";

        CONSTANT st4: STD_LOGIC_VECTOR(4 DOWNTO 0):="00110";

        SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);

        SIGNAL LOCK: STD_LOGIC;

        BEGIN

        ADDA<='1';Q<=REGL;START<=current_state(4);ALE<=current_state(3);

        OE<=current_state(2);LOCK<=current_state(1);c_state<=current_state;

        COM: PROCESS(current_state,EOC) BEGIN --規(guī)定各狀態(tài)轉(zhuǎn)換方式

        CASE current_state IS

        WHEN st0=> next_state<=st1; --0809初始化

        WHEN st1=> next_state<=st2; --啟動采樣

        WHEN st2=> IF(EOC='1') THEN next_state<=st3; --EOC=1表明轉(zhuǎn)換結(jié)束

        ELSE next_state<=st2; --轉(zhuǎn)換未結(jié)束,繼續(xù)等待

        END IF;

        WHEN st3=> next_state<=st4; --開啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)

        WHEN st4=> next_state<=st0;

        WHEN OTHERS=> next_state<=st0;

        END CASE;

        END PROCESS COM;

        REG: PROCESS(CLK)

        BEGIN

        IF (CLK'EVENT AND CLK='1') THEN current_state<=next_state;

        END IF;

        END PROCESS REG; --由信號current_state將當(dāng)前狀態(tài)值帶出此進程:REG

        LATCH1: PROCESS(LOCK)--此進程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入

        BEGIN

        IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;

        END IF;

        END PROCESS LATCH1;

        END behav;

      【EDA技術(shù)與應(yīng)用課后習(xí)題答案】相關(guān)文章:

      EDA技術(shù)與應(yīng)用課后習(xí)題答案大全01-20

      EDA技術(shù)與應(yīng)用03-31

      EDA技術(shù)的發(fā)展與應(yīng)用03-18

      EDA技術(shù)應(yīng)用與發(fā)展03-03

      關(guān)于EDA技術(shù)的發(fā)展與應(yīng)用03-27

      2016年EDA技術(shù)的發(fā)展與應(yīng)用01-20

      EDA技術(shù)的應(yīng)用及發(fā)展趨勢03-18

      eda技術(shù)在生活中的應(yīng)用03-14

      IP在EDA技術(shù)的應(yīng)用和發(fā)展中的意義03-08

      主站蜘蛛池模板: 中国免费av网| 亚洲一区二区婷婷久久| 一本大道人妻中文字幕| 无码国产精品一区二区免费式芒果| 中文字幕人妻系列一区尤物视频| 国产女主播强伦视频网站| 少妇av免费在线播放| av天堂线上| 革吉县| 国模少妇无码一区二区三区| 久久亚洲一级av一片| 真人在线射美女视频在线观看| 亚洲精品中文有码字幕| 万盛区| 精品中文字幕手机在线| 日本一区二区在线视观看| 青春草在线观看播放网站| 亚洲欧洲无码精品ⅤA| 久久久亚洲精品午夜福利| 97精品国产高清自在线看超| 阳信县| 祁东县| 韶山市| 高州市| 镇康县| 国产做床爱无遮挡免费视频 | 中文字幕日韩熟女av| 另类人妖在线观看一区二区 | 国产av一区二区凹凸精品| 激情综合网缴情五月天| 国产 在线播放无码不卡| 成人精品免费av不卡在线观看| 久久久精品免费国产四虎| 亚洲av五月天天堂网| 五月婷婷久久中文字幕| 久久人成免费网站小草| 玩弄放荡人妻一区二区三区| 天堂av在线一区二区| 日韩AV无码中文无码AV| 玩弄人妻奶水无码AV在线| 国产精品后入内射视频|