- EDA技術(shù)與應(yīng)用課后習(xí)題答案 推薦度:
- 相關(guā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ù)的發(fā)展08-17