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

下載本文檔

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

文檔簡介

圖2 4VHDL程序設計基本結構 2 2VHDL程序基本結構 一個相對完整的VHDL程序通常包含實體 Entity 結構體 Architecture 配置 Configuration 程序包 Package 和庫 Library 5個部分 1 庫 程序包使用說明 用于打開 調用 本設計實體將要用到的庫 程序包 程序包存放各個設計模塊共享的數(shù)據類型 常數(shù)和子程序等 庫是專門存放預編譯程序包的地方 2 實體 用于描述所設計的系統(tǒng)的外部接口信號 是可視部分 3 結構體 用于描述系統(tǒng)內部的結構和行為 建立輸入和輸出之間的關系 是不可視部分 4 配置說明語句 主要用于以層次化的方式對特定的設計實體進行元件例化 或是為實體選定某個特定的結構體 實體 ENTITY 是一個設計實體的表層設計單元 其功能是對這個設計實體與外部電路進行接口描述 它規(guī)定了設計單元的輸入輸出接口信號或引腳 是設計實體經封裝后對外的一個通信界面 1 實體語句結構實體說明單元的常用語句結構如下 ENTITY實體名IS GENERIC 類屬表 PORT 端口表 END ENTITY 實體名 2 2 1實體 實體說明單元必須以語句 ENTITY實體名IS 開始 以語句 ENDENTITY實體名 結束 實體名是設計者自己給設計實體的命名 可作為其他設計實體對該設計實體進行調用時用 中間在方括號內的語句描述 在特定的情況下并非是必須的 例如構建一個VHDL仿真測試基準等情況中可以省去方括號中的語句 2 類屬 GENERIC 說明語句類屬 GENERIC 參量是一種端口界面常數(shù) 常以一種說明的形式放在實體或塊結構體前的說明部分 類屬為所說明的環(huán)境提供了一種靜態(tài)信息通道 類屬的值可以由設計實體外部提供 類屬說明的一般書寫格式如下 GENERIC 常數(shù)名 數(shù)據類型 設定值 常數(shù)名 數(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ù)用于仿真模塊的設計 實體端口說明的一般書寫格式如下 PORT 端口名 端口模式數(shù)據類型 端口名 端口模式數(shù)據類型 端口名是設計者為實體的每一個對外通道 系統(tǒng)引腳 所取的名字 一般用幾個英文字母組成 端口模式 端口方向 是指這些通道上的數(shù)據流動方式 即定義引腳是輸入還是輸出 數(shù)據類型是指端口上流動的數(shù)據的表達格式 3 PORT端口說明 圖2 5端口模式符號圖 IEEE1076標準包中定義了4種常用的端口模式 各端口模式的功能及符號分別見表2 1和圖2 5 表2 1端口模式說明 PORT n0 n1 select INBIT q OUTBIT bus OUTBIT VECTOR 7DOWNTO0 例2 3 端口模式及數(shù)據類型定義 說明 n0 n1 select是輸入引腳 屬于BIT型 q是輸出引腳 BIT型 bus是一組8位二進制總線 屬于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ù)據類型定義 例中端口數(shù)據類型取自IEEE標準庫 該庫中有數(shù)據類型和函數(shù)的說明 其中STD LOGIC取值為 0 1 X 和 Z 因為使用了庫 所以在實體說明前要增加庫說明語句 2 2 2結構體 結構體 ARCHITECTURE 是設計實體的一個重要部分 結構體將具體實現(xiàn)一個實體 結構體不能單獨存在 它必須有一個界面說明 即一個實體 對于具有多個結構體的實體 必須用CONFIGURATION配置語句指明用于綜合的結構體和用于仿真的結構體 即在綜合后的可映射于硬件電路的設計實體中 一個實體只對應一個結構體 在電路中 如果實體代表一個器件符號 則結構體描述了這個符號的內部行為 ARCHITECTURE結構體名OF實體名IS 說明語句 內部信號 常數(shù) 數(shù)據類型 函數(shù)等的定義BEGIN 功能描述語句 END ARCHITECTURE 結構體名 1 結構體語句格式 ENTITYmuxISPORT a0 a1 INBIT Sel INBIT Sh OUTBIT ENDmux ARCHITECTUREdataflowOFmuxISBEGINsh a0ANDsel OR NOTselANDa1 ENDdataflow 例2 5 結構體描述 結構體中的說明語句是對結構體的功能描述語句中將要用到的信號 SIGNAL 數(shù)據類型 TYPE 常數(shù) CONSTANT 元件 COMPONENT 函數(shù) FUNCTION 和過程 PROCEDURE 等加以說明的語句 在一個結構體中說明和定義的數(shù)據類型 常數(shù) 元件 函數(shù)和過程只能用于這個結構體中 若希望其能用于其他的實體或結構體中 則需要將其作為程序包來處理 2 結構體說明語句 3 功能描述語句描述設計實體的具體行為 它包含兩類語句 1 并行語句 并行語句總是在進程語句 PROCESS 的外部 語句的執(zhí)行與書寫順序無關 總是同時被執(zhí)行 2 順序語句 順序語句總是在進程語句 PROCESS 的內部 該語句是順序執(zhí)行的 一個結構體可以包含幾個類型的子結構描述 BLOCK 塊 描述 PROCESS 進程 描述 SUNPROGRAMS 子程序 描述 塊語句是由一系列并行執(zhí)行語句構成的組合體 它的功能是將結構體中的并行語句組成一個或多個模塊 進程語句定義順序語句模塊 用于將從外部獲得的信號值 或內部的運算數(shù)據向其他的信號進行賦值 子程序調用語句用于調用一個已設計好的子程序 信號賦值語句將設計實體內的處理結果向定義的信號或界面端口進行賦值 元件例化語句對其他的設計實體作元件調用說明 使用BLOCK語句描述的格式如下 塊標號 BLOCKBEGINENDBLOCK 塊標號 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)的二選一電路 進程描述的格式如下 進程名 PROCESS 信號1 信號2 BEGIN ENDPROCESS 進程名 進程語句中總是帶有信號變量 敏感變量 只有當信號變量發(fā)生變化時 進程才被啟動 將進程里的語句從上到下順序執(zhí)行一遍 執(zhí)行完了就回到開始的PROCESS語句 2 進程 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 用進程語句實現(xiàn)的二選一電路 子程序就是在主程序調用它以后能將處理結果返回給主程序 在VHDL中有2種類型 過程和函數(shù) 過程語句PROCEDURE過程名 參數(shù)1 參數(shù)2 IS 定義語句 BEGIN 順序處理語句 END過程名 3 子程序語句描述 函數(shù)語句FUNCTION函數(shù)名 參數(shù)1 參數(shù)2 RETURN數(shù)據類型名IS 定義語句 BEGIN 順序處理語句 RETURN 返回變量名 END函數(shù)名 FUNCTIONmin x y INTEGER RETURNINTEGERISBEGINIFX YTHENRETURN x ELSERETURN y ENDIF ENDmin 例2 8 FUNCTION語句應用舉例 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語句應用 2 2 3庫庫是經編譯后的數(shù)據的集合 它存放包定義 實體定義 構造定義和配置定義 使設計者可以共享已經編譯的設計結果 VHDL中常用的庫如下 IEEE庫IEEE庫中包含IEEE標準的程序包 包括STD LOGIC 1164 NUMERIC BIT NUMERIC STD以及其他一些程序包 其中STD LOGIC 1164是最主要的程序包 大部分可用于可編程邏輯器件的程序包都以這個程序包為基礎 STD庫STD庫包含STANDARD和TEXTIO程序包 STANDARD程序包中定義了許多基本的數(shù)據類型 子類型和函數(shù) TEXTIO是文件輸入 輸出程序包 是VHDL語言標準定義的 在VHDL的編譯和綜合過程中 系統(tǒng)都能自動調用因此不必在程序開始處打開該庫及其程序包 WORK庫WORK庫是VHDL的現(xiàn)行工作庫 用于存放用戶設計和定義的一些單元和程序包 在使用該庫時無需進行任何說明 VITAL庫使用VITAL可以提高門級時序仿真的精度 一般在VHDL語言程序進行仿真時使用 主要包含兩個程序包 VITAL timing 時序仿真包 VITAL primitives 基本單元程序包 現(xiàn)在的EDA開發(fā)工具都已將VITAL庫的程序包加到IEEE庫了 在使用庫之前 一定要進行庫說明和包說明 庫和包的說明格式LIBRARY庫名 USE庫名 程序包名 項目名 all 2 2 4程序包包中羅列VHDL中用到的信號定義 常數(shù)定義 數(shù)據類型 元件語句 函數(shù)定義和過程定義 它是一個可編譯的設計單元 也是庫結構中的一個層次 使用包時可以用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 程序包體 配置用于在多結構體中為一個實體指定一個結構體 例如 在做RS觸發(fā)器的實體中使用了2個結構體 目的是研究各個結構體描述的RS觸發(fā)器的行為性能如何 但是究竟在仿真中使用哪一個結構體的問題就是配置問題 配置語句格式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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論