【文章內容簡介】
IN std_logic_vector(width DOWNTO 0)。 q: OUT std_logic_vector(width DOWNTO 0)。 co: OUT std_logic)。 END black_box。 類屬參量 HYIT 30 結構體( ARCHITECTURE ) ARCHITECTURE 結構體名 OF 實體名 IS [結構體說明部分 ]。 BEGIN [功能描述語句 ] ; END [ARCHITECTURE] 結構體名 ; ?用來描述實體的內部結構和邏輯功能; ?結構體說明 是指對結構體需要使用的信號、常數、數據類型和函數進行定義和說明; ?功能描述語句 具體地描述了結構體的行為,是并發(fā)(同時)執(zhí)行的,與順序無關。 一般格式 實體和結構體之間的關系 Input 1 Input n Output 1 Output n 實體 A B C D Sel MUX_Out 2 HYIT 32 結構體( ARCHITECTURE ) 說明語句 功能描述語句 塊語句 進程語句 信號賦值語句 子程序調用語句 元件例化語句 由一系列并行執(zhí)行語句構成的組合體,它的功能是將結構體中的并行語句組成一個或多個子模塊 定義順序語句模塊,用以將從外部獲得的信號值,或內部的運算數據向其它的信號進行賦值。 將設計實體內的處理結果向定義的信號或界面端口進行賦值 用以調用過程或函數,并將獲得的結果賦值于信號 對其它的設計實體作元件調用說明,并將此元件的端口與其它的元件、信號或高層次實體的界面端口進行連接。 結構體構造圖 HYIT 33 用 VHDL設計一個 2選 1的 MUX 例一: HYIT 34 二選一電路(方案一) LIBRARY ieee。 USE 。 ENTITY mux21a IS PORT ( a, b : IN BIT。 s : IN BIT。 y : OUT BIT ); END ENTITY mux21a。 ARCHITECTURE STRUCTURE OF mux21a IS SIGNAL d,e : BIT。 BEGIN d = a AND (NOT S) 。 e = b AND s 。 y = d OR e 。 END ARCHITECTURE STRUCTURE 。 HYIT 35 HYIT 36 HYIT 37 二選一電路(方案二) HYIT 38 小結一: 庫和程序包: IEEE庫、 STD_LOGIC_1164程序包 實體 : ENTITY name … END ENTITY name。 端口信號模式 : IN 、 OUT、 INOUT、 BUFFER 信號數據類型,和信號傳輸符號 “ = ”: STD_LOGIC、 BIT、 INTEGER、 BOOLEAN ... 結構體 : ARCHITECTURE name OF entity_name … END ARCHITECTURE。 文件存盤取名 HYIT 39 設計十進制計數器 例二: HYIT 40 ARCHITECTURE BEHAVE OF COUNTER IS variable CNT STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN PROCESS(CLK) BENGIN IF(CLK’EVENT AND CLK = ‘ 1 ‘ ) IF(CNT = ”1001”) THEN CNT := ”0000”。 ELSE CNT := CNT + 1。 END IF。 END IF。 Q = CNT。 END PROCESS。 END BEHAVE。 HYIT 41 LIBRARY ieee。 USE 。 ENTITY COUNTER IS PORT ( clk : IN BIT。 Q : OUT BIT_VECTOR(3 DOWNTO 0) ); END ENTITY COUNTER。 HYIT 42 庫( LIBRARY) P150 庫是用來放置可編譯的設計單元(它存放包定義、實體定義、構造定義和配置定義)的地方,通過其目錄可查詢和調用。 ? IEEE庫 ? STD庫 ? ASIC矢量庫 ? WORK庫 ? 用戶定義庫。 VHDL中的庫 HYIT 43 ? IEEE庫:常用的資源庫。 IEEE庫包含經過 IEEE正式認可的 STD_LOGIC_1164包集合和某些公司提供的一些包,如STD_LOGIC_ARITH(算術運算包集合)等。 ?STD庫: VHDL的標準庫。庫中存放有稱為 “ standard”的標準包集合,其中定義了多種常用的數據類型,均不加說明可直接引用。 ?