版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1VHDL語言的并行描述語句語言的并行描述語句 并行語句又稱并發(fā)語句,是最具有并行語句又稱并發(fā)語句,是最具有VHDLVHDL特色的特色的語句結(jié)構(gòu)。語句結(jié)構(gòu)。 并行語句具有多種語言格式,各并行語句在結(jié)并行語句具有多種語言格式,各并行語句在結(jié)構(gòu)體中的執(zhí)行是同步進(jìn)行的,或者說是并發(fā)運(yùn)行的,構(gòu)體中的執(zhí)行是同步進(jìn)行的,或者說是并發(fā)運(yùn)行的,其執(zhí)行方式與書寫的順序無關(guān)。其執(zhí)行方式與書寫的順序無關(guān)。 同一結(jié)構(gòu)中的各并行語句之間可以是相互獨(dú)立同一結(jié)構(gòu)中的各并行語句之間可以是相互獨(dú)立的、不相關(guān)的,也可以進(jìn)行信息傳遞。的、不相關(guān)的,也可以進(jìn)行信息傳遞。 在并行語句內(nèi)部可以嵌套其他語句,嵌套的語在并行語句內(nèi)部可以嵌套
2、其他語句,嵌套的語句可以并行執(zhí)行,也可以順序執(zhí)行。句可以并行執(zhí)行,也可以順序執(zhí)行。2VHDL語言的并行描述語句語言的并行描述語句 在在VHDLVHDL語言中,并行語句主要有六種:語言中,并行語句主要有六種: 進(jìn)程語句進(jìn)程語句 塊語句塊語句 并行信號賦值語句并行信號賦值語句 子程序和并行過程調(diào)用語句子程序和并行過程調(diào)用語句 元件例化語句元件例化語句 生成語句生成語句3 進(jìn)程(進(jìn)程(PROCESSPROCESS)語句是在結(jié)構(gòu)體中用來描述)語句是在結(jié)構(gòu)體中用來描述特定電路功能的程序模塊,它提供了一種用順序語特定電路功能的程序模塊,它提供了一種用順序語句描述電路邏輯功能的方法。句描述電路邏輯功能的方法
3、。 一個結(jié)構(gòu)體中可以有多個并行運(yùn)行的進(jìn)程結(jié)構(gòu),一個結(jié)構(gòu)體中可以有多個并行運(yùn)行的進(jìn)程結(jié)構(gòu),而每個進(jìn)程結(jié)構(gòu)的內(nèi)部由一組順序語句組成。而每個進(jìn)程結(jié)構(gòu)的內(nèi)部由一組順序語句組成。 進(jìn)程語句結(jié)構(gòu)具有并行執(zhí)行和順序處理的雙重進(jìn)程語句結(jié)構(gòu)具有并行執(zhí)行和順序處理的雙重特性。特性。 4 (1 1)進(jìn)程語句的結(jié)構(gòu))進(jìn)程語句的結(jié)構(gòu) 進(jìn)程標(biāo)號進(jìn)程標(biāo)號: PROCESS (敏感信號參數(shù)表敏感信號參數(shù)表) IS進(jìn)程說明部分進(jìn)程說明部分 BEGIN順序描述語句順序描述語句 END PROCESS 進(jìn)程標(biāo)號進(jìn)程標(biāo)號; 格式:格式: 當(dāng)敏感信號表中的某個信號發(fā)生變化時,立即當(dāng)敏感信號表中的某個信號發(fā)生變化時,立即啟動進(jìn)程語句,將
4、進(jìn)程中的順序語句按順序循環(huán)執(zhí)啟動進(jìn)程語句,將進(jìn)程中的順序語句按順序循環(huán)執(zhí)行,直到敏感信號穩(wěn)定不變?yōu)橹?。行,直到敏感信號穩(wěn)定不變?yōu)橹埂?5 (2 2)進(jìn)程語句的組成)進(jìn)程語句的組成 進(jìn)程說明部分進(jìn)程說明部分 進(jìn)程語句的結(jié)構(gòu)由三部分組成,即進(jìn)程說明部進(jìn)程語句的結(jié)構(gòu)由三部分組成,即進(jìn)程說明部分、順序描述語句部分和敏感信號參數(shù)表。分、順序描述語句部分和敏感信號參數(shù)表。 用于定義該進(jìn)程所需要的局部數(shù)據(jù)環(huán)境。如:用于定義該進(jìn)程所需要的局部數(shù)據(jù)環(huán)境。如:數(shù)據(jù)類型、常數(shù)、屬性、子程序等。數(shù)據(jù)類型、常數(shù)、屬性、子程序等。 注意:注意:不能在進(jìn)程內(nèi)部定義信號和共享變量,不能在進(jìn)程內(nèi)部定義信號和共享變量,信號只能在
5、結(jié)構(gòu)體說明中定義。信號只能在結(jié)構(gòu)體說明中定義。 6 (2 2)進(jìn)程語句的組成)進(jìn)程語句的組成 順序描述語句部分順序描述語句部分 是一段順序執(zhí)行語句,用于描述該進(jìn)程的行為。是一段順序執(zhí)行語句,用于描述該進(jìn)程的行為。 信號賦值語句:信號賦值語句:在進(jìn)程中將計算或處理的結(jié)果賦在進(jìn)程中將計算或處理的結(jié)果賦值給信號。值給信號。 變量賦值語句:變量賦值語句:在進(jìn)程中以變量的形式存儲計算在進(jìn)程中以變量的形式存儲計算的中間值。的中間值。 子程序調(diào)用語句:子程序調(diào)用語句:對已定義的過程和函數(shù)進(jìn)行調(diào)對已定義的過程和函數(shù)進(jìn)行調(diào)用,并參與計算。用,并參與計算。7 (2 2)進(jìn)程語句的組成)進(jìn)程語句的組成 順序描述語句
6、部分順序描述語句部分 進(jìn)程啟動語句:進(jìn)程啟動語句:當(dāng)當(dāng)PROCESSPROCESS語句未列出任何敏感語句未列出任何敏感信號時,進(jìn)程的啟動可通過信號時,進(jìn)程的啟動可通過WAITWAIT語句來實現(xiàn)。語句來實現(xiàn)。 順序描述語句:順序描述語句:包括包括IFIF語句、語句、CASECASE語句、語句、LOOPLOOP語語句和句和NULLNULL語句。語句。 進(jìn)程跳出語句:進(jìn)程跳出語句:包括包括NEXTNEXT語句和語句和EXITEXIT語句。語句。 敏感信號參數(shù)表敏感信號參數(shù)表 用于啟動本進(jìn)程可讀入的信號名。用于啟動本進(jìn)程可讀入的信號名。8 【例例1 1】用進(jìn)程語句描述異步清零計數(shù)器。用進(jìn)程語句描述異步
7、清零計數(shù)器。 異步清零方式與時鐘信號異步清零方式與時鐘信號clkclk無關(guān),當(dāng)清零端無關(guān),當(dāng)清零端clr=0clr=0時,時,計數(shù)狀態(tài)計數(shù)狀態(tài)Q=0Q=0;當(dāng);當(dāng)clr=1clr=1時,計數(shù)器為計數(shù)狀態(tài)。時,計數(shù)器為計數(shù)狀態(tài)。 PROCESSPROCESS ( ( clk, clrclk, clr ) ) BEGINBEGIN IFIF clr clr =0 0 THENTHEN Q Q= X“00”X“00”; ELSIF ELSIF ( ( clkclk =11ANDAND clkclkEVENTEVENT ) ) THENTHEN Q Q = Q Q + + 1 1; END IFEND
8、 IF; END PROCESSEND PROCESS;9 【例例1 1】用進(jìn)程語句描述異步清零計數(shù)器。用進(jìn)程語句描述異步清零計數(shù)器。 若計數(shù)器采用同步清零,則敏感表中可無若計數(shù)器采用同步清零,則敏感表中可無clrclr信號,此信號,此時進(jìn)程如下:時進(jìn)程如下: PROCESSPROCESS ( ( clk)clk) BEGINBEGIN IFIF ( ( clkclk =11ANDAND clkclkEVENTEVENT ) ) THENTHEN IF IF clrclr =0 0 THENTHEN Q Q= X“00”X“00”; ELSE ELSE Q Q = Q Q + + 1 1; E
9、ND IFEND IF; END IF END IF; END PROCESSEND PROCESS;10 塊(塊(BLOCKBLOCK)語句可以將一些實現(xiàn)某一特定功)語句可以將一些實現(xiàn)某一特定功能的并行語句組合在一起,其主要目的是利用多個能的并行語句組合在一起,其主要目的是利用多個塊語句結(jié)構(gòu)將一個復(fù)雜的結(jié)構(gòu)體劃分成幾個不同功塊語句結(jié)構(gòu)將一個復(fù)雜的結(jié)構(gòu)體劃分成幾個不同功能的模塊,使復(fù)雜的結(jié)構(gòu)體結(jié)構(gòu)分明、功能明確,能的模塊,使復(fù)雜的結(jié)構(gòu)體結(jié)構(gòu)分明、功能明確,使程序的編排更加清晰、更有層次,改善并行語句使程序的編排更加清晰、更有層次,改善并行語句的結(jié)構(gòu)和可讀性,便于程序的編寫、調(diào)試和查錯。的結(jié)構(gòu)和
10、可讀性,便于程序的編寫、調(diào)試和查錯。 11 (1 1)塊語句的格式塊語句的格式 塊語句是將結(jié)構(gòu)體中并行語句進(jìn)行組合的一種方法。塊語句是將結(jié)構(gòu)體中并行語句進(jìn)行組合的一種方法。 塊標(biāo)號:塊標(biāo)號: BLOCK 說明語句說明語句 BEGIN 并行語句并行語句 END BLOCK 塊標(biāo)號;塊標(biāo)號; 格式:格式: 說明語句:說明語句:主要包括接口說明和類屬說明等,用來定義塊主要包括接口說明和類屬說明等,用來定義塊內(nèi)局部信號、數(shù)據(jù)類型、元件和子程序。內(nèi)局部信號、數(shù)據(jù)類型、元件和子程序。 并行語句:并行語句:可以使用所有的并行語句??梢允褂盟械牟⑿姓Z句。 12 (2 2)塊語句的應(yīng)用塊語句的應(yīng)用 利用塊語句
11、可以將結(jié)構(gòu)體中的并行語句劃分成利用塊語句可以將結(jié)構(gòu)體中的并行語句劃分成多個并行方式的子塊,每一個子塊都是一個獨(dú)立的多個并行方式的子塊,每一個子塊都是一個獨(dú)立的設(shè)計實體,具有自己的類屬參數(shù)和界面端口,以及設(shè)計實體,具有自己的類屬參數(shù)和界面端口,以及與外部環(huán)境的銜接描述。與外部環(huán)境的銜接描述。 塊語句還可以實現(xiàn)嵌套,內(nèi)層的塊語句可以使塊語句還可以實現(xiàn)嵌套,內(nèi)層的塊語句可以使用外層塊語句所定義的信號,但外層塊語句不能使用外層塊語句所定義的信號,但外層塊語句不能使用內(nèi)層塊語句定義的信號。用內(nèi)層塊語句定義的信號。 13 運(yùn)算電路的輸入為運(yùn)算電路的輸入為A A和和B B,輸出為,輸出為SUMSUM(八位和
12、)、(八位和)、SUBSUB(八位差),以及進(jìn)位(八位差),以及進(jìn)位COCO和借位和借位BOBO。 【例例2 2】試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法器和一個八位減法器。器和一個八位減法器。 LIBRARYLIBRARY IEEE IEEE; USEUSE IEEE.STD IEEE.STD LOGICLOGIC 1164.1164.ALLALL; USEUSE IEEE.STD_LOGIC_UNSIGNED. IEEE.STD_LOGIC_UNSIGNED.ALLALL; ENTITY ENTITY add_sub add_sub ISIS
13、 PORTPORT(A,B: A,B: ININ STD STD LOGIC_VECTORLOGIC_VECTOR(7 7 DOWNTODOWNTO 0 0);); SUM, SUB:SUM, SUB: OUTOUT STD STD LOGIC_VECTORLOGIC_VECTOR(7 7 DOWNTODOWNTO 0 0);); CO, BO: CO, BO: OUTOUT STD STD LOGICLOGIC);); ENDEND add_sub add_sub;14 【例例2 2】試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法器和一個八位減法器。
14、器和一個八位減法器。 ARCHITECTUREARCHITECTURE example12 example12 OFOF add_sub add_sub IS IS SIGNALSIGNAL AA,BB,SM,SB: STD_LOGIC_VECTOR(8 AA,BB,SM,SB: STD_LOGIC_VECTOR(8 DOWNTODOWNTO 0) 0); BEGINBEGIN AA AA = 0&A&A; BB BB = 0&B&B; WITHWITH s s SELECTSELECT ADDER: ADDER: BLOCKBLOCK BEGINBEGIN S
15、M SM = AAAA + + BBBB; SUM SUM = SM(SM( 7 7 DOWNTODOWNTO 0 0 ) ); CO CO = SM(SM( 8 8 ) ); END BLOCKEND BLOCK ADDER ADDER; - ADDER - ADDER塊行為描述語句塊行為描述語句 - - 運(yùn)算結(jié)果送入運(yùn)算結(jié)果送入SUMSUM - - 進(jìn)位送入進(jìn)位送入COCO15 【例例2 2】試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法試用塊語句設(shè)計一個運(yùn)算電路,包括一個八位加法器和一個八位減法器。器和一個八位減法器。 SUBTRACTER SUBTRACTER: BLOCKBLOCK B
16、EGINBEGIN SB SB = AAAA - - BBBB; SUB SUB = SB(SB( 7 7 DOWNTODOWNTO 0 0 ) ); BO BO = SB(SB( 8 8 ) ); END BLOCKEND BLOCK SUBTRACTER SUBTRACTER; END END example12 example12; - SUBTRACTER - SUBTRACTER塊行為描述語句塊行為描述語句 - - 運(yùn)算結(jié)果送入運(yùn)算結(jié)果送入SUBSUB - - 借位送入借位送入BOBO16 并行信號賦值語句是將一個數(shù)據(jù)或一個表達(dá)式的運(yùn)算結(jié)果并行信號賦值語句是將一個數(shù)據(jù)或一個表達(dá)式的運(yùn)
17、算結(jié)果送給一個數(shù)據(jù)對象送給一個數(shù)據(jù)對象, ,其賦值目標(biāo)必須是信號而不能是變量。其賦值目標(biāo)必須是信號而不能是變量。 信號賦值語句可以位于進(jìn)程語句中,也可以在進(jìn)程語句之信號賦值語句可以位于進(jìn)程語句中,也可以在進(jìn)程語句之外。若出現(xiàn)在進(jìn)程語句結(jié)構(gòu)內(nèi),則屬于順序語句,否則為并外。若出現(xiàn)在進(jìn)程語句結(jié)構(gòu)內(nèi),則屬于順序語句,否則為并行信號賦值語句。行信號賦值語句。 并行信號賦值語句有三種形式:并行信號賦值語句有三種形式: 簡單信號賦值語句簡單信號賦值語句 條件信號賦值語句條件信號賦值語句 選擇信號賦值語句選擇信號賦值語句 17 (1 1)簡單信號賦值語句簡單信號賦值語句 是是VHDLVHDL并行語句結(jié)構(gòu)中最基
18、本的單元。并行語句結(jié)構(gòu)中最基本的單元。 格式:格式: 賦值目標(biāo)賦值目標(biāo)=表達(dá)式;表達(dá)式; 規(guī)則:規(guī)則: 賦值目標(biāo)必須是信號;賦值目標(biāo)必須是信號; 賦值目標(biāo)的數(shù)據(jù)類型必須與表達(dá)式數(shù)據(jù)賦值目標(biāo)的數(shù)據(jù)類型必須與表達(dá)式數(shù)據(jù)類型一致。類型一致。 例如:例如: OUT_1OUT_1 = B B ANDAND C C; 18 (2 2)條件信號賦值語句條件信號賦值語句 該語句與該語句與IFIF語句相類似,根據(jù)不同的賦值條件,語句相類似,根據(jù)不同的賦值條件,選擇表達(dá)式中的值賦給賦值目標(biāo)。選擇表達(dá)式中的值賦給賦值目標(biāo)。 賦值目標(biāo)賦值目標(biāo) = 表達(dá)式表達(dá)式1 WHEN 賦值條件賦值條件1 ELSE 表達(dá)式表達(dá)式2
19、 WHEN 賦值條件賦值條件2 ELSE 表達(dá)式表達(dá)式n; 格式:格式: 在執(zhí)行該語句時,結(jié)構(gòu)體按賦值條件的書寫順在執(zhí)行該語句時,結(jié)構(gòu)體按賦值條件的書寫順序逐條測定,一旦發(fā)現(xiàn)滿足賦值條件,立即將表達(dá)序逐條測定,一旦發(fā)現(xiàn)滿足賦值條件,立即將表達(dá)式的值賦給賦值目標(biāo)。式的值賦給賦值目標(biāo)。19 【例例3 3】用條件賦值語句實現(xiàn)四選一數(shù)據(jù)選擇器。用條件賦值語句實現(xiàn)四選一數(shù)據(jù)選擇器。 ARCHITECTUREARCHITECTURE example5 example5 OFOF mux41 mux41 IS IS SIGNALSIGNAL s: STD_LOGIC_VECTOR( s: STD_LOGIC
20、_VECTOR( 1 1 DOWNTODOWNTO 0 0 ) ); BEGINBEGIN s s = s1&s0s1&s0; y y= d0 d0 WHENWHEN s s =“00” “00” ELSEELSE d1 d1 WHENWHEN s s =“01” “01” ELSEELSE d2 d2 WHENWHEN s s =“10” “10” ELSEELSE d3 d3; ENDEND example5 example5; - - 當(dāng)當(dāng)s s = 0000時,時,y y = d0d0 - - 當(dāng)當(dāng)s s = 0101時,時,y y = d1d1 - - 當(dāng)當(dāng)s s =
21、 1010時,時,y y = d2d2 - - 當(dāng)當(dāng)s s取其他值時,取其他值時,y y = d3d320 (3 3)選擇信號賦值語句選擇信號賦值語句 與與CASECASE語句相類似,以選擇表達(dá)式的不同取值為選擇條語句相類似,以選擇表達(dá)式的不同取值為選擇條件,將多個表達(dá)式的值賦給賦值目標(biāo)。件,將多個表達(dá)式的值賦給賦值目標(biāo)。 WITH 選擇表達(dá)式選擇表達(dá)式 SELECT 賦值目標(biāo)賦值目標(biāo) = 表達(dá)式表達(dá)式1 1 WHEN 選擇值選擇值1, 1, 表達(dá)式表達(dá)式2 2 WHEN 選擇值選擇值2, 2, 表達(dá)式表達(dá)式n n WHEN 選擇值選擇值n n; 格式:格式: 該語句對子句中的該語句對子句中的
22、“選擇值選擇值”進(jìn)行選擇,當(dāng)子句中進(jìn)行選擇,當(dāng)子句中“選擇值選擇值”與與“選擇表達(dá)式選擇表達(dá)式”的值相同時,則將子句中的的值相同時,則將子句中的“表達(dá)式表達(dá)式”的值賦給賦值目標(biāo)。的值賦給賦值目標(biāo)。 規(guī)則:規(guī)則: 該語句不允許有選擇值重疊現(xiàn)象;該語句不允許有選擇值重疊現(xiàn)象; 該語句不允許選擇值涵蓋不全的情況;該語句不允許選擇值涵蓋不全的情況; 每個子句以每個子句以“,”,”號結(jié)束,最后一個子句以號結(jié)束,最后一個子句以“;”;”結(jié)束。結(jié)束。21 用選擇信號賦值語句實現(xiàn)四選一數(shù)據(jù)選擇器。用選擇信號賦值語句實現(xiàn)四選一數(shù)據(jù)選擇器。 ARCHITECTUREARCHITECTURE example6 ex
23、ample6 OFOF mux41 mux41 IS IS SIGNALSIGNAL s: STD_LOGIC_VECTOR( s: STD_LOGIC_VECTOR( 1 1 DOWNTODOWNTO 0 0 ) ); BEGINBEGIN s s = s1&s0s1&s0; WITHWITH s s SELECTSELECT y y 實參數(shù)表達(dá)式,實參數(shù)表達(dá)式, 形參數(shù)名稱形參數(shù)名稱=實參數(shù)表達(dá)式);實參數(shù)表達(dá)式); 形參數(shù)名稱:形參數(shù)名稱:是對被調(diào)用的過程已做說明的參數(shù)名。是對被調(diào)用的過程已做說明的參數(shù)名。 實參數(shù)表達(dá)式:實參數(shù)表達(dá)式:是一個標(biāo)識符或具體數(shù)值,是當(dāng)前是一個
24、標(biāo)識符或具體數(shù)值,是當(dāng)前過程調(diào)用中形參數(shù)的接受體。過程調(diào)用中形參數(shù)的接受體。 對應(yīng)關(guān)系:對應(yīng)關(guān)系:位置關(guān)聯(lián)位置關(guān)聯(lián) 名稱關(guān)聯(lián)名稱關(guān)聯(lián) 26 (2 2)過程的調(diào)用過程的調(diào)用 過程調(diào)用需完成的內(nèi)容:過程調(diào)用需完成的內(nèi)容: 將實參數(shù)值賦給被調(diào)用過程的形參數(shù);將實參數(shù)值賦給被調(diào)用過程的形參數(shù); 執(zhí)行過程;執(zhí)行過程; 將過程中的形參數(shù)值返回給對應(yīng)的實參數(shù)。將過程中的形參數(shù)值返回給對應(yīng)的實參數(shù)。 過程調(diào)用有兩種方式:過程調(diào)用有兩種方式: 順序語句方式:順序語句方式: 并行語句方式:并行語句方式: 即在進(jìn)程中的過程調(diào)用。即在進(jìn)程中的過程調(diào)用。 即在結(jié)構(gòu)體或塊中的過程調(diào)用。即在結(jié)構(gòu)體或塊中的過程調(diào)用。27 【
25、例例4 4】試用過程語句編寫實現(xiàn)數(shù)據(jù)求和的運(yùn)算程序。試用過程語句編寫實現(xiàn)數(shù)據(jù)求和的運(yùn)算程序。 LIBRARYLIBRARY IEEE IEEE; USEUSE IEEE.STD_LOGIC_1164. IEEE.STD_LOGIC_1164.ALLALL; USEUSE IEEE.STD_LOGIC_ARITH. IEEE.STD_LOGIC_ARITH.ALLALL; USEUSE IEEE.STD_LOGIC_UNSIGNED. IEEE.STD_LOGIC_UNSIGNED.ALLALL; ENTITYENTITY add add ISIS PORT ( PORT ( A,A, B,B,
26、 C: C: ININ STD_LOGIC_VECTOR( STD_LOGIC_VECTOR( 3 3 DOWNTODOWNTO 0 0 ) ); CLK,CLK, SET: SET: ININ STD_LOGIC STD_LOGIC; S: S: OUTOUT STD_LOGIC_VECTOR ( STD_LOGIC_VECTOR ( 3 3 DOWNTODOWNTO 0 0 ); ENDEND add add; ARCHITECTUREARCHITECTURE example15 example15 OFOF add add ISIS PROCEDUREPROCEDURE add_1 (
27、add_1 ( VARIABLEVARIABLE data1,data2,data3: data1,data2,data3: ININ STD_LOGIC_VECTOR STD_LOGIC_VECTOR; VARIABLEVARIABLE dataout: dataout: OUTOUT STD_LOGIC_VECTOR STD_LOGIC_VECTOR) ISIS BEGIN BEGIN dataout: dataout:= data1data1 + data2data2 + data3data3; ENDEND add_1 add_1; -過程體定義過程體定義28 【例例4 4】試用過程語
28、句編寫實現(xiàn)數(shù)據(jù)求和的運(yùn)算程序。試用過程語句編寫實現(xiàn)數(shù)據(jù)求和的運(yùn)算程序。 BEGINBEGIN PROCESSPROCESS(CLKCLK) VARIABLEVARIABLE tmp: STD_LOGIC_VECTOR( tmp: STD_LOGIC_VECTOR( 3 3 DOWNTODOWNTO 0 0 ) ); BEGINBEGIN IFIF (CLKCLK =11ANDAND CLK CLKEVENTEVENT) THENTHEN IFIF SET SET =1 1 THENTHEN tmp: tmp:=“0000”“0000”; ELSEELSE add_1 add_1(A, B, C
29、, tmpA, B, C, tmp);); END IFEND IF; END IFEND IF; S S 實參數(shù)表達(dá)式,實參數(shù)表達(dá)式, 形參數(shù)名稱形參數(shù)名稱=實參數(shù)表達(dá)式);實參數(shù)表達(dá)式);32 【例例5 5】使用函數(shù)定義使用函數(shù)定義FUNCTIONFUNCTION語句描述求最小數(shù)電路。語句描述求最小數(shù)電路。 LIBRARYLIBRARY IEEE IEEE; USEUSE IEEE.STD_LOGIC_1164. IEEE.STD_LOGIC_1164.ALLALL; ENTITYENTITY min min ISIS PORTPORT ( ( A,A, B: B: ININ STD_LO
30、GIC_VECTOR ( STD_LOGIC_VECTOR ( 7 7 DOWNTODOWNTO 0 0 ) ); Y: Y: OUTOUT STD_LOGIC_VECTOR ( STD_LOGIC_VECTOR ( 7 7 DOWNTODOWNTO 0 0 ); ENDEND min min; 33 【例例5 5】使用函數(shù)定義使用函數(shù)定義FUNCTIONFUNCTION語句描述求最小數(shù)電路。語句描述求最小數(shù)電路。 ARCHITECTUREARCHITECTURE example16 example16 OFOF min min ISIS FUNCTIONFUNCTION min ( min
31、( a,a, b: b: ININ STD_LOGIC_VECTOR) STD_LOGIC_VECTOR) RETURNRETURN STD_LOGIC_VECTOR STD_LOGIC_VECTOR; FUNCTIONFUNCTION min ( min ( a,a, b: b: ININ STD_LOGIC_VECTOR STD_LOGIC_VECTOR) RETURN RETURN STD_LOGIC_VECTOR STD_LOGIC_VECTOR ISIS BEGINBEGIN IFIF ( ( a a b) b) THENTHEN RETURNRETURN a a; ELSEELSE
32、 RETURNRETURN b b; END IFEND IF; ENDEND min min; BEGINBEGIN Y Y D2,D2, b b = D3,D3, s s = S0,S0, y y = B B ) ); U3: mux2 U3: mux2 PORT MAPPORT MAP ( ( A,A, B,B, S1, yS1, y = Y Y ) ); ENDEND exmple13 exmple13;-元件例化元件例化 -元件定義元件定義- 位置關(guān)聯(lián)方式位置關(guān)聯(lián)方式 - 名稱關(guān)聯(lián)方式名稱關(guān)聯(lián)方式- 混合關(guān)聯(lián)方式混合關(guān)聯(lián)方式 【例例6】試用元件例化語句,將四選一數(shù)據(jù)選擇器用二選一來試
33、用元件例化語句,將四選一數(shù)據(jù)選擇器用二選一來實現(xiàn)。實現(xiàn)。 39 底底層文件層文件: LIBRARYLIBRARY IEEE IEEE; USEUSE IEEE.STD_LOGIC_1164. IEEE.STD_LOGIC_1164.ALLALL; ENTITYENTITY mux2 mux2 ISIS PORTPORT ( ( a,a, b,b, s: s: ININ STD_LOGIC STD_LOGIC; y: y: OUTOUT STD_LOGIC) STD_LOGIC); ENDEND mux2 mux2; ARCHITECTUREARCHITECTURE example13 exam
34、ple13 OFOF mux2 mux2 ISIS BEGINBEGIN y y ”號將元件定義中的信號名與號將元件定義中的信號名與PORT PORT MAP ( )MAP ( )中所列的信號名連接起來。中所列的信號名連接起來。 如:如:U2:U2: mux2 mux2 PORTPORT MAP MAP (a(a=D2,bD2,b=D3,sD3,s=S0,yS0,y=B)B); 是在是在PORT MAP( )PORT MAP( )的信號連接關(guān)系中含有上述的信號連接關(guān)系中含有上述的兩種方式。的兩種方式。 如:如:U3: mux2 U3: mux2 PORT MAPPORT MAP (A,B,S1
35、,y (A,B,S1,y=Y)Y);41 生成(生成(GENERATEGENERATE)語句具有復(fù)制功能,可以對)語句具有復(fù)制功能,可以對有規(guī)律設(shè)計結(jié)構(gòu)的邏輯描述進(jìn)行簡化。有規(guī)律設(shè)計結(jié)構(gòu)的邏輯描述進(jìn)行簡化。 當(dāng)設(shè)計一個由多個相同單元模塊組成的電路時,當(dāng)設(shè)計一個由多個相同單元模塊組成的電路時,只要根據(jù)某些條件,設(shè)計好某一個元件,就可以用只要根據(jù)某些條件,設(shè)計好某一個元件,就可以用生成語句復(fù)制一組完全相同的并行元件或設(shè)計單元生成語句復(fù)制一組完全相同的并行元件或設(shè)計單元來組成電路。來組成電路。 42 生成語句有兩種格式:生成語句有兩種格式: 6.6 6.6 生成語句生成語句 格式格式1 1: 標(biāo)號標(biāo)
36、號: FOR 循環(huán)變量循環(huán)變量 IN 取值范圍取值范圍 GENERATE 說明部分說明部分 BEGIN 并行語句;并行語句; END GENERATE 標(biāo)號標(biāo)號; 43 生成語句有兩種格式:生成語句有兩種格式: 6.66.6 生成語句生成語句 格式格式2 2: 標(biāo)號標(biāo)號: IF 條件條件 GENERATE 說明部分說明部分 BEGIN 并行語句;并行語句; END GENERATE 標(biāo)號標(biāo)號;44 生成語句的格式由四部分組成:生成語句的格式由四部分組成: 使用使用FORFOR語句或語句或IFIF語句結(jié)構(gòu),來規(guī)定重復(fù)生語句結(jié)構(gòu),來規(guī)定重復(fù)生成并行語句的方式;成并行語句的方式; 通過說明部分,對元
37、件數(shù)據(jù)類型、子程序、通過說明部分,對元件數(shù)據(jù)類型、子程序、數(shù)據(jù)對象進(jìn)行局部的說明;數(shù)據(jù)對象進(jìn)行局部的說明; 并行語句主要用生成語句來復(fù)制一組相同的并行語句主要用生成語句來復(fù)制一組相同的并行元件,其語句包括所有的并行語句,甚至生成并行元件,其語句包括所有的并行語句,甚至生成語句本身,可實現(xiàn)嵌套式生成結(jié)構(gòu);語句本身,可實現(xiàn)嵌套式生成結(jié)構(gòu); 標(biāo)號是可選擇項,在嵌套式生成結(jié)構(gòu)中起著標(biāo)號是可選擇項,在嵌套式生成結(jié)構(gòu)中起著十分重要的作用。十分重要的作用。 6.66.6 生成語句生成語句 45 【例例7 7】試用格式試用格式1 1的生成語句,描述用的生成語句,描述用D D觸發(fā)器組成的八位移觸發(fā)器組成的八位移
38、位寄存器。位寄存器。 d q cpd q cpd q cpd q cpd q cpd q cpd q cpd q cpDinDin CLKCLKDoutDout Q0 Q1 Q0 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q5 Q5 Q6 Q7Q6 Q7 描述描述D D觸發(fā)器的源程序觸發(fā)器的源程序 LIBRARYLIBRARY IEEE IEEE; USEUSE IEEE.STD_LOGIC_1164. IEEE.STD_LOGIC_1164.ALLALL; ENTITYENTITY ff_d ff_d ISIS PORTPORT ( ( d, cp: d, cp: ININ STD_LOGIC STD_LOGIC; q: q: OUTOUT STD_LOGIC STD_LOGIC ) ); ENDEND ff_d ff_d; ARCHITECTUREARCHITECTURE example14 example14 OFOF ff_d ff_d ISIS BEGINBEGIN PROCESSPROCESS(cpcp) BEGINBEGIN IFIF cp cp =11ANDAND cp cpEVENT EVENT THENTHEN q q=d d; END IFEND IF; EN
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年制衣面料供應(yīng)居間合同
- 2025版小企業(yè)合同管理規(guī)范與合同管理信息化解決方案3篇
- 2025年超額展覽會保險條款
- 二零二五版新型環(huán)保建材采購合同樣本2篇
- 2025版企事業(yè)單位食堂員工招聘與服務(wù)協(xié)議3篇
- 2024-2025年中國寬帶行業(yè)市場評估分析及投資發(fā)展盈利預(yù)測報告
- 2025版小額貸款合同簽訂中的合同簽訂中的合同簽訂前的準(zhǔn)備與協(xié)商3篇
- 二零二五年度門面房裝修工程設(shè)計與施工質(zhì)量監(jiān)理合同
- 2025版建筑行業(yè)設(shè)備托管正規(guī)范本3篇
- 二零二五年度游艇俱樂部船舶租賃售后服務(wù)合同
- 2024年高考語文備考之??甲骷易髌罚ㄏ拢褐袊F(xiàn)當(dāng)代、外國
- 《裝配式蒸壓加氣混凝土外墻板保溫系統(tǒng)構(gòu)造》中
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語必修+選擇性必修共7冊詞匯表匯總(帶音標(biāo))
- 新譯林版高中英語必修二全冊短語匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測研究
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺手術(shù)送手術(shù)時間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語四年級上冊譯林版三起含答案
- 清華大學(xué)考博英語歷年真題詳解
評論
0/150
提交評論