

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、EDA技術(shù)實(shí)用教程(第五版)習(xí)題1習(xí)題1-1EDA技術(shù)與ASIC設(shè)計(jì)和FPGA開(kāi)發(fā)有什么關(guān)系?FPGA在ASIC設(shè)計(jì)中有什么用途?P34EDA技術(shù)與ASIC設(shè)計(jì)和FPGA開(kāi)發(fā)有什么關(guān)系?答:利用EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的最后目標(biāo)是完成專用集成電路ASIC的設(shè)計(jì)和實(shí)現(xiàn);FPGA和CPLD是實(shí)現(xiàn)這一途徑的主流器件。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)最典型的詮釋。FPGA在ASIC設(shè)計(jì)中有什么用途?答:FPGA和CPLD通常也被稱為可編程專用IC,或可編程ASIC。FPGA實(shí)現(xiàn)ASIC設(shè)計(jì)的現(xiàn)場(chǎng)可編程器件。1-
2、2與軟件描述語(yǔ)言相比,VHDL有什么特點(diǎn)?P46答:編譯器將軟件程序翻譯成基于某種特定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(硬件描述語(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è)置的各類約束條件,選擇最優(yōu)的方式完成電路結(jié)構(gòu)的設(shè)計(jì)
3、。l- 3什么是綜合?有哪些類型?綜合在電子設(shè)計(jì)自動(dòng)化中的地位是什么?P6什么是綜合?答:在電子設(shè)計(jì)領(lǐng)域中綜合的概念可以表示為:將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實(shí)現(xiàn)的模塊組合裝配的過(guò)程。有哪些類型?答:(1)從自然語(yǔ)言轉(zhuǎn)換到VHDL語(yǔ)言算法表示,即自然語(yǔ)言綜合。(2)從算法表示轉(zhuǎn)換到寄存器傳輸級(jí)(RegisterTransportLevel,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è)
4、計(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ì)方法的重要意義是什么?P810答:在EDA技術(shù)應(yīng)用中,自頂向下的設(shè)計(jì)方法,就是在整個(gè)設(shè)計(jì)流程中各設(shè)計(jì)環(huán)節(jié)逐步求精的過(guò)程。1-5IP在EDA技術(shù)的應(yīng)用和發(fā)展中的意義是什么?P2325答:IP核具有規(guī)范的接口協(xié)議,良好的可移植與可測(cè)試性,為系統(tǒng)開(kāi)發(fā)提供了可靠的保證。1-6敘述EDA的FPG
5、A/CPLD設(shè)計(jì)流程,以及涉及的EDA工具及其在整個(gè)流程中的作用。(P1214)答:1.設(shè)計(jì)輸入(原理圖/HDL文本編輯)(EDA設(shè)計(jì)輸入器將電路系統(tǒng)以一定的表達(dá)方式輸入計(jì)算機(jī));2.綜合(EDA綜合器就是將電路的高級(jí)語(yǔ)言(如行為描述)轉(zhuǎn)換成低級(jí)的,可與FPGA/CPLD的基本結(jié)構(gòu)相映射的網(wǎng)表文件或程序。);3.適配(EDA適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件,如JEDEC、JAM格式的文件。);4.時(shí)序仿真(EDA時(shí)序仿真器就是接近真實(shí)器件運(yùn)行特性的仿真,仿真文件中已包含了器件硬件特性參數(shù),因而,仿真精度高。)與功能仿真(EDA功能仿真器直接對(duì)
6、VHDL、原理圖描述或其他描述形式的邏輯功能進(jìn)行測(cè)試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)的要求,仿真過(guò)程不涉及任何具體器件的硬件特性。);5編程下載(EDA編程下載把適配后生成的下載或配置文件,通過(guò)編程器或編程電纜向FPGA或CPLD下載,以便進(jìn)行硬件調(diào)試和驗(yàn)證(HardwareDebugging)o);6.硬件測(cè)試(最后是將含有載入了設(shè)計(jì)的FPGA或CPLD的硬件系統(tǒng)進(jìn)行統(tǒng)一測(cè)試,以便最終驗(yàn)證設(shè)計(jì)項(xiàng)目在目標(biāo)系統(tǒng)上的實(shí)際工作情況,以排除錯(cuò)誤,改進(jìn)設(shè)計(jì)。其中EDA的嵌入式邏輯分析儀是將含有載入了設(shè)計(jì)的FPGA的硬件系統(tǒng)進(jìn)行統(tǒng)一測(cè)試,并將測(cè)試波形在PC機(jī)上顯示、觀察和分析。)。2習(xí)題2- 1OL
7、MC(輸出邏輯宏單元)有何功能?說(shuō)明GAL是怎樣實(shí)現(xiàn)可編程組合電路與時(shí)序電路的。P3436OLMC有何功能?答:OLMC單元設(shè)有多種組態(tài),可配置成專用組合輸出、專用輸入、組合輸出雙向口、寄存器輸出、寄存器輸出雙向口等。說(shuō)明GAL是怎樣實(shí)現(xiàn)可編程組合電路與時(shí)序電路的?答:GAL(通用陣列邏輯器件)是通過(guò)對(duì)其中的OLMC(邏輯宏單元)的編程和三種模式配置(寄存器模式、復(fù)合模式、簡(jiǎn)單模式),實(shí)現(xiàn)組合電路與時(shí)序電路設(shè)計(jì)的。2-2什么是基于乘積項(xiàng)的可編程邏輯結(jié)構(gòu)?P3334,40什么是基于查找表的可編程邏輯結(jié)構(gòu)?P4042什么是基于乘積項(xiàng)的可編程邏輯結(jié)構(gòu)?答:GAL、CPLD之類都是基于乘積項(xiàng)的可編程結(jié)
8、構(gòu);即包含有可編程與陣列和固定的或陣列的PAL(可編程陣列邏輯)器件構(gòu)成。什么是基于查找表的可編程邏輯結(jié)構(gòu)?答:FPGA(現(xiàn)場(chǎng)可編程門陣列)是基于查找表的可編程邏輯結(jié)構(gòu)。2-3FPGA系列器件中的LAB有何作用?P4244答:FPGA(Cyclone/CycloneII)系列器件主要由邏輯陣列塊LAB、嵌入式存儲(chǔ)器塊(EAB)、I/O單元、嵌入式硬件乘法器和PLL等模塊構(gòu)成;其中LAB(邏輯陣列塊)由一系列相鄰的LE(邏輯單元)構(gòu)成的;FPGA可編程資源主要來(lái)自邏輯陣列塊LAB。2-4與傳統(tǒng)的測(cè)試技術(shù)相比,邊界掃描技術(shù)有何優(yōu)點(diǎn)?P4750答:使用BST(邊界掃描測(cè)試)規(guī)范測(cè)試,不必使用物理探針
9、,可在器件正常工作時(shí)在系統(tǒng)捕獲測(cè)量的功能數(shù)據(jù)??朔鹘y(tǒng)的外探針測(cè)試法和“針床”夾具測(cè)試法來(lái)無(wú)法對(duì)IC內(nèi)部節(jié)點(diǎn)無(wú)法測(cè)試的難題。2-5解釋編程與配置這兩個(gè)概念。P5156答:編程:基于電可擦除存儲(chǔ)單元的EEPROM或Flash技術(shù)。CPLD一股使用此技術(shù)進(jìn)行編程。CPLD被編程后改變了電可擦除存儲(chǔ)單元中的信息,掉電后可保存。電可擦除編程工藝的優(yōu)點(diǎn)是編程后信息不會(huì)因掉電而丟失,但編程次數(shù)有限,編程的速度不快。配置:基于SRAM查找表的編程單元。編程信息是保存在SRAM中的,SRAM在掉電后編程信息立即丟失,在下次上電后,還需要重新載入編程信息。大部分FPGA采用該種編程工藝。該類器件的編程一般稱為配
10、置。對(duì)于SRAM型FPGA來(lái)說(shuō),配置次數(shù)無(wú)限,且速度快;在加電時(shí)可隨時(shí)更改邏輯;下載信息的保密性也不如電可擦除的編程。2-6請(qǐng)參閱相關(guān)資料,并回答問(wèn)題:按本章給出的歸類方式,將基于乘積項(xiàng)的可編程邏輯結(jié)構(gòu)的PLD器件歸類為CPLD;將基于查找表的可編程邏輯結(jié)構(gòu)的PLD器什歸類為FPGA,那么,APEX系列屬于什么類型PLD器件?MAXII系列又屬于什么類型的PLD器件?為什么?P4751答:APEX(AdvancedLogicElementMatrix)系列屬于FPGA類型PLD器件;編程信息存于SRAM中。MAXII系列屬于CPLD類型的PLD器件;編程信息存于EEPROM中。3習(xí)題3-1說(shuō)明
11、端口模式INOUT和BUFFER有何異同點(diǎn)。P60INOUT:具有三態(tài)控制的雙向傳送端口BUFFER:具有輸出反饋的單向東湖出口。3- 2畫出與以下實(shí)體描述對(duì)應(yīng)的原理圖符號(hào)元件:ENTITYbuf3sIS-實(shí)體1:三態(tài)緩沖器PORT(input:INSTD_LOGIC;-輸入端enable:INSTD_LOGIC;-使能端output:OUTSTD_LOGIC);-輸出端ENDbuf3s;buf3sinputoutputenableENTITYmux21IS-實(shí)體2:2選1多路選擇器PORT(in0,in1,sel:INSTD_LOGIC;output:OUTSTD_LOGIC);mux21i
12、n0outputinisel3-3試分別用IF_THEN語(yǔ)句和CASE語(yǔ)句的表達(dá)方式寫出此電路的VHDL程序,選擇控制信號(hào)si和s0的數(shù)據(jù)類型為STD_LOGIC_VECTOR;當(dāng)sl='O',sO='O';sl='0',s0='l';sl=T,sO='O'和sl=T,sO=T時(shí),分別執(zhí)行yv=a、yv=b、yv=c、yv=d。-解1:用IF_THEN語(yǔ)句實(shí)現(xiàn)4選1多路選擇器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41ISPORT(a,b,c,d:INSTD_
13、LOGIC;s0:INSTD_LOGIC;s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41;ARCHITECTUREif_mux41OFmux41ISSIGNALs0s1:STD_LOGIC_VECTOR(1DOWNTO0);-定義標(biāo)準(zhǔn)邏輯位矢量數(shù)據(jù)BEGINsOslv=s1&sO;-si相并sO,即si與s0并置操作PROCESS(sOs1,a,b,c,d)BEGINIFsOs1="OO"THENy<=a;ELSIFsOs1="O1"THENy<=b;ELSIFsOs1="1O&q
14、uot;THENy<=c;ELSEy<=d;ENDIF;ENDPROCESS;ENDARCHITECTUREif_mux4i;-解2:用CASE語(yǔ)句實(shí)現(xiàn)4選1多路選擇器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41ISPORT(a,b,c,d:INSTD_LOGIC;sO:INSTD_LOGIC;s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41;ARCHITECTUREcase_mux41OFmux41ISSIGNALsOs1:STD_LOGIC_VECTOR(1DOWNTOO);-定義
15、標(biāo)準(zhǔn)邏輯位矢量數(shù)據(jù)類型BEGINsOs1<=s1&sO;-si相并sO,即si與sO并置操作PROCESS(sOs1,a,b,c,d)BEGINCASEsOs1IS-類似于真值表的case語(yǔ)句WHEN"OO"=>y<=a;WHEN"O1"=>y<=b;WHEN"1O"=>y<=c;WHEN"11"=>y<=d;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREcase_mux41;3-4給出1位全
16、減器的VHDL描述;最終實(shí)現(xiàn)8位全減器。要求:1)首先設(shè)計(jì)1位半減器,然后用例化語(yǔ)句將它們連接起來(lái),圖4-2O中h_suber是半減器,diff是輸出差(diff=x-y),s_out是借位輸出(s_out=1,xvy),sub_in是借位輸入。圖3-18全減器結(jié)構(gòu)圖-解(1.1):實(shí)現(xiàn)1位半減器h_suber(diff=x-y;s_out=1,x<y)LIBRARYIEEE;-半減器描述(1):布爾方程描述方法USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_suberISPORT(x,y:INSTD_LOGIC;diff,s_out:OUTSTD_LOGIC);E
17、NDENTITYh_suber;ARCHITECTUREhs1OFh_suberISBEGINDiff<=xXOR(NOTy);s_out<=(NOTx)ANDy;ENDARCHITECTUREhs1;-解(1.2):采用例化實(shí)現(xiàn)圖4-20的1位全減器LIBRARYIEEE;-1位二進(jìn)制全減器順層設(shè)計(jì)描述USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_suberISPORT(xin,yin,sub_in:INSTD_LOGIC;sub_out,diff_out:OUTSTD_LOGIC);ENDENTITYf_suber;ARCHITECTUREfs1OFf_
18、suberISCOMPONENTh_suber-調(diào)用半減器聲明語(yǔ)句PORT(x,y:INSTD_LOGIC;diff,s_out:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALa,b,c:STD_LOGIC;-定義1個(gè)信號(hào)作為內(nèi)部的連接線。BEGINu1:h_suberPORTMAP(x=>xin,y=>yin,diff=>a,s_out=>b);u2:h_suberPORTMAP(x=>a,y=>sub_in,diff=>diff_out,s_out=>c);sub_out<=cORb;ENDARCHITECTUREf
19、s1;(2)以1位全減器為基本硬件,構(gòu)成串行借位的8位減法器,要求用例化語(yǔ)句來(lái)完成此項(xiàng)設(shè)計(jì)(減法運(yùn)算是x-y-sun_in=difft)。x7y7x1y1x0y0sinsoutdiff7diff1diff0串行借位的8位減法器-解(2):采用例化方法,以1位全減器為基本硬件;實(shí)現(xiàn)串行借位的8位減法器(上圖所示)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsuber_8ISPORT(x0,x1,x2,x3,x4,x5,x6,x7:INSTD_LOGIC;y0,y1,y2,y3,y4,y5,y6,y7,sin:INSTD_LOGIC;diff0,dif
20、f1,diff2,diff3:OUTSTD_LOGIC;diff4,diff5,diff6,diff7,sout:OUTSTD_LOGIC);ENDENTITYsuber_8;ARCHITECTUREs8OFsuber_8ISCOMPONENTf_suber-調(diào)用全減器聲明語(yǔ)句PORT(xin,yin,sub_in:INSTD_LOGIC;sub_out,diff_out:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALa0,a1,a2,a3,a4,a5,a6:STD_LOGIC;-定義1個(gè)信號(hào)作為內(nèi)部的連接線。BEGINu0:f_suberPORTMAP(xin=>x
21、0,yin=>y0,diff_out=>diff0,sub_in=>sin,sub_out=>a0);u1:f_suberPORTMAP(xin=>x1,yin=>y1,diff_out=>diff1,sub_in=>a0,sub_out=>a1);u2:f_suberPORTMAP(xin=>x2,yin=>y2,diff_out=>diff2,sub_in=>a1,sub_out=>a2);u3:f_suberPORTMAP(xin=>x3,yin=>y3,diff_out=>diff3,
22、sub_in=>a2,sub_out=>a3);u4:f_suberPORTMAP(xin=>x4,yin=>y4,diff_out=>diff4,sub_in=>a3,sub_out=>a4);u5:f_suberPORTMAP(xin=>x5,yin=>y5,diff_out=>diff5,sub_in=>a4,sub_out=>a5);u6:f_suberPORTMAP(xin=>x6,yin=>y6,diff_out=>diff6,sub_in=>a5,sub_out=>a6);u7:
23、f_suberPORTMAP(xin=>x7,yin=>y7,diff_out=>diff7,sub_in=>a6,sub_out=>sout);ENDARCHITECTUREs8;3-5用VHDL設(shè)計(jì)一個(gè)3-8譯碼器,要求分別用(條件)賦值語(yǔ)句、case語(yǔ)句、ifelse語(yǔ)句或移位操作符來(lái)完成。比較這4種方式中,哪一種最節(jié)省邏輯資源。解(1):條件賦值語(yǔ)句-3-53到8譯碼器設(shè)計(jì)(條件賦值語(yǔ)句實(shí)現(xiàn))LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-為使用類型轉(zhuǎn)換函數(shù),打開(kāi)
24、此程序包ENTITYdecoder3to8ISport(DIN:INSTD_LOGIC_VECTOR(2DOWNTO0);DOUT:OUTBIT_VECTOR(7DOWNTO0);ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINWITHCONV_INTEGER(DIN)SELECTDOUT<="00000001"WHEN0,"00000010"WHEN1,"00000100"WHEN2,"00001000"WHEN3,"00010000&qu
25、ot;WHEN4,"00100000"WHEN5,"01000000"WHEN6,"10000000"WHEN7,UNAFFECTEDWHENOTHERS;ENDbehave;解(2):case語(yǔ)句3-53到8譯碼器設(shè)計(jì)(case語(yǔ)句實(shí)現(xiàn))LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-為使用類型轉(zhuǎn)換函數(shù),打開(kāi)此程序包ENTITYdecoder3to8ISport(DIN:INSTD_LOGIC_VECTOR(2DOWNTO0);DOUT:O
26、UTBIT_VECTOR(7DOWNTO0);ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINPROCESS(DIN)BEGINCASECONV_INTEGER(DIN)ISWHEN0=>DOUT<="00000001"WHEN1=>DOUT<="00000010"WHEN2=>DOUT<="00000100"WHEN3=>DOUT<="00001000"WHEN4=>DOUT<="000
27、10000"WHEN5=>DOUT<="00100000"WHEN6=>DOUT<="01000000"WHEN7=>DOUT<="10000000"WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDbehave;解(3):if_else語(yǔ)句-3-53到8譯碼器設(shè)計(jì)(if_else語(yǔ)句實(shí)現(xiàn))LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-為使用類型轉(zhuǎn)換函數(shù),打開(kāi)此
28、程序包ENTITYdecoder3to8ISport(DIN:INSTD_LOGIC_VECTOR(2DOWNTO0);DOUT:OUTBIT_VECTOR(7DOWNTO0);ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINPROCESS(DIN)BEGINIFCONV_INTEGER(DIN)=0THENDOUT<="00000001"ELSIFCONV_INTEGER(DIN)=1THENDOUT<="00000010"ELSIFCONV_INTEGER(DIN)=2THENDO
29、UT<="00000100"ELSIFCONV_INTEGER(DIN)=3THENDOUT<="00001000"ELSIFCONV_INTEGER(DIN)=4THENDOUT<="00010000"ELSIFCONV_INTEGER(DIN)=5THENDOUT<="00100000"ELSIFCONV_INTEGER(DIN)=6THENDOUT<="01000000"ELSIFCONV_INTEGER(DIN)=7THENDOUT<="10
30、000000"ENDIF;ENDPROCESS;ENDbehave;解(4):移位操作符-3-53到8譯碼器設(shè)計(jì)(移位操作實(shí)現(xiàn))LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-為使用類型轉(zhuǎn)換函數(shù),打開(kāi)此程序包ENTITYdecoder3to8ISport(DIN:INSTD_LOGIC_VECTOR(2DOWNTO0);DOUT:OUTBIT_VECTOR(7DOWNTO0);ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINDOUT&
31、lt;="00000001"SLLCONV_INTEGER(DIN);-被移位部分是常數(shù)ENDbehave;3-6設(shè)計(jì)一個(gè)比較電路,當(dāng)輸入的8421BCD碼大于5時(shí)輸出1,否則輸出0。-解:3-6設(shè)計(jì)一個(gè)比較電路,當(dāng)輸入的8421BCD碼大于5時(shí)輸出1,否則輸出0。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYg_5_cmpISPORT(d_in:INSTD_LOGIC_VECTOR(3DOWNTO0);-輸入數(shù)據(jù)cmp_out:OUTSTD_LOGIC);-比較輸出(
32、1:輸入數(shù)據(jù)>5)ENDg_5_cmp;ARCHITECTUREBHVOFg_5_cmpISBEGINPROCESS(d_in)BEGINIF(d_in>"0101")THENcmp_out<='1'-輸入數(shù)據(jù)大于5,比較輸出1。elsecmp_out<='0'-輸入數(shù)據(jù)小于等于5,比較輸出0。ENDIF;ENDPROCESS;ENDBHV;3-7利用if語(yǔ)句設(shè)計(jì)一個(gè)全加器。-3-7利用if語(yǔ)句設(shè)計(jì)一個(gè)全加器LIBRARYIEEE;-1位二進(jìn)制全加器頂層設(shè)計(jì)描述USEIEEE.STD_LOGIC_1164.ALL;US
33、EIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISBEGINPROCESS(ain,bin,cin)BEGINIFain='1'XORbin='1'XORcin='1'THENsum<='1'ELSEsum<='0'ENDIF;IF(ain='1'ANDbin=&
34、#39;1')OR(ain='1'ANDcin='1')OR(bin='1'ANDcin='1')OR(ain='1'ANDbin='1'ANDcin='1')THENcout<='1'ELSEcout<='0'ENDIF;ENDPROCESS;ENDARCHITECTUREfd1;3-8設(shè)計(jì)一個(gè)求補(bǔ)碼的程序,輸入數(shù)據(jù)是一個(gè)有符號(hào)的8位二進(jìn)制數(shù)。-解:3-8設(shè)計(jì)一個(gè)求補(bǔ)碼的程序,輸入數(shù)據(jù)是一個(gè)有符號(hào)的8位二進(jìn)制數(shù)。LIBRARYIE
35、EE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYorg_patchISPORT(org_data:INSTD_LOGIC_VECTOR(7DOWNTO0);-原碼輸入patch_data:OUTSTD_LOGIC_VECTOR(7DOWNTO0);-補(bǔ)碼輸出ENDorg_patch;ARCHITECTUREBHVOForg_patchISBEGINPROCESS(org_data)BEGINIF(org_data(7)='0')THENpatch_datav=org_data;-org_dat
36、a>=0,補(bǔ)碼=原碼。elsepatch_datav=org_data(7)&(notorg_data(6DOWNTO0)+l;-org_datav0,補(bǔ)碼=1原碼|取反+1。ENDIF;ENDPROCESS;ENDBHV;3-9設(shè)計(jì)一個(gè)格雷碼至二進(jìn)制數(shù)的轉(zhuǎn)換器。-3-9設(shè)計(jì)一個(gè)格雷碼至二進(jìn)制數(shù)的轉(zhuǎn)換器。LIBRARYIEEE;USEIEEE.STD_LOGIC_ll64.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-為使用類型轉(zhuǎn)換函數(shù),打開(kāi)此程序包。ENTITYgrayTObinaryISport(DIN:INSTD_LOGIC_VECTOR(3DOW
37、NTO0);DOUT:OUTBIT_VECTOR(3DOWNTO0);ENDgrayTObinary;ARCHITECTUREbehaveOFgrayTObinaryISBEGINPROCESS(DIN)BEGINCASEDINISWHEN"0000"=>DOUT<="0000"WHEN"000l"=>DOUT<="000l"WHEN"00ll"=>DOUT<="00l0"WHEN"00l0"=>DOUT<=
38、"00ll"WHEN"0ll0"=>DOUT<="0l00"WHEN"0lll"=>DOUT<="0l0l"WHEN"0l0l"=>DOUT<="0ll0"WHEN"0l00"=>DOUT<="0lll"WHEN"ll00"=>DOUT<="l000"WHEN"ll0l"=>DOUT<=
39、"l00l"WHEN"llll"=>DOUT<="l0l0"WHEN"lll0"=>DOUT<="l0ll"WHEN"l0l0"=>DOUT<="ll00"WHEN"l0ll"=>DOUT<="ll0l"WHEN"l00l"=>DOUT<="lll0"WHEN"l000"=>DOUT<=
40、"llll"WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDbehave;3-10利用if語(yǔ)句設(shè)計(jì)一個(gè)3位二進(jìn)制數(shù)A2.O、B2.O的比較器電路。對(duì)于比較(AvB)、(A>B)、(A=B)的結(jié)果分別給出輸出信號(hào)LT=1、GT=1、EQ=1。-3-10利用if語(yǔ)句設(shè)計(jì)一個(gè)3位二進(jìn)制數(shù)A2.0、B2.0的比較器電路。對(duì)于比較(AvB)、(A>B)、(A=B)的結(jié)果分別給出輸出信號(hào)LT=1、GT=1、EQ=1。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIG
41、NED.ALL;ENTITYCOMPISPORT(A,B:INSTD_LOGIC_VECTOR(2DOWNTO0);-兩個(gè)3位輸入LT:OUTSTD_LOGIC;-小于輸出GT:OUTSTD_LOGIC;-大于輸出EQ:OUTSTD_LOGIC);-等于輸出ENDENTITYCOMP;ARCHITECTUREONEOFCOMPISBEGINPROCESS(A,B)BEGINIF(A<B)THENLT<='1'ELSELT<='0'ENDIF;IF(A>B)THENGT<='1'ELSEGT<='0
42、9;ENDIF;IF(A=B)THENEQ<='1'ELSEEQ<='0'ENDIF;ENDPROCESS;-LT<=(A<B);-小于-GT<=(A>B);-大于-EQ<=(A=B);-等于ENDARCHITECTUREONE;3-11利用8個(gè)全加器,可以構(gòu)成一個(gè)8位加法器。利用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)這項(xiàng)設(shè)計(jì)。并以此項(xiàng)設(shè)計(jì)為例,使用GENERIC參數(shù)傳遞的功能,設(shè)計(jì)一個(gè)32位加法器。-3-11利用GENERIC參數(shù)和循環(huán)語(yǔ)句將8個(gè)全加器構(gòu)成成8位加法器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL
43、;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYADDER8BISGENERIC(S:INTEGER:=8);定義參數(shù)S為整數(shù)類型,且等于4PORT(A,B:INSTD_LOGIC_VECTOR(S-1DOWNTO0);CIN:INSTD_LOGIC;SUM:OUTSTD_LOGIC_VECTOR(S-1DOWNTO0);COUT:OUTSTD_LOGIC);ENDENTITYADDER8B;ARCHITECTUREONEOFADDER8BISBEGINPROCESS(A,B,CIN)VARIABLES1:ST
44、D_LOGIC_VECTOR(S-1DOWNTO0);VARIABLEC1:STD_LOGIC;-_VECTOR(SDOWNTO0);BEGINC1:=CIN;-C1(0):=CIN;FORiIN1TOSLOOPIFA(i-1)='1'XORB(i-1)='1'XORC1='1'THENS1(i-1):='1'ELSES1(i-1):='0'ENDIF;IF(A(i-1)='1'ANDB(i-1)='1')OR(A(i-1)='1'ANDC1='1')
45、OR(B(i-1)='1'ANDC1='1')OR(A(i-1)='1'ANDB(i-1)='1'ANDC1='1')THENC1:='1'ELSEC1:='0'ENDIF;ENDLOOP;SUM<=S1;COUT<=C1;ENDPROCESS;ENDARCHITECTUREONE;3-12設(shè)計(jì)一個(gè)2位BCD碼減法器。注意可以利用BCD碼加法器來(lái)實(shí)現(xiàn)。因?yàn)闇p去一個(gè)二進(jìn)制數(shù),等于加上這個(gè)數(shù)的補(bǔ)碼。只是需要注意,作為十進(jìn)制的BCD碼的補(bǔ)碼獲取方式與普通二進(jìn)制數(shù)稍有不同。我們知
46、道二進(jìn)制數(shù)的補(bǔ)碼是這個(gè)數(shù)的取反加1。假設(shè)有一個(gè)4位二進(jìn)制數(shù)是0011,其取補(bǔ)實(shí)際上是用1111減去0011,再加上1。相類似,以4位二進(jìn)制表達(dá)的BCD碼的取補(bǔ)則是用9(1001)減去這個(gè)數(shù)再加上1。-3-12設(shè)計(jì)2位BCD碼減法器(利用減去數(shù)等于加上該數(shù)補(bǔ)碼方法)(a-b=a+-b補(bǔ)碼)LIBRARYIEEE;-待例化元件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_arith.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYSUB2BCDISPORT(a,b:INSTD_LOGIC_VECTOR(7DOWNTO0)
47、;diff:outSTD_LOGIC_VECTOR(7DOWNTO0);sout:OUTSTD_LOGIC);ENDSUB2BCD;ARCHITECTUREbehaveOFSUB2BCDISBEGINPROCESS(a,b)VARIABLEcc:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFa<bTHENsout<='1'ELSEsout<='0'ENDIF;cc:="10011010"-b;IFcc(3DOWNTO0)>"1001"THENcc:=cc+"00000
48、110"ENDIF;IFcc(7DOWNTO4)>"1001"THENcc:=cc+"01100000"ENDIF;cc:=a+cc;IFcc(3DOWNTO0)>"1001"THENcc:=cc+"00000110"ENDIF;IFcc(7DOWNTO4)>"1001"THENcc:=cc+"01100000"ENDIF;IFa<bTHENcc:="10011010"-cc;IFcc(3DOWNTO0)>"
49、;1001"THENcc:=cc+"00000110"ENDIF;IFcc(7DOWNTO4)>"1001"THENcc:=cc+"01100000"ENDIF;ENDIF;diff<=cc;ENDPROCESS;ENDbehave;3-13設(shè)計(jì)一個(gè)4位乘法器,為此首先設(shè)計(jì)一個(gè)加法器,用例化語(yǔ)句調(diào)用這個(gè)加法器,用移位相加的方式完成乘法。并以此項(xiàng)設(shè)計(jì)為基礎(chǔ),使用GENERIC參數(shù)傳遞的功能,設(shè)計(jì)一個(gè)16位乘法器。-3-134位移位相加型乘法器設(shè)計(jì)(例化調(diào)用加法器)LIBRARYIEEE;USEIEEE.STD_LO
50、GIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYMULT4BISGENERIC(S:INTEGER:=4);-定義參數(shù)S為整數(shù)類型,且等于4PORT(R:OUTSTD_LOGIC_VECTOR(2*S-1DOWNTO0);A,B:INSTD_LOGIC_VECTOR(S-1DOWNTO0);ENDENTITYMULT4B;ARCHITECTUREONEOFMULT4BISCOMPONENTaddernISPORT(a,b:INSTD_LOGIC_VECTOR;result:outSTD_
51、LOGIC_VECTOR);ENDCOMPONENT;SIGNALA0:STD_LOGIC_VECTOR(2*S-1DOWNTO0);SIGNALRR3,RR2,RR1,RR0,ZZ1,ZZ0:STD_LOGIC_VECTOR(2*S-1DOWNTO0);BEGINA0<=CONV_STD_LOGIC_VECTOR(0,S)&A;PROCESS(A,B)BEGINIF(B(0)='1')THENRR0<=TO_STDLOGICVECTOR(TO_BITVECTOR(A0)SLL0);ELSERR0<=(OTHERS=>'0');E
52、NDIF;IF(B(1)='1')THENRR1<=TO_STDLOGICVECTOR(TO_BITVECTOR(A0)SLL1);ELSERR1<=(OTHERS=>'0');ENDIF;IF(B(2)='1')THENRR2<=TO_STDLOGICVECTOR(TO_BITVECTOR(A0)SLL2);ELSERR2<=(OTHERS=>'0');ENDIF;IF(B(3)='1')THENRR3<=TO_STDLOGICVECTOR(TO_BITVECTOR(A0
53、)SLL3);ELSERR3<=(OTHERS=>'0');ENDIF;ENDPROCESS;u0:addernPORTMAP(a=>RR0,b=>RR1,result=>ZZ0);u1:addernPORTMAP(a=>ZZ0,b=>RR2,result=>ZZ1);u2:addernPORTMAP(a=>ZZ1,b=>RR3,result=>R);ENDARCHITECTUREONE;-3-13a16位乘法器(通過(guò)底層3-13_MULTSB和頂層GENERIC參數(shù)和傳遞例化語(yǔ)句實(shí)現(xiàn))LIBRARYIEEE;U
54、SEIEEE.STD_LOGIC_1164.ALL;ENTITYMULT16BISPORT(D1,D2:INSTD_LOGIC_VECTOR(15DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(31DOWNTO0);END;ARCHITECTUREBHVOFMULT16BISCOMPONENTMULTSB-MULTS8模塊的調(diào)用聲明GENERIC(S:integer);照抄MULTSB實(shí)體中關(guān)于參數(shù)“端口”定義的語(yǔ)句PORT(R:OUTstd_logic_vector(2*S-1DOWNTO0);A,B:INstd_logic_vector(S-1DOWNTO0);ENDCOMP
55、ONENT;BEGINu1:MULTSBGENERICMAP(S=>16)PORTMAP(R=>Q,A=>D1,B=>D2);END;3-14用循環(huán)語(yǔ)句設(shè)計(jì)一個(gè)7人投票表決器。-解:3-14用循環(huán)語(yǔ)句設(shè)計(jì)一個(gè)7人投票表決器,及一個(gè)4位4輸出最大數(shù)值檢測(cè)電路。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYvote_7ISPORT(DIN:INSTD_LOGIC_VECTOR(6DOWNTO0);-7位表決輸入(1:同意,0:不同意)G_4:OUTSTD_LOGIC;-
56、超過(guò)半數(shù)指示CNTH:OUTSTD_LOGIC_VECTOR(2DOWNTO0);-表決結(jié)果統(tǒng)計(jì)數(shù)ENDvote_7;ARCHITECTUREBHVOFvote_7ISBEGINPROCESS(DIN)VARIABLEQ:STD_LOGIC_VECTOR(2DOWNTO0);BEGINQ:="000"FORnIN0TO6LOOP-n是LOOP的循環(huán)變量IF(DIN(n)='1')THENQ:=Q+1;ENDIF;ENDLOOP;CNTH<=Q;IFQ>=4THENG_4<='1'ELSEG_4<='0'
57、ENDIF;ENDPROCESS;ENDBHV;3-15設(shè)計(jì)一個(gè)4位4輸入最大數(shù)值檢測(cè)電路。-3-15設(shè)計(jì)一個(gè)4位4輸入最大數(shù)值檢測(cè)電路。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYMAXDATAISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);MAXOUT:OUTSTD_LOGIC);ENDENTITYMAXDATA;ARCHITECTUREONEOFMAXDATAISBEGINPROCESS(A)BEG
58、INIFA="1111"THENMAXOUT<='1'ELSEMAXOUT<='0'ENDIF;ENDPROCESS;ENDARCHITECTUREONE;3-16設(shè)計(jì)VHDL程序,實(shí)現(xiàn)兩個(gè)8位二進(jìn)制數(shù)相加,然后將和左移或右移4位,并分別將移位后的值存入變量AA和BB中。-3-16設(shè)計(jì)VHDL程序,實(shí)現(xiàn)兩個(gè)8位二進(jìn)制數(shù)相加,然后將和左移或右移4位,并分別將移位后的值存入變量A和B中。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYADDER8BISGENERIC(S:INTEGER:=8);-定義參數(shù)S為整數(shù)類型,且等于4PORT(A,B:INSTD_LOGIC_VECTOR(S-1DOWNTO0);CIN:INSTD_LOGIC;SUM:OUTSTD_LOGIC_VECTOR(S-1DOWNTO0);COUT:OUTSTD_LOGIC;AA,BB:OUTSTD_LOGIC_VECTOR(S-1+4DOWNTO0);ENDE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 華律勞務(wù)合同范本
- 2025年人造纖維(纖維素纖維)項(xiàng)目合作計(jì)劃書(shū)
- 合同范例三級(jí)
- 吊裝機(jī)租賃合同范本
- 2025年急救室設(shè)備器具合作協(xié)議書(shū)
- 2025年成品漿板包裝輸送系統(tǒng)項(xiàng)目發(fā)展計(jì)劃
- 2025年制漿和造紙專用設(shè)備項(xiàng)目建議書(shū)
- 變更房產(chǎn)合同范本
- 出售取向硅鋼合同范本
- 幻彩美甲店入股合同范本
- 部編人教版三年級(jí)下冊(cè)語(yǔ)文:荷花課件
- 螺紋牙強(qiáng)度校核計(jì)算
- 關(guān)于在生產(chǎn)過(guò)程中物料流轉(zhuǎn)的交接和管理規(guī)定
- 手槍的基礎(chǔ)射擊演示文稿
- 浮針療法的學(xué)習(xí)課件
- XX學(xué)院社團(tuán)指導(dǎo)老師學(xué)期考核表
- 獸醫(yī)外科手術(shù)學(xué)與獸醫(yī)外科學(xué)章節(jié)測(cè)試及答案
- 德能勤績(jī)量化考核表
- GB/T 6545-1998瓦楞紙板耐破強(qiáng)度的測(cè)定法
- GB/T 30799-2014食品用洗滌劑試驗(yàn)方法重金屬的測(cè)定
- GB/T 21739-2008家用電梯制造與安裝規(guī)范
評(píng)論
0/150
提交評(píng)論