EDA(FPGA)期末考試試題_第1頁(yè)
EDA(FPGA)期末考試試題_第2頁(yè)
EDA(FPGA)期末考試試題_第3頁(yè)
EDA(FPGA)期末考試試題_第4頁(yè)
EDA(FPGA)期末考試試題_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

這是長(zhǎng)期總結(jié)的EDA期末考試試題

獻(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)所利用。綜合器將VIIDL程序轉(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ì)。

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

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

塊組合裝配的過(guò)程。

有哪些類型?

答:(1)從自然語(yǔ)言轉(zhuǎn)換到VHDL語(yǔ)言算法表示,即自然語(yǔ)言綜合。

(2)從算法表示轉(zhuǎn)換到寄存器傳輸級(jí)(RegisterTransporlLevel,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)的工藝庫(kù)信息,以及獲得優(yōu)化綜合的諸多約束條件信息;根據(jù)工藝庫(kù)和約束條件信

>,將VH將程序轉(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ā)展中的意義是什么?Piri2

答: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-2IP是什么?IP與EDA技術(shù)的關(guān)系是什么?P24~26

IP是什么?

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

IP與EDA技術(shù)的關(guān)系是什么?

答:IP在EDA技術(shù)開發(fā)中具有十分重要的地位;與EDA技術(shù)的關(guān)系分有軟IP、固IP、硬IP:軟IP是用VHDL等硬件描述語(yǔ)言描述的

功能塊,并不涉及用什么具體電路元件實(shí)現(xiàn)這些功能;軟1P通常是以硬件描述語(yǔ)言HDL源文件的形式出現(xiàn)。固IP是完成了綜合的功能塊,

具有較大的設(shè)計(jì)深度,以網(wǎng)表文件的形式提交客戶使用。硬IP提供設(shè)計(jì)的最終階段產(chǎn)品:掩模。

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

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

說(shuō)明GAL是怎樣實(shí)現(xiàn)可編程組合電路與時(shí)序電路的?

答:GAL(通用陣列邏輯器件)是通過(guò)對(duì)其中的0LMC(輸出邏輯宏單元)的編程和三種模式配置(寄存器模式、復(fù)合模式、簡(jiǎn)單模式),

實(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)場(chǎng)可編程門陣列)是基于查找表的可編程邏輯結(jié)構(gòu)。

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

的可編程邏輯結(jié)構(gòu)的PLD器什歸類為FPGA,那么,APEX系列屬于什么類型PLD器件?MAXII系列又屬于什么類型的PLD器件?為什么?

P54~56

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

編程信息存于EEPR0M中。

4-3.圖3-31所示的是雙2選1多路選擇器構(gòu)成的電路MUXK,對(duì)于其中MUX21A,當(dāng)5='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。

LIBRARYIEEE;

USEIEEE.STDJ-0GIC1164.ALL;

ENTITYMUX221IS

PORT(al,a2,a3:INSTD_LOGIC_VECTOR(1DOWNTO0);一輸入信號(hào)

sO,sl:INSTD_LOGIC;

outy:0UTSTDLOGIC);--輸出端

ENDENTITY;

ARCHITECTUREONEOFMUX221IS

SIGNALtmp:STDLOGIC;

BEGIN

PR01:PROCESS(sO)

BEGIN

IFsO二"0"THENtmp<=a2;

ELSEtmp<=a3;

ENDIF;

ENDPROCESS;

PR02:PROCESS(si)

BEGIN

IFsi二"0"THENouty<=al;

ELSEouty<=tmp;

ENDIF;

ENDPROCESS;

ENDARCHITECTUREONE;

ENDCASE;

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

LIBRARYIEEE;

USEIEEE.STDLOGICJ164.ALL;

ENTITYMULTIIS

PORT(CL:INSTD_LOGIC;一輸入選擇信號(hào)

CLKO:INSTDLOGIC;一輸入信號(hào)

OUT1:OUTSTD_LOGIC);一輸出端

ENDENTITY;

ARCHITECTUREONEOFMULTIIS

SIGNALQ:STD_LOGIC;

BEGIN

PR01:PROCESS(CLKO)

BEGIN

IFCLK*EVENTANDCLK=,1'

THENQ<=NOT(CLORQ);ELSE

ENDIF;

ENDPROCESS;

PR02:PROCESS(CLKO)

BEGIN

0UTK=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)

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

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL;

USEIEEE.STDLOG[CONSIGNED.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」164.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〈二'O';s_out<0>

=,=,

WHEN〃01〃二〉diff<T;s_out<P

WHENTO"=>diffOT';s_out<=,0J

=,

WHEN"11〃=>diff〈='O';s_out<0)

WHENOTHERS=)NULL;

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREONE;

頂層文件:f.subber.VHD實(shí)現(xiàn)一位全減器

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYf_subberIS

P0RT(x,y,sub_in:INSTD_LOGIC;

diffr,sub_out:0UTSTD_LOGIC);

ENDENTITYf_subber;

ARCHITECTUREONEOFf_subberIS

COMPONENTh_subber

PORT(x,y:INSTD_LOGIC;

diff,S_out:OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTor2a

PORT(a,b:INSTDLOGIC;

c:0UTSTD_LOGIC);

ENDCOMPONENT;

SIGNALd,e,f:STD.LOGIC;

BEGIN

ul:h_subberPORTMAP(x=>x,y=>y,diff=>d,s_out=>e);

u2:hsubberPORTMAP(x=>d,y=>subin,diff=>diffr,sout=>f);

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

ENDARCHITECTUREONE;

ENDARCHITECTUREART;

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

MAX3256頂層文件

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYMAX3256IS

PORT(INA,INB,INCK:INSTD_LOGIC;INC:INSTD_LOGIC;

E,OUT:OUTSTD_LOGIC);

ENDENTITYMAX3256;

ARCHITECTUREONEOFMAX3256ISCOMPONENTLK35一調(diào)用LK35聲明語(yǔ)句

PORT(Al,A2:INSTD_LOGIC;CLK:INSTD_LOGIC;Q1,Q2:0UTSTD_LOGIC);

ENDCOMPONENT;

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

PORT(D,C:INSTD_LOGIC;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:STDLOGIC;

BEGIN

ul:LK35PORTN!AP(A1=>INA,A2=>INB,CLK=INCK,Q1=>AA,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:MUX21PORTMAP(B=>AA,A=>DD,S=>BB,C=>E);

ENDARCHITECTUREONE;

4-7含有異步清零和計(jì)數(shù)使能的16位二進(jìn)制加減可控計(jì)數(shù)器.

LIBRARYIEEE;

USEIEEE.STD_LOGIC」164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT16IS

PORT(CLK,RST,EN:INSTDLOGIC;CHOOSE:INBIT;

SETDATA:BUFFERINTEGERRANCE65535DOWNTO0;

COUT:BUFFERINTEGERRANCE65535DOWNTO0);

ENDCNT16;

ARCHITECTUREONEOFCNT16IS

BEGIN

PROCESS(CLK,RST,SDATA)

VARIABLEQI:STD_LOGIC_VECTOR(65535DOWNTO0);

BEGIN

IFRST='I'THEN一計(jì)數(shù)器異步復(fù)位QI:=(OTHERS=>'O');

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;

COUT〈=Q【;一將計(jì)數(shù)值向端口輸出

ENDPROCESS;

ENDONE;

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

答:變量:變量是一個(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í)體中并行語(yǔ)句模塊間的信息交流通道。信號(hào)不但可以安

納當(dāng)前值,也可以保持歷史值;與觸發(fā)器的記憶功能有很好的對(duì)應(yīng)關(guān)系。

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

答:⑴根據(jù)操作對(duì)象變換處理功能。

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

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

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

程序1:

SignalA,EN:stdlogic;

Process(A,EN)

VariableB:std_logic;

Begin

ifEN=1thenB<=A;endif;一將“BCA”改成“B:二A”

endprocess;

程序2:

Architectureoneofsampleis

variablea,b,c:integer;

begin

c<=a+b;一將"c〈=a+b"改成"c:=a+b”

end;

程序3:

libraryieee;

useieee.std_logic_l164.al1;

entitymux21is

PORT(a,b:instd_logic;sei:instd_loglc;c:outstd_logle;);--將改成"

endsam2;--將“sam2"改成"entitymux21

architectureoneofmux21is

begin

一增加"process(a,b,sei)begin”

ifsel='O'thenc:=a;elsec:=b;endif;一應(yīng)改成"ifsel='O'thenc<=a;elsec<=b;endif;

一增加“endprocess;w

endtwo;一將“two"改成"architectureone”

74LS160的程序

libraryieee;

useieee.std_logic_l164.all;

useieee.std_logic_unsigned.al1;

entityjishuqiis

port(elk,clr,p,t,load:instd_logic;

y:outstd_logic;

led:bufferstdlogic;

d:instd_logic_vector(3downto0);

q:bufferstd_logic_vector(3downto0);

hex:outstdlogic_vector(6downto0));

endjishuqi;

architecturebehavofjishuqiis

signalcount2:integerrange0to9;

signalhz:integerrange0to1;

begin

process(elk)

variablecount:integerrange0to25000000;

begin

if(clk=,1*andelk*event)thencount:=count+l;

if(count=12500000)thenhz<=l;y<=,T;

elsif(count=25000000)thenhz<=0;y<=,0>;

count:=0;

endif;

endif;

endprocess;

process(clr,hz,p,t,d,load,q)

begin

ifclr=0*thenq0〃0000〃;

else

ifhz=landhz'eventthen

ifload='O'thenq<=d;

elsifload=,1'then

ifp=,Tthen

ift=,Tthen

ifq=/z100r,thenq<=z,0000,/;led<=notled;

elseq〈=q+1

endif;

endprocess;

process(p,t,d,q)

begin

ifp='O'thenq<=q;

elsift='O'thenq<=q;

endif;

endprocess;

process(q)

begin

caseqis

when"0000"=>counl2<=0;

whenz/000r,=>count2<=l;

when,z0010/,=>count2<=2;

when,,001P=>count2<=3;

whenz,0100,,=>count2<=4;

whenz,0101z,=>count2<=5;

whenz,0110/z=>count2<=6;

when"Olli*=>count2<=7;

when,z1000,,=>count2<=8;

when1001/z=>count2<=9;

whenothers=>count2<=null;

endcase;

endprocess;

process(count2)

begin

casecount2is

when0=〉hex<="0000001”;

when1二>hex<="1001111”;

when2二>hex<=〃0010010〃;

when3=>hex<:"0000110”;

when4=>hex<=//1001100^;

when5二)hex〈二”0100100”;

when6=>hex<="0100000”;

when7=>hex<=/,0001111zz;

when8二)hex<=〃0000000〃;

when9=>hex<=,,0000100/,;

endcase;

endprocess;

endbehav;

4選1多路選擇器

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitymux4isport(dO,dl,d2,d3:instd_logic;

aO,al:instd_logic;

q:outstd_logic);

endmux4;

architecturebehavioralofmux4issignalsei:integer;

beginwithseiselect

q<=dOafter10nswhen0,dlafter10nswhen1,d2after10nswhen2,d3after10nswhen3,'x'after10nswhen

other;

sei<=0whenaO='O'andal='O'else1whenaO='1'andal='O'else

2whenaO='O'andal='1'else3whenaO='1'andal='1'else4;

endbehavioral

七段數(shù)碼顯示譯碼器設(shè)計(jì)實(shí)驗(yàn)程序1:

libraryieee;

useieee.std_logic_l164.all;

entitydecl7sis

port(a:instd_logic_vector(3downto0);

led7s:outstd_logic_vector(6downto0));

end;

architectureoneofdec17sis

begin

process(a)

begin

caseais

when“0000〃二)led7s<=“0111111〃

when“0001〃=>led7s<=“0000110〃

when“0010〃=>led7s<=“1011011〃

when“0011〃二〉led7s<=“1001111〃

when"0100"=>led7s<=“1100110〃

when“0101〃=>lec17s<=“1101101〃

when“0110〃=>led7s<="lllllOl"

when=>led7s<="ooooiir

when“1000〃=>lec17s<=“1111111〃

when“1001〃=>led7s<=“1101111〃

when“1010〃二)led7s<=“1110111〃

when"1011"=>led7s<=“1111100〃

when“1100〃=>led7s<=“0111001〃

when*1101*=>led7s<="1011110"

when”1110〃=>led7s<=”1111001〃

when"1111"=>led7s<=“1110001〃

whenothers=>null;

endcase;

endprocess;

end;

實(shí)驗(yàn)程序2:

1ibraryieee;

useieee.std_logic_l164.all;

useieee.std_logic_unsigned,all;

entitycnt4bis

port(elk,rst,ena:instd_logic;

outy:outstd_logic_vector(3downto0);

cout:outstd_logic);

endcnt4b;

architecturebehavofcnt4bis

begin

process(elk,rst,ena)

variableoutyl:std_logic_vector(3downto0);

begin

ifrst='1'thenoutyl:=(others=>'O');

elsifelk'eventandelk='1'then

ifena='fthen

ifoutyl<15thenoutyl:=outyl+l;

elseoutyl:=(others二>'O');

endif;

ifoutyl=15thencoutO'1';

elsecout<='0>;

endif;

outy<=outyl;

endprocess;

endbehav;

實(shí)驗(yàn)程序3:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.al1;

entityshenjiaois

port(clock0,rstO,enaO:instd_logic;

led:outstd_logic_vector(6downto0);

coutO:outstdlogic);

endentityshenjiao;

architecturezllofshenjiaois

componentcnt4b

port(elk,rst,ena:instd_logic;

outy:outstd_logic_vector(3downto0);

cout:outstd_logic);

endcomponent;

componentdecl7s

port(a:instdlogic_vector(3downto0);

led7s:outstdlogicvector(6downto0));

endcomponent;

signaltmp:stdlogic_vector(3downto0);

begin

ul:cnt4map(clk=>clock0,rst=>rst0,ena=>ena0,outy=>tmp,cout=>cout0);

u2:dec17sportmap(a=>tmp,led7s=>led);

endarchitecturezll;

八位數(shù)碼掃描顯示電路實(shí)驗(yàn)程序例6-19

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityscan_ledis

port(elk:instd_logic;

sg:outstd_logic_vector(6downto0);

bt:outstd_logic_vector(7downto0));

end;

architectureoneofscan1edis

signalcnt8:std_logic_vector(2downto0);

signala:integerrange0to15;

begin

pl:process(cnt8)

begin

casecnt8is

when"000"=>bt<="00000001a〈=l;

when"001"=>bt<="00000010";a<=3:

when"010"=>bt<="00000100*;a<=5;

when"011"=>bt<="00001000";a<=7;

when"100"=>bt<="00010000";a<=9;

whenT01"=>bt<="00100000//;a<=ll;

whenT10"=>bt<="01000000//;a<=13;

when"111"=>bt<="10000000";a<=15;

whenothers=>null;

endcase;

endprocesspl;

p2:process(elk)

begin

ifelk*eventandelk='Tthencnt8<=cnt8+l;

endif;

endprocessp2;

p3:process(a)

begin

caseais

when0=>sg<=,,01111ir;when1=>sg<="0000110〃;

when2=>sg<="1011011”;when3=>sg<="1001111”;

when4=>sg〈=“H00110〃;when5=>sg<="1101101”

when6=>sgwhen7=>sg<="000011K;

when8=>sg<="1111111”;when9=>sg<="1101111”;

when10=>sg<=,/U101ir/;when11=>sg<="1111100”;

when12=>sg<="0111001”;when13=>sg<="1011110";

when14=>sg〈=”1111001”;when15=>sg<="1110001〃;

whenothers=>null;

endcase;

endprocess

end;

程序12選1選擇器:

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL;

ENTITYmux21aIS

PORT(a,bINSTDLOGIC;

sINSTD_LOGIC;

OUTSTD__LOGIC);

ENDENTITYmux21a;

ARCHITECTUREoneOFmux21aIS

BEGIN

PROCESS(a,b,s)

BEGIN

IFs:'O'THEN

y<=a;

ELSEy<=b;

ENDIF;

ENDPROCESS;

ENDARCHITECTUREone;

程序2多路選擇器:

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL;

ENTITYmuxkIS

PORT(al,a2,a3,sO,si:instd_logic;

outy:outstd_logic);

ENDmuxk;

ARCHITECTUREoneOFmuxkIS

COMPONENTmux21a

PORT(a,b,s:INSTDLOGIC;

y:OUTSTD_LOGIC);

ENDCOMPONENT;

SIGNALtmp:STD_LOGIC;

BEGIN

UI:mux21aPORTMAP(a=>a2,b=>a3,s=>sO,y=>tmp);

U2:mux21aPORTMAP(a=>al,b=>tmp,s=>sl,y=>outy);

ENDARCHITECTURE;

程序3半加器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYh_adderIS

PORT(a,b:INSTDLOGIC;

co,so:OUTSTD_LOGIC);

ENDENTITYh_adder;

ARCHITECTUREfhlOFh_adderis

BEGIN

so<=N0T(aXOR(NOTb));CO<=aANDb;

ENDARCHITECTUREfhl;

或門邏輯描述

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYor2aIS

PORT(a,b:INSTD_LOGIC;

C:OUTSTD_LOGIC);

ENDENTITY0R2a;

ARCHITECTUREoneOFor2aIS

BEGIN

C<=aORb;

ENDARCHITECTUREone;

全加器

LIBRARYIEEE;

USEIEEE.STD_LOGIC1164.ALL;

ENTITY—adderIS

PORT(ain,bin,cin:INstd_logic;

cout,sum:OUTSTD_LOGIC);

ENDENTITYf_adder;

ARCHITECTUREfdlOFf_adderIS

COMPONENTh_adder

PORT(a,b:INSTDLOGIC;

cO,SO:outstd_logic);

ENDCOMPONENT;

COMPONENTor2a

PORT(a,b:INSTD_LOGIC;

c:OUTSTD.LOGIC);

ENDCOMPONENT;

SIGNALd,e,f:STD_LOGIC;

BEGIN

ul:h_adderPORTMAP(a=>ain,b=>bin,co=>d,so=>e);

u2:h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);

u3:or2aPORTMAP(a=>d,b=>f,c=>cout);

ENDARCHITECTUREfdl;

試題二

一、單項(xiàng)選擇題:(20分)

1.IP核在EDA技術(shù)和開發(fā)中具有十分重要的地位;提供用VHDL等硬件描述語(yǔ)言描述的功能塊,但不涉及實(shí)現(xiàn)該功能塊的具體電路的

IP核為D。A.瘦IPB.固IPC.胖IPD.都不是

2.綜合是EDA設(shè)計(jì)流程的關(guān)鍵步驟,在下面對(duì)綜合的描述中,是錯(cuò)誤的。D

A.綜合就是把抽象設(shè)計(jì)層次中的一種表示轉(zhuǎn)化成另?種表示的過(guò)程;

B.綜合就是將電路的高級(jí)語(yǔ)言轉(zhuǎn)化成低級(jí)的,可與FPGA/CPLD的基本結(jié)構(gòu)相映射的網(wǎng)表文件;

C.為實(shí)現(xiàn)系統(tǒng)的速度、面積、性能的要求,需要對(duì)綜合加以約束,稱為綜合約束;

D.綜合可理解為一種映射過(guò)程,并且這種映射關(guān)系是唯一的,即綜合結(jié)果是唯一的。

3.大規(guī)??删幊唐骷饕蠪PGA、CPLD兩類,下列對(duì)FPGA結(jié)構(gòu)與工作原理的描述中,正確的是_C_。

A.FPGA全稱為復(fù)雜可編程邏輯器件;

B.FPGA是基于乘積項(xiàng)結(jié)構(gòu)的可編程邏輯器件;

C.基于SRAM的FPGA器件,在每次上電后必須進(jìn)行一次配置;

D.在Altera公司生產(chǎn)的器件中,MAX7000系列屬FPGA結(jié)構(gòu)。

4.進(jìn)程中的信號(hào)賦值語(yǔ)句,其信號(hào)更新是_C_.

A.按順序完成;B.比變量更快完成;C.在進(jìn)程的最后完成;

5.VHDL語(yǔ)言是一種結(jié)構(gòu)化設(shè)計(jì)語(yǔ)言;一個(gè)設(shè)計(jì)實(shí)體(電路模塊)包括實(shí)體與結(jié)構(gòu)體兩部分,結(jié)構(gòu)體描述B

A.器件外部特性;B.器件的內(nèi)部功能;C.器件的綜合約束;

I).器件外部特性與內(nèi)部功能。

6.不完整的IF語(yǔ)句,其綜合結(jié)果可實(shí)現(xiàn)A

A.時(shí)序邏輯電路B.組合邏輯電C.雙向電路D.三態(tài)控制電路

7.子系統(tǒng)設(shè)計(jì)優(yōu)化,主要考慮提高資源利用率減少功耗(即面積優(yōu)化),以及提高運(yùn)行速度(即速度優(yōu)化);指出下列哪些方法是面積

優(yōu)化B

①流水線設(shè)計(jì)②資源共享③邏輯優(yōu)化④串行化

⑤寄存器配平⑥關(guān)鍵路徑法

A.??⑤B.②③④C.②⑤⑥D(zhuǎn).①0?

8.下列標(biāo)識(shí)符中,是不合法的標(biāo)識(shí)符。B

A.StateOB.9moonC.Not_Ack_0D.signall

9.關(guān)于VHDL中的數(shù)字,請(qǐng)找出以下數(shù)字中最大的一個(gè):A

A.2#llll_1110ttB.8#276#C.10#170#D.16#E#E1

10.下列EDA軟件中,哪一個(gè)不具有邏輯綜合功能:B

A.Max+PlusIIB.ModelSimC.QuartusIII).Synplify

三、VHDL程序填空:(10分)

LIBRARYIEEE;-8位分頻器程序設(shè)計(jì)

USEIEEE.STD_L0GIC_1164.ALL;

USEIEEE.STDLOGICONSIGNED.ALL;

ENTITYPULSEIS

PORT(CLK:INSTD_LOGIC;

D:INSTD_LOGIC_VECTOR(7DOWNTO0);

FOOT:OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFPULSEIS

SIGNALFULL:STD_LOGIC;

BEGIN

P_REG:PROCESS(CLK)

VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

IFCLK,EVENTANDCLK=THEN

IFCNT8="11111111”THEN

CNT8:二D;一當(dāng)CNT8計(jì)數(shù)計(jì)滿時(shí),輸入數(shù)據(jù)D被同步預(yù)置給計(jì)數(shù)器CNT8

FULL<=T';一同時(shí)使溢出標(biāo)志信號(hào)FULL輸出為高電平

ELSECNT8:=CNT8+1;一否則繼續(xù)作加1計(jì)數(shù)

FULL〈=’0';一且輸出溢出標(biāo)志信號(hào)FULL為低電平

ENDIF;

ENDIF;

ENDPROCESSP_REG;

FLDIV:PROCESS(FULL)

VARIABLECNT2:STDLOGIC;

BEGIN

IFFULL'EVENTANDFULL='1'THEN

CNT2<=NOTCNT2;一如果溢出標(biāo)志信號(hào)FULL為高電平,D觸發(fā)器輸出取反

IFCNT2=T'THENFOUT<=T';

ELSEFOUT〈二'O';

ENDIF;

ENDIF;

ENDPROCESSPDIV;

END;

四、VHDL程序改錯(cuò):(10分)

01LIBRARYIEEE;

02USEIEEE.STD_L0GIC_1164.ALL;

03USEIEEE.STD_LOGIC_UNSIGNED.ALL;

04ENTITYLED7CNTIS

05PORT(CLR:INSTD_LOGIC;

06CLK:INSTD_L0GIC;

07LED7s:OUTSTD_L0GIC_VECT0R(6DOWNTO0));

08ENDLED7CNT;

09ARCHITECTUREoneOFLED7CNTIS

10SIGNALTMP:STD_LOGIC_VECTOR(3DOWNTO0);

11BEGIN

12CNT:PROCESS(CLR,CLK)

13BEGIN

14IFCLR=*TTHEN

15TMP<=0;

16ELSEIFCLK*EVENTANDCLK=*TTHEN

17TMP<=TMP+1;

18ENDIF;

19ENDPROCESS;

20OUTLED:PROCESS(TMP)

21BEGIN

22CASETMPIS

23WHEN"0000'=>LED7S〈二〃0111111〃;

24WHEN"0001"=>LED7S<="0000110”;

25WHEN〃0010〃=>LED7S<="1011011〃;

26WHEN"0011"=>LED7S<="lOOlllK;

27WHEN“0100〃=>LED7S<="1100110〃;

28WHEN〃0101"=>LED7S<="1101101";

29

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論