版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、五、VHDL語(yǔ)言的順序語(yǔ)句,順序語(yǔ)句(Sequential Statements)用來(lái)實(shí)現(xiàn)模型的算法描述。,這些語(yǔ)句從多側(cè)面完整地描述數(shù)字系統(tǒng)的硬件結(jié)構(gòu)和基本邏輯功能,其中包括通信的方式、信號(hào)的賦值、多層次的元件例化以及系統(tǒng)行為等。,順序語(yǔ)句和并行語(yǔ)句是VHDL程序設(shè)計(jì)中兩大基本描述語(yǔ)句系列。,并行語(yǔ)句(Concurrent Statements)用來(lái)表示各模型算法描述之間的連接關(guān)系。,順序語(yǔ)句只能出現(xiàn)在 進(jìn)程(PROCESS) 過(guò)程(PROCEDURE) 函數(shù)(FUNCTION) 中,其它都是并行語(yǔ)句。,順序語(yǔ)句是相對(duì)于并行語(yǔ)句而言的,其特點(diǎn)是每一條順序語(yǔ)句的執(zhí)行(指仿真執(zhí)行)順序是與它們的
2、書(shū)寫(xiě)順序基本一致的,,理解,一個(gè)進(jìn)程是由一系列順序語(yǔ)句構(gòu)成的,而進(jìn)程本身屬并行語(yǔ)句。也就是說(shuō),在同一設(shè)計(jì)實(shí)體中,所有的進(jìn)程是并行執(zhí)行的,每個(gè)進(jìn)程內(nèi)部是順序執(zhí)行的。,VHDL有如下六類(lèi)基本順序語(yǔ)句:,信號(hào)賦值語(yǔ)句 變量賦值語(yǔ)句,1、賦值語(yǔ)句,2、流程控制語(yǔ)句,3、等待語(yǔ)句,4、子程序調(diào)用語(yǔ)句,5、返回語(yǔ)句,6、空操作語(yǔ)句,IF語(yǔ)句 CASE語(yǔ)句 LOOP語(yǔ)句 NEXT語(yǔ)句 EXIT語(yǔ)句,RETURN語(yǔ)句,NULL語(yǔ)句,WAIT語(yǔ)句,過(guò)程調(diào)用 函數(shù)調(diào)用,目的變量 := 表達(dá)式;,變量的說(shuō)明和賦值限定在順序區(qū)域內(nèi),即只能在進(jìn)程或子程序中使用,它無(wú)法傳遞到進(jìn)程之外。,目的信號(hào) = 表達(dá)式;,例:y=1
3、;,例:x:=15;,信號(hào)賦值可以在順序區(qū)域內(nèi)作順序語(yǔ)句,也可以在結(jié)構(gòu)體中當(dāng)作并行語(yǔ)句使用。,1、賦值語(yǔ)句,A、變量賦值語(yǔ)句,B、信號(hào)賦值語(yǔ)句,2、流程控制語(yǔ)句,第一種,第二種,A、IF 語(yǔ)句,IF 條件句 THEN 順序語(yǔ)句; END IF;,IF 條件句 THEN 順序語(yǔ)句; ELSE 順序語(yǔ)句; END IF;,第三種,IF 條件句1 THEN 順序語(yǔ)句1; ELSIF 條件2 THEN 順序語(yǔ)句2; ELSIF 條件n THEN 順序語(yǔ)句n; ELSE 順序語(yǔ)句n+1; END IF;,例 :IF (SET=1) THEN c=b END IF;,例 : IF (sel=1) THEN
4、 c=a; ELSE c=b; END IF;,例 用IF語(yǔ)句描述一個(gè)四選一電路,LIBRARY IEEE; USE IEEE. STE_LOGIC_1164.ALL; ENTITY mux4 IS PORT (input: IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0); Y: OUT STD_LOGIC); END mux4;,ARCHITECTURE rt1 OF mux4 IS BEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN Y=inp
5、ut (0); ELSIF (Sel=”01”) THEN Y=input (1); ELSIF (Sel=”10”) THEN Y=input (2); ELSE Y=input (3); END IF; END PROCESS; END rt1;,IF語(yǔ)句不僅可用于選擇器設(shè)計(jì),還可用于比較器,譯碼器等進(jìn)行條件控制的邏輯設(shè)計(jì)。IF語(yǔ)句中至少應(yīng)有一個(gè)條件句,條件句必須由布爾表達(dá)式構(gòu)成,條件表達(dá)式中能使用關(guān)系運(yùn)算操作及邏輯運(yùn)算操作的組合表達(dá)式。,IF語(yǔ)句顛倒條件判別次序,會(huì)引起在綜合時(shí)邏輯功能的變化,即IF語(yǔ)句判別條件不可顛倒。,IF語(yǔ)句中,先處理最起始的條件;如果不滿足,再處理下一個(gè)條件。一般
6、把條件約束最多的作為起始條件。,B、CASE 語(yǔ)句,CASE 表達(dá)式 IS When 選擇值 = 順序語(yǔ)句; When 選擇值 = 順序語(yǔ)句; . When OTHERS =順序語(yǔ)句; END CASE ;,選擇值可以有四種不同的表達(dá)方式: 單個(gè)普通數(shù)值,如6。 數(shù)值選擇范圍,如(2 TO 4),表示取值為2、3或4。 并列數(shù)值,如35,表示取值為3或者5。 混合方式,以上三種方式的混合。,例 用CASE語(yǔ)句描述4選1多路選擇器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGI
7、C; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41;,ARCHITECTURE ART OF MUX41 IS SIGNA S :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SZZZZZ=X; END CASE; END PROCESS; END ARCHITECTURE ART;,(1) 條件句中的選擇值必須在表達(dá)式的取值范圍內(nèi)。 (2) 除非所有條件句中的選擇值能完整覆蓋CASE語(yǔ)句中表達(dá)式的取值,否則最末一個(gè)條件句中的選擇必須用“OTHERS”表示。 (3) CASE語(yǔ)句中每一條語(yǔ)句的選擇只
8、能出現(xiàn)一次,不能有相同選擇值的條件語(yǔ)句出現(xiàn)。 (4) CASE語(yǔ)句執(zhí)行中必須選中,且只能選中所列條件語(yǔ)句中的一條。這表明CASE語(yǔ)句中至少要包含一個(gè)條件語(yǔ)句。,使用CASE語(yǔ)句需注意以下幾點(diǎn):,CASE語(yǔ)句常用來(lái)描寫(xiě)總線行為、編碼器和譯碼器的結(jié)構(gòu)。CASE語(yǔ)句與IF語(yǔ)句功能相似但CASE語(yǔ)句的可讀性好,非常簡(jiǎn)潔。,C、LOOP 語(yǔ)句,標(biāo)號(hào): FOR 循環(huán)變量 IN 循環(huán)次數(shù)范圍 LOOP 順序語(yǔ)句; END LOOP 標(biāo)號(hào);,用法示例: L2 :LOOP a := a+1; EXIT L2 WHEN a 10 ; - 當(dāng)a大于10時(shí)跳出循環(huán) END LOOP L2; .,(2)FOR LOOP
9、語(yǔ)句,語(yǔ)法格式如下:,(1)單個(gè)LOOP語(yǔ)句,其語(yǔ)法格式如下:,標(biāo)號(hào): LOOP 順序語(yǔ)句; END LOOP 標(biāo)號(hào) ;,標(biāo)號(hào): WHILE 條件 LOOP 順序語(yǔ)句; END LOOP 標(biāo)號(hào);,(3)WHILE LOOP語(yǔ)句,語(yǔ)法格式如下:,用法示例: FOR I IN 0 TO 7 LOOP Tmp:=tmp XOR a (I); END LOOP;,用法示例: FOR I IN 0 TO 7 LOOP Tmp:=tmp XOR a (I); END LOOP;,用法示例: WHILE i4 LOOP b:=b AND a(i); vout (i):=b; I:=I+1; END LOOP
10、;,D、NEXT 語(yǔ)句,NEXT; - 第一種語(yǔ)句格式 NEXT LOOP 標(biāo)號(hào); - 第二種語(yǔ)句格式 NEXT LOOP 標(biāo)號(hào) WHEN 條件表達(dá)式; - 第三種語(yǔ)句格式,NEXT有三種用法,其語(yǔ)法格式如下:,當(dāng)LOOP 標(biāo)號(hào)缺省時(shí),則執(zhí)行NEXT 語(yǔ)句時(shí),即刻無(wú)條件終止當(dāng)前的循環(huán),跳回到本次循環(huán)LOOP語(yǔ)句開(kāi)始處,開(kāi)始下一次循環(huán),否則跳轉(zhuǎn)到指定標(biāo)號(hào)的LOOP語(yǔ)句開(kāi)始處,重新開(kāi)始執(zhí)行循環(huán)操作。若WHEN子句出現(xiàn)并且條件表達(dá)式的值為T(mén)RUE,則執(zhí)行NEXT語(yǔ)句,進(jìn)入跳轉(zhuǎn)操作,否則繼續(xù)向下執(zhí)行。,用法示例: L1: FOR CNT IN 1 TO 8 LOOP S1:A(CNT):=0; NEX
11、T WHEN (B=C); S2 :A(CNT+8):=0; END LOOP L1;,當(dāng)程序執(zhí)行到NEXT語(yǔ)句時(shí),如果條件判斷式(b=c)的結(jié)果為T(mén)RUE,將執(zhí)行NEXT語(yǔ)句,并返回到L1,使cnt加1后執(zhí)行S1開(kāi)始的賦值語(yǔ)句,否則執(zhí)行S2開(kāi)始的賦值語(yǔ)句。,E、EXIT 語(yǔ)句,EXIT; - 第一種語(yǔ)句格式 EXIT LOOP 標(biāo)號(hào); - 第二種語(yǔ)句格式 EXIT LOOP 標(biāo)號(hào) WHEN 條件表達(dá)式; - 第三種語(yǔ)句格式,EXIT有三種用法,其語(yǔ)法格式如下:,這種語(yǔ)句格式與前述的NEXT 語(yǔ)句的格式和操作功能非常相似,惟一的區(qū)別是NEXT語(yǔ)句是跳向LOOP 語(yǔ)句的起始點(diǎn),而EXIT語(yǔ)句則是
12、跳向LOOP語(yǔ)句的終點(diǎn)。,EXIT語(yǔ)句為程序需要處理保護(hù)、出錯(cuò)和警告狀態(tài)時(shí),提供了一種快捷、簡(jiǎn)便的調(diào)試方法。,3、等待語(yǔ)句,WAIT語(yǔ)句,WAIT; - 第一種語(yǔ)句格式 WAIT ON 信號(hào)表; - 第二種語(yǔ)句格式 WAIT UNTIL 條件表達(dá)式; - 第三種語(yǔ)句格式 WAIT FOR 時(shí)間表達(dá)式; - 第四種語(yǔ)句格式, 超時(shí)等待語(yǔ)句,EXIT有四種用法,其語(yǔ)法格式如下:,用法示例1: SIGNAL s1,s2 : STD_LOGIC; . PROCESS BEGIN . WAIT ON s1,s2 ; END PROCESS ;,WAIT ON 信號(hào)表 UNTIL 條件表達(dá)式 FOR 時(shí)間
13、表達(dá)式;,用法示例2: . Wait until enable =1;,單獨(dú)的WAIT表示永遠(yuǎn)掛起。,一般地,只有WAIT_UNTIL格式的等待語(yǔ)句可以被綜合器接受(其余語(yǔ)句格式只能在VHDL仿真器中使用) ,WAIT_UNTIL語(yǔ)句有以下三種表達(dá)方式: WAIT UNTIL 信號(hào)=Value ; - (1) WAIT UNTIL 信號(hào)EVENT AND 信號(hào)=Value; - (2) WAIT UNTIL NOT 信號(hào)STABLE AND 信號(hào)=Value; - (3),如果設(shè)clock為時(shí)鐘信號(hào)輸入端,以下四條WAIT語(yǔ)句所設(shè)的進(jìn)程啟動(dòng)條件都是時(shí)鐘上跳沿,所以它們對(duì)應(yīng)的硬件結(jié)構(gòu)是一樣的:
14、WAIT UNTIL clock =1; WAIT UNTIL rising_edge(clock) ; WAIT UNTIL NOT clockSTABLE AND clock =1; WAIT UNTIL clock =1 AND clockEVENT;,例: PROCESS BEGIN rst_loop : LOOP WAIT UNTIL clock =1 AND clockEVENT; - 等待時(shí)鐘信號(hào) NEXT rst_loop WHEN (rst=1); - 檢測(cè)復(fù)位信號(hào)rst x = a ; - 無(wú)復(fù)位信號(hào),執(zhí)行賦值操作 WAIT UNTIL clock =1 AND clock
15、EVENT; - 等待時(shí)鐘信號(hào) NEXT rst_loop When (rst=1); - 檢測(cè)復(fù)位信號(hào)rst y = b ; - 無(wú)復(fù)位信號(hào),執(zhí)行賦值操作 END LOOP rst_loop ; END PROCESS;,VHDL規(guī)定,已列出敏感量的進(jìn)程中不能使用任何形式的WAIT語(yǔ)句。,調(diào)用過(guò)程的語(yǔ)句格式如下: 過(guò)程名(形參名= 實(shí)參表達(dá)式 ,形參名= 實(shí)參表達(dá)式) ;,一個(gè)過(guò)程的調(diào)用將分別完成以下三個(gè)步驟:,(1)將IN和INOUT模式的實(shí)參值賦給欲調(diào)用的過(guò)程中與它們對(duì)應(yīng)的形參;,(2)執(zhí)行這個(gè)過(guò)程;,(3)將過(guò)程中IN和INOUT模式的形參值返回給對(duì)應(yīng)的實(shí)參。,4、子程序調(diào)用語(yǔ)句,A、
16、過(guò)程調(diào)用語(yǔ)句,B、函數(shù)調(diào)用語(yǔ)句,函數(shù)調(diào)用與過(guò)程調(diào)用是十分相似的,不同之處是,調(diào)用函數(shù)將返還一個(gè)指定數(shù)據(jù)類(lèi)型的值,函數(shù)的參量只能是輸入值。,5、返回語(yǔ)句,RETURN語(yǔ)句是一段子程序結(jié)束后,返回主程序的控制語(yǔ)句。它有兩種格式:,第一種格式只能用于過(guò)程,它后面一定不能有表達(dá)式;第二種格式只能用于函數(shù),它后面必須有條件表達(dá)式,它是函數(shù)結(jié)束的必要條件,函數(shù)結(jié)束必須用RETURN語(yǔ)句。,RETURN; -第一種語(yǔ)句格式 RETURN 表達(dá)式; - 第二種語(yǔ)句格式,【例】 PROCEDURE rs (SIGNAL s , r : IN STD_LOGIC ; SIGNAL q , nq : INOUT S
17、TD_LOGIC) IS BEGIN IF ( s =1 AND r =1) THEN REPORT Forbidden state : s and r are quual to 1; RETURN ; ELSE q = s AND nq AFTER 5 ns ; nq = s AND q AFTER 5 ns ; END IF ; END PROCEDURE rs ;,【例】 FUNCTION opt (a, b, opr :STD_LOGIC) RETURN STD_LOGIC IS BEGIN IF (opr =1) THEN RETURN (a AND b); ELSE RETURN (a OR b) ; END IF ; END FUNCTION opt ;,6、空操作語(yǔ)句,空操作語(yǔ)句的語(yǔ)句格式如下: NULL;,在下例的CASE語(yǔ)句中,NULL用于排除一些不用的條件。 CASE Opcode IS WHEN 001 = tmp := rega AND regb ; WHEN 101 = tmp := rega OR regb ; WHEN 110 = tmp
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030汽車(chē)后視鏡設(shè)計(jì)創(chuàng)新競(jìng)爭(zhēng)格局研究報(bào)告
- 2025-2030汽車(chē)制造行業(yè)市場(chǎng)深度研究及發(fā)展趨勢(shì)與投資規(guī)劃研究報(bào)告
- 2025-2030汽車(chē)制造新技術(shù)研發(fā)與產(chǎn)業(yè)鏈協(xié)同發(fā)展報(bào)告
- 學(xué)生課外閱讀管理制度
- 學(xué)生宿舍管理與安全制度
- 數(shù)字療法醫(yī)保納入利益相關(guān)者課題申報(bào)書(shū)
- 基于人工智能的教育資源共享標(biāo)準(zhǔn)化與教師教學(xué)能力提升教學(xué)研究課題報(bào)告
- 智慧校園智能學(xué)習(xí)社區(qū)互動(dòng)機(jī)制與氛圍營(yíng)造的心理學(xué)視角分析教學(xué)研究課題報(bào)告
- 異常值檢測(cè)與修正方法
- 綠色交通服務(wù)評(píng)價(jià)體系設(shè)計(jì)-洞察及研究
- 浙江省高級(jí)法院公布十大民間借貸典型案例
- GA 1809-2022城市供水系統(tǒng)反恐怖防范要求
- YS/T 1148-2016鎢基高比重合金
- JJF 1143-2006混響室聲學(xué)特性校準(zhǔn)規(guī)范
- GB/T 39597-2020出租汽車(chē)綜合服務(wù)區(qū)規(guī)范
- 兒童舌診解析
- GB/T 12060.3-2011聲系統(tǒng)設(shè)備第3部分:聲頻放大器測(cè)量方法
- GB/T 10760.1-2003離網(wǎng)型風(fēng)力發(fā)電機(jī)組用發(fā)電機(jī)第1部分:技術(shù)條件
- 四年級(jí)數(shù)學(xué)下冊(cè)解決問(wèn)題練習(xí)題
- 《康復(fù)評(píng)定技術(shù)》考試復(fù)習(xí)題庫(kù)(含答案)
- 幼兒園四季交替課件
評(píng)論
0/150
提交評(píng)論