VHDL的構(gòu)造體_第1頁
VHDL的構(gòu)造體_第2頁
VHDL的構(gòu)造體_第3頁
VHDL的構(gòu)造體_第4頁
VHDL的構(gòu)造體_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、VHDLVHDL的構(gòu)造體:的構(gòu)造體: architecture architecturearchitecture arch_name of architecture arch_name of entity_name isentity_name is 說明部分說明部分 declarations and definitions; declarations and definitions; beginbegin 語句部分語句部分 concurrent statement; concurrent statement; end arch_name;end arch_name;構(gòu)造體語法要點構(gòu)造體語法要點

2、每個構(gòu)造體必須屬于一個實體;每個構(gòu)造體必須屬于一個實體;每個構(gòu)造體必須有一個名稱:每個構(gòu)造體必須有一個名稱:通??梢愿鶕?jù)描述方式起名:通??梢愿鶕?jù)描述方式起名: str rtl behstr rtl beh構(gòu)造體分為兩部分:構(gòu)造體分為兩部分:is is bigin: bigin: 說明語句;說明語句;bigin bigin end: end: 并行語句;并行語句; 構(gòu)造體的說明語句構(gòu)造體的說明語句type declarations; type declarations; 類型說明類型說明signal declarations; signal declarations; 信號說明信號說明cons

3、tant declarations; constant declarations; 常量說明常量說明component declarations; component declarations; 元件說明元件說明function definitions; function definitions; 函數(shù)說明函數(shù)說明procedure definitions; procedure definitions; 過程說明過程說明構(gòu)造體的并行語句構(gòu)造體的并行語句信號賦值語句信號賦值語句 數(shù)據(jù)流描述數(shù)據(jù)流描述元件例化語句元件例化語句 結(jié)構(gòu)描述結(jié)構(gòu)描述進程語句進程語句 行為描述行為描述每條并行語句形成一個電

4、路邏輯單元。每條并行語句形成一個電路邏輯單元。構(gòu)造體的其他語法要點構(gòu)造體的其他語法要點除了第一句和除了第一句和beginbegin句外,其余各句均句外,其余各句均以分號結(jié)束;以分號結(jié)束;在每一部分中,各語句處于并列狀態(tài),在每一部分中,各語句處于并列狀態(tài),執(zhí)行時不分先后次序;執(zhí)行時不分先后次序;定義語句需要考慮使用的順序。定義語句需要考慮使用的順序。VHDLVHDL的數(shù)據(jù)對象的數(shù)據(jù)對象SignalSignal 信號信號ConstantConstant 常量常量VariableVariable 變量變量每個數(shù)據(jù)對象必須有特定的名稱;每個數(shù)據(jù)對象必須有特定的名稱;數(shù)據(jù)對象的命名規(guī)則與實體名相同;數(shù)據(jù)

5、對象的命名規(guī)則與實體名相同;VHDLVHDL的信號:的信號:signal電路中端口、連接線的體現(xiàn),具有具體物電路中端口、連接線的體現(xiàn),具有具體物理含義,在構(gòu)造體內(nèi)為全局變量;理含義,在構(gòu)造體內(nèi)為全局變量;信號使用前必須先進行說明:信號使用前必須先進行說明: 輸入輸入/ /輸出信號在實體中說明;輸出信號在實體中說明; 通用信號在包集合中進行說明;通用信號在包集合中進行說明; 模塊內(nèi)部信號在結(jié)構(gòu)體內(nèi)說明;模塊內(nèi)部信號在結(jié)構(gòu)體內(nèi)說明;信號說明語句基本格式信號說明語句基本格式signal signal_name : signal_type; signal signal_name : signal_ty

6、pe; 信號名信號名 信號類型信號類型 例:例:signal temp : std_logic;signal temp : std_logic;signal bus_a : std_logic_vector(7 signal bus_a : std_logic_vector(7 downto 0);downto 0);注意:端口(輸入注意:端口(輸入/ /輸出)信號已在實體輸出)信號已在實體中說明,在結(jié)構(gòu)體中就不再說明;中說明,在結(jié)構(gòu)體中就不再說明;信號的賦值信號的賦值在程序中采用在程序中采用“=”“=”(賦值語句)進行:(賦值語句)進行: 信號名信號名 = = 信號值(表達式);信號值(表達

7、式);例:例: temp=1 temp=1;z=x and not yz=x and not y; d= d0);0):(others=0);當(dāng)沒有指定初始值時,默認為其數(shù)據(jù)類型中的當(dāng)沒有指定初始值時,默認為其數(shù)據(jù)類型中的第一個值(最左邊的值);第一個值(最左邊的值);變量的賦值變量的賦值注意:注意:變量只在函數(shù)、過程、進程等子結(jié)構(gòu)中變量只在函數(shù)、過程、進程等子結(jié)構(gòu)中使用,一旦子結(jié)構(gòu)執(zhí)行結(jié)束,變量值隨使用,一旦子結(jié)構(gòu)執(zhí)行結(jié)束,變量值隨即消失;即消失; 因此,在一個結(jié)構(gòu)體中,同一個變量因此,在一個結(jié)構(gòu)體中,同一個變量名可以出現(xiàn)在不同的子程序中,表達不名可以出現(xiàn)在不同的子程序中,表達不同的數(shù)據(jù)對象

8、。同的數(shù)據(jù)對象。VHDLVHDL的數(shù)據(jù)類型的數(shù)據(jù)類型每一個數(shù)據(jù)對象都必須規(guī)定其類型;每一個數(shù)據(jù)對象都必須規(guī)定其類型;類型規(guī)定了數(shù)據(jù)的數(shù)據(jù)形式、取值范圍、類型規(guī)定了數(shù)據(jù)的數(shù)據(jù)形式、取值范圍、排列順序、可進行的運算;排列順序、可進行的運算;VHDLVHDL規(guī)定了若干預(yù)定義類型,用戶可以規(guī)定了若干預(yù)定義類型,用戶可以利用預(yù)定義類型來設(shè)置自定義類型;利用預(yù)定義類型來設(shè)置自定義類型;常用預(yù)定義類型常用預(yù)定義類型預(yù)定義類型在相關(guān)的包集合中定義預(yù)定義類型在相關(guān)的包集合中定義std.standardstd.standard: bitbit(位)、(位)、booleanboolean(布爾)(布爾) integ

9、erinteger(整數(shù))、(整數(shù))、realreal(實數(shù))(實數(shù))ieee.std_logic_1164ieee.std_logic_1164: std_logic(std_logic(標(biāo)準(zhǔn)邏輯量標(biāo)準(zhǔn)邏輯量) );ieee.std_logic_arithieee.std_logic_arith: signedsigned、unsignedunsigned;常用預(yù)定義類型常用預(yù)定義類型bitbit、bit_vectorbit_vector:2 2值邏輯值邏輯數(shù)據(jù)范圍(數(shù)據(jù)范圍(0 0,1 1),用于邏輯運算),用于邏輯運算說明方式:說明方式:signal xsignal x:bitbit;-

10、x-x為為1 1位邏輯信號;位邏輯信號;signal ysignal y:bit_vectorbit_vector(3 downto 03 downto 0););-y-y為為4 4位邏輯信號,最高位為位邏輯信號,最高位為y y(3 3),),在最左邊;在最左邊;常用預(yù)定義類型常用預(yù)定義類型bitbit、bit_vectorbit_vector:常數(shù)表達形式:常數(shù)表達形式一位邏輯量采用單引號:一位邏輯量采用單引號: 1 0多位邏輯量采用雙引號:多位邏輯量采用雙引號: 1001可以采用其他進制的縮寫形式:可以采用其他進制的縮寫形式: b 1001 o 7777 xffff常用預(yù)定義類型常用預(yù)定義

11、類型booleanboolean:(:(falthfalth,truetrue)邏輯量,用于關(guān)系判斷;邏輯量,用于關(guān)系判斷;可進行邏輯運算可進行邏輯運算; ;不能表達為多位數(shù)組;不能表達為多位數(shù)組;常用預(yù)定義類型常用預(yù)定義類型integerinteger:(:(-2-231-131-1 - +2+231-131-1)算術(shù)量,用于算術(shù)運算;算術(shù)量,用于算術(shù)運算;其子集合有其子集合有naturalnatural和和positivepositive;考慮到電路綜合效率,對于整數(shù)類型考慮到電路綜合效率,對于整數(shù)類型, ,可可以在說明時對數(shù)據(jù)范圍進行限制;以在說明時對數(shù)據(jù)范圍進行限制;常用預(yù)定義類型常用

12、預(yù)定義類型例:整數(shù)類型的范圍例:整數(shù)類型的范圍entity t isentity t isport(a,b: in integer range 0 to 15;port(a,b: in integer range 0 to 15; f: out bit);f: out bit);end t;end t;如果不加范圍限制,如果不加范圍限制,a a、b b都是都是3232位,加位,加限制后,變?yōu)橄拗坪?,變?yōu)? 4位;位;常用預(yù)定義類型常用預(yù)定義類型整數(shù)類型的一些常數(shù)表達形式整數(shù)類型的一些常數(shù)表達形式十進制數(shù)十進制數(shù) 120000=12E4=120_000 ; 120000=12E4=120_000

13、 ;二進制數(shù)二進制數(shù) 2#1111_1111#=2:1111_1111: 2#1111_1111#=2:1111_1111: 1616進制數(shù)進制數(shù) 16#FFFF#=16:FFFF: 16#FFFF#=16:FFFF:常用預(yù)定義類型常用預(yù)定義類型charactercharacter、stringstring:ISO 8ISO 8位字符集(前位字符集(前128128個為個為ASCASC編碼符號),綜合性較差,主要用編碼符號),綜合性較差,主要用于仿真;于仿真;在字符類型中,大寫字母和小寫字母表達不同在字符類型中,大寫字母和小寫字母表達不同含義,需要加以區(qū)分;含義,需要加以區(qū)分;例如:例如:AA和

14、和aa分別表達不同的字符。分別表達不同的字符。 常用預(yù)定義類型常用預(yù)定義類型可通過連接運算將字符組合為字符串,可通過連接運算將字符組合為字符串,或?qū)⒍套址B接成長字符串:或?qū)⒍套址B接成長字符串: & &字符串的例子:字符串的例子: string & literal Hello, I said! %Sale: 50% off!%;常用預(yù)定義類型常用預(yù)定義類型realreal:(:(-10-103838 - +10+103838)算術(shù)量,只能用)算術(shù)量,只能用于抽象描述及仿真,不可綜合;于抽象描述及仿真,不可綜合;例:十進制數(shù)例:十進制數(shù) 120000.0=1.2E5

15、=12.0E4 120000.0=1.2E5=12.0E4 timetime:物理量,由整數(shù)和相關(guān)單位字符構(gòu)成,:物理量,由整數(shù)和相關(guān)單位字符構(gòu)成,不可綜合;不可綜合;例:例: 50 ns 3 sec 25 hr 50 ns 3 sec 25 hr 可進行算術(shù)運算可進行算術(shù)運算常用預(yù)定義類型常用預(yù)定義類型std_logicstd_logic、std_logic_vectorstd_logic_vector:8 8值邏輯值邏輯數(shù)據(jù)范圍(數(shù)據(jù)范圍(X X,0 0,1 1,Z Z,W W,L L,H H,- -)std_ulogicstd_ulogic、std_ulogic_vectorstd_ul

16、ogic_vector:9 9值邏輯值邏輯數(shù)據(jù)范圍(數(shù)據(jù)范圍(U U,X X,0 0,1 1,Z Z,W W,L L,H H,- -)用于邏輯運算;用于邏輯運算;常用預(yù)定義類型常用預(yù)定義類型std_logicstd_logic、std_logic_vectorstd_logic_vector:8 8值邏輯值邏輯數(shù)據(jù)范圍(數(shù)據(jù)范圍(X X,0 0,1 1,Z Z,W W,L L,H H,- -)用于邏輯運算;用于邏輯運算;X X:強不定;:強不定; 0 0:強:強0 0; 1 1:強:強1 1; Z Z:高阻:高阻W W:弱不定;:弱不定; L L:弱:弱0 0; H H:弱:弱1 1; - -

17、:不出現(xiàn);:不出現(xiàn);只有只有0 0、1 1、Z Z可以綜合,其他只用于仿真;可以綜合,其他只用于仿真;常用預(yù)定義類型常用預(yù)定義類型std_logicstd_logic、std_logic_vectorstd_logic_vector:特點:特點此類信號能夠更清楚地表現(xiàn)電路中的實際電平此類信號能夠更清楚地表現(xiàn)電路中的實際電平情況;情況;設(shè)置有解決總線沖突問題的專用函數(shù);設(shè)置有解決總線沖突問題的專用函數(shù);當(dāng)多個電平連接到同一接點上的時候,當(dāng)多個電平連接到同一接點上的時候,可以根據(jù)該判決函數(shù)決定連接點狀態(tài)??梢愿鶕?jù)該判決函數(shù)決定連接點狀態(tài)。常用預(yù)定義類型常用預(yù)定義類型std_logicstd_logic、std_logic_vectorstd_logic_vector:判決函數(shù)表:判決函數(shù)表常用預(yù)定義類型常用預(yù)定義類型std_ulogicstd_ulogic、std_ulogic_vectorstd_ulogic_vector:9 9值邏輯值邏輯數(shù)據(jù)范圍(數(shù)據(jù)范圍(U U,X X,0 0,1 1,Z Z,W W

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論