版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第七章VHDL語言屬性描述屬性是指關(guān)于設(shè)計實體、結(jié)構(gòu)體、類型、信號等項目的指定特性。屬性提供了描述特定對象的多個側(cè)面值的手段信號屬性在檢測信號變化和建立詳細(xì)的時域模型時非常重要為什么要有屬性:電路元件需要時鐘信號同步需要控制信號控制整個電路的行為(進(jìn)程的執(zhí)行)時鐘信號與控制信號的使用多種多樣利用屬性可以使VHDL源代碼更加簡明扼要,便于理解第七章VHDL語言屬性描述屬性VHDL提供5類預(yù)定義屬性:1、數(shù)值類屬性2、函數(shù)類屬性3、信號類屬性4、數(shù)據(jù)類型類屬性5、數(shù)組范圍類屬性屬性VHDL提供5類預(yù)定義屬性:7.1.1常用數(shù)據(jù)的數(shù)值屬性
主要用于返回常用數(shù)據(jù)類型、數(shù)組或是塊的有關(guān)值: 例如:返回數(shù)組長度、數(shù)據(jù)類型的上下界等。常用數(shù)據(jù)類型的數(shù)值類屬性:’left:返回一個數(shù)據(jù)類型或子類型最左邊的值。’right:返回一個數(shù)據(jù)類型或子類型最右邊的值。’high:返回一個數(shù)據(jù)類型或子類型的最大值?!痩ow:返回一個數(shù)據(jù)類型或子類型的最小值。7.1數(shù)值類屬性7.1.1常用數(shù)據(jù)的數(shù)值屬性7.1數(shù)值類屬性屬性規(guī)則:上下限:對數(shù)值取最大、最小值;對枚舉類型數(shù)據(jù)下限取左邊界值,上限取右邊界值;對數(shù)組取數(shù)組區(qū)間的最大最小值。左右邊界:按書寫順序取左邊或右邊值。例:SUBTYPEnatISNaturalRange0to255;X:=nat’HIGH; --x等于255X:=nat’LOW; --x等于0X:=nat’RIGHT; --x等于255X:=nat’LEFT; --x等于07.1數(shù)值類屬性屬性規(guī)則:7.1數(shù)值類屬性PROCESS(a)TYPEbit16ISArray(15downto0)OFstd_logic;VARIABLElef,rig,up,low:NATURAL;BEGIN lef:=bit16’LEFT; --15 rig:=bit16’RIGHT; --0 up:=bit16’HIGH; --15 low:=bit16’LOW; --0ENDPROCESS;PROCESS(a)TYPEbit16ISArray(0to15)OFstd_logic;VARIABLElef,rig,up,low:NATURAL;BEGIN lef:=bit16’LEFT; --0 rig:=bit16’RIGHT; --15 up:=bit16’HIGH; --15 low:=bit16’LOW; --0ENDPROCESS;7.1數(shù)值類屬性在遞增區(qū)間‘LEFT=‘LOW‘RIGHT=‘HIGH在遞減區(qū)間‘LEFT=‘HIGH‘RIGHT=‘LOW例7-1:PROCESS(a)7.1數(shù)值類屬性在遞增區(qū)間在遞減區(qū)間例例7-2枚舉類型數(shù)據(jù)數(shù)值屬性描述ArchitecturevoltbofvoltaISTYPEvoltIS(uV,mV,V,kV);SUBTYPEs_voltISvoltRANGE(VDOWNTOmV);SIGNALS1,S2,S3,S4:VOLT;BEGIN S1<=volt’HIGH; --kV S2<=volt’LOW; --uV S3<=s_volt’LEFT; --V S4<=s_volt’RIGHT; --mVENDvoltb;7.1數(shù)值類屬性例7-2枚舉類型數(shù)據(jù)數(shù)值屬性描述7.1數(shù)值類屬性7.1.1數(shù)組的數(shù)值屬性
數(shù)組屬性只有一個:取數(shù)組的長度值。格式: <數(shù)組名>‘LENGTH(n);其中n是多維數(shù)組的維數(shù);如二維數(shù)組n=2;對一維數(shù)組n缺省。例7-3一維數(shù)組數(shù)值屬性描述PROCESS(b)TYPEbit8ISarray(7downto0)ofbit;TYPEbit31_8ISarray(31downto8)ofbit;VARIABLEb1,b2:integer;BEGIN b1:=bit8’LENGTH; --b1=8 B2:=BIT31_8’LENGTH; --b2=24ENDPROCESS7.1數(shù)值類屬性7.1.1數(shù)組的數(shù)值屬性7.1數(shù)值類屬性指屬性以函數(shù)的形式返回有關(guān)數(shù)據(jù)類型、數(shù)組或是信號的信息。函數(shù)類屬性使用時以函數(shù)表達(dá)式的形式出現(xiàn),屬性根據(jù)輸入的自變量值去執(zhí)行函數(shù),返回一個相應(yīng)的值。該返回值可能是數(shù)組區(qū)間的某一個值,也可能是信號的變化值,或是枚舉數(shù)據(jù)的位置序號等。函數(shù)類屬性分三類:數(shù)據(jù)類型屬性函數(shù)數(shù)組類型屬性函數(shù)信號屬性函數(shù)7.2函數(shù)類屬性指屬性以函數(shù)的形式返回有關(guān)數(shù)據(jù)類7.2函數(shù)類屬性7.2.1
數(shù)據(jù)類型屬性函數(shù)主要用來得到數(shù)據(jù)類型的各種相關(guān)信息,共6種:(1)’POS(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中輸入的X值的位置序號(2)’VAL(位置序號)--返回輸入的位置序號X處的值(3)’SUCC(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的下一個對應(yīng)值(4)’PRED(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的前一個對應(yīng)值(5)’LEFTOF(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的左邊值(6)’RIGHTOF(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的右邊值對于遞增區(qū)間:’SUCC(x)=’RIGHTOF(x)
’PRED(x)=’LEFTOF(x)
對于遞減區(qū)間:’SUCC(x)=’LEFTOF(x)
’PRED(x)=’RIGHTOF(x)
7.2函數(shù)類屬性7.2.1數(shù)據(jù)類型屬性函數(shù)7.2函數(shù)類屬性例7-4PACKAGEw_packISTYPEweekIS(sun,mon,tue,wed,thu,fri,sat);TYPEr_weekISweekRANGEsatDOWNTOsun;ENDw_pack;求自定義類型的屬性:week’SUCC(mon) --得tueweek’PRED(mon) --得sunweek’LEFTOF(mon) --得sunweek’RIGHTOF(mon) --得tuer_week’SUCC(mon) --得tuer_week’PRED(mon) --得sunr_week’LEFTOF(mon) --得tuer_week’RIGHTOF(mon) --得sun7.2函數(shù)類屬性例7-47.2函數(shù)類屬性7.2.2
數(shù)組屬性函數(shù)主要用來得到數(shù)組的信息。共有4種屬性:(1)’LEFT(n)--得到n區(qū)間的左端邊界號(2)’RIGHT(n)--得到n區(qū)間的右端邊界號(3)’HIGH(n)--得到n區(qū)間的高端邊界號(4)’LOW(n)--得到n區(qū)間的低端邊界號其中n表示數(shù)組的區(qū)間序號(即維數(shù))。當(dāng)n=1時可以缺省,默認(rèn)為一維數(shù)組。在遞減區(qū)間‘LEFT=‘HIGH‘RIGHT=‘LOW在遞增區(qū)間‘LEFT=‘LOW‘RIGHT=‘HIGH7.2函數(shù)類屬性7.2.2數(shù)組屬性函數(shù)TYPEmatrixISARRAY(0TO7,15DOWNTO0)OFstd_logic;i<=matrix’left(1); --i=0;i<=matrix’right(1); --i=7;i<=matrix’high(1); --i=7;i<=matrix’low(1); --i=0;i<=matrix’left(2); --i=15;i<=matrix’right(2); --i=0;i<=matrix’high(2); --i=15;i<=matrix’low(2); --i=0;TYPEmatrixISARRAY(0TO7,7.2函數(shù)類屬性7.2.3
信號類型屬性函數(shù)主要用來得到信號的各種行為功能信息:包括信號值的變化、信號變化后經(jīng)過的時間、變化前的信號值等。共有5種屬性:(1)’EVENT--當(dāng)前很短的時間內(nèi)信號發(fā)生了變化,則返回TRUE,否則返回FALSE。(2)’ACTIVE--當(dāng)前很短的時間內(nèi)信號活躍,則返回TRUE,否則返回FALSE。(3)’LAST_EVENT--返回信號從前一個事件發(fā)生到現(xiàn)在的時間值。(4)’LAST_VALUE--返回信號在最近一個事件發(fā)生以前的值(5)’LAST_ACTIVE--返回信號從前一次活躍到現(xiàn)在的時間值7.2函數(shù)類屬性7.2.3信號類型屬性函數(shù)7.2函數(shù)類屬性1
屬性函數(shù)’EVENT和’LAST_VALUE
’EVENT主要用來檢測脈沖信號的正跳變或負(fù)跳變邊沿,也可以檢查信號是否剛發(fā)生變化并且正處于某一個電平值。例7-9D觸發(fā)器時鐘脈沖上升沿的檢測libraryieee;useieee.std_logic_1164.all;entitydffISPORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdffOFdffISBEGINPROCESS(clk)BEGINIFclk=‘1’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff;7.2函數(shù)類屬性1屬性函數(shù)’EVENT和’LAST_V2
屬性函數(shù)’LAST_EVENT
例7-10D觸發(fā)器建立時間的檢測libraryieee;useieee.std_logic_1164.all;entitydffISGENERIC(setup_time,hold_time:TIME);PORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdff_behavOFdffISBEGINSetup_check:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN ASSERT(d’LAST_EVENT>=setup_time) REPORT“SETUPVIOLATON” SEVERITYERROR;ENDIF;7.2函數(shù)類屬性2屬性函數(shù)’LAST_EVENT7.2函數(shù)類屬性ENDPROCESS;Dff_process:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff_behav;7.2函數(shù)類屬性dclkqHoldtimeSetuptimeENDPROCESS;7.2函數(shù)類屬性dcl
根據(jù)所加屬性的信號去建立一個新的信號,稱信號類屬性。
信號類屬性有4種:’DELAYED(t):t為時間表達(dá)式,該屬性將產(chǎn)生一個特別的延遲信號,該信號使主信號按t確定的時間產(chǎn)生附加的延遲。新信號與主信號類型相同。該屬性可以用來檢查信號的保持時間?!疭TABLE(t):當(dāng)所加屬性的信號在時間t內(nèi)沒有發(fā)生變化,則返回true,否則返回false.
該屬性中當(dāng)t=0時可以得到與屬性’EVENT相反的值。’QUIET(t)
:信號在時間t內(nèi)不活躍,則返回true,否則返回false。典型應(yīng)用是用來對中斷優(yōu)先處理機(jī)制進(jìn)行建模。‘TRANSACTION:所加屬性的信號活躍時將對所建立的bit數(shù)據(jù)取反。
7.3信號類屬性根據(jù)所加屬性的信號去建立一個新的信號,稱信號類屬7.3信號類屬性1
屬性
’DELAYED(t)
可以用’DELAYED(t)屬性的信號建立一個延遲信號附加在該信號上。例7-11二輸入與門附加延遲的描述c_opda_ipdb_ipdintbintaabc7.3信號類屬性1屬性’DELAYED(t)c_op7.3信號類屬性libraryieee;useieee.std_logic_1164.all;entityand2ISGENERIC(a_ipd,b_ipd,c_opd:TIME);PORT(a,b:INcal_resiststd_logic;c:OUTstd_logic);endand2;ARCHITECTUREint_signalsOFand2ISSIGNALinta,intb:std_logic;BEGIN inta<=TRANSPORTaAFTERa_ipd; intb<=TRANSPORTbAFTERb_ipd; c<=intaANDintbAFTERc_opd;ENDint_signals;ARCHITECTUREattrOFand2ISBEGIN c<=a’DELAYED(a_ipd)ANDb’DELAYED(b_ipd)AFTERc_opd;ENDattr;7.3信號類屬性libraryieee;7.3信號類屬性
還可以用’DELAYED(t)屬性檢測信號的保持時間。例7-12D觸發(fā)器的保持時間檢測的描述libraryieee;useieee.std_logic_1164.all;entitydffISGENERIC(setup_time,hold_time:TIME);PORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdff_behavOFdffISBEGINSetup_check:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN ASSERT(d’LAST_EVENT>=setup_time) REPORT“SETUPVIOLATON” SEVERITYERROR;ENDIF;7.3信號類屬性還可以用’DELAYED(t)7.3信號類屬性hold_check:PROCESS(clk’DELAYED(2*hold_time))BEGINIF(clk’DELAYED(hold_time*2)=‘1’)AND(clk’DELAYED(hold_time*2)’EVENT)then
ASSERT((d’LAST_EVENT=0ns)OR(d’LAST_EVENT<hold_time)) REPORT“HOLDVIOLATON” SEVERITYERROR;ENDIF;ENDPROCESS;Dff_process:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff_behav;7.3信號類屬性hold_check:PROCESS(cl7.3信號類屬性2
屬性
’STABLE(TIME)
可以用’STABLE(TIME)屬性確定在指定的時間內(nèi),參考信號是否變化從而返回一個布爾值,可以用這個布爾值賦給另外一個信號,使這個信號產(chǎn)生變化。例7-13信號屬性’STABLE(TIME)的描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYexamISPORT(a:INstd_logic; b:OUTstd_logic);ENDENTITY;ARCHITECTUREpulseOFexamISBEGINb<=a’STABLE(10ns);ENDPULSE;7.3信號類屬性2屬性’STABLE(TIME)7.3信號類屬性102030405060708090nsVab圖7-4屬性STABLE得到的輸入輸出波形如果屬性STABLE(TIME)中TIME的時間值為0(也是默認(rèn)值),則時間值可以沒有。則可以檢測信號的邊沿。7.3信號類屬性102030405060708090nsV7.3信號類屬性3
屬性
’QUIET(TIME)
可以用’QUIET(TIME)屬性確定在指定的時間內(nèi),參考信號是否變化從而返回一個布爾值,可以用這個布爾值賦給另外一個信號,使這個信號產(chǎn)生變化。7.3信號類屬性3屬性’QUIET(TIME)例7-14具有優(yōu)先級中斷的描述ARCHITECTUREtestOFtestISTYPEt_intIS(int1,int2,int3,int4,int5);signalint,intsig1,intsig2,intsig3:t_int;signallock_out:BOOLEAN;BEGIN
int1_proc:PROCESSbegin………..WAITONtrigger1;WAITUNTILclk=‘1’;IFNOT(lock_our)THEN intsig1<=int1;ENDIF;ENDPROCESS;
int2_proc:PROCESSbegin………..WAITONtrigger2;WAITUNTILclk=‘1’;IFNOT(lock_our)THEN intsig2<=int2;ENDIF;ENDPROCESS;
int3_proc:PROCESSbegin………..WAITONtrigger3;WAITUNTILclk=‘1’;IFNOT(lock_our)THEN intsig3<=int3;ENDIF;ENDPROCESS;
7.3信號類屬性例7-14具有優(yōu)先級中斷的描述int2_proc:PRint<=intsig1WHENNOT(intsig1’QUIET)ELSEintsig2WHENNOT(intsig2’QUIET)ELSEintsig3WHENNOT(intsig3’QUIET)ELSEint;Int_handle:PROCESSbeginWAITONint’TRANSACTION; lock_out<=TRUE;WAITFOR10ns; CASEintIS WHENint1=> …… WHENint2=> …… WHENint3=> …… WHENint4=> …… WHENint5=> …… ENDCASE; lock_out<=FALSE;ENDPROCESS;ENDTEST7.3信號類屬性int<=intsig1WHENNOT(in
根據(jù)所加屬性可以得到一個數(shù)據(jù)類型值。只有一種:類型名’BASE用該屬性可以得到一個數(shù)據(jù)類型或子類型的基本類型,并且使用時只能作為其他屬性的前綴來使用。例:Do_nothing:process(x)
TYPEcolorIS(red,blue,green,yellow,brown,black);
SUBTYPEcolor_gunIScolorRANGEredtogreen; VARIABLEa:color;Begin a:=color_gun’BASE’RIGHT; a:=color’BASE’LEFT; a:=color_gun’BASE’SUCC(green);ENDPROCESS;7.4數(shù)據(jù)類型屬性根據(jù)所加屬性可以得到一個數(shù)據(jù)類型值。只有一種:7該屬性按指定輸入?yún)?shù)可以得到一個確定的數(shù)組區(qū)間范圍。只能用于數(shù)組,只有2種:1.‘RANGE(n)其中n是輸入?yún)?shù),該屬性可以得到一個遞增順序的數(shù)組區(qū)間范圍:0toN2. ‘REVERSE_RANGE(n)該屬性可以得到一個遞減順序的數(shù)組區(qū)間范圍:Ndownto07.5數(shù)組區(qū)間類屬性該屬性按指定輸入?yún)?shù)可以得到一個確定的數(shù)組區(qū)間范例:FUNCTIONvector_to_int(vect:std_logic_vector) RETURNintegerIS VARIABLEresult:integer:=0;Begin FORiINvect’RANGELOOP result:=result*2; IFvect(I)=‘1’THEN result:=result+1; ENDIF; ENDLOOP; RETURNresult;ENDvector_to_int;7.5數(shù)組區(qū)間類屬性例:7.5數(shù)組區(qū)間類屬性第七章VHDL語言屬性描述屬性是指關(guān)于設(shè)計實體、結(jié)構(gòu)體、類型、信號等項目的指定特性。屬性提供了描述特定對象的多個側(cè)面值的手段信號屬性在檢測信號變化和建立詳細(xì)的時域模型時非常重要為什么要有屬性:電路元件需要時鐘信號同步需要控制信號控制整個電路的行為(進(jìn)程的執(zhí)行)時鐘信號與控制信號的使用多種多樣利用屬性可以使VHDL源代碼更加簡明扼要,便于理解第七章VHDL語言屬性描述屬性VHDL提供5類預(yù)定義屬性:1、數(shù)值類屬性2、函數(shù)類屬性3、信號類屬性4、數(shù)據(jù)類型類屬性5、數(shù)組范圍類屬性屬性VHDL提供5類預(yù)定義屬性:7.1.1常用數(shù)據(jù)的數(shù)值屬性
主要用于返回常用數(shù)據(jù)類型、數(shù)組或是塊的有關(guān)值: 例如:返回數(shù)組長度、數(shù)據(jù)類型的上下界等。常用數(shù)據(jù)類型的數(shù)值類屬性:’left:返回一個數(shù)據(jù)類型或子類型最左邊的值?!痳ight:返回一個數(shù)據(jù)類型或子類型最右邊的值?!痟igh:返回一個數(shù)據(jù)類型或子類型的最大值?!痩ow:返回一個數(shù)據(jù)類型或子類型的最小值。7.1數(shù)值類屬性7.1.1常用數(shù)據(jù)的數(shù)值屬性7.1數(shù)值類屬性屬性規(guī)則:上下限:對數(shù)值取最大、最小值;對枚舉類型數(shù)據(jù)下限取左邊界值,上限取右邊界值;對數(shù)組取數(shù)組區(qū)間的最大最小值。左右邊界:按書寫順序取左邊或右邊值。例:SUBTYPEnatISNaturalRange0to255;X:=nat’HIGH; --x等于255X:=nat’LOW; --x等于0X:=nat’RIGHT; --x等于255X:=nat’LEFT; --x等于07.1數(shù)值類屬性屬性規(guī)則:7.1數(shù)值類屬性PROCESS(a)TYPEbit16ISArray(15downto0)OFstd_logic;VARIABLElef,rig,up,low:NATURAL;BEGIN lef:=bit16’LEFT; --15 rig:=bit16’RIGHT; --0 up:=bit16’HIGH; --15 low:=bit16’LOW; --0ENDPROCESS;PROCESS(a)TYPEbit16ISArray(0to15)OFstd_logic;VARIABLElef,rig,up,low:NATURAL;BEGIN lef:=bit16’LEFT; --0 rig:=bit16’RIGHT; --15 up:=bit16’HIGH; --15 low:=bit16’LOW; --0ENDPROCESS;7.1數(shù)值類屬性在遞增區(qū)間‘LEFT=‘LOW‘RIGHT=‘HIGH在遞減區(qū)間‘LEFT=‘HIGH‘RIGHT=‘LOW例7-1:PROCESS(a)7.1數(shù)值類屬性在遞增區(qū)間在遞減區(qū)間例例7-2枚舉類型數(shù)據(jù)數(shù)值屬性描述ArchitecturevoltbofvoltaISTYPEvoltIS(uV,mV,V,kV);SUBTYPEs_voltISvoltRANGE(VDOWNTOmV);SIGNALS1,S2,S3,S4:VOLT;BEGIN S1<=volt’HIGH; --kV S2<=volt’LOW; --uV S3<=s_volt’LEFT; --V S4<=s_volt’RIGHT; --mVENDvoltb;7.1數(shù)值類屬性例7-2枚舉類型數(shù)據(jù)數(shù)值屬性描述7.1數(shù)值類屬性7.1.1數(shù)組的數(shù)值屬性
數(shù)組屬性只有一個:取數(shù)組的長度值。格式: <數(shù)組名>‘LENGTH(n);其中n是多維數(shù)組的維數(shù);如二維數(shù)組n=2;對一維數(shù)組n缺省。例7-3一維數(shù)組數(shù)值屬性描述PROCESS(b)TYPEbit8ISarray(7downto0)ofbit;TYPEbit31_8ISarray(31downto8)ofbit;VARIABLEb1,b2:integer;BEGIN b1:=bit8’LENGTH; --b1=8 B2:=BIT31_8’LENGTH; --b2=24ENDPROCESS7.1數(shù)值類屬性7.1.1數(shù)組的數(shù)值屬性7.1數(shù)值類屬性指屬性以函數(shù)的形式返回有關(guān)數(shù)據(jù)類型、數(shù)組或是信號的信息。函數(shù)類屬性使用時以函數(shù)表達(dá)式的形式出現(xiàn),屬性根據(jù)輸入的自變量值去執(zhí)行函數(shù),返回一個相應(yīng)的值。該返回值可能是數(shù)組區(qū)間的某一個值,也可能是信號的變化值,或是枚舉數(shù)據(jù)的位置序號等。函數(shù)類屬性分三類:數(shù)據(jù)類型屬性函數(shù)數(shù)組類型屬性函數(shù)信號屬性函數(shù)7.2函數(shù)類屬性指屬性以函數(shù)的形式返回有關(guān)數(shù)據(jù)類7.2函數(shù)類屬性7.2.1
數(shù)據(jù)類型屬性函數(shù)主要用來得到數(shù)據(jù)類型的各種相關(guān)信息,共6種:(1)’POS(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中輸入的X值的位置序號(2)’VAL(位置序號)--返回輸入的位置序號X處的值(3)’SUCC(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的下一個對應(yīng)值(4)’PRED(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的前一個對應(yīng)值(5)’LEFTOF(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的左邊值(6)’RIGHTOF(數(shù)據(jù)值)--返回數(shù)據(jù)類型定義中該值的右邊值對于遞增區(qū)間:’SUCC(x)=’RIGHTOF(x)
’PRED(x)=’LEFTOF(x)
對于遞減區(qū)間:’SUCC(x)=’LEFTOF(x)
’PRED(x)=’RIGHTOF(x)
7.2函數(shù)類屬性7.2.1數(shù)據(jù)類型屬性函數(shù)7.2函數(shù)類屬性例7-4PACKAGEw_packISTYPEweekIS(sun,mon,tue,wed,thu,fri,sat);TYPEr_weekISweekRANGEsatDOWNTOsun;ENDw_pack;求自定義類型的屬性:week’SUCC(mon) --得tueweek’PRED(mon) --得sunweek’LEFTOF(mon) --得sunweek’RIGHTOF(mon) --得tuer_week’SUCC(mon) --得tuer_week’PRED(mon) --得sunr_week’LEFTOF(mon) --得tuer_week’RIGHTOF(mon) --得sun7.2函數(shù)類屬性例7-47.2函數(shù)類屬性7.2.2
數(shù)組屬性函數(shù)主要用來得到數(shù)組的信息。共有4種屬性:(1)’LEFT(n)--得到n區(qū)間的左端邊界號(2)’RIGHT(n)--得到n區(qū)間的右端邊界號(3)’HIGH(n)--得到n區(qū)間的高端邊界號(4)’LOW(n)--得到n區(qū)間的低端邊界號其中n表示數(shù)組的區(qū)間序號(即維數(shù))。當(dāng)n=1時可以缺省,默認(rèn)為一維數(shù)組。在遞減區(qū)間‘LEFT=‘HIGH‘RIGHT=‘LOW在遞增區(qū)間‘LEFT=‘LOW‘RIGHT=‘HIGH7.2函數(shù)類屬性7.2.2數(shù)組屬性函數(shù)TYPEmatrixISARRAY(0TO7,15DOWNTO0)OFstd_logic;i<=matrix’left(1); --i=0;i<=matrix’right(1); --i=7;i<=matrix’high(1); --i=7;i<=matrix’low(1); --i=0;i<=matrix’left(2); --i=15;i<=matrix’right(2); --i=0;i<=matrix’high(2); --i=15;i<=matrix’low(2); --i=0;TYPEmatrixISARRAY(0TO7,7.2函數(shù)類屬性7.2.3
信號類型屬性函數(shù)主要用來得到信號的各種行為功能信息:包括信號值的變化、信號變化后經(jīng)過的時間、變化前的信號值等。共有5種屬性:(1)’EVENT--當(dāng)前很短的時間內(nèi)信號發(fā)生了變化,則返回TRUE,否則返回FALSE。(2)’ACTIVE--當(dāng)前很短的時間內(nèi)信號活躍,則返回TRUE,否則返回FALSE。(3)’LAST_EVENT--返回信號從前一個事件發(fā)生到現(xiàn)在的時間值。(4)’LAST_VALUE--返回信號在最近一個事件發(fā)生以前的值(5)’LAST_ACTIVE--返回信號從前一次活躍到現(xiàn)在的時間值7.2函數(shù)類屬性7.2.3信號類型屬性函數(shù)7.2函數(shù)類屬性1
屬性函數(shù)’EVENT和’LAST_VALUE
’EVENT主要用來檢測脈沖信號的正跳變或負(fù)跳變邊沿,也可以檢查信號是否剛發(fā)生變化并且正處于某一個電平值。例7-9D觸發(fā)器時鐘脈沖上升沿的檢測libraryieee;useieee.std_logic_1164.all;entitydffISPORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdffOFdffISBEGINPROCESS(clk)BEGINIFclk=‘1’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff;7.2函數(shù)類屬性1屬性函數(shù)’EVENT和’LAST_V2
屬性函數(shù)’LAST_EVENT
例7-10D觸發(fā)器建立時間的檢測libraryieee;useieee.std_logic_1164.all;entitydffISGENERIC(setup_time,hold_time:TIME);PORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdff_behavOFdffISBEGINSetup_check:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN ASSERT(d’LAST_EVENT>=setup_time) REPORT“SETUPVIOLATON” SEVERITYERROR;ENDIF;7.2函數(shù)類屬性2屬性函數(shù)’LAST_EVENT7.2函數(shù)類屬性ENDPROCESS;Dff_process:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff_behav;7.2函數(shù)類屬性dclkqHoldtimeSetuptimeENDPROCESS;7.2函數(shù)類屬性dcl
根據(jù)所加屬性的信號去建立一個新的信號,稱信號類屬性。
信號類屬性有4種:’DELAYED(t):t為時間表達(dá)式,該屬性將產(chǎn)生一個特別的延遲信號,該信號使主信號按t確定的時間產(chǎn)生附加的延遲。新信號與主信號類型相同。該屬性可以用來檢查信號的保持時間?!疭TABLE(t):當(dāng)所加屬性的信號在時間t內(nèi)沒有發(fā)生變化,則返回true,否則返回false.
該屬性中當(dāng)t=0時可以得到與屬性’EVENT相反的值?!疩UIET(t)
:信號在時間t內(nèi)不活躍,則返回true,否則返回false。典型應(yīng)用是用來對中斷優(yōu)先處理機(jī)制進(jìn)行建模。‘TRANSACTION:所加屬性的信號活躍時將對所建立的bit數(shù)據(jù)取反。
7.3信號類屬性根據(jù)所加屬性的信號去建立一個新的信號,稱信號類屬7.3信號類屬性1
屬性
’DELAYED(t)
可以用’DELAYED(t)屬性的信號建立一個延遲信號附加在該信號上。例7-11二輸入與門附加延遲的描述c_opda_ipdb_ipdintbintaabc7.3信號類屬性1屬性’DELAYED(t)c_op7.3信號類屬性libraryieee;useieee.std_logic_1164.all;entityand2ISGENERIC(a_ipd,b_ipd,c_opd:TIME);PORT(a,b:INcal_resiststd_logic;c:OUTstd_logic);endand2;ARCHITECTUREint_signalsOFand2ISSIGNALinta,intb:std_logic;BEGIN inta<=TRANSPORTaAFTERa_ipd; intb<=TRANSPORTbAFTERb_ipd; c<=intaANDintbAFTERc_opd;ENDint_signals;ARCHITECTUREattrOFand2ISBEGIN c<=a’DELAYED(a_ipd)ANDb’DELAYED(b_ipd)AFTERc_opd;ENDattr;7.3信號類屬性libraryieee;7.3信號類屬性
還可以用’DELAYED(t)屬性檢測信號的保持時間。例7-12D觸發(fā)器的保持時間檢測的描述libraryieee;useieee.std_logic_1164.all;entitydffISGENERIC(setup_time,hold_time:TIME);PORT(d,clk:INcal_resiststd_logic;q:OUTstd_logic);enddff;ARCHITECTUREdff_behavOFdffISBEGINSetup_check:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN ASSERT(d’LAST_EVENT>=setup_time) REPORT“SETUPVIOLATON” SEVERITYERROR;ENDIF;7.3信號類屬性還可以用’DELAYED(t)7.3信號類屬性hold_check:PROCESS(clk’DELAYED(2*hold_time))BEGINIF(clk’DELAYED(hold_time*2)=‘1’)AND(clk’DELAYED(hold_time*2)’EVENT)then
ASSERT((d’LAST_EVENT=0ns)OR(d’LAST_EVENT<hold_time)) REPORT“HOLDVIOLATON” SEVERITYERROR;ENDIF;ENDPROCESS;Dff_process:PROCESS(clk)BEGINIFclk’LAST_VALUE=‘0’ANDclk’EVENTTHEN q<=d;ENDIF;ENDPROCESS;ENDdff_behav;7.3信號類屬性hold_check:PROCESS(cl7.3信號類屬性2
屬性
’STABLE(TIME)
可以用’STABLE(TIME)屬性確定在指定的時間內(nèi),參考信號是否變化從而返回一個布爾值,可以用這個布爾值賦給另外一個信號,使這個信號產(chǎn)生變化。例7-13信號屬性’STABLE(TIME)的描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYexamISPORT(a:INstd_logic; b:OUTstd_logic);ENDENTITY;ARCHITECTUREpulseOFexamISBEGINb<=a’STABLE(10ns);ENDPULSE;7.3信號類屬性2屬性’STABLE(TIME)7.3信號類屬性102030405060708090nsVab圖7-4屬性STABLE得到的輸入輸出波形如果屬性STABLE(TIME)中TIME的時間值為0(也是默認(rèn)值),則時間值可以沒有。則可以檢測信號的邊沿。7.3信號類屬性102030405060708090nsV7.3信號類屬性3
屬性
’QUIET(TIME)
可以用’QUIET(TIME)屬性確定在指定的時間內(nèi),參考信號是否變化從而返回一個布爾值,可以用這個布爾值賦給另外一個信號,使這個信號產(chǎn)生變化。7.3信號類屬性3屬性’QUIET(TIME)例7-14具有優(yōu)先級中斷的描述ARCHITECTUREtestOFtestISTYPEt_intIS(int1,int2,int3,int4,int5);signalint,intsig1,intsig2,intsig3:t_int;signallock_out:BOOLEAN;BEGI
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年數(shù)據(jù)中心綠色能源轉(zhuǎn)型報告及未來五至十年能耗優(yōu)化報告
- 高中生物教學(xué)中生物技術(shù)前沿與醫(yī)學(xué)應(yīng)用探索的課題報告教學(xué)研究課題報告
- 高中地理與政治跨學(xué)科教學(xué)融合:人工智能支持下的教師專業(yè)發(fā)展研究教學(xué)研究課題報告
- 2025年農(nóng)村電商服務(wù)站社交電商應(yīng)用報告
- 2025年無人駕駛汽車行業(yè)技術(shù)突破報告
- 2026年及未來5年中國玻尿酸鈉行業(yè)市場全景監(jiān)測及投資戰(zhàn)略研究報告
- 2026年及未來5年中國智慧醫(yī)療建設(shè)行業(yè)市場全景分析及投資戰(zhàn)略規(guī)劃報告
- 溫州2025年自然資源部溫州海洋中心招聘筆試歷年參考題庫附帶答案詳解
- 2026寧夏銀川市應(yīng)急管理局招聘1人筆試備考題庫及答案解析
- 2026年及未來5年中國水切割儀表行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
- 第四單元地理信息技術(shù)的應(yīng)用課件 【高效課堂+精研精講】高中地理魯教版(2019)必修第一冊
- 魯科版高中化學(xué)必修一教案全冊
- 提高隧道初支平整度合格率
- 2023年版測量結(jié)果的計量溯源性要求
- 建筑能耗與碳排放研究報告
- GB 29415-2013耐火電纜槽盒
- 中國古代經(jīng)濟(jì)試題
- 軟件定義汽車:產(chǎn)業(yè)生態(tài)創(chuàng)新白皮書
- 磷石膏抹灰專項施工方案
- 水電水利工程施工質(zhì)量管理培訓(xùn)講義
- ArcMap制圖-地圖版面設(shè)計實驗報告
評論
0/150
提交評論