EDA技術實用教程-VHDL版第3章VHDL設計初步.ppt
《EDA技術實用教程-VHDL版第3章VHDL設計初步.ppt》由會員分享,可在線閱讀,更多相關《EDA技術實用教程-VHDL版第3章VHDL設計初步.ppt(72頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第3章VHDL設計初步,3.1組合邏輯電路的VHDL描述,3.1.12選1多路選擇器的VHDL描述,圖3-1mux21a實體,3.1組合邏輯電路的VHDL描述,3.1.12選1多路選擇器的VHDL描述,圖3-2mux21a結構體,3.1組合邏輯電路的VHDL描述,【例】二選一選擇器描述方法1ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT;--說明語句BEGINd<=aAND(NOTS);e<=bANDs;y<=dORe;ENDARCHITECTUREone;,3.1.12選1多路選擇器的VHDL描述,3.1組合邏輯電路的VHDL描述,此電路的VHDL描述由兩大部分組成:(1)以關鍵詞ENTITY引導,ENDENTITYmux2la結尾的語句部分,稱為實體。實體描述了電路器件的外部情況及各信號端口的基本性質。(2)以關鍵詞ARCHITECTURE引導,ENDARCHITECTUREone結尾的語句部分,稱為結構體。結構體負責描述電路器件的內部邏輯功能或電路結構。,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,ENTITYe_nameISPORT(p_name:port_mdata_type;...p_namei:port_midata_type);ENDENTITYe_name;紅色為描述實體的關鍵詞,不分大小寫。,1.實體表達,2.實體名e_name,由設計者自定的標識符。由字母、數(shù)字、下劃線構成。不能以數(shù)字起頭,不能用中文,不能與關鍵詞或EDA工具庫的元件名相同。如:72lk,OR2均為非法實體名。,3.端口語句和端口信號名PORT();描述電路的端口及其端口信號。如PORT(a,b:INBIT;s:INBIT;y:OUTBIT);,3.1組合邏輯電路的VHDL描述,端口信號名,端口模式,端口信號的數(shù)據(jù)類型,3.1.2相關語句結構和語法說明,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,4.端口模式,IN:輸入端口,定義的通道為單向只讀模式,OUT:輸出端口,定義的通道為單向輸出模式,INOUT:定義的通道確定為輸入輸出雙向端口,BUFFER:緩沖端口,其功能與INOUT類似,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,5.數(shù)據(jù)類型INTEGER類型(整數(shù)類型)BOOLEAN類型(布爾類型)取值范圍為true,falseSTD_LOGIC類型(標準邏輯位類型)取值范圍有:U,X,0,1,Z,W,L,H,-BIT類型(位類型)取值范圍是邏輯位’1’,’0’,,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,6.結構體表達,ARCHITECTUREarch_nameOFe_nameIS[說明語句]BEGIN(功能描述語句)ENDARCHITECTUREarch_name;紅色為描述結構體的關鍵詞,不分大小寫。說明語句并非必須,而功能描述語句必須存在。,結構體名,實體名,7.邏輯操作符,AND、OR、NOT、NAND(與非)、NOR(或非)、XOR(異或)、XNOR(同或)邏輯操作符的操作數(shù)是BIT、BOOLEAN、STD_LOGIC。,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,8.賦值符號和數(shù)據(jù)比較符號,①賦值符“<=”如表達式y(tǒng)<=a表示輸入端口a的數(shù)據(jù)向輸出端口y傳輸。注:賦值符“<=”兩邊的信號的數(shù)據(jù)類型必須一致。,數(shù)據(jù)比較符號“=”其輸出結果的數(shù)據(jù)類型是BOOLEAN類型。,如表達式IFs=0‘THEN..,②,3.1組合邏輯電路的VHDL描述,【例】二選一選擇器描述方法2ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINy<=aWHENs=0ELSEb;ENDARCHITECTUREone;,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,9.WHEN_ELSE條件信號賦值語句(屬于并行語句),賦值目標<=表達式WHEN賦值條件ELSE表達式WHEN賦值條件ELSE...表達式;,z<=aWHENp1=1ELSEbWHENp2=1ELSEc;,3.1組合邏輯電路的VHDL描述,【例3-3】二選一選擇器描述方法3ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs=0THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;,3.1.2相關語句結構和語法說明,進程的敏感信號表,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,10.條件語句(屬于順序語句),IF_THEN_ELSE,IF語句必須以語句“ENDIF;”結束,如IFs=0THENy<=a;ELSEy<=b;ENDIF;,ENDIF;,3.1組合邏輯電路的VHDL描述,3.1.2相關語句結構和語法說明,11.進程語句和順序語句,順序語句“IF_THEN_ELSEENDIF;”是放在由“PROCESS……ENDPROCESS”引導的語句中的。由PROCESS引導的語句稱為進程語句。在VHDL中,所有合法的順利描述語句都必須放在進程語句中。PROCESS旁的()稱為進程的敏感信號表,要求將進程中的所有輸入信號都放在敏感信號表中。當信號表中的某一敏感信號從原來的“1”變成“0”,或者從原來的“0”變成“1”時,將啟動此進程語句,即將其中的語句全部執(zhí)行一遍。,12.文件取名和存盤,12.文件取名和存盤,3.1組合邏輯電路的VHDL描述,用Quartusii提供的VHDL文本編輯器編輯VHDL代碼文件,在保存文件時,文件名為“*.vhd”。建議程序的文件名盡可能與該程序的實體名一致。推薦使用小寫。,3.1.2相關語句結構和語法說明,3.1組合邏輯電路的VHDL描述,mux21a功能時序波形圖,3.1組合邏輯電路的VHDL描述,【例3-18】或門邏輯描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc<=aORb;ENDARCHITECTUREone;,半加器h_adder電路圖及其真值表,3.3.1半加器描述,3.3.1半加器描述,3.31位二進制全加器的VHDL描述,【例3-16】LIBRARYIEEE;--半加器描述(1):布爾方程描述方法USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisBEGINso<=aXORb;co;...;;When=>;...;;...WHENOTHERS=>;ENDCASE;,3.1組合邏輯電路的VHDL描述,2.標準邏輯矢量數(shù)據(jù)類型,STD_LOGIC_VECTOR與STD_LOGIC都被定義在STD_LOGIC_1164的程序包中。STD_LOGIC_VECTOR定義為標準一維數(shù)組,數(shù)組中的每個元素都是標準邏輯位STD_LOGIC。,在使用STD_LOGIC_VECTOR中,必須注明其數(shù)組寬度,即位寬,如:B:OUTSTD_LOGIC_VECTOR(7DOWNTO0);或SIGNALA:STD_LOGIC_VECTOR(1TO4);,B<="01100010";--B(7)為0B(4DOWNTO1)<="1101";--B(4)為1‘B(7DOWNTO4)<=A;--B(6)等于A(2),3.1組合邏輯電路的VHDL描述,3.并置操作符?,SIGNALa:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALd:STD_LOGIC_VECTOR(1DOWNTO0);...aain,b=>bin,co=>d,so=>e);--例化語句u2:h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);cout連接端口名………);其中,例化名相當于當前系統(tǒng)(電路板)中的一個插座名。元件名相當于準備在此插座上插入的已定義的元件,即為待調用的元件的名字。PORTMAP為關鍵詞。端口名為待調用的元件本身的端口名。連接端口名為頂層文件中準備與調用元件的端口相連的通信線(端口)名。,3.2基本時序電路的VHDL描述,3.2.1D觸發(fā)器的VHDL描述,KX康芯科技,【例3-8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF1ISSIGNALQ1:STD_LOGIC;--類似于在芯片內部定義一個數(shù)據(jù)的暫存節(jié)點BEGINPROCESS(CLK,Q1)BEGINIFCLKEVENTANDCLK=1THENQ1<=D;ENDIF;ENDPROCESS;Q<=Q1;--將內部的暫存數(shù)據(jù)向端口輸出(雙橫線--是注釋符號)ENDbhv;,圖4-4D觸發(fā)器,D觸發(fā)器實體,D觸發(fā)器仿真波形,邊沿觸發(fā)D觸發(fā)器:當時鐘信號的上升沿到來時,Q=D。否則,Q保持原值不變。,3.2基本時序電路的VHDL描述,3.2.2VHDL描述的語言現(xiàn)象說明,圖4-4D觸發(fā)器,1.標準邏輯位數(shù)據(jù)類型STD_LOGIC,BIT數(shù)據(jù)類型定義:TYPEBITIS(0,1);--只有兩種取值,STD_LOGIC數(shù)據(jù)類型定義:TYPESTD_LOGICIS(U,X,0,1,Z,W,L,H,-);,STD_LOGIC類型比BIT類型包含的內容多,且包含了BIT類型。以下是程序包中對兩種數(shù)據(jù)類型的定義。,3.2基本時序電路的VHDL描述,3.2.2VHDL描述的語言現(xiàn)象說明,圖4-4D觸發(fā)器,2.設計庫和標準程序包,,VHDL綜合器附帶了設計庫和程序包,用來存放數(shù)據(jù)類型的說明,以及函數(shù)的。如:BIT數(shù)據(jù)類型的定義是包含在VHDL標準程序包STANDARD中的,而該程序包是包含在VHDL的標準庫STD中的。為了使用BIT數(shù)據(jù)類型,則應該在程序之前增加說明語句。,3.2基本時序電路的VHDL描述,例3-1LIBRARYWORK;--表示打開用戶工程文件所在的目錄,該目錄為默認工作庫WORKLIBRARYSTD;--表示打開STD庫USESTD.STANDARD.ALL;--表示允許使用STD庫中的STANDARD程序包中的所有內容(.all)ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINyb1,輸出為‘1’,否則輸出為‘0’。ENTITYCOMP_BADISPORT(a1,b1:INBIT;q1:OUTBIT);END;ARCHITECTUREoneOFCOMP_BADISBEGINPROCESS(a1,b1)BEGINIFa1>b1THENq1<=1;ELSIFa1- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- EDA 技術 實用教程 VHDL 設計 初步
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-11495835.html