【正文】
END structure。 ARCHITECTURE structure OF add1_v IS BEGIN S = A XOR B XOR Cin。 S : OUT STD_LOGIC)。 Cin : IN STD_LOGIC。 ENTITY add1_v IS PORT(A : IN STD_LOGIC。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 LIBRARY IEEE。 END structure。 U4 : and2_v PORT MAP(A,B,tmp3)。 U2 : xor2_v PORT MAP(tmp1,Cin,S)。 FOR U5 : or2_v USE ENTITY ( or2_arc)。 FOR U1,U2 : xor2_v USE ENTITY ( xor2_arc)。 END COMPONENT。 b : IN STD_LOGIC。 END COMPONENT。 b : IN STD_LOGIC。 END COMPONENT。 b : IN STD_LOGIC。 END add1_v。 Co : OUT STD_LOGIC。 B : IN STD_LOGIC。 USE 。 END xor2_cfg。 END xor2_arc。 END xor2_v。 b: IN STD_LOGIC。 USE 。 END or2_cfg。 END or2_arc。 END or2_v。 b: IN STD_LOGIC。 USE 。 END and2_cfg。 END and2_arc。 END and2_v。 b: IN STD_LOGIC。 USE 。 結(jié)構(gòu)體的配置 以 1位全加器的構(gòu)成為例說明結(jié)構(gòu)體的配置的用法 : 將兩輸入與門、或門、異或門設(shè)置成通用例化元件由結(jié)構(gòu)體引用。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 異或門仿真波形 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 結(jié)構(gòu)體的配置主要是用來對結(jié)構(gòu)體中引用的元件進行配置。 cfg4將與非邏輯結(jié)構(gòu)體配置給實體 cfg5將異或邏輯結(jié)構(gòu)體配置給實體 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 在程序中使用了 5個默認配置語句來指明設(shè)計實體example_v和哪個結(jié)構(gòu)體一起組成一個完整的設(shè)計 ,見程序過程中的標注。 CONFIGURATION cfg4 OF example_v IS FOR nor2_arc END FOR。 END cfg5。 END cfg1。 END cfg2。 END cfg3。 END nand2_arc。 END nor2_arc。 END xor2_arc。 END example_v。 b : IN STD_LOGIC。 USE 。 END and2_arc。 END or2_arc。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 例:與、或、與非、或非、異或, 5個結(jié)構(gòu)體共用一個實體。 在這兩種描述方式中,常常需要將其他設(shè)計實體作為元件進行引用,這時就需要將不同元件通過配置安裝到不同的設(shè)計實體中。 分開描述的好處是 : 當(dāng)函數(shù)的功能需要做某些調(diào)整或數(shù)據(jù)賦值需要變化時,只要改變程序包體的相關(guān)語句就可以了,而無需改變程序包首的說明,這樣就使得需要重新編譯的單元數(shù)目盡可能的減少了。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 此例的程序包是由程序包首和程序包體兩部分組成。 END sub。 BEGIN result := vect_to_int (a)+ vect_to_int (b)。 FUNCTION sub(a,b:IN tw16)。 RETURN int_to_tw16(result)。 RETURN tw16 IS VARIBLE result: INTEGER。 END int_to_tw16。 END LOOP。 END IF。 FOR i IN 15 DOWNTO 0 LOOP IF local/ digit=1 THEN Local := local digit。 VARIBLE local: INTEGER。 RETURN tw16 IS VARIBLE result: tw16。 END vect_to_int。 END LOOP。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 BEGIN FOR i IN 0 TO 7 LOOP result := result*2。 程序包的一般書寫格式如下: PACKAGE 程序包名 IS END [PACKAGE] 程序包名; —— 程序包首 PACKAGE BODY 程序包名 IS ┇ —— 程序包體 END [PACKAGE BODY] [程序包名 ]; 程序包由兩部分組成:程序包首和程序包體。 CONFIGURATION(配置) 庫使用說明 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 程序包也叫包集合,主要用來存放各個設(shè)計都能共享的數(shù)據(jù)類型、子程序說明、屬性說明和元件說明等部分。 LIBRARY IEEE; USE 。 ENTITY and IS ┇ END and; ARCHITECTURE dataflow OF and IS ┇ END dataflow。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 注意:庫說明語句的作用范圍從一個實體說明開始到它所屬的結(jié)構(gòu)體、配置為止,當(dāng)一個源程序中出現(xiàn)兩個以上實體時,兩條作為使用庫的說明語句應(yīng)在每個設(shè)計實體說明語句前重復(fù)書寫。 STD_ULOGIC :可枚舉數(shù)據(jù)類型 此例中,第一個 USE語句表明打開 IEEE庫中的STD_LOGIC_1164程序包,并使程序包中的所有公共資源對本語句后面的 VHDL設(shè)計實體程序全部開放,關(guān)鍵詞 ALL代表程序包中的所有資源。 章目錄 第一節(jié) 第二節(jié) 第三節(jié) 第四節(jié) 第五節(jié) 總目錄 例如: LIBRARY IEEE; USE 。 ( 1) USE 庫名 .程序包名 .項目名 。 USE語句有以下兩種常用的格式: 第一種語句格式的作用是向本設(shè)計實體開放指定庫中的特定程序包內(nèi)的所選定的項目 。一旦說明了庫和程序包,整個設(shè)計實體都可以進入訪問或調(diào)用,但其作用范圍僅限于所說明的設(shè)計實體。 庫( LIBRARY) 庫語句的格式為: LIBRARY 庫名; 庫是經(jīng)編譯后的數(shù)據(jù)的集合,它存放包集合定義、實體定義、結(jié)構(gòu)定義和配置定義。 END