譯碼器的設計_第1頁
譯碼器的設計_第2頁
譯碼器的設計_第3頁
譯碼器的設計_第4頁
譯碼器的設計_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

word文檔可自由復制編輯譯碼器的設計architecturedec_behaveofe1isSignalsel:std_logic_vector(0to3);beginsel(0)<=en;sel(1)<=a(0);sel(2)<=a(1);sel(3)<=a(2);withselselecty<="00000001"when"1000","00000010"when"1001","00000100"when"1010","00001000"when"1011","00010000"when"1100","00100000"when"1101","01000000"when"1110","10000000"when"1111","00000000"whenothers;enddec_behave;編碼器的設計libraryIEEE;entityencoder83isport(ind:instd_logic_vector(7downto0);outd:outstd_logic_vector(2downto0));end;architecturebehaveofencoder83isbeginprocess(ind)beginifind(7)=‘1'thenoutd<="111";elsifind(6)=‘1'thenoutd<="110";elsifind(5)=‘1'thenoutd<="101";elsifind(4)=‘1'thenoutd<="100";elsifind(3)=‘1'thenoutd<="011";elsifind(2)=‘1'thenoutd<="010";elsifind(1)=‘1'thenoutd<="001";elsifind(0)=‘1'thenoutd<="000";elseoutd<="000";endif;endprocess;endbehave;數(shù)據(jù)選擇器的設計LIBRARYIEEE;……;ENTITYE3ISPORT(A,B,C,D:INSTD_LOGIC_VECTOR(3DOWNTO0);S:INSTD_LOGIC_VECTOR(0TO1);Z:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTURECONC_BEHAVEOFE3ISBEGINZ<=AWHENS="00"ELSEBWHENS="01"ELSECWHENS="10"ELSEDWHENS="11"ELSE"0000";ENDCONC_BEHAVE;比較器:設計八位比較器,相等時輸出為1,否則輸出為0libraryieee;entitycompareisport(a,b:instd_logic_vector(7downto0); y:outstd_logic);endcompare;architecturebehaveofcompareisbeginprocesss(a,b)Beginif(a=b)theny<='1';elsey<='0';endif;endprocess;endbehave;求補器:求補器的輸入信號為a(7..0),輸出信號為b(7..0),設a(7)和b(7)為符號位。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycomplementisport(a:instd_logic_vector(7downto0);b:outstd_logic_vector(7downto0));endcomplement;architecturebehaveofcomplementisbeginprocess(a)beginif(a(7)='0')thenb<=a; elseb<='1'&(nota(6downto0)+'1');endif;endprocess;endbehave;單向總線緩沖器的設計LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYe7ISport(enable:INSTD_LOGIC;datain:INSTD_LOGIC_VECTOR(7DOWNTO0);dataout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;ARCHITECTUREbhvOFe7ISBEGINPROCESS(enable,datain)BEGINIFenable='1'THENdataout<=datain;ELSEdataout<="ZZZZZZZZ";ENDIF;ENDPROCESS;ENDbhv;雙向總線緩沖器的設計libraryieee;……ENTITYe8ISport(en,dr:instd_logic;a,b:inoutstd_logic_vector(7downto0));END;ARCHITECTUREbhvOFe8ISsignalaout,bout:std_logic_vector(7downto0);beginprocess(a,en,dr)BEGINif((en='0')and(dr='1'))thenbout<=a;elsebout<="ZZZZZZZZ";endif;b<=bout;ENDprocess;process(b,en,dr)BEGINif((en='0')and(dr='0'))thenaout<=b;elseaout<="ZZZZZZZZ";endif;a<=aout;ENDprocess;ENDbhv;同步復位信號的VHDL描述:process(復位信號名,時鐘信號名)begin if(時鐘信號變化條件)then if(復位信號變化條件)then 狀態(tài)復位語句; else 順序語句; endif; endif;endprocess;異步復位信號的VHDL描述:process(復位信號名,時鐘信號名)begin if(復位信號變化條件)then 狀態(tài)復位語句; elsif(時鐘信號變化條件)then 順序語句; endif;endprocess;8D鎖存器使能信號en=1時,數(shù)據(jù)鎖存,否則數(shù)據(jù)保持。libraryieee;……;entityd_latchisport(en:instd_logic;d:instd_logic_vector(7downto0);q:outstd_logic_vector(7downto0));endd_latch;architecturebehaveofd_latchisbeginprocess(en,d)begin ifen='1'thenq<=d; endif;endprocess;endbehave;設計四位D觸發(fā)器,具有異步清零CLR和置位PRN、同步使能EN控制功能。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsh1isPORT(CLK,CLR,PRN,EN:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREaOFsh1ISBEGINPROCESS(CLR,PRN,CLK,EN)BEGINIFCLR='1'THENQ<=(OTHERS=>'0');ELSIFPRN='1'THENQ<=(OTHERS=>'1');ELSIFRISING_EDGE(CLK)THENIFEN='1'THEN Q<=D;ENDIF;ENDIF;ENDPROCESS;ENDa;設計4bit的移位寄存器,具有左移一位或右移一位,并行輸入和同步復位的功能。Library……;entityshifterisport(data:instd_logic_vector(3downto0);left_da,right_da,reset,clk:instd_logic;mode:instd_logic_vector(1downto0);qout:bufferstd_logic_vector(3downto0));endshifter;architecturebehaveofshifterisbeginprocessbegin waituntilrising_edge(clk); if(reset='1')then qout<="0000"; else casemodeiswhen“01”=>qout<=right_da&qout(3downto1);when"10"=>qout<=qout(2downto0)&left_da;when"11"=>qout<=data;whenothers=>null;endcase;endif;endprocess;endbehave;60進制計數(shù)器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycout60_visport(clrn,ldn,en,clk:instd_logic;da :instd_logic_vector(3downto0);db :instd_logic_vector(2downto0);qa:outstd_logic_vector(3downto0);qb:outstd_logic_vector(2downto0);rco:outstd_logic);endcout60_v;architectureaofcout60_visbeginprocess(clk)variabletmpa:std_logic_vector(3downto0);variabletmpb:std_logic_vector(2downto0);begin ifclrn='0'thentmpb:="000";tmpa:="0000";elseif(clk'eventandclk='1')thenifldn='0'thentmpa:=da;tmpb:=db;elsifen='1'theniftmpa="1001"then tmpa:="0000";iftmpb="101"thentmpb:="000";elsetmpb:=tmpb+1;endif;elsetmpa:=tmpa+1;endif;endif;endif;endif;qa<=tmpa;qb<=tmpb;rco<=tmpb(0)andtmpb(2)andtmpa(0)andtmpa(3)anden;endprocess;enda;用D觸發(fā)器構成四位移位寄存器。entityshiftisport(sin,clk:inbit;sout:outbit);endshift;architecturenetlist1ofshiftiscomponentdff--元件說明 port(d,clk:inbit;q:outbit);endcomponent;signalz:bit_vector(0to4);beginz(0)〈=sin;gf:foriin0to3generateu1:dffportmap(z(i),clk,z(i+1));endgenerate;sout〈=z(4);endnetlist1;EDA試卷答案一、單項選擇題1、2.基于EDA軟件的FPGA/CPLD設計流程為:原理圖/HDL文本輸入→__A__→綜合→適配→____B____→編程下載→硬件測試。A.功能仿真 B.時序仿真C.邏輯綜合 D.配置3.IP核在EDA技術和開發(fā)中具有十分重要的地位;提供用VHDL等硬件描述語言描述的功能塊,但不涉及實現(xiàn)該功能塊的具體電路的IP核為__A___。A.軟IP B.固IPC.硬IP D.全對4.綜合是EDA設計流程的關鍵步驟,在下面對綜合的描述中,_____D____是錯誤的。A.綜合就是把抽象設計層次中的一種表示轉化成另一種表示的過程。B.綜合就是將電路的高級語言轉化成低級的,可與FPGA/CPLD的基本結構相映射的網(wǎng)表文件。C.為實現(xiàn)系統(tǒng)的速度、面積、性能的要求,需要對綜合加以約束,稱為綜合約束。D.綜合可理解為,將軟件描述與給定的硬件結構用電路網(wǎng)表文件表示的映射過程,并且這種映射關系是唯一的(即綜合結果是唯一的)。5.大規(guī)模可編程器件主要有FPGA、CPLD兩類,其中CPLD通過___A__實現(xiàn)其邏輯功能。A.可編程乘積項邏輯 B.查找表(LUT)C.輸入緩沖 D.輸出緩沖6.VHDL語言是一種結構化設計語言;一個設計實體(電路模塊)包括實體與結構體兩部分,結構體描述__B___。A.器件外部特性 B.器件的內部功能C.器件外部特性與內部功能 D.器件的綜合約束7.電子系統(tǒng)設計優(yōu)化,主要考慮提高資源利用率減少功耗(即面積優(yōu)化),以及提高運行速度(即速度優(yōu)化);下列方法中___A___不屬于面積優(yōu)化。A.流水線設計 B.資源共享C.邏輯優(yōu)化 D.串行化8.進程中的信號賦值語句,其信號更新是___B____。A.立即完成 B.在進程的最后完成C.按順序完成 D.都不對9.不完整的IF語句,其綜合結果可實現(xiàn)__A__。A.時序邏輯電路B.組合邏輯電路C.雙向電路 D.三態(tài)控制電路10.狀態(tài)機編碼方式中,其中__A__占用觸發(fā)器較多,但其簡單的編碼方式可減少狀態(tài)譯碼組合邏輯資源,且易于控制非法狀態(tài)。A.一位熱碼編碼 B.順序編碼C.狀態(tài)位直接輸出型編碼 D.格雷碼編碼二、VHDL程序填空1.下面程序是1位十進制計數(shù)器的VHDL描述,試補充完整。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNT10;ARCHITECTUREbhvOFCNT10ISSIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THEN --邊沿檢測IFQ1>10THEN Q1<=(OTHERS=>'0'); --置零 ELSE Q1<=Q1+1; --加1 ENDIF; ENDIF; ENDPROCESS; Q<=Q1;ENDbhv;2.下面是一個多路選擇器的VHDL描述,試補充完整。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYbmuxIS PORT( sel:INSTD_LOGIC; A,B:INSTD_LOGIC_VECTOR(7DOWNTO0); Y :OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDbmux;ARCHITECTUREbhvOFbmuxISBEGIN y<=Awhensel='1'ELSEB;ENDbhv;四、閱讀下列VHDL程序,畫出原理圖(RTL級)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYHADIS PORT( a:INSTD_LOGIC; b:INSTD_LOGIC; c:OUTSTD_LOGIC; d:OUTSTD_LOGIC );ENDENTITYHAD;ARCHITECTUREfh1OFHADISBEGIN c<=NOT(aNANDb); d<=(aORb)AND(aNANDb);ENDARCHITECTUREfh1;五、請按題中要求寫出相應VHDL程序帶計數(shù)使能的異步復位計數(shù)器輸入端口: clk 時鐘信號rst 異步復位信號en 計數(shù)使能load 同步裝載data (裝載)數(shù)據(jù)輸入,位寬為10輸出端口: q 計數(shù)輸出,位寬為10LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT1024IS PORT( CLK,RST,EN,LOAD :INSTD_LOGIC; DATA:INSTD_LOGIC_VECTOR(9DOWNTO0); Q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCNT1024;ARCHITECTUREONEOFCNT1024ISBEGINPROCESS(CLK,RST,EN,LOAD,DATA)VARIABLEQ1:STD_LOGIC_VECTOR(9DOWNTO0); BEGIN IFRST='1'

溫馨提示

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

評論

0/150

提交評論