第3章-VHDL設(shè)計初步-習(xí)題_第1頁
第3章-VHDL設(shè)計初步-習(xí)題_第2頁
第3章-VHDL設(shè)計初步-習(xí)題_第3頁
第3章-VHDL設(shè)計初步-習(xí)題_第4頁
第3章-VHDL設(shè)計初步-習(xí)題_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

習(xí)題3-2圖3-16所示的是4選1多路選擇器,試分別用IF_THEN語句、WHEN_ELSE和CASE語句的表達方式寫出此電路的VHDL程序,要求選擇控制信號s1和s0的數(shù)據(jù)類型為STD_LOGIC;當(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。

習(xí)題3-2WHEN_ELSE條件信號賦值語句

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41ISPORT(s0,s1:instd_logic;a,b,c,d:instd_logic;y:outstd_logic);ENDENTITYmux41;ARCHITECTUREbehave1OFmux41ISSIGNALs:std_logic_vector(1downto0);BEGINS<=s1&s0;y<=aWHENs="00"ELSE bWHENs="01"ELSE cWHENs="10"ELSE dWHENs="11"ELSE '0';ENDbehave1;多選擇控制的IF語句

IF條件1THEN<順序語句l>;ELSIF條件2THEN<順序語句2>;…..ELSIF條件nTHEN<順序語句n>;ELSE<順序語句n+1>;ENDIF;…ARCHITECTUREbehave2OFmux41ISSIGNALs:std_logic_vector(1downto0);BEGINs<=s1&s0;PROCESS(s,a,b,c,d)BEGINIFs="00"THENy<=a;ELSIFs="01"THENy<=b;ELSIFs="10"THENy<=c;ELSEy<=d;ENDIF;ENDPROCESS;ENDbehave2;CASE語句…ARCHITECTUREbehave3OFmux41ISSIGNALs:std_logic_vector(1downto0);BEGINs<=s1&s0;PROCESS(s,a,b,c,d)BEGINCASEsISWHEN"00"=>y<=a;WHEN"01"=>y<=b;WHEN"10"=>y<=c;WHEN"11"=>y<=d;WHENOTHERS=>y<='0';ENDCASE;ENDPROCESS;ENDbehave3;習(xí)題3-3圖3-17所示的是雙2選1多路選擇器構(gòu)成的電路MUXK,對于其中MUX21A,當(dāng)s='0'和s='1'時,分別有y<='a'和y<='b'。試在一個結(jié)構(gòu)體中用兩個進程來表達此電路,每個進程中用CASE語句描述一個2選1多路選擇器MUX21A。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmuxkISPORT(a1,a2,a3:instd_logic;s0,s1:instd_logic;outy:outstd_logic);ENDENTITYmuxk;ARCHITECTUREbehaveOFmuxkISSIGNALtmp:std_logic;SIGNALoutx:std_logic;BEGINPr1:PROCESS(a2,a3,s0)BEGINCASEs0ISWHEN'0'=>tmp<=a2;WHEN'1'=>tmp<=a3;WHENOTHERS=>tmp<='0';ENDCASE;ENDPROCESS;Pr2:PROCESS(a1,tmp,s1)BEGINCASEs1ISWHEN'0'=>outx<=a1;WHEN'1'=>outx<=tmp;WHENOTHERS=>outx<='0';ENDCASE;ENDPROCESS;outy<=outx;ENDbehave;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21aISPORT(a,b:instd_logic;s:instd_logic;y:outstd_logic);ENDENTITYmux21a;ARCHITECTUREbehaveOFmux21aISBEGINy<=aWHENs='0'ELSEb;ENDbehave;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmuxkISPORT(a1,a2,a3:instd_logic;s0,s1:instd_logic;outy:outstd_logic);ENDENTITYmuxk;ARCHITECTUREbehaveOFmuxkISSIGNALtmp:std_logic;COMPONENTmux21aPORT(a,b,s:instd_logic;y:outstd_logic);ENDCOMPONENT;BEGINu1:mux21aPORTMAP(a2,a3,s0,tmp);u2:mux21aPORTMAP(a1,tmp,s1,outy);ENDbehave;必須先編譯、調(diào)試子模塊,才能使用元件例化語句。

習(xí)題3-6圖3-18是一個含有上升沿觸發(fā)的D觸發(fā)器的時序電路,試寫出此電路的VHDL設(shè)計文件。

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux_dISPORT(CL,CLK0:instd_logic;OUT1:outstd_logic);END;ARCHITECTUREbehaveOFmux_dISSIGNALx,y:std_logic;BEGINx<=NOT(CLORy);--或x<=CLNORyOUT1<=NOTy;PROCESS(CLK0)BEGINIFCLK0'EVENTANDCLK0='1'THENy<=x;ENDIF;ENDPROCESS;ENDbehave;4-5.給出1位全減器的VHDL描述。要求:(1)首先設(shè)計1位半減器,然后用例化語句將它們連接起來,圖4-20中h_suber是半減器,diff是輸出差,s_out是借位輸出,sub_in是借位輸入。(2)以1位全減器為基本硬件,構(gòu)成串行借位的8位減法器,要求用例化語句來完成此項設(shè)計(減法運算是x–y-sun_in=diffr)。圖4-19時序電路圖

t0t1t2(1)先設(shè)計一個半減器Libraryieee;useieee.std_logic_1164.alll;Entityh_suberisPort(x,y:instd_logic;diff,s_out:outstd_logic);endh_suber;Architecturebehavofh_suberisBeginprocess(x,y)begindiff<=xxory;s_out<=(notx)andy;Endprocess;Endbehav;x、y00011011diff0110S_out0100一位全減器的VHDL描述suber.vhdLibraryieee;useieee.std_logic_1164.alll;EntitysuberisPort(x,y,sub_in:instd_logic;diffr,sub_out:outstd_logic);Endsuber;ArchitecturebehavofsuberisComponenth_suberPort(x,y:instd_logic;diff,s_out:outstd_logic);Endcomponent;Signalt0,t1,t2:std_logic;Beginu1:h_suberportmap(x=>x,y=>y,diff=>t0,s_out=>t1);u2:h_suberportmap(x=>t0,y=>sub_in,diff=>diffr,s_out=>t2);Sub_out<=t1ort2;Endbehav;(2)8位全減器(生成語句第九章)Libraryieee;useieee.std_logic_1164.alll;Entitysuber8isPort(a,b:instd_logic_vector(7downto0);Sin:instd_logic;sout:outstd_logic;C:outstd_logic_vector(7doento0);Endsub8;Architecturebehavofsuber8isComponentsuberPort(x,y,sub_in:instd_logic;diffr,sub_out:outstd_logic);Endcomponent;Signalstmp:std_logic_vector(8downto0);Beginstmp(0<=sin;Sout<=stmp(8);Gensub:foriin0to7generateu1:subportmap(x=>a(i),y=>b(i),diffr=>c(i),sub_out=>stmp(i+1));Endgenerate;end;習(xí)題3-4將3-20程序的計數(shù)器改為12進制計數(shù)器,程序用例3-21的方式表述,并且將復(fù)位RST改為同步清0控制,加載信號LOAD改為異步控制方式。討論例3-20與例3-21的異同點。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT12ISPORT(CLK,RST,EN,LOAD:INSTD_LOGIC;DATA:INSTD_LOGIC_VECTOR(3DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);END;ARCHITECTUREbehavOFCNT12ISSIGNALQ:STD_LOGIC_VECTOR(3DOWNTO0);BEGINREG:PROCESS(CLK,LOAD)BEGIN

IFLOAD='0'THENQ:=DATA; ELSIFCLK'EVENTANDCLK='1'THEN IFEN='1'THEN

IF(RST='0')THENQ:=(OTHERS=>'0');

ELSEIFQ<11THENQ:=Q+1;ELSEQ:=(OTHERS=>'0');ENDIF;ENDIF; ENDIF; ENDIF;ENDPROCESS;COM:PROCESS(Q) IFQ="1011"THENCOUT<='1'; ELSECOUT<='0'; ENDIF;ENDPROCESS;DOUT<=Q;ENDbehav;習(xí)題準(zhǔn)備:設(shè)計含有異步清零和計數(shù)使能的16位二進制加法可控計數(shù)器。LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;USEieee.std_logic_arith.all;ENTITYex3_4_aISport(clk:instd_logic;clr,en:instd_logic;cnt:outstd_logic_vector(15downto0));END;ARCHITECTUREbhvOFex3_4_aIS signalcnt_tmp:std_logic_vector(15downto0); BEGIN process(clk,clr)begin

ifclr='1'thencnt_tmp<=(others=>'0');

elsif(rising_edge(clk))thenifen='1'thencnt_tmp<=cnt_tmp+1;endif;

endif;endprocess;cnt<=cnt_tmp;END;習(xí)題3-5設(shè)計含有異步清零和計數(shù)使能的16位二進制加減法可控計數(shù)器。LIB

溫馨提示

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

評論

0/150

提交評論