電子設(shè)計(jì)自動(dòng)化第三章 3.4_第1頁(yè)
電子設(shè)計(jì)自動(dòng)化第三章 3.4_第2頁(yè)
電子設(shè)計(jì)自動(dòng)化第三章 3.4_第3頁(yè)
電子設(shè)計(jì)自動(dòng)化第三章 3.4_第4頁(yè)
電子設(shè)計(jì)自動(dòng)化第三章 3.4_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、:每一條順序語(yǔ)句的執(zhí)行(指仿真執(zhí)行):每一條順序語(yǔ)句的執(zhí)行(指仿真執(zhí)行)順序是與它們的書(shū)寫(xiě)順序基本一致。只能出現(xiàn)在順序是與它們的書(shū)寫(xiě)順序基本一致。只能出現(xiàn)在進(jìn)程或子程序中。進(jìn)程或子程序中。 :各種并行語(yǔ)句的執(zhí)行是同步的,與書(shū):各種并行語(yǔ)句的執(zhí)行是同步的,與書(shū)寫(xiě)的順序無(wú)關(guān)。寫(xiě)的順序無(wú)關(guān)。語(yǔ)句從語(yǔ)句從地描述梳子系統(tǒng)的地描述梳子系統(tǒng)的,包括通信方式、信號(hào)的賦值、多層次,包括通信方式、信號(hào)的賦值、多層次的元件例化等。的元件例化等。l賦值語(yǔ)句賦值語(yǔ)句l轉(zhuǎn)向控制語(yǔ)句轉(zhuǎn)向控制語(yǔ)句l等待語(yǔ)句等待語(yǔ)句l子程序調(diào)用語(yǔ)句子程序調(diào)用語(yǔ)句l返回語(yǔ)句返回語(yǔ)句l空操作語(yǔ)句空操作語(yǔ)句順序描述語(yǔ)句順序描述語(yǔ)句 用在進(jìn)程用在進(jìn)程

2、或子程序中,用來(lái)定義或子程序中,用來(lái)定義進(jìn)程或子程序的進(jìn)程或子程序的行為行為 。順序描述語(yǔ)句的特點(diǎn)順序描述語(yǔ)句的特點(diǎn) :每一條語(yǔ)句的執(zhí)行(指每一條語(yǔ)句的執(zhí)行(指仿真執(zhí)行)都是按語(yǔ)句仿真執(zhí)行)都是按語(yǔ)句排列的次序執(zhí)行的。排列的次序執(zhí)行的。l信號(hào)代入語(yǔ)句信號(hào)代入語(yǔ)句l變量賦值語(yǔ)句變量賦值語(yǔ)句lIF語(yǔ)句語(yǔ)句門(mén)閂控制的門(mén)閂控制的IF語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為:IF 條件條件 THEN 順序處理語(yǔ)句;順序處理語(yǔ)句; END IF; IF語(yǔ)句是一種條件語(yǔ)句語(yǔ)句是一種條件語(yǔ)句。其語(yǔ)句結(jié)構(gòu)有以下三種其語(yǔ)句結(jié)構(gòu)有以下三種: 1) 門(mén)閂控制的門(mén)閂控制的IF語(yǔ)句;語(yǔ)句; 2) 2選擇控制的選擇控制的IF語(yǔ)句

3、;語(yǔ)句; 3) 多選擇控制的多選擇控制的IF語(yǔ)句。語(yǔ)句。設(shè)計(jì)設(shè)計(jì)D觸發(fā)器。觸發(fā)器。LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY dff ISPORT(clk, d: INSTD_LOGIC; q: OUT STD_LOGIC);END dff;ARCHITECTURE rtl OF dff ISBEGINPROCESS (clk)BEGINIF (clkevent and clk=1) THEN q=d;END IF;END PROCESS ;END rtl;門(mén)閂控制的門(mén)閂控制的IF語(yǔ)句語(yǔ)句選擇控制的選擇控制的IF語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格

4、式為: IF 條件條件 THEN 順序處理語(yǔ)句順序處理語(yǔ)句 l; ELSE 順序處理語(yǔ)句順序處理語(yǔ)句 2; END IF; 2)選擇控制的)選擇控制的IF語(yǔ)句語(yǔ)句設(shè)計(jì)設(shè)計(jì)2選選1的數(shù)據(jù)選擇器。的數(shù)據(jù)選擇器。ARCHITECTURE rtl OF mux2_1 ISBEGINPROCESS(a,b,sel)BEGINIF (sel=1) THENc=a;ELSEc=b;END IF; END PROCESS;END rtl;多選擇控制的多選擇控制的IF語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為: IF 條件條件1 THEN 順序處理語(yǔ)句順序處理語(yǔ)句1; ELSIF 條件條件2 THEN 順序處理語(yǔ)句順序

5、處理語(yǔ)句2; ELSIF 條件條件n THEN 順序處理語(yǔ)句順序處理語(yǔ)句n; ELSE 順序處理語(yǔ)句順序處理語(yǔ)句n+l; END IF;3) 多選擇控制的多選擇控制的IF語(yǔ)句語(yǔ)句 設(shè)計(jì)設(shè)計(jì)4選選1的多路選擇器的多路選擇器ENTITY mux4_1 ISPORT(d : INSTD_LOGIC_VECTOR(3 DOWNTO 0); sel : INSTD_LOGIC_VECTOR(1 DOWNTO 0); y : OUT STD_LOGIC);END mux4_1;ARCHITECTURE rtl OF mux4_1 ISBEGINPROCESS (d, sel)BEGINIF (sel=00

6、) THEN y=d(0);ELSIF (sel=01) THEN y=d(1);ELSIF (sel=10) THEN y=d(2);ELSE y順序處理語(yǔ)句;順序處理語(yǔ)句; WHEN 選擇值選擇值=順序處理語(yǔ)句;順序處理語(yǔ)句; END CASE; CASE語(yǔ)句是無(wú)序的,所有表達(dá)式的值都是語(yǔ)句是無(wú)序的,所有表達(dá)式的值都是并行處理并行處理的;的; CASE語(yǔ)句所有表達(dá)式的值都語(yǔ)句所有表達(dá)式的值都必須窮舉必須窮舉 ,且,且不能重復(fù)不能重復(fù) , 不能窮盡的值用不能窮盡的值用 OTHERS 表示表示 ; CASE語(yǔ)句中語(yǔ)句中至少要包含一個(gè)條件語(yǔ)句至少要包含一個(gè)條件語(yǔ)句。 對(duì)對(duì)任意項(xiàng)任意項(xiàng) 輸入輸入的

7、條件表達(dá)式,的條件表達(dá)式, VHDL不支持。不支持。 (即條件表達(dá)式的值不能含有(即條件表達(dá)式的值不能含有X) 設(shè)計(jì)設(shè)計(jì)4選選1的多路選擇器的多路選擇器ENTITY mux4_1 ISPORT(d : INSTD_LOGIC_VECTOR(3 DOWNTO 0); sel : INSTD_LOGIC_VECTOR(1 DOWNTO 0); y : OUT STD_LOGIC);END mux4_1;ARCHITECTURE rtl OF mux4_1 ISBEGINPROCESS (d, sel)BEGINCASE sel IS WHEN 00”=yyyyy= X;END CASE;END P

8、ROCESS;END rtl;lLOOP語(yǔ)句的書(shū)寫(xiě)格式一般有兩種:語(yǔ)句的書(shū)寫(xiě)格式一般有兩種:1)FOR 循環(huán)變量形成的循環(huán)變量形成的LOOP語(yǔ)句,其一般格式為:語(yǔ)句,其一般格式為: 循環(huán)標(biāo)號(hào)循環(huán)標(biāo)號(hào):FOR 循環(huán)變量循環(huán)變量 IN 循環(huán)范圍循環(huán)范圍 LOOP 順序處理語(yǔ)句;順序處理語(yǔ)句; END LOOP 循環(huán)標(biāo)號(hào)循環(huán)標(biāo)號(hào); 3、LOOP語(yǔ)句語(yǔ)句2)FOR 循環(huán)變量形成的循環(huán)變量形成的LOOP語(yǔ)句,其一般格式為:語(yǔ)句,其一般格式為: 循環(huán)標(biāo)號(hào)循環(huán)標(biāo)號(hào):WHILE 循環(huán)控制條件循環(huán)控制條件 LOOP 順序處理語(yǔ)句;順序處理語(yǔ)句; END LOOP 循環(huán)標(biāo)號(hào)循環(huán)標(biāo)號(hào); 循環(huán)變量循環(huán)變量是一個(gè)臨時(shí)變

9、量,屬于局部變量。循環(huán)變量只能作是一個(gè)臨時(shí)變量,屬于局部變量。循環(huán)變量只能作為賦值源,不能被賦值,它由為賦值源,不能被賦值,它由LOOP語(yǔ)句語(yǔ)句自動(dòng)定義。自動(dòng)定義。 循環(huán)變量循環(huán)變量是一個(gè)整數(shù)變量,不用事先說(shuō)明。是一個(gè)整數(shù)變量,不用事先說(shuō)明。 循環(huán)范圍循環(huán)范圍是指循環(huán)變量在循環(huán)中依次取值的范圍。是指循環(huán)變量在循環(huán)中依次取值的范圍。ENTITY P_CHECK ISPORT (A:IN STD_LOGIC_VECTOR(7 DOWNTO 0 ); Y:OUT STD_LOGIC);END P_CHECK;ARCHITECTURE ART OF P_CHECK ISSIGNAl TMP: STD_

10、LOGIC;BEGIN PROCESS(A) BEGIN TMP =1; FOR N IN 0 TO 7 LOOP TMP = TMP XOR A(N); END LOOP; Y= TMP; END PROCESS;END ART;FORLOOP語(yǔ)句的使用語(yǔ)句的使用(8位奇偶校驗(yàn)邏輯電路位奇偶校驗(yàn)邏輯電路的的VHDL程序程序)ENTITY P_CHECK ISPORT (A:IN STD_LOGIC_VECTOR(7 DOWNTO 0 ); Y:OUT STD_LOGIC);END P_CHECK;ARCHITECTURE ART OF P_CHECK ISBEGIN PROCESS(A) B

11、EGINVARIABLE TMP: STD_LOGIC; TMP :=1; FOR N IN 0 TO 7 LOOP TMP := TMP XOR A(N); END LOOP; Y= TMP; END PROCESS;END ART;FORLOOP語(yǔ)句的使用語(yǔ)句的使用(8位奇偶校驗(yàn)邏輯電路位奇偶校驗(yàn)邏輯電路的的VHDL程序程序)舉例:舉例:ENTITY LOOPEXP IS PORT (A: IN BIT_VECTOR (0 TO 3); OUT1:OUT BIT_VECTOR(0 TO 3);END ENTITY LOOPEXP;ARCHITECTURE ART OF LOOPEXP IS

12、BEGINPROCESS (A) ISVARIABLE B: BIT;BEGINB:=1; FOR I IN 0 TO 3 LOOP B:=A(3-I) AND B; OUT1(I)F);S3:B(k+8):=0;K:=K+1;NEXT LOOP L2;NEXT LOOP L1;舉例:舉例:l在在LOOP語(yǔ)句中,用語(yǔ)句中,用語(yǔ)句語(yǔ)句跳出并結(jié)束跳出并結(jié)束整個(gè)循環(huán)狀整個(gè)循環(huán)狀態(tài)(而不是僅跳出本次循環(huán)),繼續(xù)執(zhí)行態(tài)(而不是僅跳出本次循環(huán)),繼續(xù)執(zhí)行LOOP語(yǔ)句后語(yǔ)句后繼的語(yǔ)句。繼的語(yǔ)句。EXIT語(yǔ)句的書(shū)寫(xiě)格式為: 標(biāo)號(hào) 條件; 當(dāng)當(dāng) “條件條件”為真時(shí),跳出為真時(shí),跳出至程序標(biāo)號(hào)處。至程序標(biāo)號(hào)處。

13、如果如果后面無(wú)后面無(wú)“標(biāo)號(hào)標(biāo)號(hào)”和和“ 條件條件”,則程序執(zhí),則程序執(zhí)行到行到 該語(yǔ)句時(shí)即無(wú)條件從該語(yǔ)句時(shí)即無(wú)條件從語(yǔ)句跳出,結(jié)束循環(huán)狀態(tài),繼語(yǔ)句跳出,結(jié)束循環(huán)狀態(tài),繼 續(xù)執(zhí)行后繼語(yǔ)句。續(xù)執(zhí)行后繼語(yǔ)句。 5、EXIT語(yǔ)句語(yǔ)句SIGNA A,B:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNA A_LESS _B:BOOLEAN;A_LESS_THEN_B=FLASE; -設(shè)初始值設(shè)初始值FOR I IN 1 DOWNTO 0 LOOPIF (A(I)=1 AND B(I)=0) THENA_LESS _B=FALSE;EXIT;ELSIF (A(I)=0 AND B(I)=

14、1) THENA_LESS _B=TRUE; -ABEXIT; ELSE NULL;END IF;END LOOP; -當(dāng)當(dāng)I=1時(shí)返回時(shí)返回LOOP語(yǔ)句繼續(xù)比較語(yǔ)句繼續(xù)比較舉例:舉例:6、WAIT語(yǔ)句語(yǔ)句WAIT語(yǔ)句有以下四種形式:語(yǔ)句有以下四種形式: WAIT -無(wú)限等待無(wú)限等待 WAIT ON 敏感信號(hào)表;敏感信號(hào)表; -敏感信號(hào)量變化,進(jìn)程啟動(dòng)敏感信號(hào)量變化,進(jìn)程啟動(dòng) WAIT UNTIL 條件表達(dá)式;條件表達(dá)式; -表達(dá)式成立時(shí),進(jìn)程啟動(dòng)表達(dá)式成立時(shí),進(jìn)程啟動(dòng) WAIT FOR 時(shí)間表達(dá)式;時(shí)間表達(dá)式; -時(shí)間到,進(jìn)程啟動(dòng)時(shí)間到,進(jìn)程啟動(dòng)2. 敏感信號(hào)等待語(yǔ)句,即敏感信號(hào)一旦敏感信號(hào)

15、等待語(yǔ)句,即敏感信號(hào)一旦發(fā)生變化將結(jié)束掛起,再次啟動(dòng)進(jìn)程發(fā)生變化將結(jié)束掛起,再次啟動(dòng)進(jìn)程。VHDL規(guī)定,已列出敏感信號(hào)表的規(guī)定,已列出敏感信號(hào)表的進(jìn)程中不能使用任何形式的進(jìn)程中不能使用任何形式的WAIT語(yǔ)語(yǔ)句。一般,句。一般, WAIT語(yǔ)句可用于進(jìn)程中語(yǔ)句可用于進(jìn)程中的任何地方。的任何地方。3. 條件等待語(yǔ)句。被此語(yǔ)句掛起的進(jìn)程需條件等待語(yǔ)句。被此語(yǔ)句掛起的進(jìn)程需滿足如下兩個(gè)條件才能結(jié)束掛起狀態(tài),滿足如下兩個(gè)條件才能結(jié)束掛起狀態(tài),重新啟動(dòng):重新啟動(dòng):條件表達(dá)式中所含信號(hào)發(fā)生了變化;條件表達(dá)式中所含信號(hào)發(fā)生了變化;此信號(hào)改變后,且滿足此信號(hào)改變后,且滿足WAIT語(yǔ)句所設(shè)語(yǔ)句所設(shè)的條件。的條件。

16、兩條件缺一不可,且必須依照以上順序兩條件缺一不可,且必須依照以上順序完成。完成。4. 超時(shí)等待語(yǔ)句(此語(yǔ)句不超時(shí)等待語(yǔ)句(此語(yǔ)句不可綜合,故不再討論)??删C合,故不再討論)。例例 1:利用利用WAIT語(yǔ)句設(shè)計(jì)與非門(mén)電路。語(yǔ)句設(shè)計(jì)與非門(mén)電路。 nandx: PROCESS BEGIN y=a NAND b; WAIT ON a,b;END PROCESS nandx;PROCESS ISBEGINWAIT UNTI CLK= 1;AVE=A;WAIT UNTI CLK= 1;AVE=AVE+A;WAIT UNTI CLK= 1;AVE=AVE+A;WAIT UNTI CLK= 1;AVE=(AV

17、E+A)/4;END PROCESS;四個(gè)脈沖求四個(gè)四個(gè)脈沖求四個(gè)數(shù)的平均值數(shù)的平均值舉例:舉例:PROCESS ISBEGIN L1: LOOP WAIT UNTI CLOCK=1 AND CLOCKEVENT ; -等待時(shí)鐘信號(hào)等待時(shí)鐘信號(hào) NEXT L1 WHEN (RST=1); -檢測(cè)復(fù)位信號(hào)檢測(cè)復(fù)位信號(hào)RST X=A; -無(wú)復(fù)位信號(hào),執(zhí)行賦值操作無(wú)復(fù)位信號(hào),執(zhí)行賦值操作WAIT UNTI CLOCK=1AND CLOCKEVENT; -等待時(shí)鐘信號(hào)等待時(shí)鐘信號(hào) NEXT L1 WHEN (RST=1); -檢測(cè)復(fù)位信號(hào)檢測(cè)復(fù)位信號(hào)RST Y=B; -無(wú)復(fù)位信號(hào),執(zhí)行賦值操作無(wú)復(fù)位信

18、號(hào),執(zhí)行賦值操作 END LOOP L1;END PROCESS; 舉例:舉例:lRETURN語(yǔ)句語(yǔ)句 RETURN語(yǔ)句語(yǔ)句是一段子程序結(jié)束后,返回主程序的控制語(yǔ)句。是一段子程序結(jié)束后,返回主程序的控制語(yǔ)句。 返回語(yǔ)句的兩種語(yǔ)法格式:RETURN; RETURN 條件表達(dá)式條件表達(dá)式; RETURN 用于函數(shù)和過(guò)程體內(nèi),用來(lái)結(jié)束最內(nèi)層函數(shù)或過(guò)程體用于函數(shù)和過(guò)程體內(nèi),用來(lái)結(jié)束最內(nèi)層函數(shù)或過(guò)程體的執(zhí)行。的執(zhí)行。 第一種語(yǔ)法格式只能用于過(guò)程,它只是結(jié)束過(guò)程,并不返回任第一種語(yǔ)法格式只能用于過(guò)程,它只是結(jié)束過(guò)程,并不返回任何值。何值。 用于函數(shù)中的用于函數(shù)中的RETURN語(yǔ)句必須有條件表達(dá)式,并且必須

19、返回語(yǔ)句必須有條件表達(dá)式,并且必須返回一個(gè)值。每一個(gè)函數(shù)一個(gè)值。每一個(gè)函數(shù)必須至少包含一個(gè)返回語(yǔ)句必須至少包含一個(gè)返回語(yǔ)句,也可以擁有多個(gè),也可以擁有多個(gè)返回語(yǔ)句,但在函數(shù)調(diào)用時(shí)返回語(yǔ)句,但在函數(shù)調(diào)用時(shí)只有其中一個(gè)返回語(yǔ)句可以將值帶出只有其中一個(gè)返回語(yǔ)句可以將值帶出。 PROCEDURE RS(SIGNAL S,R:IN STD_LOGIC; SIGNAL Q,NQ:INOUT STD_LOGIC) ISBEGINIF(S=1AND R=1)THENREPORT“FORBIDDEN STATE:S AND R ARE EQUA TO1”;RETURN;ELSE Q=S AND NQ AFTER

20、 5 ns; NQ TMP := REGA AND REGB; WHEN “101”= TMP := REGA OR REGB; WHEN “110”= TMP := NOT REGA; WHEN OTHERS = NULL;END CASE;舉例:舉例: 斷言斷言(ASSERT)語(yǔ)句只能在語(yǔ)句只能在VHDL仿真器中使用,仿真器中使用,綜合器通常忽略此語(yǔ)句。綜合器通常忽略此語(yǔ)句。ASSERT語(yǔ)句判斷指定的條語(yǔ)句判斷指定的條件是否為件是否為T(mén)RUE,如果為,如果為FALSE則報(bào)告錯(cuò)誤。則報(bào)告錯(cuò)誤。ASSERT NOT (S=1 AND R=1) REPORT BOTH VALUES OF SIG

21、NALS S AND R ARE EQUA TO1 SEVERITY ERROR;斷言語(yǔ)句斷言語(yǔ)句語(yǔ)句格式是:語(yǔ)句格式是: ASSERT 條件表達(dá)式條件表達(dá)式REPORT 字符串字符串SEVERITY 錯(cuò)誤等級(jí)錯(cuò)誤等級(jí) SEVERITY_LEVEL;NOTE:可以用在仿真時(shí)傳遞信息。可以用在仿真時(shí)傳遞信息。WARNING:用在非平常的情形,此時(shí)仿真過(guò)程仍可繼:用在非平常的情形,此時(shí)仿真過(guò)程仍可繼續(xù),但結(jié)果可能是不可預(yù)知的。續(xù),但結(jié)果可能是不可預(yù)知的。ERROR:用在仿真過(guò)程繼續(xù)執(zhí)行下去已經(jīng)不可能的情況。:用在仿真過(guò)程繼續(xù)執(zhí)行下去已經(jīng)不可能的情況。FAILURE:用在發(fā)生了致命錯(cuò)誤,仿真過(guò)程必須

22、立即停:用在發(fā)生了致命錯(cuò)誤,仿真過(guò)程必須立即停止的情況。止的情況。錯(cuò)誤等級(jí)錯(cuò)誤等級(jí)REPORT語(yǔ)句類似于語(yǔ)句類似于ASSERT語(yǔ)句,區(qū)別是它沒(méi)有條件。其語(yǔ)句,區(qū)別是它沒(méi)有條件。其語(yǔ)句格式如下:語(yǔ)句格式如下: REPORT 字符串;字符串; REPORT字符串字符串 SEVERITY SEVERITY_LEVEL;WHILE COUNTER 50 THEN REPORT THE COUNTER IS OVER 50;END IF;END LOOP;REPORT語(yǔ)句語(yǔ)句 決斷決斷(RESOLUTION)函數(shù)定義了當(dāng)一個(gè)信號(hào)有多函數(shù)定義了當(dāng)一個(gè)信號(hào)有多個(gè)驅(qū)動(dòng)源時(shí),以什么樣的方式將這些驅(qū)動(dòng)源的值決斷個(gè)

23、驅(qū)動(dòng)源時(shí),以什么樣的方式將這些驅(qū)動(dòng)源的值決斷為一個(gè)單一的值。決斷函數(shù)用于聲明一個(gè)決斷信號(hào)。為一個(gè)單一的值。決斷函數(shù)用于聲明一個(gè)決斷信號(hào)。PACKAGE RES_PACK IS FUNCTION RES_FUNC(DATA: IN BIT_VECTOR) RETURN BIT: SUBTYPE RESOLVED_BIT IS RES_FUNC BIT;END PACKAGE RES_PACK; PACKAGE BODY RES_PACK IS決斷函數(shù)決斷函數(shù)FUNCTION RES_FUNC(DATA:IN BIT_VECTOR) RETURN BIT ISBEGIN FOR I IN DATA

24、 RANGE LOOP IF DATA(I)=0THEN RETURN 0; END IF;END LOOP;RETURN 1;END FUNCTION RES_FUNC;END PACKAGE BODY RES_PACK;USE WORK.RES_PACK.ALL;ENTITY WAND_VHD ISPORT(X,Y:IN BIT; Z:OUT RESOLVED_BIT);END ENTITY WAND_VHDL;ARCHITECTURE ART OF WAND_VHD ISBEGIN Z=X; Z OUTPUT OUTPUT OUTPUT OUTPUTL-TIME,GB2=S-TIME)

25、-局部端口參量設(shè)定局部端口參量設(shè)定 PORT (PB1:IN BIT;PB2:INOUT BIT); -塊結(jié)構(gòu)中局部端口定義塊結(jié)構(gòu)中局部端口定義POTR MAP(PB1=B1,PB2=A1); -塊結(jié)構(gòu)端口連接說(shuō)明塊結(jié)構(gòu)端口連接說(shuō)明CONSTANT DELAY:TIME:=1 ms; -局部常數(shù)定義局部常數(shù)定義SIGNA S1:BIT; -局部信號(hào)定義局部信號(hào)定義BEGINS1=PB1 AFTER DELAY; PB2=S1 AFTER GB1,B1 AFTER GB2; END BLOCK BLK1; END ARCHITECTURE ART;2)條件信號(hào)代入語(yǔ)句條件信號(hào)賦值語(yǔ)句的格式為:

26、目標(biāo)信號(hào)目標(biāo)信號(hào) = 表達(dá)式表達(dá)式1 WHEN 條件條件1 ELSE 表達(dá)式表達(dá)式2 WHEN 條件條件2 ELSE 表達(dá)式表達(dá)式n; 3.5.3 并行信號(hào)賦值語(yǔ)句并行信號(hào)賦值語(yǔ)句1)簡(jiǎn)單信號(hào)賦值語(yǔ)句信號(hào)賦值目標(biāo)信號(hào)賦值目標(biāo)=表達(dá)式;表達(dá)式; 每條信號(hào)賦值語(yǔ)句相當(dāng)于一個(gè)進(jìn)程,語(yǔ)句中任何每條信號(hào)賦值語(yǔ)句相當(dāng)于一個(gè)進(jìn)程,語(yǔ)句中任何信號(hào)的變化,將啟動(dòng)相關(guān)并行語(yǔ)句的賦值操作。信號(hào)的變化,將啟動(dòng)相關(guān)并行語(yǔ)句的賦值操作。3)選擇信號(hào)賦值語(yǔ)句選擇信號(hào)賦值語(yǔ)句的格式為: WITH 條件表達(dá)式條件表達(dá)式 SELECT 目標(biāo)信號(hào)目標(biāo)信號(hào) = 表達(dá)式表達(dá)式1 WHEN 條件條件1, 表達(dá)式表達(dá)式2 WHEN 條件條

27、件2, 表達(dá)式表達(dá)式n WHEN 條件條件n; ENTITY DECODER IS PORT(A,B,C: IN STD_LOGIC; DATA1,DATA2:IN STD_LOGIC; DATAOUT: OUT STD_LOGIC);END ENTITY DECODER;ARCHITECTURE ART OF DECODER ISBEGINSIGNA INSTRUCTION:STD_LOGIC_VECTOR(2 DOWNTO 0);INSTRUCTION =C & B & A; WITH INSTRUCTION SELECT DATAOUT =DATA1 AND DATA2

28、WHEN “000”, DATA1 OR DATA2 WHEN 001, DATA1 NAND DATA2 WHEN 010, DATA1 NOR DATA2 WHEN 011, DATA1 XOR DATA2 WHEN 100, DATA1 NXOR DATA2 WHEN 101, Z WHEN OTHERS; -當(dāng)不滿足條件時(shí),輸出呈高阻態(tài)當(dāng)不滿足條件時(shí),輸出呈高阻態(tài)END ARCHITECTURE ART;3.5.4 并行過(guò)程調(diào)用語(yǔ)句并行過(guò)程調(diào)用語(yǔ)句 并行過(guò)程調(diào)用語(yǔ)句可以作為一個(gè)并行語(yǔ)句直接出現(xiàn)并行過(guò)程調(diào)用語(yǔ)句可以作為一個(gè)并行語(yǔ)句直接出現(xiàn)在結(jié)構(gòu)體或塊語(yǔ)句中。并行過(guò)程調(diào)用語(yǔ)句的功能等效在結(jié)

29、構(gòu)體或塊語(yǔ)句中。并行過(guò)程調(diào)用語(yǔ)句的功能等效于包含了同一個(gè)過(guò)程調(diào)用語(yǔ)句的進(jìn)程。于包含了同一個(gè)過(guò)程調(diào)用語(yǔ)句的進(jìn)程。PROCEDURE CHECK(SIGNA A:IN STD_LOGIC_VECTOR; -在調(diào)用時(shí)再定位寬 SIGNAN ERROR:OUT BOOLEAN) IS VARIABLE FOUND_ONE:BOOLEAN:=FALSE; -設(shè)初始值例例3.5.16:BEGINFOR I IN ARANGE LOOP -對(duì)位矢量對(duì)位矢量A的所有的位元素進(jìn)行循環(huán)檢測(cè)的所有的位元素進(jìn)行循環(huán)檢測(cè)IF A(I)=1THEN -發(fā)現(xiàn)發(fā)現(xiàn)A中有中有1IF FOUND_ONE THEN -FOUND_

30、ONE為為T(mén)RUE,則表明發(fā)現(xiàn)了一個(gè)以上的,則表明發(fā)現(xiàn)了一個(gè)以上的1 ERROR=TRUE; -發(fā)現(xiàn)了一個(gè)以上的發(fā)現(xiàn)了一個(gè)以上的1,令,令FOUND_ONE為為T(mén)RUE RETURN; -結(jié)束過(guò)程結(jié)束過(guò)程END IF;FOUND_ONE:=TRUE; -在在A中已發(fā)現(xiàn)了一個(gè)中已發(fā)現(xiàn)了一個(gè)1END IF; END LOOP; -再測(cè)再測(cè)A中的其他位中的其他位ERROR 實(shí)參);實(shí)參);其中,其中,實(shí)參實(shí)參是設(shè)計(jì)中連接到端口的實(shí)際信號(hào);是設(shè)計(jì)中連接到端口的實(shí)際信號(hào);形參形參是指元件的是指元件的對(duì)外接口信號(hào)。對(duì)外接口信號(hào)。 例如:例如:u0: xnor2 PORT MAP (in1=a(0), in

31、2=b(0), out=s(0); u1: xnor2 PORT MAP (in1=a(1), in2=b(1), out=s(1); u2: xnor2 PORT MAP (in1=a(2), in2=b(2), out=s(2); u3: xnor2 PORT MAP (in1=a(3), in2=b(3), out=s(3); u4: and4 PORT MAP(in1=s(0), in2=s(1), in3=s(2), in4=s(3),out=y);GENERATE語(yǔ)句語(yǔ)句用來(lái)產(chǎn)生多個(gè)相同的結(jié)構(gòu),適合于生成存儲(chǔ)用來(lái)產(chǎn)生多個(gè)相同的結(jié)構(gòu),適合于生成存儲(chǔ)器陣列和寄存器陣列。器陣列和寄存器陣

32、列。 GENERATE語(yǔ)句語(yǔ)句有兩種格式:有兩種格式:格式1:標(biāo)號(hào)名:標(biāo)號(hào)名:FOR 變量變量 IN 范圍范圍 GENERATE 并發(fā)處理語(yǔ)句并發(fā)處理語(yǔ)句; END GENERATE 標(biāo)號(hào)名標(biāo)號(hào)名; FOR-GENERATE語(yǔ)句在形式上與語(yǔ)句在形式上與FOR-LOOP語(yǔ)句相象,語(yǔ)句相象,但結(jié)構(gòu)中前者是并發(fā)處理,后者是順序處理。故但結(jié)構(gòu)中前者是并發(fā)處理,后者是順序處理。故FOR-GENERATE語(yǔ)句結(jié)構(gòu)中不能使用語(yǔ)句結(jié)構(gòu)中不能使用EXIT和和NEXT語(yǔ)句。語(yǔ)句。 在在FOR-GENERATE語(yǔ)句中,變量語(yǔ)句中,變量 i 不需要事先定義。不需要事先定義。3.5.6 GENERATE語(yǔ)句語(yǔ)句格式2:

33、 標(biāo)號(hào)名:標(biāo)號(hào)名:IF 條件條件 GENERATE 并發(fā)處理語(yǔ)句并發(fā)處理語(yǔ)句; END GENERATE 標(biāo)號(hào)名標(biāo)號(hào)名 ; IF-GENERATE語(yǔ)句在形式上與語(yǔ)句在形式上與IF語(yǔ)句語(yǔ)句相象,但結(jié)構(gòu)中沒(méi)有相象,但結(jié)構(gòu)中沒(méi)有ELSE項(xiàng)。項(xiàng)。 IF-GENERATE語(yǔ)句是并發(fā)處理的,只有當(dāng)條件為語(yǔ)句是并發(fā)處理的,只有當(dāng)條件為“真真”時(shí)時(shí)才執(zhí)行結(jié)構(gòu)內(nèi)的語(yǔ)句才執(zhí)行結(jié)構(gòu)內(nèi)的語(yǔ)句。OENLATCHLATCHLATCHLATCHLATCHLATCHLATCHLATCHQQQQQQQQQQQQQQQQENADDENADDDENADDENADDENADDENADDENADDENADGD8D7D6D5D4D3D2D1OT11OT11OT11OT11OT11OT11OT11Q8Q7Q6Q5Q4Q3Q2Q1OT11-1位鎖存器位鎖存器LATCH的邏輯描述的邏輯描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論