一個完整的VHDL程序包括實體(Entity),結構體(Architecture),配置(Configuration),包集合(Package),庫(Library)5個部分。在VHDL程序中,實體和結構體這兩個基本結構是必須的,他們可以構成最簡單的VHDL程序。實體用于描述電路器件的外部特性;結構體用于描述電路器件的內部邏輯功能或電路結構;包集合存放各設計模塊都能共享的數據類型、常數和子程序等;配置用于從庫中選取所需單元來組成系統設計的不同版本;庫用于存放已經編譯的實體、結構體、包集合和配置。
一,實體
??實體是VHDL程序設計的基礎單元。實體聲明對設計實體與外部電路的端口描述,以及定義所有輸入和輸出端口的基本性質,是實體對外的一個通信界面。實體聲明以entity開始,由end entity 或 end 結束,關鍵詞不區分大小寫。實體聲明語句結構如下:
??entity 實體名 is
????[generic (類屬參量) ;]
????[port (端口說明);]
??end entity 實體名;
1,實體名:一般由用戶定義,最好能體現功能;
2,類屬參量:是一個可選項;它是一種端口界面常數,常用來規定端口的大小、實體中元件的數目及實體的定時特性等。類屬參量的值可由實體的外部提供,用戶可以從外面通過重新設定類屬參量來改變一個實體或一個元件內部電路結構和規模。
3,端口說明:端口為實體和其外部環境提供動態通信的通道,利用port語句可以描述設計電路的端口和端口模式。格式如下
??port(端口名:端口模式 數據類型;…)
(1)端口名:是用戶為實體的每個對外通道所取得名字,通常為英文字母加數字得形式。
(2)端口模式:可綜合得端口模式有四種,分別是:IN,OUT,INOUT,BUFFER.用于定義端口上數據得流動方向和方式。
二,結構體
??結構體描述了實體的結構、行為、元件及內部連接關系,即定義了設計實體的功能,規定了實體的數據流程,指定了實體內部的數據連接關系。結構體是對實體功能的具體描述,一定跟在實體的后面。
??結構體一般分為兩個部分,第一部分是對數據類型,常量,信號,子程序和元件等因素進行說明;第二部分是描述實體的邏輯行為、以及各種不同的描述風格的功能描述語句,包括各種順序語句和并行語句。結構體聲明語句結構如下:
??architecture 結構體名 of 實體名 is
????[定義語句]
??begin
????[功能描述語句]
??end 結構體名;
1,結構體名:用戶自行定義,通常用dataflow(數據流),behavior(行為),structural(結構)
命名。體現了三種不同結構體的描述方式。
2,結構體信號定義語句
??結構體信號定義語句必須放在關鍵詞architecture和 begin之間,用于對結構體內部將要使用的信號、常數、數據類型、元件函數和過程進行說明。結構體定義的信號為該結構體的內部信號,只能用于這個結構體中。結構體中的信號定義和端口說明一樣,應有信號名稱和數據類型定義。用于結構體中的信號是內部連接用的信號,因此不需要方向說明。
3,結構體功能描述語句
??結構體功能描述語句位于begin和end之間,具體的描述了結構體的行為及其連接關系。結構體功能描述語句可以含有5中不同類型的并行語句。語句結構內部可以使用并行語句,也可以使用順序語句。
三,庫
??庫用來存儲已經完成的程序包等VHDL設計和數據,包含各類包定義、實體、機構體等。在VHDL庫中,庫的說明總是放在設計單元的最前面。這樣,設計單元內的語句就可以使用庫中的數據,便于用戶共享已經編譯的設計結果。
1,庫的說明
庫的說明使用use語句,通常有以下兩種格式:
??use 庫名. 程序包名. 工程名;
??use 庫名. 程序包名.all;
??第一種格式的作用是向本設計實體開放指定庫中的特定程序包內的選定工程。第二種格式的作用是向本設計實體開放指定庫中特定程序包內的所有內容。
2,常見庫
(1)IEEE庫
IEEE庫中包含以下四個包集合
STD_LOGIC_1164:標準邏輯類型和相應函數;
STD_LOGIC_ARITH:數學函數;
STD_LOGIC_SIGNED:符號數學函數;
STD_LOGIC_UNSIGNED:無符號數學函數;
(2)STD庫
STD庫是符合VHDL標準的庫,使用時不需要顯示聲明;
(3)ASIC矢量庫
各個公司提供的ASIC邏輯門庫;
(4)WORK庫
WORK庫為現行行業庫,用于存放用戶的VHDL程序,使用戶自己的庫。
??VHDL語法比較規范,對任何一種數據對象(信號,變量,常數),必須嚴格限定其取值范圍,即明確界定對其傳輸或存儲的數據類型。在VHDL中,有多種預先定義好的數據類型,如,整數數據類型INTEGER,布爾數據類型BOOLEAN,標準邏輯位數據類型STD_LOGIC和為數據類型BIT等。
??VHDL要求賦值運算符“<=”兩邊的信號數據類型必須一致。VHDL共7中基本邏輯運算符,AND(與),OR(或),NAND(與非),NOR(或非),XOR(異或),XNOR(同或),NOT(取反)。邏輯運算符所要求的操作對象的數據類型有三種,即BIT,BOOLEAN,STD_LOGIC。
審核編輯 黃昊宇
-
VHDL語言
+關注
關注
1文章
113瀏覽量
17988
發布評論請先 登錄
相關推薦
評論