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