亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

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

時(shí)間:2024-09-27 04:10:45 EDA技術(shù)培訓(xùn) 我要投稿

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

  《EDA技術(shù)與應(yīng)用》為普通高等教育“十一五”國家級(jí)規(guī)劃教材,下面yjbys小編為大家提供的是本書的課后習(xí)題答案,希望能幫助到大家!

  主要內(nèi)容包括:EDA技術(shù);電路設(shè)計(jì)仿真軟件PSpice、Muhisim8的使用方法;可編程邏輯器件的工作原理、分類及應(yīng)用;硬件描述語言Verilog HDL的語法要點(diǎn)與設(shè)計(jì)實(shí)例;數(shù)字集成軟件Quartus n、仿真軟件ModelSim、綜合軟件SynplifyPro等的使用方法及設(shè)計(jì)流程;EDA技術(shù)綜合設(shè)計(jì)實(shí)例。 本書內(nèi)容全面,注重基礎(chǔ),理論聯(lián)系實(shí)際,突出實(shí)用性,并使用大量圖表說明問題,編寫簡明精煉、針對(duì)性強(qiáng),設(shè)計(jì)實(shí)例都通過了編譯,設(shè)計(jì)文件和參數(shù)選擇都經(jīng)過驗(yàn)證,便于讀者對(duì)內(nèi)容的理解和掌握。

  第一章

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

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

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

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

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

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

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

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

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

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

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

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

  第二章

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

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

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

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

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

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

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

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

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

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

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

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

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

  第三章

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

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

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

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

  答:GAL、CPLD之類都是基于乘積項(xiàng)的可編程結(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、嵌入式存儲(chǔ)器塊(EAB)、I/O單元、嵌入式硬件乘法器和PLL等模塊構(gòu)成;其中LAB(邏輯陣列塊)由一系列相鄰的LE(邏輯單元)構(gòu)成的;FPGA可編程資源主要來自邏輯陣列塊LAB。

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

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

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

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

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

  3-7 請(qǐng)參閱相關(guān)資料,并回答問題:按本章給出的歸類方式,將基于乘積項(xiàng)的可編程邏輯結(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:畫出與下例實(shí)體描述對(duì)應(yīng)的原理圖符號(hào)元件:

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

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

  enable : IN STD_LOGIC ; -- 使能端

  output : OUT STD_LOGIC ) ; -- 輸出端

  END buf3x ;

  ENTITY mux21 IS --實(shí)體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語句的表達(dá)方式寫出此電路的VHDL程序。選擇控制的信號(hào)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); --輸入選擇信號(hào)

  a,b,c,d:IN STD_LOGIC; --輸入信號(hào)

  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); --輸入選擇信號(hào)

  a,b,c,d:IN STD_LOGIC; --輸入信號(hào)

  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,對(duì)于其中MUX21A,當(dāng)s='0'和'1'時(shí),分別有y<='a'和y<='b'。試在一個(gè)結(jié)構(gòu)體中用兩個(gè)進(jìn)程來表達(dá)此電路,每個(gè)進(jìn)程中用CASE語句描述一個(gè)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); --輸入信號(hào)

  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.下圖是一個(gè)含有上升沿觸發(fā)的D觸發(fā)器的時(shí)序電路,試寫出此電路的VHDL設(shè)計(jì)文件。

  4-4.答案

  LIBRARY IEEE;

  USE IEEE.STD_LOGIC_1164.ALL;

  ENTITY MULTI IS

  PORT(CL:IN STD_LOGIC; --輸入選擇信號(hào)

  CLK0:IN STD_LOGIC; --輸入信號(hào)

  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è)計(jì)1位半減器,然后用例化語句將它們連接起來,圖3-32中h_suber是半減器,diff是輸出差,s_out是借位輸出,sub_in是借位輸入。

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

  4-5.答案

  底層文件1:or2a.VHD實(shí)現(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實(shí)現(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實(shí)現(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è)計(jì)文件。

  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è)計(jì)含有異步清零和計(jì)數(shù)使能的16位二進(jìn)制加減可控計(jì)數(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 --計(jì)數(shù)器異步復(fù)位

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

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

  QI:=SETDATA;

  ELSIF CLK'EVENT AND CLK='1' THEN --檢測(cè)時(shí)鐘上升沿

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

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

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

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

  END IF;

  END IF;

  END IF;

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

  END PROCESS;

  END ONE;

  第五章

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

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

  第六章

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

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

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

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

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

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

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

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

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

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

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

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

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

  …………………….

  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ù)位信號(hào)

  …………………….

  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ù)操作對(duì)象變換處理功能。

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

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

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

  程序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單進(jìn)程用兩個(gè)進(jìn)程,即一個(gè)時(shí)序進(jìn)程,一個(gè)組合進(jìn)程表達(dá)出來。

  --解:【例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進(jìn)程Mealy型狀態(tài)機(jī))的狀態(tài)機(jī)輸出信號(hào)沒有毛刺,試用例8-4的方式構(gòu)成一個(gè)單進(jìn)程狀態(tài),使輸出信號(hào)得到可靠鎖存,在相同輸入信號(hào)條件下,給出兩程序的仿真波形。

  --解:【例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) --單一進(jìn)程

  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)機(jī),設(shè)計(jì)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)機(jī)工作時(shí)鐘

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

  ALE:OUT STD_LOGIC; --8個(gè)模擬信號(hào)通道地址鎖存信號(hào)

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

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

  ADDA:OUT STD_LOGIC; --信號(hào)通道最低位控制信號(hào)

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

  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ù)輸出鎖存時(shí)鐘信號(hào)

  BEGIN

  ADDA<='1';--當(dāng)ADDA<='0',模擬信號(hào)進(jìn)入通道IN0;當(dāng)ADDA<='1',則進(jìn)入通道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 ;--啟動(dòng)采樣

  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; --由信號(hào)current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程:REG

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

  BEGIN

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

  END PROCESS LATCH1;

  END behav;

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

  -- 解:"【例8-2】根據(jù)圖8-6狀態(tài)圖,采用Moore型狀態(tài)機(jī),設(shè)計(jì)ADC0809采樣控制器" 方法1(將輸出控制信號(hào)鎖存后輸出)的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)機(jī)工作時(shí)鐘

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

  ALE: OUT STD_LOGIC; --8個(gè)模擬信號(hào)通道地址鎖存信號(hào)

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

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

  ADDA: OUT STD_LOGIC; --信號(hào)通道最低位控制信號(hào)

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

  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ù)輸出鎖存時(shí)鐘信號(hào)

  SIGNAL ALE0: STD_LOGIC; --8個(gè)模擬信號(hào)通道地址鎖存信號(hào)

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

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

  BEGIN

  ADDA<='1';--當(dāng)ADDA<='0',模擬信號(hào)進(jìn)入通道IN0;當(dāng)ADDA<='1',則進(jìn)入通道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 ;--啟動(dòng)采樣

  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:信號(hào)鎖存后輸出

  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; --由信號(hào)current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程:REG

  LATCH1: PROCESS(LOCK) --此進(jìn)程中,在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)機(jī),設(shè)計(jì)ADC0809采樣控制器" 方法2(使用狀態(tài)碼直接輸出型狀態(tài)機(jī))的VHDL程序代碼(【例8-7】的根據(jù)狀態(tài)編碼表8-1給出ADC0809數(shù)據(jù)采樣的狀態(tài)機(jī))如下:

  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; --啟動(dòng)采樣

  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; --由信號(hào)current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程:REG

  LATCH1: PROCESS(LOCK)--此進(jìn)程中,在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í)題答案08-10

EDA技術(shù)與應(yīng)用09-19

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

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

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

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

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

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

EDA技術(shù)的發(fā)展08-17