VHDL程序基本結(jié)構(gòu).ppt_第1頁
VHDL程序基本結(jié)構(gòu).ppt_第2頁
VHDL程序基本結(jié)構(gòu).ppt_第3頁
VHDL程序基本結(jié)構(gòu).ppt_第4頁
VHDL程序基本結(jié)構(gòu).ppt_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

圖2 4VHDL程序設(shè)計基本結(jié)構(gòu) 2 2VHDL程序基本結(jié)構(gòu) 一個相對完整的VHDL程序通常包含實體 Entity 結(jié)構(gòu)體 Architecture 配置 Configuration 程序包 Package 和庫 Library 5個部分 1 庫 程序包使用說明 用于打開 調(diào)用 本設(shè)計實體將要用到的庫 程序包 程序包存放各個設(shè)計模塊共享的數(shù)據(jù)類型 常數(shù)和子程序等 庫是專門存放預(yù)編譯程序包的地方 2 實體 用于描述所設(shè)計的系統(tǒng)的外部接口信號 是可視部分 3 結(jié)構(gòu)體 用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為 建立輸入和輸出之間的關(guān)系 是不可視部分 4 配置說明語句 主要用于以層次化的方式對特定的設(shè)計實體進(jìn)行元件例化 或是為實體選定某個特定的結(jié)構(gòu)體 實體 ENTITY 是一個設(shè)計實體的表層設(shè)計單元 其功能是對這個設(shè)計實體與外部電路進(jìn)行接口描述 它規(guī)定了設(shè)計單元的輸入輸出接口信號或引腳 是設(shè)計實體經(jīng)封裝后對外的一個通信界面 1 實體語句結(jié)構(gòu)實體說明單元的常用語句結(jié)構(gòu)如下 ENTITY實體名IS GENERIC 類屬表 PORT 端口表 END ENTITY 實體名 2 2 1實體 實體說明單元必須以語句 ENTITY實體名IS 開始 以語句 ENDENTITY實體名 結(jié)束 實體名是設(shè)計者自己給設(shè)計實體的命名 可作為其他設(shè)計實體對該設(shè)計實體進(jìn)行調(diào)用時用 中間在方括號內(nèi)的語句描述 在特定的情況下并非是必須的 例如構(gòu)建一個VHDL仿真測試基準(zhǔn)等情況中可以省去方括號中的語句 2 類屬 GENERIC 說明語句類屬 GENERIC 參量是一種端口界面常數(shù) 常以一種說明的形式放在實體或塊結(jié)構(gòu)體前的說明部分 類屬為所說明的環(huán)境提供了一種靜態(tài)信息通道 類屬的值可以由設(shè)計實體外部提供 類屬說明的一般書寫格式如下 GENERIC 常數(shù)名 數(shù)據(jù)類型 設(shè)定值 常數(shù)名 數(shù)據(jù)類型 設(shè)定值 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYAND2ISGENERIC RISEW TIME 1ns FALLW TIME 1ns PORT A1 INSTD LOGIC A0 INSTD LOGIC Z0 OUTSTD LOGIC ENDENTITYAND2 例2 2 2輸入與門的實體描述 類屬說明中定義參數(shù)RISEW為上沿寬度 FALLW為下沿寬度 它們分別為1ns 這兩個參數(shù)用于仿真模塊的設(shè)計 實體端口說明的一般書寫格式如下 PORT 端口名 端口模式數(shù)據(jù)類型 端口名 端口模式數(shù)據(jù)類型 端口名是設(shè)計者為實體的每一個對外通道 系統(tǒng)引腳 所取的名字 一般用幾個英文字母組成 端口模式 端口方向 是指這些通道上的數(shù)據(jù)流動方式 即定義引腳是輸入還是輸出 數(shù)據(jù)類型是指端口上流動的數(shù)據(jù)的表達(dá)格式 3 PORT端口說明 圖2 5端口模式符號圖 IEEE1076標(biāo)準(zhǔn)包中定義了4種常用的端口模式 各端口模式的功能及符號分別見表2 1和圖2 5 表2 1端口模式說明 PORT n0 n1 select INBIT q OUTBIT bus OUTBIT VECTOR 7DOWNTO0 例2 3 端口模式及數(shù)據(jù)類型定義 說明 n0 n1 select是輸入引腳 屬于BIT型 q是輸出引腳 BIT型 bus是一組8位二進(jìn)制總線 屬于BIT VECTOR LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmmISPORT n0 n1 select INSTD LOGIC Q OUTSTD LOGIC Bus OUTSTD LOGIC VECTOR 7DOWNTO0 ENDENTITYmm 例2 4 端口模式及IEEE庫數(shù)據(jù)類型定義 例中端口數(shù)據(jù)類型取自IEEE標(biāo)準(zhǔn)庫 該庫中有數(shù)據(jù)類型和函數(shù)的說明 其中STD LOGIC取值為 0 1 X 和 Z 因為使用了庫 所以在實體說明前要增加庫說明語句 2 2 2結(jié)構(gòu)體 結(jié)構(gòu)體 ARCHITECTURE 是設(shè)計實體的一個重要部分 結(jié)構(gòu)體將具體實現(xiàn)一個實體 結(jié)構(gòu)體不能單獨存在 它必須有一個界面說明 即一個實體 對于具有多個結(jié)構(gòu)體的實體 必須用CONFIGURATION配置語句指明用于綜合的結(jié)構(gòu)體和用于仿真的結(jié)構(gòu)體 即在綜合后的可映射于硬件電路的設(shè)計實體中 一個實體只對應(yīng)一個結(jié)構(gòu)體 在電路中 如果實體代表一個器件符號 則結(jié)構(gòu)體描述了這個符號的內(nèi)部行為 ARCHITECTURE結(jié)構(gòu)體名OF實體名IS 說明語句 內(nèi)部信號 常數(shù) 數(shù)據(jù)類型 函數(shù)等的定義BEGIN 功能描述語句 END ARCHITECTURE 結(jié)構(gòu)體名 1 結(jié)構(gòu)體語句格式 ENTITYmuxISPORT a0 a1 INBIT Sel INBIT Sh OUTBIT ENDmux ARCHITECTUREdataflowOFmuxISBEGINsh a0ANDsel OR NOTselANDa1 ENDdataflow 例2 5 結(jié)構(gòu)體描述 結(jié)構(gòu)體中的說明語句是對結(jié)構(gòu)體的功能描述語句中將要用到的信號 SIGNAL 數(shù)據(jù)類型 TYPE 常數(shù) CONSTANT 元件 COMPONENT 函數(shù) FUNCTION 和過程 PROCEDURE 等加以說明的語句 在一個結(jié)構(gòu)體中說明和定義的數(shù)據(jù)類型 常數(shù) 元件 函數(shù)和過程只能用于這個結(jié)構(gòu)體中 若希望其能用于其他的實體或結(jié)構(gòu)體中 則需要將其作為程序包來處理 2 結(jié)構(gòu)體說明語句 3 功能描述語句描述設(shè)計實體的具體行為 它包含兩類語句 1 并行語句 并行語句總是在進(jìn)程語句 PROCESS 的外部 語句的執(zhí)行與書寫順序無關(guān) 總是同時被執(zhí)行 2 順序語句 順序語句總是在進(jìn)程語句 PROCESS 的內(nèi)部 該語句是順序執(zhí)行的 一個結(jié)構(gòu)體可以包含幾個類型的子結(jié)構(gòu)描述 BLOCK 塊 描述 PROCESS 進(jìn)程 描述 SUNPROGRAMS 子程序 描述 塊語句是由一系列并行執(zhí)行語句構(gòu)成的組合體 它的功能是將結(jié)構(gòu)體中的并行語句組成一個或多個模塊 進(jìn)程語句定義順序語句模塊 用于將從外部獲得的信號值 或內(nèi)部的運算數(shù)據(jù)向其他的信號進(jìn)行賦值 子程序調(diào)用語句用于調(diào)用一個已設(shè)計好的子程序 信號賦值語句將設(shè)計實體內(nèi)的處理結(jié)果向定義的信號或界面端口進(jìn)行賦值 元件例化語句對其他的設(shè)計實體作元件調(diào)用說明 使用BLOCK語句描述的格式如下 塊標(biāo)號 BLOCKBEGINENDBLOCK 塊標(biāo)號 1 BLOCK塊語句 ENTITYmuxISPORT d0 d1 sel INBIT q OUTBIT ENDmux ARCHITECTUREconnectOFmuxISSIGNALtmp1 tmp2 tmp3 BIT BEGINcale BLOCKBEGINtmp1 d0ANDsel tmp2 d1AND NOTsel tmp3 tmp1ORtmp2 q tmp3 ENDBLOCKcale ENDconnect 例2 6 用塊語句實現(xiàn)的二選一電路 進(jìn)程描述的格式如下 進(jìn)程名 PROCESS 信號1 信號2 BEGIN ENDPROCESS 進(jìn)程名 進(jìn)程語句中總是帶有信號變量 敏感變量 只有當(dāng)信號變量發(fā)生變化時 進(jìn)程才被啟動 將進(jìn)程里的語句從上到下順序執(zhí)行一遍 執(zhí)行完了就回到開始的PROCESS語句 2 進(jìn)程 Process 語句描述 ENTITYmux2ISPORT d0 d1 sel INBIT q OUTBIT ENDmux2 ARCHITECTUREconnectOFmux2ISBEGINcale PROCESS d0 d1 sel VARIABLEtmp1 tmp2 tmp3 BIT BEGINtmp1 d0ANDsel tmp2 d1AND NOTsel tmp3 tmp1ORtmp2 q tmp3ENDPROCESScale ENDconnect 例2 7 用進(jìn)程語句實現(xiàn)的二選一電路 子程序就是在主程序調(diào)用它以后能將處理結(jié)果返回給主程序 在VHDL中有2種類型 過程和函數(shù) 過程語句PROCEDURE過程名 參數(shù)1 參數(shù)2 IS 定義語句 BEGIN 順序處理語句 END過程名 3 子程序語句描述 函數(shù)語句FUNCTION函數(shù)名 參數(shù)1 參數(shù)2 RETURN數(shù)據(jù)類型名IS 定義語句 BEGIN 順序處理語句 RETURN 返回變量名 END函數(shù)名 FUNCTIONmin x y INTEGER RETURNINTEGERISBEGINIFX YTHENRETURN x ELSERETURN y ENDIF ENDmin 例2 8 FUNCTION語句應(yīng)用舉例 PROCEDUREvector to int q ININTEGER x flag OUTBOOLEAN z INSTD LOGIC VECTOR ISBEGINq 0 x flag FALSE FORiINz RANGELOOPq q 2 IF z i 1 THENq q 1 ELSEIF z i 0 THENx flag TRUE ENDIF ENDLOOP ENDvector to int 例2 9 PROCEDURE語句應(yīng)用 2 2 3庫庫是經(jīng)編譯后的數(shù)據(jù)的集合 它存放包定義 實體定義 構(gòu)造定義和配置定義 使設(shè)計者可以共享已經(jīng)編譯的設(shè)計結(jié)果 VHDL中常用的庫如下 IEEE庫IEEE庫中包含IEEE標(biāo)準(zhǔn)的程序包 包括STD LOGIC 1164 NUMERIC BIT NUMERIC STD以及其他一些程序包 其中STD LOGIC 1164是最主要的程序包 大部分可用于可編程邏輯器件的程序包都以這個程序包為基礎(chǔ) STD庫STD庫包含STANDARD和TEXTIO程序包 STANDARD程序包中定義了許多基本的數(shù)據(jù)類型 子類型和函數(shù) TEXTIO是文件輸入 輸出程序包 是VHDL語言標(biāo)準(zhǔn)定義的 在VHDL的編譯和綜合過程中 系統(tǒng)都能自動調(diào)用因此不必在程序開始處打開該庫及其程序包 WORK庫WORK庫是VHDL的現(xiàn)行工作庫 用于存放用戶設(shè)計和定義的一些單元和程序包 在使用該庫時無需進(jìn)行任何說明 VITAL庫使用VITAL可以提高門級時序仿真的精度 一般在VHDL語言程序進(jìn)行仿真時使用 主要包含兩個程序包 VITAL timing 時序仿真包 VITAL primitives 基本單元程序包 現(xiàn)在的EDA開發(fā)工具都已將VITAL庫的程序包加到IEEE庫了 在使用庫之前 一定要進(jìn)行庫說明和包說明 庫和包的說明格式LIBRARY庫名 USE庫名 程序包名 項目名 all 2 2 4程序包包中羅列VHDL中用到的信號定義 常數(shù)定義 數(shù)據(jù)類型 元件語句 函數(shù)定義和過程定義 它是一個可編譯的設(shè)計單元 也是庫結(jié)構(gòu)中的一個層次 使用包時可以用USE語句說明 例如 USEIEEE STD LOGIC 1164 ALL 程序包分為包首和包體 1 程序包首格式PACKAGE包名IS 說明語句 END包名 2 程序包體格式PACKAGEBODY包名IS 說明語句 END PACKAGEBODY 包名 PACKAGElogicISTYPEthree level logicIS 0 1 z CONSTANTunknown value three level logic 0 FUNCTIONinvert input three level logic RETURNthree level logic ENDlogic 例2 10 程序包首 PACKAGEBODYLOGICISFUNCTIONinvert input three level logic returnthree level logicisbenginCaseinputiswhen 0 return 1 when 1 return 0 when z return z Endcase Endinvert Endlogic 例2 11 程序包體 配置用于在多結(jié)構(gòu)體中為一個實體指定一個結(jié)構(gòu)體 例如 在做RS觸發(fā)器的實體中使用了2個結(jié)構(gòu)體 目的是研究各個結(jié)構(gòu)體描述的RS觸發(fā)器的行為性能如何 但是究竟在仿真中使用哪一個結(jié)構(gòu)體的問題就是配置問題 配置語句格式CONFIGURATION配置名OF實體名IS 說明語句 END配置名 3 7 3配置 CONFIGURATION ENTITYrsISPORT set reset INBIT q qb BUFFERBIT ENDrs ARCHITECTUR

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論