




已閱讀5頁,還剩96頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.,1,第4章VHDL基礎(chǔ),VHDL結(jié)構(gòu),VHDL語法基礎(chǔ),VHDL常用語句,基本邏輯電路設(shè)計(jì),.,2,什么是VHDL?,VHDL是超高速集成電路硬件描述語言(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)的英文縮寫。,4.1VHDL結(jié)構(gòu),.,3,實(shí)體部分描述設(shè)計(jì)系統(tǒng)的外部接口信號(即輸入/輸出信號),結(jié)構(gòu)體用于描述系統(tǒng)的內(nèi)部電路,配置用于從庫中選取所需元件安裝到設(shè)計(jì)單元的實(shí)體中,包集合存放各設(shè)計(jì)模塊能共享的數(shù)據(jù)類型、常數(shù)、子程序等,庫用于存放已編譯的實(shí)體、結(jié)構(gòu)體、包集合和配置,.,4,VHDL程序結(jié)構(gòu),例4-1一個(gè)2輸入的與門的邏輯描述LIBRARYieee;-庫說明語句USEieee.std_logic_1164.ALL;-程序包說明語句ENTITYand2ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDand2;ARCHITECTUREand2xOFand2ISBEGINy=aANDb;ENDand2x;,實(shí)體部分,結(jié)構(gòu)體部分,.,5,2庫(LIBRARY),庫是用來放置可編譯的設(shè)計(jì)單元的地方,通過其目錄可查詢和調(diào)用。VHDL中的庫大致可歸納為5種:IEEE庫、STD庫、ASIC矢量庫、WORK庫和用戶定義庫。,IEEE庫。常用的資源庫。IEEE庫包含經(jīng)過IEEE正式認(rèn)可的STD_LOGIC_1164包集合和某些公司提供的一些包集合,如STD_LOGIC_ARITH(算術(shù)運(yùn)算庫)、STD_LOGIC_UNSIGNED等。STD庫。VHDL的標(biāo)準(zhǔn)庫。庫中存放有稱為“standard”的標(biāo)準(zhǔn)包集合,其中定義了多種常用的數(shù)據(jù)類型,均不加說明可直接引用。STD庫中還包含有稱為“textio”的包集合。在使用“textio”包集合中的數(shù)據(jù)時(shí),應(yīng)先說明庫和包集合名,然后才可使用該包集合中的數(shù)據(jù)。ASIC矢量庫。在VHDL語言中,為了進(jìn)行門級仿真,各公司可提供面向ASIC的邏輯門庫。在該庫中存放著與邏輯門一一對應(yīng)的實(shí)體。為了使用面向ASIC的庫,對庫進(jìn)行說明是必要的。,.,6,WORK庫。WORK庫是現(xiàn)行作業(yè)庫。設(shè)計(jì)者所描述的VHDL語句不需要任何說明,將都存放在WORK庫中。WORK庫對所有設(shè)計(jì)都是隱含可見的,因此在使用該庫時(shí)無需進(jìn)行任何說明。用戶定義庫。用戶定義庫簡稱用戶庫,是由用戶自己創(chuàng)建并定義的庫。設(shè)計(jì)者可以把自己經(jīng)常使用的非標(biāo)準(zhǔn)(一般是自己開發(fā)的)包集合和實(shí)體等匯集成在一起定義成一個(gè)庫,作為對VHDL標(biāo)準(zhǔn)庫的補(bǔ)充。用戶定義庫在使用時(shí)同樣要首先進(jìn)行說明。,.,7,庫和程序包的語法:,library;use.all;,一般VHDL代碼中庫和程序包的調(diào)用語句:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_signed.all;useieee.std_logic_unsigned.all;,-最常用,-計(jì)數(shù)器常用,.,8,3.實(shí)體,實(shí)體的一般格式為:ENTITY實(shí)體名IS類屬參數(shù)說明;端口說明;END;,ENTITY、IS、END是VHDL的關(guān)鍵字(保留字)。實(shí)體中的每一個(gè)I/O信號被稱為端口,其功能對應(yīng)于電路圖符號的一個(gè)引腳。端口說明則是對一個(gè)實(shí)體的一組端口的定義,即對基本設(shè)計(jì)實(shí)體與外部接口的描述。端口是設(shè)計(jì)實(shí)體和外部環(huán)境動態(tài)通信的通道。,類屬參數(shù)說明是可選部分。如果需要,可使用以“GENERIC”語句來指定該設(shè)計(jì)單元的類屬參數(shù)(如延時(shí)、功耗等)。實(shí)體名、端口名等均應(yīng)為符合VHDL命名規(guī)則的標(biāo)識符。,.,9,類屬參數(shù)說明的格式為:GENERIC(參數(shù)名:參數(shù)類型:=初始值);,端口說明的一般格式為:PORT(端口名,端口名:端口模式數(shù)據(jù)類型;端口名,端口名:端口模式數(shù)據(jù)類型);,端口模式用來說明數(shù)據(jù)傳輸通過該端口的方向。端口模式有以下幾類:IN(輸入):僅允許數(shù)據(jù)流進(jìn)入端口。主要用于時(shí)鐘輸入、控制輸入、單向數(shù)據(jù)輸入。OUT(輸出):僅允許數(shù)據(jù)流由實(shí)體內(nèi)部流出端口。該模式通常用于終端計(jì)數(shù)一類的輸出,不能用于反饋。BUFFER(緩沖):該模式允許數(shù)據(jù)流出該實(shí)體和作為內(nèi)部反饋時(shí)用,但不允許作為雙向端口使用。INOUT(雙向):可以允許數(shù)據(jù)流入或流出該實(shí)體。該模式也允許用于內(nèi)部反饋。如果端口模式?jīng)]有指定,則該端口處于缺省模式為:IN。,.,10,entity實(shí)體名isport(a:inbit;b:inbit;y:outbit);end實(shí)體名;,端口名,數(shù)據(jù)類型,端口模式,a,b,y,?,.,11,例:四位加法器實(shí)體說明程序ENTITYadd4ISPORT(a,b:INSTD_LOGIC_VECTOR(3downto0);Ci:INSTD_LOGIC;Sum:OUTSTD_LOGIC_VECTOR(3downto0);Co:OUTSTD_LOGIC);ENDadd4;由實(shí)體說明畫出四位加法器add4的電路圖如下所示。,.,12,4.結(jié)構(gòu)體,結(jié)構(gòu)體主要是描述實(shí)體的硬件結(jié)構(gòu)、元件之間的互連關(guān)系、實(shí)體所完成的邏輯功能以及數(shù)據(jù)的傳輸變換等方面的內(nèi)容。,結(jié)構(gòu)體的語句格式:,architecturearch_nameofe_nameis說明語句begin功能描述語句endarchitecturearch_name;,.,13,進(jìn)程語句,塊語句,體,結(jié),構(gòu),說明語句,功能描述語句,元件例化語句,子程序調(diào)用語句,信號賦值語句,常數(shù)說明,數(shù)據(jù)類型說明,信號說明,例化元件說明,子程序說明,.,14,5.配置,配置主要為頂層設(shè)計(jì)實(shí)體指定結(jié)構(gòu)體,或?yàn)閰⑴c例化的元件實(shí)體指定所希望的結(jié)構(gòu)體,以層次方式來對元件例化作結(jié)構(gòu)配置。,配置語句的一般格式如下:,configuration配置名of實(shí)體名isfor結(jié)構(gòu)體名endfor;end配置名;,.,15,4.2VHDL語法基礎(chǔ),標(biāo)識符的書寫要遵守以下規(guī)則:(1)標(biāo)識符由字母、數(shù)字和下劃線組成,如a7_;(2)標(biāo)識符中不區(qū)分大小寫,ab和AB是一樣的;(3)第一個(gè)字符必須是字母,如a666;(4)不允許有兩個(gè)連續(xù)的下劃線,如a_b錯(cuò)誤;(5)末尾不能是下劃線,如mname_錯(cuò)誤;(6)標(biāo)識符不能和關(guān)鍵字相同,如entity,is等。,4.2.1標(biāo)識符,.,16,4.2.2數(shù)據(jù)類型,1.布爾(BOOLEAN)類型,TYPEBOOLEANIS(FALSE,TRUE);-庫中該數(shù)據(jù)類型的定義語句,2.位(BIT)和位矢量(BIT_VECTOR)類型,用來表示數(shù)字系統(tǒng)中的信號值。位值用字符0或者1(將值放在引號中)表示。與整數(shù)中的1和0不同,1和0僅僅表示一個(gè)位的兩種取值。,例:signala,b:bit;,signalx:bit_vector(0to7);variabley:bit_vector(3downto0);,例:signalf1:integerrange0to15;,3.整數(shù)(INTEGER)類型:-(231-1)(231-1)(范圍),.,17,例:signala:std_logic;,例:variabley:std_logic_vector(3downto0);,4.標(biāo)準(zhǔn)邏輯位(STD_LOGIC)類型,TYPESTD_LOGICIS(U,X,0,1,Z,W,L,H,-);各值的含義是:U-未初始化的,X-強(qiáng)未知的,0-強(qiáng)0,1-強(qiáng)1,Z-高阻態(tài),W-弱未知的,L-弱0,H-弱1,-忽略。,5.標(biāo)準(zhǔn)邏輯矢量(STD_LOGIC_VECTOR)類型,TYPESTD_LOGIC_VECTORISARRAY(NATURALRANGE)OFSTD_LOGIC;,.,18,6.字符(CHARACTER)和字符串(STRING)類型字符也是一種數(shù)據(jù)類型,所定義的字符量通常用單引號括起來,如a。一般情況下VHDL對大小寫不敏感,但對字符量中的大小寫則認(rèn)為是不一樣的。例如,B不同于b。字符量中的字符可以是從a到z中的任一個(gè)字母,從0到9中的任一個(gè)數(shù)以及空格或者特殊字符,如$,%等等。字符串是由雙引號括起來的一個(gè)字符序列,也稱字符矢量或字符串組。字符串常用于程序的提示和說明。字符串舉例如下:VATIABLEstring_1:STRING(0TO3);string_1:=“abcd”;,7.實(shí)數(shù)(REAL)類型:只能仿真不能綜合,8.時(shí)間(TIME)類型:只能仿真不能綜合,.,19,標(biāo)準(zhǔn)數(shù)據(jù)類型,.,20,4.2.3VHDL類型轉(zhuǎn)換函數(shù),IEEE庫類型轉(zhuǎn)換函數(shù)表,.,21,4.2.4數(shù)據(jù)對象,1.常數(shù)(CONSTANT),CONSTANT常數(shù)名:數(shù)據(jù)類型:=表達(dá)式;-常數(shù)定義,constantfbt:std_logic_vector(0to5):=010110;-標(biāo)準(zhǔn)邏輯矢量類型constantdatain:integer:=15;-整數(shù)類型,CONSTANTDelay:TIME:=10ns;,常數(shù)說明語句格式為:,.,22,2.變量(VARIABLE)變量定義語句的格式為,VARIABLE變量名:數(shù)據(jù)類型:=初始值;-變量定義,variablea:std_logic:=1;-變量a定義為標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型,初始值是1變量賦值語句的格式為:,目標(biāo)變量名:=表達(dá)式;-變量賦值,variablex,y:integerrange0to15;-分別定義變量x和y為整數(shù)類型variablea,b:std_logic_vector(7downto0);x:=11;y:=2+x;a:=b-b向a賦值a(0to5):=b(2to7);,.,23,3.信號(SIGNAL)信號定義語句的格式為:,SIGNAL信號名:數(shù)據(jù)類型:=初始值;-信號定義信號賦值語句表達(dá)式為:,目標(biāo)信號名=表達(dá)式;-信號賦值,signala,b,c,y,z:integer;.process(a,b,c)beginy=a+b;z=ca;y=b;endprocess;,.,24,4.信號與變量的區(qū)別,信號與變量賦值語句功能的比較,.,25,例信號和變量值代入的區(qū)別舉例PROCESS(a,b,c,d)BEGINd=a;x=b+d;d=c;y=b+d;ENDPROCESS;結(jié)果:x=b+c;y=b+c;PROCESS(a,b,c)VARIABLEd:std_logic_vector(3downto0);BEGINd:=a;x=b+d;d:=c;y=b+d;ENDPROCESS;結(jié)果:x=b+a;y=b+c;,-信號量的值是將進(jìn)程語句最后帶入的的值作為最終值-變量的值一經(jīng)帶入則立即改變。,.,26,邏輯操作符(LogicalOperator)關(guān)系操作符(RelationalOperator)算術(shù)操作符(ArithmeticOperator)符號操作符(SignOperator)重載操作符(OverloadingOperator),4.2.5VHDL操作符,.,27,算術(shù)操作符,+,加,整數(shù),減,整數(shù),1,if條件句then順序語句elsif條件句then順序語句.else順序語句endif;,3,if條件句then順序語句else順序語句endif;,2,if條件句thenif條件句then.endif;endif;,4,IF語句的語句格式有如下四種:,.,35,例設(shè)計(jì)2選1的數(shù)據(jù)選擇器。ARCHITECTURErtlOFmux2_1ISBEGINPROCESS(a,b,sel)BEGINIF(sel=1)THENc=a;ELSEc;.;;.WHENOTHERS=;ENDCASE;,CASE語句可以用來描述總線或編碼、譯碼的行為,其功能是從眾多不同語句的序列中選擇其中之一執(zhí)行之。IF語句也具有類似的功能,但CASE語句具有比IF語句更強(qiáng)的可讀性。,.,38,條件表達(dá)式的值:,單個(gè)普通數(shù)值:如6。數(shù)值選擇范圍:如(2TO4),表示取值為2、3或4。并列數(shù)值:如35,表示取值為3或者5?;旌戏绞剑阂陨先N方式的混合。,CASE語句是無序的,所有表達(dá)式的值都是并行處理的;CASE語句所有表達(dá)式的值都必須窮舉,且不能重復(fù),不能窮盡的值用OTHERS表示;對任意項(xiàng)輸入的條件表達(dá)式,VHDL不支持。(即條件表達(dá)式的值不能含有X),.,39,entitymux41is4選1多路選擇器port(d:instd_logic_vector(3downto0);a,b:instd_logic;y:outstd_logic);endentitymux41;architectureartofmux41issignalsel:std_logic_vector(1downto0);beginselyyyyy=X;Endcase;endprocess;endart;,.,40,4.LOOP語句,循環(huán)標(biāo)號:WHILE條件LOOP順序處理語句;ENDLOOP循環(huán)標(biāo)號;該語句中,如果條件為真,執(zhí)行順序處理語句;否則,結(jié)束循環(huán)。,LOOP標(biāo)號:FOR循環(huán)變量IN循環(huán)次數(shù)范圍LOOP順序語句ENDLOOPLOOP標(biāo)號;,.,41,【例】signala,b,c:std_logic_vector(1to3);.fornin1to3loopa(n)=b(n)andc(n);endloop;此段程序等效于順序執(zhí)行以下三個(gè)信號賦值操作:a(1)=b(1)andc(1);a(2)=b(2)andc(2);a(3)=b(3)andc(3);,.,42,5.NEXT語句:跳出本次循環(huán),開始下一次循環(huán),NEXT;-第一種語句格式NEXTLOOP標(biāo)號;-第二種語句格式NEXTLOOP標(biāo)號WHEN條件表達(dá)式;-第三種語句格式,6.EXIT語句:跳出整個(gè)循環(huán),EXIT;-第一種語句格式EXITLOOP標(biāo)號;-第二種語句格式EXITLOOP標(biāo)號WHEN條件表達(dá)式;-第三種語句格式,.,43,7.WAIT語句,WAIT;-第一種語句格式(永遠(yuǎn)掛起)WAITON信號表;-敏感信號量變化,進(jìn)程啟動(敏感信號等待語句)WAITUNTIL條件表達(dá)式;-第三種語句格式(條件等待語句)WAITFOR時(shí)間表達(dá)式;-第四種語句格式(超時(shí)等待語句),注意:只有第三種語句格式能綜合,其他只能仿真。,WAITUNTILclock=1;WAITUNTILrising_edge(clock);WAITUNTILNOTclockSTABLEANDclock=1;WAITUNTILclock=1ANDclockEVENT;,.,44,WAIT語句,WAIT語句有以下四種形式:WAIT-無限等待WAITON敏感信號表;-敏感信號量變化,進(jìn)程啟動WAITUNTIL條件表達(dá)式;-表達(dá)式成立時(shí),進(jìn)程啟動WAITFOR時(shí)間表達(dá)式;-時(shí)間到,進(jìn)程啟動,WAIT語句是進(jìn)程(含過程)的同步語句,是進(jìn)程的啟動點(diǎn)。在進(jìn)程(或過程)中,當(dāng)執(zhí)行到WAIT等待語句時(shí),運(yùn)行程序?qū)⒈粧炱?,直到滿足此語句的結(jié)束掛起條件后,將重新開始執(zhí)行進(jìn)程(或過程)中的程序。WAIT作為進(jìn)程體的一條語句同進(jìn)程體內(nèi)的其它語句順序執(zhí)行。,未設(shè)置掛起條件,表示永遠(yuǎn)掛起,即無限等待。,2.敏感信號等待語句,即敏感信號一旦發(fā)生變化將結(jié)束掛起,再次啟動進(jìn)程。VHDL規(guī)定,已列出敏感信號表的進(jìn)程中不能使用任何形式的WAIT語句。一般,WAIT語句可用于進(jìn)程中的任何地方。,3.條件等待語句。被此語句掛起的進(jìn)程需滿足如下兩個(gè)條件才能結(jié)束掛起狀態(tài),重新啟動:條件表達(dá)式中所含信號發(fā)生了變化;此信號改變后,且滿足WAIT語句所設(shè)的條件。兩條件缺一不可,且必須依照以上順序完成。,4.超時(shí)等待語句(此語句不可綜合,故不再討論)。,.,45,8.RETURN語句RETURN語句是一段子程序結(jié)束后,返回主程序的控制語句,9.空操作語句,NULL;,NULL語句不完成任何操作,類似于匯編語言中的NOP語句,其作用只是使程序運(yùn)行流程跨入下一步語句的執(zhí)行。NULL語句常用于CASE語句中,為滿足所有可能的條件,利用NULL來表示所余的不用條件下的操作行為,.,46,相對于傳統(tǒng)的軟件描述語言,并行語句結(jié)構(gòu)是最具VHDL特色的。在VHDL中,并行語句具有多種語句格式,各種并行語句在結(jié)構(gòu)體中的執(zhí)行是同步進(jìn)行的,或者說是并行運(yùn)行的,其執(zhí)行方式與書寫的順序無關(guān)。在執(zhí)行中,并行語句之間可以有信息往來,也可以是相互獨(dú)立、互不相關(guān)的。,4.3.2并行語句,.,47,結(jié)構(gòu)體中的并行語句模塊,.,48,并行語句在結(jié)構(gòu)體中的使用格式如下:ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名IS說明語句BEGIN并行語句ENDARCHITECTURE結(jié)構(gòu)體名;,.,49,1.并行信號賦值語句并行信號賦值語句有三種形式:簡單信號賦值語句、條件信號賦值語句和選擇信號賦值語句。這三種信號賦值語句的共同點(diǎn)是:賦值目標(biāo)必須都是信號,所有賦值語句與其他并行語句一樣,在結(jié)構(gòu)體內(nèi)的執(zhí)行是同時(shí)發(fā)生的,與它們的書寫順序和是否在塊語句中沒有關(guān)系。,.,50,(1)簡單信號賦值語句,賦值目標(biāo)=表達(dá)式;,ARCHITECTUREcurtOFbc1ISSIGNALs1,e,f,g,h:STD_LOGIC;BEGINoutput1=aANDb;output2=c+d;g=eORf;h=eXORf;s1=g;ENDARCHITECTUREcurt;,.,51,(2)條件信號賦值語句,賦值目標(biāo)=表達(dá)式WHEN賦值條件ELSE表達(dá)式WHEN賦值條件ELSE.表達(dá)式;,1.條件信號代入語句與進(jìn)程中的IF語句相同,具有順序性,但ELSE不能省略。2.執(zhí)行該語句時(shí),每一賦值條件是按書寫的先后關(guān)系逐項(xiàng)測定的,一旦發(fā)現(xiàn)條件為“true”,立即將表達(dá)式的值賦予目標(biāo)信號。3.賦值條件的數(shù)據(jù)類型是布爾量。4.由于條件測試的順序性,條件信號代入語句的賦值具有優(yōu)先級別,其中第1子句優(yōu)先級別最高,依次類推。,.,52,【例】ENTITYmuxISPORT(a,b,c:INBIT;p1,p2:INBIT;z:OUTBIT);END;ARCHITECTUREbehvOFmuxISBEGINz=aWHENp1=1ELSEbWHENp2=1ELSEc;END;,.,53,libraryieee;4選1多路選擇器useieee.std_logic_1164.all;entitymux41isport(d:instd_logic_vector(3downto0);a,b:instd_logic;y:outstd_logic);endentitymux41;architectureartofmux41issignalsel:std_logic_vector(1downto0);beginsel=b,.,54,(3)選擇信號賦值語句,WITH選擇表達(dá)式SELECT賦值目標(biāo)信號=表達(dá)式WHEN選擇值,表達(dá)式WHEN選擇值,.表達(dá)式WHEN選擇值;,1.選擇信號語句與進(jìn)程中的CASE語句相似,但不能在進(jìn)程中應(yīng)用。2.選擇信號語句具有敏感量,即WITH后面的選擇條件表達(dá)式。每當(dāng)選擇表達(dá)式的值發(fā)生變化,便啟動該語句對各子句的選擇值(條件)進(jìn)行測試對比,當(dāng)發(fā)現(xiàn)有滿足條件的子句時(shí),就將此子句表達(dá)式的值賦予目標(biāo)信號。3.與CASE語句相類似,該語句對子句條件選擇值具有同期性(非順序性)。4.不允許有條件重疊現(xiàn)象,也不允許存在條件涵蓋不全的情況。,.,55,【例】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdecoderISPORT(a,b,c:INSTD_LOGIC;data1,data2:INSTD_LOGIC;dataout:OUTSTD_LOGIC);ENDdecoder;ARCHITECTUREconcuntOFdecoderISSIGNALinstruction:STD_LOGIC_VECTOR(2DOWNTO0);BEGINinstruction=c,.,56,libraryieee;useieee.std_logic_1164.all;entitymux41isport(inp:instd_logic_vector(3downto0);a,b:instd_logic;y:outstd_logic);endentitymux41;architectureartofmux41issignalsel:std_logic_vector(1downto0);beginsel=b,.,57,2.進(jìn)程語句,(1)PROCESS語句結(jié)構(gòu)的一般表達(dá)格式如下:進(jìn)程標(biāo)號:PROCESS(敏感信號參數(shù)表)IS進(jìn)程說明部分BEGIN順序語句ENDPROCESS進(jìn)程標(biāo)號;,.,58,(2)進(jìn)程結(jié)構(gòu)組成,進(jìn)程說明部分,順序描述語句部分,敏感信號參數(shù)表,.,59,(3)進(jìn)程要點(diǎn),1.PROCESS為一無限循環(huán)語句,2.PROCESS中的順序語句具有明顯的順序/并行運(yùn)行雙重性,3.進(jìn)程必須由敏感信號的變化來啟動,4.進(jìn)程語句本身是并行語句,5.信號是多個(gè)進(jìn)程間的通信線,6.同步進(jìn)程的敏感信號表中只有時(shí)鐘信號,.,60,【例】ENTITYmulISPORT(a,b,c,selx,sely:INBIT;data_out:OUTBIT);ENDmul;ARCHITECTUREexOFmulISSIGNALtemp:BIT;BEGINp_a:PROCESS(a,b,selx)BEGINIF(selx=0)THENtemp=a;ELSEtemp=b;ENDIF;ENDPROCESSp_a;p_b:PROCESS(temp,c,sely)BEGINIF(sely=0)THENdata_out=temp;ELSEdata_out實(shí)際連接端口名,.);,-元件定義語句,-元件例化語句,元件例化:即引入一種連接關(guān)系,它將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件,然后利用特定的語句將此元件與當(dāng)前的設(shè)計(jì)實(shí)體中的指定端口相連接,從而為當(dāng)前設(shè)計(jì)實(shí)體引入一個(gè)新的低一級的設(shè)計(jì)層次。元件例化是使VHDL設(shè)計(jì)實(shí)體構(gòu)成自上而下層次化設(shè)計(jì)的一個(gè)重要途徑。元件例化可以是多層次的。,.,62,【例】全加器的VHDL描述,.,63,.,64,-半加器描述(1):布爾方程描述方法LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisBEGINso=NOT(aXOR(NOTb);cobin,co=d,so=e);-元件例化語句u2:h_adderPORTMAP(a=e,co=f,b=cin,so=sum);u3:or2aPORTMAP(d,f,cout);ENDARCHITECTUREfd1;,.,68,4.生成語句GENERATE語句用來產(chǎn)生多個(gè)相同的結(jié)構(gòu),適合于生成存儲器陣列和寄存器陣列。GENERATE語句有兩種格式:,標(biāo)號:FOR循環(huán)變量IN取值范圍GENERATE說明BEGIN并行語句ENDGENERATE標(biāo)號;或標(biāo)號:IF條件GENERATE說明Begin并行語句ENDGENERATE標(biāo)號;,FOR-GENERATE語句在形式上與FOR-LOOP語句相象,但結(jié)構(gòu)中前者是并發(fā)處理,后者是順序處理。故FOR-GENERATE語句結(jié)構(gòu)中不能使用EXIT和NEXT語句。,.,69,【例】.COMPONENTcompPORT(x:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALa:STD_LOGIC_VECTOR(0TO7);SIGNALb:STD_LOGIC_VECTOR(0TO7);.gen:FORiINaRANGEGENERATEu1:compPORTMAP(x=a(i),y=b(i);ENDGENERATEgen,.,.,70,生成語句產(chǎn)生的8個(gè)相同的電路模塊,.,71,4.4基本邏輯電路設(shè)計(jì),4.4.1組合邏輯電路設(shè)計(jì)1基本門電路基本門電路可以使用VHDL中定義的邏輯操作符,實(shí)現(xiàn)與門(AND)、或門(OR)、非門(NOT)、與非門(NAND)、或非門(NOR)、異或門(XOR)及同或門(XNOR)的邏輯,同時(shí)可構(gòu)成這些基本門電路構(gòu)成的邏輯函數(shù)式和邏輯圖。,.,72,libraryieee;useieee.std_logic_1164.all;entityxiti309isport(a,b,c,d:instd_logic;y3,y2,y1,y0:outstd_logic);end;architecturexiti309arofxiti309isbeginy3=aor(bandc)or(bandd);y2=(aandd)or(band(notc)and(notd);y1=(aand(notd)or(notb)andc)or(candd);y0=(aand(notd)or(nota)and(notb)andd)or(bandcand(notd);endxiti309ar;,教材【例6-4】8421碼轉(zhuǎn)換成5421碼的碼組變換電路,.,73,libraryieee;useieee.std_logic_1164.all;entityadderisport(ai,bi,ci:instd_logic;si,co:outstd_logic);endadder;architectureadderofadderisbeginsi=aixorbixorci;cooutpoutpoutpoutpoutpoutpoutpoutpoutp=xxxxxxxx;endcase;endprocess;endarchitectureart4;,.,76,4線-2線優(yōu)先編碼器真值表,注:表中的“x”為任意,類似VHDL中的“-”值。,3.4線-2線優(yōu)先編碼器,.,77,libraryieee;useieee.std_logic_1164.all;entityencoderisport(a:instd_logic_vector(3downto0);y:outstd_logic_vector(1downto0);eo:outstd_logic);endencoder;architectureencoderpofencoderisbeginprocess(a)beginifa(3)=1theny=11;eo=1;elsifa(2)=1theny=10;eo=1;elsifa(1)=1theny=01;eo=1;elsifa(0)=1theny=00;eo=1;elsifa=0000theny=00;eo=0;endif;endprocess;endencoderp;,.,78,4.1路-4路數(shù)據(jù)分配器,libraryieee;useieee.std_logic_1164.all;entitymux4t1isport(s1,s2:instd_logic;datain:instd_logic;a,b,c,d:outstd_logic);endmux4t1;architectureoneofmux4t1issignals:std_logic_vector(1downto0);signaldataout:std_logic_vector(3downto0);beginsdataoutdataoutdataoutdataoutdataout=zzzz;endcase;endprocess;a=dataout(0);b=dataout(1);c=dataout(2);d=dataout(3);endarchitectureone;,.,80,5.4選1數(shù)據(jù)選擇器,libraryieee;useieee.std_logic_1164.all;entitymux41isport(inp:instd_logic_vector(3downto0);a,b:instd_logic;y:outstd_logic);endentitymux41;architectureartofmux41issignalsel:std_logic_vector(1downto0);beginselled7led7led7led7led7led7led7led7led7led7led7=0000000;-不顯示endcase;endprocess;endbehv;,.,83,4.4.2時(shí)序邏輯電路設(shè)計(jì)1,.,84,1.基本RS觸發(fā)器,.,85,1.邊沿JK觸發(fā)器,libraryieee;useieee.std_logic_1164.all;entityjkcfqisport(j,k,clk:instd_logic;q,qb:outstd_logic);endentityjkcfq;architectureartofjkcfqissignalq_s,qb_s:std_logic;beginprocess(clk,j,k)isbeginif(clkeventandclk=1)then,.,86,if(j=0andk=1)thenq_s=0;qb_s=1;elsif(j=1andk=0)thenq_s=1;qb_s=0;elsif(j=1andk=1)thenq_s=notq_s;qb_s=notqb_s;endif;endif;q=q_s;qb=qb_s;endprocess;endarchitectureart;,.,87,2.異步復(fù)位/置位的D觸發(fā)器libraryieee;useieee.std_logic_1164.all;entityasyndcfqisport(clk,d,preset,clr:instd_logic;q:outstd_logic);endentityasyndcfq;architectureartofasyndcfqisbegin,.,88,process(clk,preset,clr)isbeginif(preset=1)then-置位信號為1,則觸發(fā)器被置位q=1;elsif(clr=1)then-復(fù)位信號為1,則觸發(fā)器被復(fù)位q=0;elsif(clkeventandclk=1)thenq=d;endif;endprocess;endarchitectureart;,.,89,3.同步復(fù)位的D觸發(fā)器libraryieee;useieee.std_logic_1164.all;entitysyndcfqisport(d,clk,reset:instd_logic;q:outstd_logic);endentitysyndcfq;architectureartofsyndcfqisbeginprocess(clk)isbeginif(clkeventandclk=1)thenif(reset=0)thenq=0;-時(shí)鐘邊沿到來且有復(fù)位信號,觸發(fā)器被復(fù)位elseq=d;endif;endif;endprocess;endarchitectureart;,.,90,4.4位寄存器,libraryieee;useieee.std_logic_1164.all;entityregisport(d:instd_logic_vector(3downto0);clk:instd_logic;q:outstd_logic_vector(3downto0);endentityreg;architectureartofregisbeginprocess(clk)beginif(clkeventandclk=1)thenq=d;endif;endprocess;endarchitectureart;,.,91,5.移位寄存器,libraryieee;useieee.std_logic_1164.all;entityshifterisport(clk:instd_logic;data:instd_logic_vector(7downto0);shift_left:instd_logic;shift_right:instd_logic;reset:instd_logic;mode:instd_logic_vector(1downto0);qout:bufferstd_logic_vector(7downto0);endentityshifter;architectureartofshifterisbeginprocess(clk)begin,.,92,if(clkeventandclk=1)thenif(reset=1)thenqoutqoutqoutqoutnull;endcase;endif;endif;endprocess;endarchitectureart;,.,93,6.4位二進(jìn)制加法計(jì)數(shù)器,【例8-5】用VHDL描述8421碼4位二進(jìn)制加法計(jì)數(shù)器。程序中具有異步清零控制端(低電平有效),同步置數(shù)控制端(低電平有效),計(jì)數(shù)控制信號(高電平有效)。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycntm16isport(clk,en,cr,sh:instd_logic;d:instd_logic_vector(3downto0);co:outstd_logic;q:bufferstd_logic_vector(3downto0);endentitycntm16;architectureartofcntm16isbeginco=1when(q=1111anden=1)else0;,.,94,process(clk,cr)isbeginif(cr=0)thenq=0000;elsif(clkeventandclk=1)thenif(sh=0)thenq=d(3downto0);elsif(en=1)thenif(q=1111)thenq=0000;elseq=q+1;endif;endif;endif;endprocess;endarchitectureart;,.,95,7.同步十進(jìn)制加/減計(jì)數(shù)器74LS190,教材【例8-6】libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityt74190isport(cp:instd_logic;-計(jì)數(shù)時(shí)鐘ld:instd_logic;-置數(shù)控制信號(低電平有效)ct:instd_logic;-計(jì)數(shù)控制端低電平有效u_d:instd_logic
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 并發(fā)編程的挑戰(zhàn)與解決方案的試題及答案
- 經(jīng)濟(jì)適應(yīng)能力對政策執(zhí)行的影響試題及答案
- 軟件設(shè)計(jì)師考試考點(diǎn)回顧試題及答案
- 2025年技術(shù)員考試重點(diǎn)復(fù)習(xí)方法試題及答案
- 信息處理技術(shù)員的實(shí)戰(zhàn)試題及答案
- 年度財(cái)務(wù)預(yù)算的制定與執(zhí)行計(jì)劃
- 計(jì)算機(jī)信息處理科技發(fā)展試題及答案
- 2025年法學(xué)概論考試的法律實(shí)踐與試題及答案
- 軟件水平測試的成功策略試題及答案
- 2025租賃合同范本常用版
- 廣西壯族自治區(qū)2025年4月高三畢業(yè)班診斷學(xué)考試物理試卷及答案(廣西三模)
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園入園合同
- 第六單元《軍民團(tuán)結(jié)一家親》課件 中學(xué)音樂人音版七年級下冊
- 做情緒的主人培訓(xùn)課件
- 農(nóng)業(yè)灌溉設(shè)施設(shè)備采購及安裝合同
- 銀行消防安全知識培訓(xùn)
- 西安市存量房屋買賣合同
- 武漢2025屆高中畢業(yè)生二月調(diào)研考試數(shù)學(xué)試題及答案
- 山東省日照市2024-2025學(xué)年高一上學(xué)期期末數(shù)學(xué)試題(原卷版+解析版)
- 人教版四年級數(shù)學(xué)下冊《圖形的運(yùn)動(二)》試題(含答案)
- 換電站工程施工方案
評論
0/150
提交評論