可編程邏輯電路技術(shù)VHDL的預(yù)定義屬性hr_第1頁
可編程邏輯電路技術(shù)VHDL的預(yù)定義屬性hr_第2頁
可編程邏輯電路技術(shù)VHDL的預(yù)定義屬性hr_第3頁
可編程邏輯電路技術(shù)VHDL的預(yù)定義屬性hr_第4頁
可編程邏輯電路技術(shù)VHDL的預(yù)定義屬性hr_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

可編程邏輯電路技術(shù)陳李CL2009@第8章VHDL設(shè)計(jì)實(shí)例主要內(nèi)容8.1值類屬性8.2函數(shù)類屬性8.3信號(hào)類屬性8.4數(shù)據(jù)類型類屬性8.5數(shù)據(jù)范圍類屬性8.6自定義屬性值類屬性主要用于返回常用數(shù)據(jù)類型、數(shù)組、塊的有關(guān)值。如返回?cái)?shù)組長(zhǎng)度、數(shù)組類型的上下邊界等??煞譃槿齻€(gè)子類:常用數(shù)據(jù)類型的值類屬性數(shù)組的值類屬性塊的值類屬性8.1值類屬性1、常用數(shù)據(jù)類型的值類屬性這類屬性有四種:(1)’left:返回?cái)?shù)據(jù)類型或子類型最左邊的值;(2)’right:返回?cái)?shù)據(jù)類型或子類型最右邊的值;(3)’high:返回一個(gè)數(shù)據(jù)類型或子類型最大值;(4)’low:返回一個(gè)數(shù)據(jù)類型或子類型最小值;屬性用字符“′”來指定屬性,后面跟屬性名,“′”前面是所附屬性的項(xiàng)目,這種定義格式對(duì)所有的屬性是通用的。8.1值類屬性注意:對(duì)于枚舉類型,屬性’left的值和’low的值相同,屬性’right的值和’high的值相同;對(duì)于用保留字to定義的整數(shù)類型,屬性’left的值和’low的值相同,屬性’right的值和’high的值相同;對(duì)于用保留字downto定義的整數(shù)類型,屬性’right的值和’low的值相同,屬性’left的值和’high的值相同;8.1值類屬性如:typenumberisintegerrange0to9;typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);typewordisarray(15downto0)ofstd_logic;number’left=0number’right=9number’high=9number’low=0week’left=Mondayweek’right=Sundayweek’high=Sundayweek’low=Mondayword’left=15word’right=0word’high=15word’low=08.1值類屬性2.數(shù)組的值類屬性只有一種屬性’length:返回限定性數(shù)組的長(zhǎng)度值,即元素的個(gè)數(shù)。該屬性可用于任何標(biāo)量的一維數(shù)組和多維數(shù)組。8.1值類屬性定義下列數(shù)據(jù)類型:

typenumberisintegerrange0to9;typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);typewordisarray(15downto0)ofstd_logic;則有:number’length=10work’length=7word’length=16

3.塊的值類屬性主要用來返回塊和結(jié)構(gòu)體建模的信息有兩種屬性(1)’behavior:如果塊有標(biāo)號(hào)說明或者結(jié)構(gòu)體有結(jié)構(gòu)體名,并且它們中不含有元件例化語句,則返回布爾值“true”。(2)’structure:如果塊和結(jié)構(gòu)體中只含有元件例化語句或進(jìn)程語句,將返回布爾值“true”。

8.1值類屬性對(duì)于不含有任何元件例化語句的塊語句或是結(jié)構(gòu)體,則屬性’behavior的返回值為“true”,而屬性’structure返回值“false”;對(duì)于只含有元件例化語句或進(jìn)程語句的塊語句或是結(jié)構(gòu)體,則屬性’behavior的返回值為“false”,而屬性’structure返回值“true”;對(duì)于以混合描述方式描述的塊語句或是結(jié)構(gòu)體來說,屬性’behavior和’structure的返回值都為“false”。8.1值類屬性例:用3個(gè)二輸入與門來實(shí)現(xiàn)四輸入與門的VHDL描述。Entityand4isport(a,b,c,d:inbit;q:outbit);Endand4;Architectturestructuralofand4iscomponentand_gateport(a,b:inbit;c:outbit);endcomponent;signalq1,q2:bit;BeginU1:and_gateportmap(a,b,q1);U2:and_gateportmap(c,d,q2);U3:and_gateportmap(q1,q2,q);Endstructural;對(duì)結(jié)構(gòu)體structural則有如下屬性:(1)structural’behavior的返回值為“false”;

(2)structural’structure的返回值為“true”。8.1值類屬性第8章VHDL設(shè)設(shè)計(jì)實(shí)例主要內(nèi)容8.1值類屬性8.2函數(shù)類屬性性8.3信號(hào)類屬性性8.4數(shù)據(jù)類型類類屬性8.5數(shù)據(jù)范圍類類屬性8.6自定義屬性性是指屬性以以函數(shù)的形式式為設(shè)計(jì)人員員返回有關(guān)關(guān)數(shù)據(jù)類型型、數(shù)組或或是信號(hào)的的信息。執(zhí)行時(shí),屬屬性根據(jù)輸輸入的自變變量值去執(zhí)執(zhí)行函數(shù),,然后返回回一個(gè)數(shù)據(jù)據(jù)類型、數(shù)數(shù)組或是信信號(hào)相關(guān)信信息的值。。可分為三個(gè)個(gè)子類:數(shù)據(jù)據(jù)類類型型屬屬性性函函數(shù)數(shù)數(shù)組組屬屬性性函函數(shù)數(shù)信號(hào)號(hào)屬屬性性函函數(shù)數(shù)8.2函函數(shù)數(shù)類類屬屬性性1.數(shù)據(jù)據(jù)類類型型屬屬性性函函數(shù)數(shù)用來來得得到到數(shù)數(shù)據(jù)據(jù)類類型型的的各各種種相相關(guān)關(guān)信信息息,,能能夠夠返返回回?cái)?shù)數(shù)據(jù)據(jù)類類型型的的位位置置信信息息或或是是左左右右鄰鄰值值等等。。共有有6種::(1)’’pos(數(shù)據(jù)據(jù)值值):返回回?cái)?shù)數(shù)據(jù)據(jù)值值的的位位置置序序號(hào)號(hào)(2)’’val(位置置序序號(hào)號(hào)):返返回回該該位位置置序序號(hào)號(hào)的的值值(3)’’succ(數(shù)數(shù)據(jù)據(jù)值值))::返返回回該該數(shù)數(shù)據(jù)據(jù)值值的的下下一一個(gè)個(gè)值值(4)’’pred(數(shù)數(shù)據(jù)據(jù)值值))::返返回回該該數(shù)數(shù)據(jù)據(jù)值值的的前前一一個(gè)個(gè)值值(5)’’leftof(數(shù)數(shù)據(jù)據(jù)值值))::返返回回該該數(shù)數(shù)據(jù)據(jù)值值左左邊邊的的值值(6)’’rightof(數(shù)數(shù)據(jù)據(jù)值值))::返返回回該該數(shù)數(shù)據(jù)據(jù)值值右右邊邊的的值值8.2函函數(shù)數(shù)類類屬屬性性如::Typecurrentisrange0to1000000UnitsuA;mA=1000uA;A=1000mA;Endunits;Typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);則有有::Current’’pos(10uA)=10Current’’val(10)=10uACurrent’’succ(7uA)=8uACurrent’’pred(7uA)=6uACurrent’’leftof(10uA)=9uACurrent’’rightof(10uA)=11uAweek’’pos(Tuesday)=1week’’val(3)=Thursdayweek’’succ(Thursday)=Fridayweek’’pred(Thursday)=Wednesdayweek’’leftof(Friday)=Thursdayweek’’rightof(Friday)=Saturday8.2函函數(shù)數(shù)類類屬屬性性2.數(shù)組組屬屬性性函函數(shù)數(shù)有4種::(1)’’left(n):得到到索索引引號(hào)號(hào)為為n的區(qū)區(qū)間間的的左左端端位位置置號(hào)號(hào);;(2)’’right(n):得到到索索引引號(hào)號(hào)為為n的區(qū)區(qū)間間的的右右端端位位置置號(hào)號(hào);;(3)’’high(n):得到到索索引引號(hào)號(hào)為為n的區(qū)區(qū)間間的的高高端端位位置置號(hào)號(hào);;(4)’’low(n):得到到索索引引號(hào)號(hào)為為n的區(qū)區(qū)間間的的低低端端位位置置號(hào)號(hào);;其中中,,索索引引號(hào)號(hào)n就是是多多維維數(shù)數(shù)組組中中所所定定義義的的多多維維區(qū)區(qū)間間的的序序號(hào)號(hào),,缺缺省省為為n=1。當(dāng)當(dāng)索索引引號(hào)號(hào)取取缺省省值值時(shí),,數(shù)數(shù)組組屬屬性性函函數(shù)數(shù)就就代代表表對(duì)對(duì)一維維區(qū)區(qū)間間進(jìn)行行操操作作。。8.2函函數(shù)數(shù)類類屬屬性性typeram_dataisarray(0to511)ofinteger;……….foriinram_data1’’lowtoram_data1’’highloop8.2函函數(shù)數(shù)類類屬屬性性3.信號(hào)號(hào)屬屬性性函函數(shù)數(shù)主要要有有以以下下5種::(1)signal_name’’event:該函函數(shù)數(shù)返返回回值值為為““true””或““false””。在在當(dāng)當(dāng)前前相相當(dāng)當(dāng)小小的的時(shí)時(shí)間間間間隔隔內(nèi)內(nèi)有有信信號(hào)號(hào)事事件件發(fā)發(fā)生生,,返返回回值值為為““true””;反反之之,,則則返返回回““false”。(2)signal_name’active:如果在在當(dāng)前前相當(dāng)當(dāng)小的的時(shí)間間間隔隔內(nèi)信信號(hào)活活躍,,則函函數(shù)的的返回回值為為“true””;如果果不活活躍,,則返返回““false”。8.2函函數(shù)類類屬性性注:““信號(hào)號(hào)活躍躍”和和“事事件發(fā)發(fā)生””“信號(hào)號(hào)活躍躍”定定義為為信號(hào)號(hào)的任何變變化,例如如信號(hào)號(hào)從‘‘0’變到‘‘1’是一個(gè)個(gè)信號(hào)號(hào)活躍躍,而而信號(hào)號(hào)從‘‘0’到‘0’也是一一個(gè)信信號(hào)活活躍。?!笆录l(fā)生生”定定義為為信號(hào)號(hào)的值發(fā)生生變化化,如信信號(hào)從從‘0’變到‘‘0’不是一一個(gè)事事件,,原因因是信信號(hào)值值沒有有變。。不難看看出::所有有的事事件發(fā)發(fā)生都都是信信號(hào)活活躍,,但是是所有有的信信號(hào)活活躍不不一定定是事事件發(fā)發(fā)生。。8.2函函數(shù)類類屬性性(3)signal_name’last_event:返回該該信號(hào)號(hào)從前前一個(gè)個(gè)事件件發(fā)生生到現(xiàn)現(xiàn)在時(shí)時(shí)刻所所經(jīng)歷歷的時(shí)間值值。(4)signal_name’last_active:返回該該信號(hào)號(hào)從前前一次次信號(hào)號(hào)活躍躍到現(xiàn)現(xiàn)在時(shí)時(shí)刻所所經(jīng)歷歷的時(shí)時(shí)間值值。(5)signal_name’last_value:返回該該信號(hào)號(hào)在最最近一一個(gè)事事件發(fā)發(fā)生以以前的的值。。信號(hào)屬屬性函函數(shù)’’event應(yīng)用十十分廣廣泛,,對(duì)于于確定定信號(hào)號(hào)的邊邊沿十十分有有效。。如果果一個(gè)個(gè)信號(hào)號(hào)有事事件發(fā)發(fā)生,,則表表明有有跳變變沿產(chǎn)產(chǎn)生;;再根根據(jù)信信號(hào)的的值就就可以以確定定是上上升沿沿跳變變還是是下降降沿跳跳變。。8.2函函數(shù)類類屬性性例:D觸發(fā)器器的源源代碼碼Libraryieee;Useieee.std_logic_1164.all;Entitydffisport(d:instd_logic;clk:instd_logic;q:outstd_logic);Enddff;ArchitecturertlofdffisBeginprocess(clk)beginif(clk’eventandclk=‘‘1’’)thenq<=d;endif;endprocess;Endrtl;8.2函函數(shù)類類屬性性上例中中在檢檢測(cè)上上升沿沿時(shí),,當(dāng)時(shí)時(shí)鐘clk原來的的值為為“0”時(shí),那那么邏邏輯上上是正正確的的;當(dāng)當(dāng)時(shí)鐘鐘clk原來的的值不不為““0”時(shí),雖雖然出出現(xiàn)了了上升升沿,,那么么邏輯輯上是是不正正確的的??煽梢杂糜谩痩ast_value將上述述程序序作一一下改改進(jìn):將if(clk’eventandclk=‘‘1’’)then改為::if(clk’eventandclk=‘‘1’’and(clk’’last_value=‘‘0’’)then這樣就就保證證了時(shí)時(shí)鐘信信號(hào)clk是從‘‘0’變到‘‘1’的,確確定了了上升升沿觸觸發(fā)。。8.2函函數(shù)類類屬性性第8章章VHDL設(shè)設(shè)計(jì)實(shí)實(shí)例主要內(nèi)內(nèi)容8.1值類屬屬性8.2函數(shù)類類屬性性8.3信號(hào)類類屬性性8.4數(shù)據(jù)類類型類類屬性性8.5數(shù)據(jù)范范圍類類屬性性8.6自定義義屬性性是根據(jù)據(jù)一個(gè)個(gè)信號(hào)號(hào)去建建立一一個(gè)新新信號(hào)號(hào),建建立的的新信信號(hào)是是以所所加屬屬性的的信號(hào)號(hào)為基基礎(chǔ)而而形成成的,,因此此這個(gè)個(gè)信號(hào)號(hào)帶有有了所所加屬屬性的的有關(guān)關(guān)信息息。用信號(hào)號(hào)類屬屬性得得到的的有關(guān)關(guān)信息息類似似于某某些函函數(shù)類類屬性性所得得到的的信息息,所所不同同的是是信號(hào)號(hào)類屬屬性可可以用用于正正常信信號(hào)能能用到到的任任何場(chǎng)場(chǎng)合,,包括括敏感感表中中。有以下下四種種:(1)信號(hào)號(hào)’delayed[(t)]:建立立一個(gè)個(gè)與所所加屬屬性的的信號(hào)號(hào)同類類型的的信號(hào)號(hào),該信號(hào)號(hào)就是是以所所加屬屬性的的信號(hào)號(hào)為參參考信信號(hào),經(jīng)過延延遲時(shí)時(shí)間t后得到到.8.3信信號(hào)類類屬性性(2)信號(hào)號(hào)’stable[(t)]:當(dāng)所所加屬屬性的的信號(hào)號(hào)在時(shí)時(shí)間t內(nèi)沒有有事件件發(fā)生生,則返回回““true””的布爾爾信號(hào)號(hào);反之,則返回回“false”的布爾爾信號(hào)號(hào)。(3)信號(hào)號(hào)’quiet[(t)]:當(dāng)所所加屬屬性的的信號(hào)號(hào)在時(shí)時(shí)間t內(nèi)信號(hào)號(hào)不活活躍時(shí)時(shí),則則返回回一個(gè)個(gè)值為為“true””的布爾爾信號(hào)號(hào);反反之,,則返返回““false”的布爾爾信號(hào)號(hào)。(4)信號(hào)號(hào)’transaction:該屬屬性可可以建建立一一個(gè)bit類型的的信號(hào)號(hào),當(dāng)當(dāng)所加加屬性性的信信號(hào)活活躍時(shí)時(shí),信信號(hào)將將對(duì)前前值進(jìn)進(jìn)行翻翻轉(zhuǎn)。。8.3信信號(hào)類類屬性1、信號(hào)’’delayed[(t)]建立一個(gè)個(gè)與所加加屬性的的信號(hào)同同類型的的信號(hào),該信號(hào)就就是以所所加屬性性的信號(hào)號(hào)為參考考信號(hào),經(jīng)過延遲遲時(shí)間t后得到.8.3信信號(hào)類類屬性例:四輸輸入與門門的源代代碼,由三個(gè)二二輸入與與門構(gòu)成成.Libraryieee;Useieee.std_logic_1164.all;Entityand4isport(a,b,c,d:instd_logic;q:outstd_logic);Endand4;Architecturebehaveofand4issignalq1,q2:std_logic;Beginq1<=aandbafter5ns;q2<=canddafter5ns;q<=q1andq2after7ns;Endbehave;定義了兩兩個(gè)信號(hào)號(hào)q1和q2,用它們們來傳送送經(jīng)過與與門后的的延遲信信號(hào)。8.3信信號(hào)類類屬性如果使用用屬性’’delayed[(t)],就可以以不用用定義新新的信號(hào)號(hào)q1和q2,避免了了更多信信號(hào)的定定義和源源代碼的的書寫。。Architecturebehaveofand4isBeginq<=((aandb)’delayed(5ns)and(candd)’’delayed(6ns))after7ns;Endbehave;8.3信信號(hào)類類屬性2、屬性’’stable[(t)]用來建立立一個(gè)布布爾信號(hào)號(hào),當(dāng)所所加屬性性的信號(hào)號(hào)在時(shí)間間t內(nèi)沒有事件發(fā)發(fā)生則返回值值為“true”的布爾信號(hào);;當(dāng)所加屬性性的信號(hào)在時(shí)時(shí)間t內(nèi)有事件發(fā)生生則返回值為為“false””的布爾信號(hào);;當(dāng)時(shí)間t=0時(shí),則判斷是是否有事件發(fā)發(fā)生的時(shí)間將將為一個(gè)模擬擬周期,此時(shí)時(shí)屬性’stable和信號(hào)屬性函函數(shù)’event具有相反的值。8.3信號(hào)號(hào)類屬性ArchitecturertlofdffisBeginprocess(clk)beginif((not(clk’stable))andclk=‘1’’and(clk’last_value=‘0’))thenq<=d;endif;endprocess;endrtl;8.3信號(hào)號(hào)類屬性3、屬性’quiet[(t)]用來建立一個(gè)個(gè)布爾信號(hào),,當(dāng)所加屬性性的信號(hào)在時(shí)時(shí)間t內(nèi)信號(hào)不活躍躍時(shí),返回一一個(gè)值為“true”的布爾信號(hào);;當(dāng)在時(shí)間t內(nèi)信號(hào)活躍時(shí)時(shí),返回一個(gè)個(gè)值為“false””的布爾信號(hào);;當(dāng)時(shí)間t=0時(shí),則判斷是是否有信號(hào)活活躍的時(shí)間將將為一個(gè)模擬擬周期。可以看到屬性性’stable是判斷是否有有事件發(fā)生,,屬性’quiet則是判斷信號(hào)號(hào)是否活躍。。8.3信號(hào)號(hào)類屬性4.屬性’transaction可以建立一個(gè)個(gè)bit類型的信號(hào),,當(dāng)所加屬性性的信號(hào)活躍躍時(shí),信號(hào)將將對(duì)前值進(jìn)行行翻轉(zhuǎn)。8.3信號(hào)號(hào)類屬性第8章VHDL設(shè)計(jì)實(shí)實(shí)例主要內(nèi)容8.1值類屬性8.2函數(shù)類屬性8.3信號(hào)類屬性8.4數(shù)據(jù)類型類屬屬性8.5數(shù)據(jù)范圍類屬屬性8.6自定義屬性用來得到所加加屬性的數(shù)據(jù)據(jù)類型基本類類型,它僅僅僅是一種類型型屬性,這個(gè)個(gè)屬性只能作作為另一種值值類或函數(shù)類類屬性的前綴綴。只有下面一種種形式:數(shù)據(jù)類型’base:用來得到所所加屬性的數(shù)數(shù)據(jù)類型的同同類型或子類類型。8.4數(shù)據(jù)據(jù)類型類屬性性下面看一個(gè)例例子,首先定定義如下數(shù)據(jù)據(jù)類型:Typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);Subtypejob_dayisweekrangeMondaytoFriday;8.4數(shù)據(jù)據(jù)類型類屬性性Week’base’left=MondayWeek’base’right=SundayWeek’base’length=7Week’base’succ(Wednesday)=ThursdayWeek’base’pred(Wednesday)=Tuesdayjob_day’base’left=Mondayjob_day’base’right=Sundayjob_day’base’length=7job_day’base’succ(Wednesday)=Thursdayjob_day’base’pred(Wednesday)=Tuesday8.4數(shù)據(jù)據(jù)類型類屬性性則有:在上面的例子子中,Week’base將返回Week枚舉類型,因因?yàn)槊杜e類型型Week就是其基本類類型;job_day’base將返回Week枚舉類型,因因?yàn)槊杜e子類類型job_day是枚舉類型Week的子類型,所所以枚舉子類類型job_day的基本類型是是Week類型。8.4數(shù)據(jù)據(jù)類型類屬性性第8章VHDL設(shè)計(jì)實(shí)實(shí)例主要內(nèi)容8.1值類屬性8.2函數(shù)類屬性8.3信號(hào)類屬性8.4數(shù)據(jù)類型類屬屬性8.5數(shù)據(jù)范圍類屬屬性8.6自定義屬性用來返回?cái)?shù)據(jù)據(jù)的區(qū)間范圍圍,這類屬性性僅用于數(shù)據(jù)據(jù)類型中,而而且要求數(shù)據(jù)據(jù)類型必須是是限定性數(shù)組組。有以下兩種::(1)數(shù)組’range[(n)]:得到索引號(hào)號(hào)為n的區(qū)間范圍(2)數(shù)組’reverse_range[(n)]:得到

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論