VHDL程序結構_第1頁
VHDL程序結構_第2頁
VHDL程序結構_第3頁
VHDL程序結構_第4頁
VHDL程序結構_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.1 實體(ENTITY)2.2 結構體(ARCHITECTURE ) 2.3 塊( BLOCK )2.4 進程( PROCESS )2.5 子程序 (SUBPROGRAM)2.6 庫 (LIBRARY) 2.7 程序包 (PACKAGE) 2.8 配置(CONFIGURATION)VHDL設計事例設計事例-一個一個2選選1多路選擇器多路選擇器程序包實體結構體VHDL程序基本結構程序基本結構實體部分實體部分 描述設計實體的外描述設計實體的外部接口信號(即輸入部接口信號(即輸入/輸出信輸出信號);號);結構體結構體 用于描述設計實體用于描述設計實體的內部電路。的內部電路。包集合包集合 存放各設

2、計模塊能存放各設計模塊能共享的數(shù)據(jù)類型、常數(shù)、子共享的數(shù)據(jù)類型、常數(shù)、子程序等;程序等;庫庫 用于存放已編譯的實體、用于存放已編譯的實體、結構體、包集合和配置。結構體、包集合和配置。配置配置 用于從庫中選取所需用于從庫中選取所需元件安裝到設計單元的實元件安裝到設計單元的實體中。體中。實體和結構體實體和結構體 是是VHDL設計設計文件的兩個基本組成部分。文件的兩個基本組成部分。實體的一般格式為:實體的一般格式為: ENTITY 實體名實體名 IS 類屬參數(shù)說明類屬參數(shù)說明; 端口說明端口說明; END; 實體中的每一個實體中的每一個I/O信號被稱為端口,其功能對應于電路信號被稱為端口,其功能對應

3、于電路 圖符圖符號的一個引腳。端口說明則是對一個實體的一組端口的定義,即號的一個引腳。端口說明則是對一個實體的一組端口的定義,即對基本設計實體與外部接口的描述。端口是設計實體和外部環(huán)境對基本設計實體與外部接口的描述。端口是設計實體和外部環(huán)境動態(tài)通信的通道。動態(tài)通信的通道。ayand2b 實體名、實體名、端口名端口名等均應為符合等均應為符合VHDL命名規(guī)則的命名規(guī)則的標識符標識符。 ENTITY、IS、END是是VHDL的關鍵字(保留字)。的關鍵字(保留字)。 端口說明的一般格式為:端口說明的一般格式為: PORT(端口名(端口名,端口名,端口名:端口模式:端口模式 數(shù)據(jù)類型;數(shù)據(jù)類型; 端口名

4、端口名,端口名,端口名:端口模式:端口模式 數(shù)據(jù)類型);數(shù)據(jù)類型); PORT (a,b: IN STD_LOGIC; y : OUT STD_LOGIC);端口說明端口說明端口模式端口模式Entity用來說明數(shù)據(jù)傳輸通過該端口用來說明數(shù)據(jù)傳輸通過該端口的方向的方向。Out與與Buffer的區(qū)別的區(qū)別 Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b = not(a); c = b; end a; Entity test2 is po

5、rt(a: in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b = not(a); c = b; end a;-Error類屬參數(shù)說明類屬參數(shù)說明Generic類屬參數(shù)說明是可選部分。如果需要,可使用以類屬參數(shù)說明是可選部分。如果需要,可使用以“GENERIC”語句來指定該設計單元的類屬參數(shù)語句來指定該設計單元的類屬參數(shù)(如延時等)。(如延時等)。類屬參數(shù)說明的格式為:類屬參數(shù)說明的格式為: GENERIC(端口名(端口名,端口名,端口名:IN

6、 子類型子類型 :=初始值初始值 ;端口名;端口名,端口名,端口名: IN 子類型子類型 :=初始值初始值 );DD實體舉例例:例: 四位加法器實體說明程序四位加法器實體說明程序 ENTITY add4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); Ci: IN STD_LOGIC; Sum: OUT STD_LOGIC_VECTOR(3 downto 0); Co: OUT STD_LOGIC); END add4; 由實體說明畫出四位加法器由實體說明畫出四位加法器add4的電路圖如下所示。的電路圖如下所示。add4a3.0b3.0Sum3.0

7、CiCol2. 2 結構體(結構體(ARCHITECTURE )結構體的一般格式如下:結構體的一般格式如下: ARCHITECTURE 結構體名結構體名 OF 實體名實體名 IS 結構體說明部分結構體說明部分; BEGIN 功能描述語句功能描述語句 ; END ARCHITECTURE 結構體名;結構體名; 結構體說明結構體說明是指對結構體需要使用的信號、常數(shù)、數(shù)據(jù)類是指對結構體需要使用的信號、常數(shù)、數(shù)據(jù)類 型和型和函數(shù)進行定義和說明。函數(shù)進行定義和說明。功能描述語句功能描述語句具體地描述了結構體的行為。具體地描述了結構體的行為。功能描述語句功能描述語句都是并發(fā)(同時)執(zhí)行的都是并發(fā)(同時)執(zhí)

8、行的-與排列順序無關。與排列順序無關。實體和結構體之間的關系實體和結構體之間的關系Input 1Input nOutput 1Output nVHDL設計事例-一個2選1多路選擇器程序包實體結構體 結構體(結構體(ARCHITECTURE )結構體構造圖結構體構造圖l2.3 塊(塊( BLOCK ) BLOCK語句的語法格式為:語句的語法格式為: 塊標號:塊標號:BLOCK (塊保護表達式塊保護表達式) 說明語句說明語句; BEGIN 并行語句并行語句; END BLOCK 標號名;標號名; 保護表達式保護表達式是可選項,它是一個布爾表達式。保護表達式的作是可選項,它是一個布爾表達式。保護表達

9、式的作用是:只有當其為真時,該塊中的語句才被啟動執(zhí)行;否則,該用是:只有當其為真時,該塊中的語句才被啟動執(zhí)行;否則,該塊中的語句不被執(zhí)行。塊中的語句不被執(zhí)行。 BLOCK語句中所描述的各個語句是可以并行執(zhí)行的,它和書語句中所描述的各個語句是可以并行執(zhí)行的,它和書寫順序無關寫順序無關。 一個大規(guī)模的電原理圖通??梢苑指畛啥鄰堊釉韴D,以便于設計和存一個大規(guī)模的電原理圖通??梢苑指畛啥鄰堊釉韴D,以便于設計和存檔。同樣,在檔。同樣,在VHDL程序設計中,結構體對應整個電原理圖,而結構體可由程序設計中,結構體對應整個電原理圖,而結構體可由多個多個BLOCK塊組成,每一個塊組成,每一個BLOCK塊則對

10、應一張子原理圖。電原理圖的分塊則對應一張子原理圖。電原理圖的分割關系和割關系和VHDL程序中用程序中用BLOCK塊分割結構體的關系是一一對應的。塊分割結構體的關系是一一對應的。例: 用BLOCK語句描述2選1電路的程序。 ENTITY mux2_1 IS PORT(d0, d1, sel: INSTD_LOGIC; q: OUT STD_LOGIC); END mux2_1; ARCHITECTURE amux OF mux2_1 IS SIGNAL tmp1,tmp2,tmp3 : STD_LOGIC; BEGIN cale: BLOCK BEGIN tmp1=d0 AND sel; tmp

11、2=d1 AND (not sel); tmp3=tmp1 OR tmp2; q=tmp3; END BLOCK cale; END amux; 上述結構體中只有一個 BLOCK塊,若電路復雜時可由幾個BLOCK塊組成。d1d0qselu2u1u3tmp1tmp2tmp3 實體的功能和結構。小 結 本節(jié)課我們學習了VHDL程序的基本結構及其主要模塊實體結構體和結構體中的并行描述語句-塊語句。要求大家重點掌握的內容有:VHDL程序的基本結構。結構體的能和結構。了解塊語句的并行特點。 練習:練習:1、簡述設計實體、實體和結構體之間的關系、簡述設計實體、實體和結構體之間的關系2、描述結構體的主要特點

12、、描述結構體的主要特點l2.4 進程(進程( PROCESS ) PROCESS語句是一種并發(fā)處理語句,在一個構造體中多語句是一種并發(fā)處理語句,在一個構造體中多個個PROCESS語句可以同時并發(fā)運行。語句可以同時并發(fā)運行。PROCESS語句是語句是VHDL中描述硬件系統(tǒng)并發(fā)行為的最常用、最基本的語句。中描述硬件系統(tǒng)并發(fā)行為的最常用、最基本的語句。進程語句的一般格式為;進程語句的一般格式為; 進程名:進程名: PROCESS (敏感信號表敏感信號表) 進程說明語句進程說明語句 BEGIN 順序描述語句;順序描述語句; END PROCESS 進程名進程名; 例:例: 利用利用PROCESS語句設

13、計與非門電路。語句設計與非門電路。 nandx: PROCESS (a, b) BEGIN y=a NAND b ; END PROCESS nandx; 敏感信號表敏感信號表所標明的信號是用來所標明的信號是用來啟動進程啟動進程的。敏感信的。敏感信號表中的信號無論哪一個發(fā)生變化(如由號表中的信號無論哪一個發(fā)生變化(如由0變變1或或由由1變變0 )都將啟動該)都將啟動該PROCESS語句。語句。一旦啟動后一旦啟動后, PROCESS中的語句將從上至下逐句執(zhí)中的語句將從上至下逐句執(zhí)行一遍。當最后一個執(zhí)行完畢以后,即返回到開始的行一遍。當最后一個執(zhí)行完畢以后,即返回到開始的PROCESS語句,等待下

14、一次啟動語句,等待下一次啟動。因此,只要因此,只要PROCESS中指定的信號變化一次,該中指定的信號變化一次,該PROCESS語句就語句就會執(zhí)行一遍。會執(zhí)行一遍。 l2.5 子程序(子程序( SUBPROGRAM ) 子程序可以在結構體或程序包的任何位置被調用,而且可以子程序可以在結構體或程序包的任何位置被調用,而且可以反復調用。反復調用。 VHDL的子程序有兩種類型:的子程序有兩種類型:過程過程(PROCEDURE)函數(shù)函數(shù)(FUNCTION)子程序的特點子程序的特點: 過程(過程(PROCEDURE)過程語句的結構:過程語句的結構: PROCEDURE 過程名(參數(shù)過程名(參數(shù)1;參數(shù);參

15、數(shù)2; )IS 定義語句定義語句; BEGIN 順序處理語句順序處理語句; END 過程名;過程名;過程語句的調用格式:過程語句的調用格式: 過程名過程名(實際參數(shù)表);(實際參數(shù)表);例:例: 設計一個從兩個整數(shù)中求取最大值的過程。設計一個從兩個整數(shù)中求取最大值的過程。 PROCEDURE max(a, b: IN INTEGER; y:OUT INTEGER) IS BEGIN IF (ab) THEN y=b; ELSE yb) THEN tmp:=a; ELSE tmp:=b; END IF; RETURN tmp; END max; 函數(shù)的參數(shù)均為輸入?yún)?shù)。函數(shù)的參數(shù)均為輸入?yún)?shù)。

16、函數(shù)調用返回一個指定數(shù)據(jù)類型的值。函數(shù)調用返回一個指定數(shù)據(jù)類型的值。ARCHITECTURE rtl OF dpeak IS SIGNAL peak : STD_LOGIC_VECTOR(5 downto 0); BEGIN dout=peak; PROCESS (clk) BEGIN IF (clkevent and clk=1) THEN IF (set=1) THEN peak=date; ELSE peak RETURN 1; WHEN 1= RETURN 0; WHEN Z= RETURN Z; END CASE; END invert; END BODY; 一個包集合說明至多可以帶

17、一個包體,包體和包頭使用一個包集合說明至多可以帶一個包體,包體和包頭使用相同的名字。包體的內容是基本說明和子程序體說明。但要相同的名字。包體的內容是基本說明和子程序體說明。但要注意,若包集合中含有子程序說明時,必須將子程序放在對注意,若包集合中含有子程序說明時,必須將子程序放在對應的包體中。應的包體中。 包體中的子程序及其相應的說明是專用的,不能被其它包體中的子程序及其相應的說明是專用的,不能被其它VHDL單元所引用;而包集合中的說明是公用的,它可以獨單元所引用;而包集合中的說明是公用的,它可以獨立地編譯并插入設計庫中。包集合體是次級設計單元,只有立地編譯并插入設計庫中。包集合體是次級設計單元

18、,只有在其對應的主設計單元編譯并插入設計庫之后,才可獨立地在其對應的主設計單元編譯并插入設計庫之后,才可獨立地編譯并插入到設計庫中。編譯并插入到設計庫中。l2. 8 配置配置(CONFIGURATION) 配置的基本格式為:配置的基本格式為: CONFIGURATION 配置名配置名 OF 實體名實體名 IS 配置說明配置說明; END 配置名;配置名; 配置語句配置語句描述了層與層之間的連接關系,以及實體與構描述了層與層之間的連接關系,以及實體與構造體之間的連接關系。(一個實體(造體之間的連接關系。(一個實體(ENTITY)可以有多個)可以有多個構造體)設計者可以利用配置語句選擇不同的構造體

19、,使其構造體)設計者可以利用配置語句選擇不同的構造體,使其與要設計的實體相對應;在仿真某一個實體時,可以利用配與要設計的實體相對應;在仿真某一個實體時,可以利用配置選擇不同的構造體進行性能對比實驗,以得到性能最佳的置選擇不同的構造體進行性能對比實驗,以得到性能最佳的構造體。構造體。 CONFIGURATION 配置名配置名 OF 實體名實體名 IS FOR 選配結構體名選配結構體名 END FOR; END 配置名配置名; 配置語句根據(jù)不同情況,其說明語句有簡有繁。最簡單配置語句根據(jù)不同情況,其說明語句有簡有繁。最簡單的缺省配置格式為:的缺省配置格式為:例:例:加入了配置的加入了配置的4位等值比較器設計文件位等值比較器設計文件LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY comp4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); y: OUT STD_LOGIC); END comp4;-結構體結構體 1: ARCHITECTURE behavior OF comp4 IS BEGIN Comp: PROCESS(a, b) BEGIN IF a=b THEN y=1; ELSE y=0; END IF; END PROCESS comp; END be

溫馨提示

  • 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

提交評論