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