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

下載本文檔

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

文檔簡介

可編程邏輯電路技術(shù)陳李CL2009@第8章VHDL設計實例主要內(nèi)容8.1值類屬性8.2函數(shù)類屬性8.3信號類屬性8.4數(shù)據(jù)類型類屬性8.5數(shù)據(jù)范圍類屬性8.6自定義屬性值類屬性主要用于返回常用數(shù)據(jù)類型、數(shù)組、塊的有關(guān)值。如返回數(shù)組長度、數(shù)組類型的上下邊界等。可分為三個子類:常用數(shù)據(jù)類型的值類屬性數(shù)組的值類屬性塊的值類屬性8.1值類屬性1、常用數(shù)據(jù)類型的值類屬性這類屬性有四種:(1)’left:返回數(shù)據(jù)類型或子類型最左邊的值;(2)’right:返回數(shù)據(jù)類型或子類型最右邊的值;(3)’high:返回一個數(shù)據(jù)類型或子類型最大值;(4)’low:返回一個數(shù)據(jù)類型或子類型最小值;屬性用字符“′”來指定屬性,后面跟屬性名,“′”前面是所附屬性的項目,這種定義格式對所有的屬性是通用的。8.1值類屬性注意:對于枚舉類型,屬性’left的值和’low的值相同,屬性’right的值和’high的值相同;對于用保留字to定義的整數(shù)類型,屬性’left的值和’low的值相同,屬性’right的值和’high的值相同;對于用保留字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ù)組的長度值,即元素的個數(shù)。該屬性可用于任何標量的一維數(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:如果塊有標號說明或者結(jié)構(gòu)體有結(jié)構(gòu)體名,并且它們中不含有元件例化語句,則返回布爾值“true”。(2)’structure:如果塊和結(jié)構(gòu)體中只含有元件例化語句或進程語句,將返回布爾值“true”。

8.1值類屬性對于不含有任何元件例化語句的塊語句或是結(jié)構(gòu)體,則屬性’behavior的返回值為“true”,而屬性’structure返回值“false”;對于只含有元件例化語句或進程語句的塊語句或是結(jié)構(gòu)體,則屬性’behavior的返回值為“false”,而屬性’structure返回值“true”;對于以混合描述方式描述的塊語句或是結(jié)構(gòu)體來說,屬性’behavior和’structure的返回值都為“false”。8.1值類屬性例:用3個二輸入與門來實現(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;對結(jié)構(gòu)體structural則有如下屬性:(1)structural’behavior的返回值為“false”;

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

溫馨提示

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

評論

0/150

提交評論