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

淺談Verilog和VHDL的區(qū)別

用于功率MOSFET的SPICE和VHDL-AMS精密電熱模型

數(shù)字電路編程語言介紹
ADS8361 fpga如何實(shí)現(xiàn)

評(píng)論