【正文】
由 STD_LOGIC轉(zhuǎn)換 STD_LOGIC TO_BIT(A) 由 STD_LOGIC轉(zhuǎn)換 BIT STD_LOGIC_ARITH CONV_STD_LOGIC_VECTOR(A,n) (n為位長 ) 由 INTEGER, UNSIGNED,SIGNED轉(zhuǎn)換STD_LOGIC_VECTOR CONV_INTEGER(A) 由 UNSIGNED, SIGNED轉(zhuǎn)換為INTEGER STD_LOGIC_UNSIGNED CONV_INTEGER(A) 由 STD_LOGIC_VECTOR轉(zhuǎn)換為INTEGER 1 算術(shù)運算符 一、分類及功能 求和運算符、求積運算符、符號運算符、混合運算符、移位運算符 二 . 運用 VHDL中的求和運算符包括加減運算和并置運算,操作 數(shù)的數(shù)據(jù)類型為整型。 在后面 狀態(tài)機中狀態(tài)一般就用枚舉類型 VHDL 數(shù)據(jù)類型 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 格式 : (2) 子類型 SUBTYPE natural IS integer range 0 to integer?high SUBTYPE 只是由 TYPE所定義的原數(shù)據(jù)類型的一個 子集 VHDL 數(shù)據(jù)類型 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 格式 : (3) 整數(shù)類型和實數(shù)類型 TYPE percent IS INTEGER RANGE 100 TO 100 整數(shù)和實數(shù)的數(shù)據(jù)類型的取值范圍太大 , 綜合器無法綜合 , 所以需要給它們限定一個范圍 VHDL 數(shù)據(jù)類型 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 格式 : (4) 數(shù)組類型 TYPE 數(shù)組名 IS ARRAY(數(shù)組范圍 ) OF 數(shù)組類型 ; VHDL 數(shù)據(jù)類型 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 格式 : (5) 記錄類型 TYPE 記錄類型名 IS RECORD 元素名:元素數(shù)據(jù)類型; 元素名: 元素數(shù)據(jù)類型; … END RECORD。 ( 2) 無符號 ( Unsigned) 和有符號 ( Signed) 類型 定義位置:有符號 ( Signed) 和無符號 ( Unsigned) 邏輯信號定義在 庫 IEEE的程序包 std_logic_arith中 。 Bit_Vector與 Std_Logic_vector的區(qū)別在于數(shù)組的 每一位前者為 BIT型 ( 0, 1) 后者為 Std_Logic型 2 數(shù)值數(shù)據(jù)類型 ( 1) 整數(shù) ( Integer) 定義位置:在 std庫的 standard程序包中進(jìn)行定義 。 Use 。 所以在 VHDL的程序里 , 對于邏輯信號的定 義 , 通常都是采用這個 “ 標(biāo)準(zhǔn)邏輯 ” 信號形式 。 Signal B: bit_vector(2 downto 0)。 信號形式: 0, 1 (低電位,高電位 ) ( 3)位數(shù)組類型( Bit_Vector) 定義位置:在 std庫的 standard程序包中進(jìn)行定義。 1 邏輯數(shù)據(jù)類型 ( 1)布爾代數(shù)( Boolean)型 定義位置:在 std庫的 standard程序包中進(jìn)行定義。 約束區(qū)間說明 : INTEGER RANGE 100 DOWNTO 1 BIT_VECTOR (3 DOWNTO 0) REAL RANGE TO 167。 以上結(jié)構(gòu)體表達(dá)何種電路? 一個實體可以有幾個結(jié)構(gòu)體,即結(jié)構(gòu)體的定義可以有不同的形式 結(jié)論: VHDL 數(shù)據(jù)類型 VHDL中定義了 10種標(biāo)準(zhǔn)數(shù)據(jù)類型( P12) 數(shù)據(jù)類型 含義 整數(shù) 整數(shù)占 4B,范圍為 2,147,483,647~2,147,483,647 實數(shù) 浮點數(shù),范圍位 +38~+38 自然數(shù),正整數(shù) 整數(shù)的子集(自然數(shù):大于等于 0的整數(shù),正整數(shù):大于 0的整數(shù)) 位 邏輯“ 0”或“ 1” 位串 多個位串在一起(也稱位矢量) 字符 ASCII碼字符 字符串 字符數(shù)組(也稱字符矢量) 布爾量 邏輯“真”或邏輯“假” 時間 時間單位,如 fs、 ps、 ns、 μs、 ms、 sec、 min、 hr等 錯誤等級 NOTE, WARNING, ERROR, FAILURE VHDL 數(shù)據(jù)類型 (1) Integer (整數(shù)) (2) Real (實數(shù)) (3) Bit (位) (4) Bit_vector (位矢量) (5) Std_logic(標(biāo)準(zhǔn)邏輯) (6) Std_logic_vector (標(biāo)準(zhǔn)邏輯矢量) (7) Boolean(布爾) (8) Character (字符) (9) String(字符串) (10) Time(時間) (11) Severity level (錯誤等級 ) (12) Natural, positive(自然數(shù)、正整數(shù)) 其中以 bit,bit_vector,std_logic和std_logic_vector最為常用。 Architecture Nb of and2 is Begin c =?1? when a=?1? and b = ?1? else ?0?。 首先定義輸入輸出端口名字, 模式( Mode),信號類型 注意最后語句的分號在括號外 實體定義 : Architecture Na of and2 is Begin Y=?0? when a=?0? and B= ?0? else?0? when A=?1? and B = ?0? else ?0? when A=?0? and B = ?1? else ?1?。 Y: out bit)。 Entity and2 is Port( A: in bit。 ARCHITECTURE 結(jié)構(gòu)體名 Of 實體名 Is Begin 描述語句; End 結(jié)構(gòu)體名; 使用格式 : 圖 結(jié)構(gòu)體構(gòu)造圖 進(jìn)程語句塊語句體結(jié)構(gòu)明說體構(gòu)結(jié)述能描功體構(gòu)結(jié)元件例化語句子程序調(diào)用語句信號賦值語句常數(shù)說明數(shù)據(jù)類型說明信號說明例化元件說明子程序說明舉例 : 設(shè)計一個與門電路 &ABY111001010000YBA邏輯符號 真值表 Library IEEE。 ( ) ARCHITECTURE定義 作用:定義實體的實現(xiàn)。 2 輸入與門的實體描述 。類屬為所說明的環(huán)境提供了一種靜態(tài)信息通道,類屬的值可以由設(shè)計實體外部提供。 主要是聲明在設(shè)計或?qū)嶓w中 將用到的常數(shù) , 數(shù)據(jù)類型 , 元件及子程序等 。 END behav。 END IF。 ELSIF sel=‘1’ THEN q=d1。 END ENTITY。 sel:IN std_logic。 USE 。配置說明語句主要用于以層次化的方式對特定的設(shè)計實體進(jìn)行元件例化,或是為實體選定某個特定的結(jié)構(gòu)體。在一個實體中,可以含有一個或一個以上的結(jié)構(gòu)體,而在每一個結(jié)構(gòu)體中又可以含有一個或多個進(jìn)程以及其他的語句。 硬件描述語言特點 VHDL特點 1. 系統(tǒng)硬件描述能力強 2.與器件無關(guān),與工藝無關(guān) 3. IEEE工業(yè)標(biāo)準(zhǔn) 4.方法靈活,技術(shù)齊全 5.可讀性好 VHDL具有硬件特征 , 而且是并行執(zhí)行方式 。至今 VHDL約有 40年的發(fā)展歷史, 1987年, VHDL成為 IEEE標(biāo)準(zhǔn),即 IEEE1076標(biāo)準(zhǔn), 1993年修改為 IEEE1164標(biāo)準(zhǔn), 1996年,IEEE又將電路合成的標(biāo)準(zhǔn)程序與規(guī)格加入到 VHDL語言中,稱為 。蔡劍華 數(shù)字系統(tǒng)設(shè)計與 VHDL實踐 第 2章 VHDL語言基礎(chǔ) VHDL簡介 VHDL是 Very High speed Integrated Circuit Hardware Description Language ( 非常高速集成電路硬件描述語言)的英文縮寫。它是由美國國防部支持的一項研究計劃,于1983年創(chuàng)建,目的是以文字化方法描述電子電路與系統(tǒng)。之后,又有 。 2 VHDL語言基本結(jié)構(gòu) 庫、程序包使用說明配置 (CO N F IG U RA T IO N )結(jié)構(gòu)體 (A RC H IT E CT U R E )實體 (E N T IT Y )P O RT 端口說明結(jié)構(gòu)體說明G E N E RIC 類屬說明體實計設(shè)結(jié)構(gòu)體功能描述 其中,庫、程序包使用說明用于打開 (調(diào)用 )本設(shè)計實體將要用到的庫、程序包;實體說明用于描述該設(shè)計實體與外界的接口信號說明,是可視部分;結(jié)構(gòu)體說明用于描述該設(shè)計實體內(nèi)部工作的邏輯關(guān)系,是不可視部分。根據(jù)需要,實體還可以有配置說明語句。 舉例二路選擇器 LIBRARY IEEE。 ENTITY MUX2 IS PORT (d0,d1:IN std_logic。 q:OUT std_logic)。 ARCHITECTURE behav OF MUX2 IS BEGIN PROCESS (d0,d1,sel) BEGIN IF sel=‘0’ THEN q=d0。 ELSE q=‘Z’。 END PROCESS。 VHDL描述 程序包調(diào)用 實體描述 結(jié)構(gòu)體描述 庫的調(diào)用 ( ) LIBRARY和 PACHAGE的聲明部分 作用:庫 ( Library) 是用于存放預(yù)先編譯好的程序包 ( Package) , 程序包中定義了數(shù)據(jù)集合體 、 邏 輯操作和元件等 。 使用格式: LIBRARY 庫名; USE 庫名 . 程序包名 . All; ( ) ENTITY定義 作用:定義本設(shè)計的輸入 /出端口 , 即定義電路的外觀 , 即 I/O接口的類型和數(shù)量使用格式: … 端口名 :端口模式 數(shù)據(jù)類型; ); ENTITY 實體名 Is End 實體名; 格式 : Port ( 端口名 :端口模式 數(shù)據(jù)類型; 端口模式說明 端口模式 端口模式說明 ( 以設(shè)計實體為主體 ) IN 輸入,只讀模式,將變量或信號信息通過該端口讀入 OUT 輸出,單向賦值模式,將信號通過該端口輸出 BU F F E R 具有讀功能的輸出模式,可以讀或?qū)?,只能有一個驅(qū)動源 IN O U T 雙向,可以通過該端口讀入或?qū)懗鲂畔? IN O U T B U F F ER I N O U T 2. 類屬 (GENERIC)說明語句 類屬 (GENERIC)參量是一種端口界面常數(shù),常以一種說明的形式放在實體或塊結(jié)構(gòu)體前的說明部分。因此,設(shè)計者可以從外面通過類屬參量的重新設(shè)定而容易地改變一個設(shè)計實體或一個元件的內(nèi)部電路結(jié)構(gòu)和規(guī)模。 ENTITY AND2 IS GENERIC(RISEW: TIME:=1 ns; FALLW: TIME:=1 ns); PORT( A1: IN STD_LOGIC; A0: IN STD_LOGIC