EDA技術(shù)實(shí)用教程課后答案-潘松版_第1頁(yè)
EDA技術(shù)實(shí)用教程課后答案-潘松版_第2頁(yè)
EDA技術(shù)實(shí)用教程課后答案-潘松版_第3頁(yè)
EDA技術(shù)實(shí)用教程課后答案-潘松版_第4頁(yè)
EDA技術(shù)實(shí)用教程課后答案-潘松版_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

答:利用EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的最后目標(biāo)是完成專(zhuān)用集成電路ASIC的設(shè)計(jì)和實(shí)現(xiàn);FPGA和CPLD是實(shí)現(xiàn)

這一途徑的主流器件。FPGA和CPLD通常也被稱(chēng)為可編程專(zhuān)用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與軟件描述語(yǔ)言相比,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)表文件,這種滿(mǎn)足VHDL設(shè)計(jì)程序功能描述的電路結(jié)構(gòu),不依賴(lài)于任何特定硬?

件環(huán)境;具有相對(duì)獨(dú)立性。綜合器在將VHDL(硬件描述語(yǔ)言)表達(dá)的電路功能轉(zhuǎn)化成具體的電路結(jié)構(gòu)網(wǎng)表過(guò)程中,具?

有明顯的能動(dòng)性和創(chuàng)造性,它不是機(jī)械的一一對(duì)應(yīng)式的“翻譯”,而是根據(jù)設(shè)計(jì)庫(kù)、工藝庫(kù)以及預(yù)先設(shè)置的各類(lèi)約

束條件,選擇最優(yōu)的方式完成電路結(jié)構(gòu)的設(shè)計(jì).

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

什么是綜合?答:在電子設(shè)計(jì)領(lǐng)域中綜合的概念可以表示為:將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為低層

次的便于具體實(shí)現(xiàn)的模塊組合裝配的過(guò)程。

有哪些類(lèi)型?答:(1)從自然語(yǔ)言轉(zhuǎn)換到VHDL語(yǔ)言算法表示,即自然語(yǔ)言綜合。(2)從算法表示轉(zhuǎn)換到寄存器

?傳輸級(jí)(RegisterTransportLevel,RTL),即從行為域到結(jié)構(gòu)域的綜合,即行為綜合.(3)從RTL級(jí)表示轉(zhuǎn)換到邏

輯門(mén)(包括觸發(fā)器)的表示,即邏輯綜合.(4)從邏輯門(mén)表示轉(zhuǎn)換到版圖表示(ASIC設(shè)計(jì)),或轉(zhuǎn)換到FPGA的配置網(wǎng)表?文件,可稱(chēng)為版圖綜合或結(jié)構(gòu)綜合。

?綜合在電子設(shè)計(jì)自動(dòng)化中的地位是什么?答:是核心地位(見(jiàn)圖1-3).綜合器具有更復(fù)雜的工作環(huán)境,綜合器?

在接受VHDL程序并準(zhǔn)備對(duì)其綜合前,必須獲得與最終實(shí)現(xiàn)設(shè)計(jì)電路硬件特征相關(guān)的工藝庫(kù)信息,以及獲得優(yōu)化綜

?合的諸多約束條件信息;根據(jù)工藝庫(kù)和約束條件信息,將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é)逐步求精的過(guò)程。?

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

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

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

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

?2-2IP是什么?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ù)開(kāi)發(fā)中具有十分重要的地位;與EDA技術(shù)的關(guān)系分有軟IP、??固IP、硬IP:軟IP是用VHDL等硬件描述語(yǔ)言描述的功能塊,并不涉及用什么具體電路元件實(shí)現(xiàn)這些功能;軟IP

?通常是以硬件描述語(yǔ)言HDL源文件的形式出現(xiàn)。固IP是完成了綜合的功能塊,具有較大的設(shè)計(jì)深度,以網(wǎng)表文件

?的形式提交客戶(hù)使用.硬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ì)方式,約束的目的是簡(jiǎn)化設(shè)計(jì),縮短設(shè)計(jì)周期,降低設(shè)計(jì)成本,提高設(shè)計(jì)正確率.

?半定制法按邏輯實(shí)現(xiàn)的方式不同,可再分為門(mén)陣列法、標(biāo)準(zhǔn)單元法和可編程邏輯器件法.

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

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

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

答:基于FPGA/CPLD的EDA設(shè)計(jì)流程中所涉及的EDA工具有:設(shè)計(jì)輸入編輯器(作用:接受不同的設(shè)計(jì)輸?—-—---------—--———--Page2--——-—-----—--—---—入表達(dá)方式,如原理圖輸入方式、狀態(tài)圖輸入方式、波形輸入方式以及HDL的文本輸入方式。);HDL綜合器(作用:?

HDL綜合器根據(jù)工藝庫(kù)和約束條件信息,將設(shè)計(jì)輸入編輯器提供的信息轉(zhuǎn)化為目標(biāo)器件硬件結(jié)構(gòu)細(xì)節(jié)的信息,并在

數(shù)字電路設(shè)計(jì)技術(shù)、化簡(jiǎn)優(yōu)化算法以及計(jì)算機(jī)軟件等復(fù)雜結(jié)體進(jìn)行優(yōu)化處理);仿真器(作用:行為模型的表達(dá)、

電子系統(tǒng)的建模、邏輯電路的驗(yàn)證及門(mén)級(jí)系統(tǒng)的測(cè)試);適配器(作用:完成目標(biāo)系統(tǒng)在器件上的布局和布線);下?

載器(作用:把設(shè)計(jì)結(jié)果信息下載到對(duì)應(yīng)的實(shí)際器件,實(shí)現(xiàn)硬件設(shè)計(jì))。

?第三章?

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

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

輸出、寄存器輸出雙向口等.

說(shuō)明GAL是怎樣實(shí)現(xiàn)可編程組合電路與時(shí)序電路的?答:GAL(通用陣列邏輯器件)是通過(guò)對(duì)其中的OLMC

(輸出邏輯宏單元)的編程和三種模式配置(寄存器模式、復(fù)合模式、簡(jiǎn)單模式),實(shí)現(xiàn)組合電路與時(shí)序電路設(shè)計(jì)

的。?

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

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

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

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

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

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

資源主要來(lái)自邏輯陣列塊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è)試法來(lái)無(wú)法對(duì)IC內(nèi)部節(jié)點(diǎn)無(wú)法測(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采用該種編程工藝。該類(lèi)器件的編程一般稱(chēng)為配置。對(duì)于SRAM?

型FPGA來(lái)說(shuō),配置次數(shù)無(wú)限,且速度快;在加電時(shí)可隨時(shí)更改邏輯;下載信息的保密性也不如電可擦除的編程。?

3-7請(qǐng)參閱相關(guān)資料,并回答問(wèn)題:按本章給出的歸類(lèi)方式,將基于乘積項(xiàng)的可編程邏輯結(jié)構(gòu)的PLD器件歸類(lèi)為

CPLD;將基于查找表的可編程邏輯結(jié)構(gòu)的PLD器什歸類(lèi)為FPGA,那么,APEX系列屬于什么類(lèi)型PLD器件?MAX

II系列又屬于什么類(lèi)型的PLD器件?為什么?P54~56?

答:APEX(AdvancedLogicElementMatrix)系列屬于FPGA類(lèi)型PLD器件;編程信息存于SRAM中。MAXII

系列屬于CPLD類(lèi)型的PLD器件;編程信息存于EEPROM中。?

第四章

?4-1:畫(huà)出與下例實(shí)體描述對(duì)應(yīng)的原理圖符號(hào)元件:

?ENTITYbuf3sIS—-實(shí)體1:三態(tài)緩沖器?

PORT(input:INSTD_LOGIC;--輸入端?enable:INSTD_LOGIC;—-使能端?

output:OUTSTD_LOGIC);—-輸出端?

ENDbuf3x;?———-—-—--—----—-——-Page3——------—--—----—--—ENTITYmux21IS—-實(shí)體2:2選1多路選擇器

?PORT(in0,in1,sel:INSTD_LO(píng)GIC;

?output:OUTSTD_LOGIC);

?4-1。答案

4-2.圖3-30所示的是4選1多路選擇器,試分別用IF_THEN語(yǔ)句和CASE語(yǔ)句的表達(dá)方式寫(xiě)出此電路的VHDL程序.

選擇控制的信號(hào)s1和s0的數(shù)據(jù)類(lèi)型為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。答案

LIBRARYI(mǎi)EEE;?

USEIEEE.STD_LOGIC_1164。ALL;

ENTITYMUX41IS??PORT(s:INSTD_LOGIC_VECTOR(1DOWNTO0);--輸入選擇信號(hào)?

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

?y:OUTSTD_LO(píng)GIC);--輸出端

ENDENTITY;?ARCHITECTUREARTOFMUX41IS

BEGIN??PROCESS(s)?

BEGIN??IF(S="00")THENy<=a;?ELSIF(S="01”)THENy<=b;

?ELSIF(S="10")THENy<=c;

ELSIF(S="11”)THENy<=d;??ELSEy〈=NULL;

?ENDIF;

EDNPROCESS;

ENDART;

?LIBRARYI(mǎi)EEE;

USEIEEE.STD_LOGIC_1164.ALL;??ENTITYMUX41IS

PORT(s:INSTD_LOGIC_VECTOR(1DOWNTO0);—-輸入選擇信號(hào)?

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

?y:OUTSTD_LOGIC);—-輸出端

?ENDMUX41;?

ARCHITECTUREARTOFMUX41IS

BEGIN

PROCESS(s)??BEGIN??CASEsIS

-—-—---—-—-——--—-—-——-—Page4-—----—-———-----—-—--——WHEN“00"=>y<=a;

?WHEN“01”=>y<=b;

?WHEN“10”=>y<=c;

WHEN“11”=>y<=d;?

WHENOTHERS=〉NULL;?ENDCASE;?

ENDPROCESS;

ENDART;

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)程來(lái)表達(dá)此電路,每個(gè)進(jìn)程中用CASE語(yǔ)句描述一個(gè)2選1多路選擇器MUX21A.

?4—3。答案??LIBRARYIEEE;??USEIEEE。STD_LOGIC_1164。ALL;?ENTITYMUX221IS

?PORT(a1,a2,a3:INSTD_LOGIC_VECTOR(1DOWNTO0);--輸入信號(hào)

s0,s1:INSTD_LOGIC;?

outy:OUTSTD_LOGIC);——輸出端

ENDENTITY;?ARCHITECTUREONEOFMUX221IS??SIGNALtmp:STD_LOGIC;?

BEGIN

?PR01:PROCESS(s0)

BEGIN?IFs0=”0”THENtmp<=a2;??ELSEtmp<=a3;??ENDIF;

ENDPROCESS;

PR02:PROCESS(s1)

BEGIN

IFs1=”0”THENouty<=a1;

ELSEouty<=tmp;?

ENDIF;??ENDPROCESS;?ENDARCHITECTUREONE;??ENDCASE;

4-4。下圖是一個(gè)含有上升沿觸發(fā)的D觸發(fā)器的時(shí)序電路,試寫(xiě)出此電路的VHDL設(shè)計(jì)文件.??4—4.答案?LIBRARYIEEE;??USEIEEE.STD_LO(píng)GIC_1164.ALL;

ENTITYMULTIIS??PORT(CL:INSTD_LOGIC;—-輸入選擇信號(hào)

?CLK0:INSTD_LOGIC;--輸入信號(hào)

OUT1:OUTSTD_LOGIC);—-輸出端

ENDENTITY;?

ARCHITECTUREONEOFMULTIIS?

SIGNALQ:STD_LOGIC;

—---—--————--Page5-----———————-—-—----—--BEGIN?

PR01:PROCESS(CLK0)?

BEGIN

?IFCLK‘EVENTANDCLK=’1’??THENQ<=NOT(CLORQ);ELSE?ENDIF;?

ENDPROCESS;??PR02:PROCESS(CLK0)

?BEGIN?

OUT1〈=Q;?ENDPROCESS;

?ENDARCHITECTUREONE;

ENDPROCESS;

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

?(1)首先設(shè)計(jì)1位半減器,然后用例化語(yǔ)句將它們連接起來(lái),圖3—32中h_suber是半減器,diff是輸出差,

s_out是借位輸出,sub_in是借位輸入。

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

4—5.答案

?底層文件1:or2a.VHD實(shí)現(xiàn)或門(mén)操作?LIBRARYIEEE;

?USEIEEE。STD_LO(píng)GIC_1164.ALL;

?USEIEEE.STD_LOGIC_UNSIGNED.ALL;

?ENTITYor2aIS

?PORT(a,b:INSTD_LOGIC;?c:OUTSTD_LOGIC);

?ENDENTITYor2a;

?ARCHITECTUREoneOFor2aIS

?BEGIN??c<=aORb;?ENDARCHITECTUREone;

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

?USEIEEE。STD_LOGIC_1164.ALL;

USEIEEE。STD_LOGIC_UNSIGNED。ALL;?ENTITYh_subberIS

?PORT(x,y:INSTD_LOGIC;?

diff,s_out::OUTSTD_LOGIC);??ENDENTITYh_subber;

?ARCHITECTUREONEOFh_subberIS

SIGNALxyz:STD_LOGIC_VECTOR(1DOWNTO0);??BEGIN??xyz〈=x&y;??PROCESS(xyz)

BEGIN?CASExyzIS

WHEN"00"=〉diff〈='0';s_out<=’0';

WHEN"01”=>diff〈=’1’;s_out〈=’1’;??WHEN"10"=〉diff<='1';s_out<=’0’;

---—---—--——-—--—-Page6—---——-—-—--—-----——WHEN”11"=〉diff<='0';s_out〈=’0';??WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

?ENDARCHITECTUREONE;

頂層文件:f_subber。VHD實(shí)現(xiàn)一位全減器?

LIBRARYIEEE;

?USEIEEE.STD_LOGIC_1164。ALL;

?USEIEEE.STD_LO(píng)GIC_UNSIGNED。ALL;?

ENTITYf_subberIS?PORT(x,y,sub_in:INSTD_LOGIC;

?diffr,sub_out:OUTSTD_LOGIC);

?ENDENTITYf_subber;

?ARCHITECTUREONEOFf_subberIS

?COMPONENTh_subber

PORT(x,y:INSTD_LOGIC;??diff,S_out:OUTSTD_LOGIC);??ENDCOMPONENT;?

COMPONENTor2a

PORT(a,b:INSTD_LOGIC;

c:OUTSTD_LOGIC);

?ENDCOMPONENT;??SIGNALd,e,f:STD_LOGIC;?

BEGIN

u1:h_subberPORTMAP(x=〉x,y=>y,diff=>d,s_out=>e);?u2:h_subberPORTMAP(x=〉d,y=〉sub_in,diff=>diffr,s_out=>f);

?u3:or2aPORTMAP(a=>f,b=>e,c=>sub_out);?

ENDARCHITECTUREONE;

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

4—6.答案?

MAX3256頂層文件??LIBRARYIEEE;

USEIEEE。STD_LO(píng)GIC_1164。ALL;?USEIEEE。STD_LO(píng)GIC_UNSIGNED。ALL;

ENTITYMAX3256IS?

PORT(INA,INB,INCK:INSTD_LOGIC;?

INC:INSTD_LOGIC;?

E,OUT:OUTSTD_LOGIC);?ENDENTITYMAX3256;??ARCHITECTUREONEOFMAX3256IS?

COMPONENTLK35—-調(diào)用LK35聲明語(yǔ)句

PORT(A1,A2:INSTD_LOGIC;

?CLK:INSTD_LO(píng)GIC;

Q1,Q2:OUTSTD_LOGIC);

?ENDCOMPONENT;

COMPONENTD——調(diào)用D觸發(fā)器聲明語(yǔ)句

PORT(D,C:INSTD_LOGIC;?—---——------——--—-—--——Page7—--—---—-———-—-——--—-—-CLK:INSTD_LOGIC;

?Q:OUTSTD_LOGIC);??ENDCOMPONENT;

COMPONENTMUX21-—調(diào)用二選一選擇器聲明語(yǔ)句??PORT(B,A:INSTD_LOGIC;

S:INSTD_LOGIC;

C:OUTSTD_LOGIC);?

ENDCOMPONENT;??SIGNALAA,BB,CC,DD:STD_LOGIC;

BEGIN

u1:LK35PORTMAP(A1=〉INA,A2=>INB,CLK=INCK,Q1=〉A(chǔ)A,Q2=〉BB);

u2:DPORTMAP(D=>BB;CLK=〉INCK,C=>INC,Q=>CC);?

u3:LK35PORTMAP(A1=>BB,A2=>CC,CLK=INCK,Q1=〉DD,Q2=〉OUT1);

?u4:MUX21P(pán)ORTMAP(B=>AA,A=〉DD,S=>BB,C=〉E);

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

?4-7.答案:?

LIBRARYIEEE;

USEIEEE.STD_LO(píng)GIC_1164.ALL;

USEIEEE。STD_LO(píng)GIC_UNSIGNED.ALL;

ENTITYCNT16IS?

PORT(CLK,RST,EN:INSTD_LO(píng)GIC;

?CHOOSE:INBIT;

?SETDATA:BUFFERINTEGERRANCE65535DOWNTO0;?

COUT:BUFFERINTEGERRANCE65535DOWNTO0);?ENDCNT16;??ARCHITECTUREONEOFCNT16IS

BEGIN

?PROCESS(CLK,RST,SDATA)??VARIABLEQI:STD_LOGIC_VECTO(shè)R(65535DOWNTO0);

BEGIN??IFRST=’1’THEN—-計(jì)數(shù)器異步復(fù)位?

QI:=(OTHERS=〉'0');?

ELSIFSET=’1'THEN-—計(jì)數(shù)器一步置位

?QI:=SETDATA;?ELSIFCLK'EVENTANDCLK=’1'THEN--檢測(cè)時(shí)鐘上升沿

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

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

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

ENDIF;?

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

ENDPROCESS;?ENDONE;

---———-—----—--—-------Page8—----—--—----—-——-——第五章??5-1歸納利用QuartusII進(jìn)行VHDL文本輸入設(shè)計(jì)的流程:從文件輸入一直到SignalTapII測(cè)試.P95~P115

答:1建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件;2創(chuàng)建工程;3編譯前設(shè)置;4全程編譯;5時(shí)序仿真;6引?

腳鎖定;7配置文件下載;8打開(kāi)SignalTapII編輯窗口;9調(diào)入SignalTapII的待測(cè)信號(hào);10SignalTapII

?參數(shù)設(shè)置;11SignalTapII參數(shù)設(shè)置文件存盤(pán);12帶有SignalTapII測(cè)試信息的編譯下載;13啟動(dòng)SignalTap

II進(jìn)行采樣與分析;14SignalTapII的其他設(shè)置和控制方法。??5。6?

5.7

----—-——----——------Page9—--—-——--—-—-——----—---5.8

5.9

----—--—--—--———----—-—Page10--—-——-—-—————--———-5。10

-—--——---———---—-—--Page11-—-—--——-—-—---————--—-5.12

5。13?

5.14

—--——-——-—----—-—-—Page12-————----—--——--—------第六章?

6-1什么是固有延時(shí)?什么是慣性延時(shí)?P150~151??答:固有延時(shí)(InertialDelay)也稱(chēng)為慣性延時(shí),固有延時(shí)的主要物理機(jī)制是分布電容效應(yīng)。?6—2δ是什么?在VHDL中,δ有什么用處?P152

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

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

?確執(zhí)行.?6—4說(shuō)明信號(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ì)類(lèi)似于連接線;可作為設(shè)計(jì)實(shí)體中并行語(yǔ)句模塊間的?信息交流通道。信號(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)

?…….

ARCHITECTUREbhv0FDFF3IS??SIGNALQQ:STD_LO(píng)GIC;?BEGIN

?PROCESS(RST)??BEGIN??IFRST'EVENTANDRST=‘1’THEN

——----—-—-——---————---—Page13——--—--——--—-——-—QQ〈=(OTHERS=>‘0’);

?ENDIF;?

ENDPROCESS;??Q1〈=QQ;

?END;

………

?(2)電平觸發(fā)復(fù)位信號(hào)

?……。?

ARCHITECTUREbhv0FDFF3IS??SIGNALQQ:STD_LOGIC;?BEGIN

?PROCESS(CLK)

BEGIN

?IFRST=‘1’THEN?

QQ〈=(OTHERS=>‘0’);?ENDIF;

ENDPROCESS;

?Q1<=QQ;

END;?

………

6-7什么是重載函數(shù)?重載算符有何用處?如何調(diào)用重載算符函數(shù)???答:(1)什么是重載函數(shù)?根據(jù)操作對(duì)象變換處理功能。??(2)重載算符有何用處?用于兩個(gè)不同類(lèi)型的操作數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同種數(shù)據(jù)類(lèi)型,并進(jìn)行運(yùn)算處理。

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

6—8判斷下面三個(gè)程序中是否有錯(cuò)誤,若有則指出錯(cuò)誤所在,并給出完整程序。?程序1:??SignalA,EN:std_logic;

?…?

Process(A,EN)

?VariableB:std_logic;

Begin??ifEN=lthenB<=A;endif;—-將“B〈=A”改成“B:=A”??endprocess;

?程序2:

?Architectureoneofsampleis?variablea,b,c:integer;

begin

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

?end;

程序3:

libraryieee(cuò);

?useieee(cuò).std_logic_1164。all;

entitymux21is??PORT(a,b:instd_logic;sel:instd_loglc;c:outstd_logle;);--將“;)”改成“)”??endsam2;——將“sam2”改成“entitymux21”?architectureoneofmux2lis

?begin??—-增加“process(a,b,sel)begin"?

ifsel='0'thenc:=a;elsec:=b;endif;-—應(yīng)改成“ifsel='0'thenc〈=a;elsec〈=b;endif;”?-——----—-—---—--——--—-—-———-----—-——----——--—-增加“endprocess;”

endtwo;—-將“two”改成“architectureone”

?7-2LPM_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á)出來(lái).

?——解:【例8-4】的改寫(xiě)如下:

?LIBRARYIEEE;?

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYM(fèi)OORE1IS

PORT(DATAIN:INSTD_LOGIC_VECTOR(1DOWNTO0);

?CLK,RST:INSTD_LOGIC;?

Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));

?ENDMOORE1;?

ARCHITECTUREbehavOFMOORE1IS?TYPEST_TYPEIS(ST0,ST1,ST2,ST3,ST4);??SIGNALC_ST,N_ST:ST_TYPE;?

BEGIN?

REG:PROCESS(CLK,RST)

?BEGIN

IFRST=’1'THENC_ST<=ST0;——Q<="0000”;

ELSIFCLK'EVENTANDCLK=’1'THEN

C_ST〈=N_ST;

ENDIF;?

ENDPROCESSREG;?COM:PROCESS(C_ST,DATAIN)?

BEGIN??CASEC_STIS

WHENST0=>IFDATAIN=”10"THENN_ST<=ST1;

?ELSEN_ST〈=ST0;ENDIF;?Q<="1001";

WHENST1=>IFDATAIN="11”THENN_ST<=ST2;

?ELSEN_ST<=ST1;ENDIF;

Q<="0101";

?WHENST2=>IFDATAIN="01"THENN_ST<=ST3;

ELSEN_ST〈=ST0;ENDIF;?

Q<="1100";??WHENST3=>IFDATAIN="00”THENN_ST<=ST4;??ELSEN_ST<=ST2;ENDIF;

Q〈="0010";

WHENST4=〉IFDATAIN="11"THENN_ST〈=ST0;

ELSEN_ST<=ST3;ENDIF;?

Q<="1001";

?WHENOTHERS=>N_ST<=ST0;?-——--—------—-———--—---Page15—------——---——----ENDCASE;

?ENDPROCESSCOM;?

ENDbehav;

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

—-解:【例8—5】改寫(xiě)如下:??LIBRARYIEEE;?

USEIEEE.STD_LO(píng)GIC_1164。ALL;

?ENTITYMEALY1IS

PORT(CLK,DATAIN,RESET:INSTD_LOGIC;??Q:OUTSTD_LOGIC_VECTO(shè)R(4DOWNTO(shè)0));

ENDMEALY1;??ARCHITECTUREbehavOFMEALY1IS

TYPEstatesIS(st0,st1,st2,st3,st4);?SIGNALSTX:states;

BEGIN??PROCESS(CLK,RESET)—-單一進(jìn)程?

BEGIN??IFRESET='1'THENSTX<=ST0;?ELSIFCLK'EVENTANDCLK=’1'THEN??CASESTXIS?

WHENst0=>IFDATAIN='1'THENSTX〈=st1;ENDIF;

IFDATAIN=’1’THENQ〈="10000”;?

ELSEQ<="01010";ENDIF;?WHENst1=>IFDATAIN='0’THENSTX〈=st2;ENDIF;

?IFDATAIN='0'THENQ〈=”10111";??ELSEQ<=”10100";ENDIF;

?WHENst2=>IFDATAIN=’1'THENSTX<=st3;ENDIF;??IFDATAIN='1'THENQ<=”10101”;?ELSEQ<=”10011";ENDIF;??WHENst3=>IFDATAIN='0'THENSTX〈=st4;ENDIF;?

IFDATAIN=’0'THENQ<="11011";

ELSEQ〈="01001”;ENDIF;??WHENst4=>IFDATAIN='1'THENSTX<=st0;ENDIF;?IFDATAIN='1’THENQ<=”11101";??ELSEQ<=”01101";ENDIF;?

WHENOTHERS=>STX〈=st0;Q〈="00000";??ENDCASE;

ENDIF;?ENDPROCESS;

ENDbehav;

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

?USEIEEE.STD_LOGIC_1164.ALL;

ENTITYADCINTIS

PORT(D:INSTD_LO(píng)GIC_VECTOR(7DOWNTO(shè)0);-—來(lái)自0809轉(zhuǎn)換好的8位數(shù)據(jù)?

CLK:INSTD_LOGIC;--狀態(tài)機(jī)工作時(shí)鐘

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

ALE:OUTSTD_LOGIC;——8個(gè)模擬信號(hào)通道地址鎖存信號(hào)??START:OUTSTD_LOGIC;--轉(zhuǎn)換開(kāi)始信號(hào)

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

ADDA:OUTSTD_LOGIC;——信號(hào)通道最低位控制信號(hào)

?LOCK0:OUTSTD_LO(píng)GIC;--觀察數(shù)據(jù)鎖存時(shí)鐘

Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));—-8位數(shù)據(jù)輸出

ENDADCINT;?ARCHITECTUREbehavOFADCINTIS

?TYPEstatesIS(st0,st1,St2,st3,st4);-—定義各狀態(tài)子類(lèi)型

?SIGNALcurrent_state,next_state:states:=st0;

SIGNALREGL:STD_LO(píng)GIC_VECTOR(7DOWNTO(shè)0);?

SIGNALLOCK: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)換方式?

CASEcurrent_stateIS

WHENst0=〉ALE<=’0';START<=’0’;LOCK〈='0';OE<='0';??next_state〈=st1;-—0809初始化

?WHENst1=〉A(chǔ)LE<=’1';START〈=’1';LOCK〈='0';OE<='0';?

next_state<=st2;—-啟動(dòng)采樣

WHENst2=>ALE<=’0’;START<=’0';LOCK<='0’;OE〈=’0’;

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

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

WHENst3=>ALE<='0';START<='0';LOCK〈='0';OE<=’1’;??next_stat(yī)e<=st4;—-開(kāi)啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)?———-——-—---————-—------Page17—-——--——-—-———-————WHENst4=>ALE〈='0';START<='0';LOCK〈='1’;OE<='1';next_state<=st0;

WHENOTHERS=〉next_state〈=st0;

ENDCASE;??ENDPROCESSCOM;??REG:PROCESS(CLK)

BEGIN?

IF(CLK'EVENTANDCLK=’1’)THENcurrent_state<=next_stat(yī)e;ENDIF;?

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

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

?BEGIN?IFLOCK=’1’ANDLOCK'EVENTTHENREGL〈=D;ENDIF;?

ENDPROCESSLATCH1;

ENDbehav;?

8-5在不改變?cè)a功能的條件下用兩種方法改寫(xiě)例8-2,使其輸出的控制信號(hào)(ALE、START、OE、LOCK)沒(méi)有毛?刺。方法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程序代碼如下:??LIBRARYIEEE;??USEIEEE.STD_LOGIC_1164.ALL;?ENTITYADCINTIS?

PORT(D:INSTD_LOGIC_VECTO(shè)R(7DOWNTO0);-—來(lái)自0809轉(zhuǎn)換好的8位數(shù)據(jù)

?CLK:INSTD_LOGIC;--狀態(tài)機(jī)工作時(shí)鐘

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

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

START:OUTSTD_LOGIC;—-轉(zhuǎn)換開(kāi)始信號(hào)??OE:OUTSTD_LOGIC;—-數(shù)據(jù)輸出三態(tài)控制信號(hào)

ADDA:OUTSTD_LOGIC;——信號(hào)通道最低位控制信號(hào)?

LOCK0:OUTSTD_LOGIC;-—觀察數(shù)據(jù)鎖存時(shí)鐘??Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));—-8位數(shù)據(jù)輸出?ENDADCINT;??ARCHITECTUREbehavOFADCINTIS?

TYPEstatesIS(st0,st1,St2,st3,st4);--定義各狀態(tài)子類(lèi)型

?SIGNALcurrent_state,next_state:stat(yī)es:=st0;??SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO(shè)0);

SIGNALLO(píng)CK:STD_LOGIC;—-轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號(hào)

?SIGNALALE0:STD_LO(píng)GIC;--8個(gè)模擬信號(hào)通道地址鎖存信號(hào)

?SIGNALSTART0:STD_LOGIC;--轉(zhuǎn)換開(kāi)始信號(hào)

?SIGNALOE0: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)換方式

CASEcurrent_stateIS?

WHENst0=>ALE0<='0’;START0〈='0';LOCK<='0';OE0<=’0’;?next_state<=st1;—-0809初始化??WHENst1=〉A(chǔ)LE0<='1’;START0〈=’1';LOCK<='0';OE0〈='0';?

next_state〈=st2;-—啟動(dòng)采樣?

WHENst2=〉A(chǔ)LE0〈=’0’;START0<='0';LOCK<=’0';OE0〈='0';

---———---——-Page18—---——-—--—------—-—---IF(EOC='1')THENnext_state〈=st3;-—EOC=1表明轉(zhuǎn)換結(jié)束??ELSEnext_state<=st2;ENDIF;--轉(zhuǎn)換未結(jié)束,繼續(xù)等待?

WHENst3=>ALE0<='0';START0<=’0’;LOCK〈='0’;OE0<=’1’;

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

WHENst4=>ALE0〈=’0’;START0〈='0';LOCK<='1’;OE0<='1';next_st

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論