VHDL的基本結構由實體(ENTITY)和結構體(ARCHITECTURE)兩部分構成。ENTITY:規定了設計單元的輸入/輸出接口信號和引腳,相當於元器件;ARCHITECTURE:定義了設計單元的具體實現,指定輸入和輸出的行爲。
一個完整的VHDL程序通常包含5個部分:實體(ENTITY)、結構體(ARCHITECTURE)、配置(Configuration)、程序包(Package)、庫(Library)。
1. 實體(ENTITY)
ENTITY 實體名 IS
[GENERIC (類屬參數表);]
[PORT (端口表);]
END 實體名;
1.1 類屬參數表
類屬 GENERIC 參數表是一種端口界面常數,常以一種說明的形式放在實體或塊結構體前的說明部分。類屬參數表用於設計實體和其外部環境通信的參數,傳遞靜態的信息。
當用實體例化一個設計實體的器件時,可以用類屬參數表中的參數項定製這個器件,如可以將一個實體的傳輸延遲,上升和下降延時等參數加到類屬參數表中。比較常見的情況是利用類屬來動態規定一個實體的端口的大小,或設計實體的物理特性,或結構體中的總線寬度,或設計實體中底層中同種元件的例化數量等等。
示例:
GENERIC (buswide : INTEGER := 16);
1.2 端口表
端口表:對設計實體中輸入輸出接口進行的描述。
PORT (端口名1:端口模式 數據類型;
.......................................................
端口名n:端口模式 數據類型);
端口模式有5種類型:IN(輸入)、OUT(輸出)、INOUT(雙向)、BUFFER(緩衝)、LINKAGE(無指定方向)
IN(輸入): 僅允許信號進入端口,主要用於時鐘輸入、控制輸入(如復位和使能等)、單向的數據輸入;
OUT(輸出): 僅允許信號從實體內部流出端口,通常用於計數輸出等;
INOUT(雙向): 信號可以從該端口進入和流出;
BUFFER(緩衝): 信號從實體內部流出端口,輸出的信號可同時作爲實體內部的反饋輸入信號;
LINKAGE(無指定方向):可以與任何方向的信號連接。