freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vhdl語(yǔ)法基礎(chǔ)ppt課件-資料下載頁(yè)

2025-11-29 02:57本頁(yè)面
  

【正文】 3647 units fs; 飛秒, VHDL中的最小時(shí)間單位 ps = 1000 fs; 皮秒 ns = 1000 ps; 納秒 us = 1000 ns; 微秒 ms = 1000 us; 毫秒 sec = 1000 ms; 秒 min = 60 sec; 分 hr = 60 min; 時(shí) end untis; 10) 錯(cuò)誤等級(jí) (SEVERITY_LEVEL) 在 VHDL仿真器中,錯(cuò)誤等級(jí)用來(lái)指示設(shè)計(jì)系統(tǒng)的工作狀態(tài),共有四種可能的狀態(tài)值: NOTE(注意 )、 WARNING(警告 )、ERROR(出錯(cuò) )、 FAILURE(失敗 )。在仿真過(guò)程中,可輸出這四種值來(lái)提示被仿真系統(tǒng)當(dāng)前的工作情況。其定義如下: TYPE SEVERITY_LEVEL IS (NOTE, WARNING, ERROR,F(xiàn)AILURE); 2. IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量 在 IEEE庫(kù)的程序包 STD_LOGIC_1164中,定義了兩個(gè)非常重要的數(shù)據(jù)類型,即標(biāo)準(zhǔn)邏輯位 STD_LOGIC 和標(biāo)準(zhǔn)邏輯矢量 STD_LOGIC_VECTOR。 1) 標(biāo)準(zhǔn)邏輯位 STD_LOGIC_1164中的數(shù)據(jù)類型 以下是定義在 IEEE庫(kù)程序包 STD_LOGIC_1164中的數(shù)據(jù)類型。數(shù)據(jù)類型 STD_LOGIC的定義如下所示: TYPE STD_LOGIC IS (39。U39。, 39。X39。,‘ 0?, 39。139。, 39。Z39。, 39。W39。, 39。L39。,39。H39。, 39。39。); 各值的含義是: 39。U39。未初始化的, 39。X39。強(qiáng)未知的,‘ 0?強(qiáng) 0, 39。139。強(qiáng) 1, 39。Z39。高阻態(tài), 39。W39。弱未知的, 39。L39。弱 0, 39。H39。弱 1, 39。39。忽略。 在程序中使用此數(shù)據(jù)類型前,需加入下面的語(yǔ)句: LIBRARY IEEE; USE ; 由定義可見(jiàn), STD_LOGIC是標(biāo)準(zhǔn)的 BIT數(shù)據(jù)類型的擴(kuò)展,共定義了 9種值,這意味著,對(duì)于定義為數(shù)據(jù)類型是標(biāo)準(zhǔn)邏輯位STD_LOGIC的數(shù)據(jù)對(duì)象,其可能的取值已非傳統(tǒng)的 BIT那樣只有 0和 1兩種取值,而是如上定義的那樣有 9種可能的取值。目前在設(shè)計(jì)中一般只使用 IEEE的 STD_LOGIC標(biāo)準(zhǔn)邏輯的位數(shù)據(jù)類型,BIT型則很少使用。 由于標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型的多值性,在編程時(shí)應(yīng)當(dāng)特別注意。因?yàn)樵跅l件語(yǔ)句中,如果未考慮到 STD_LOGIC的所有可能的取值情況,綜合器可能會(huì)插入不希望的鎖存器。 程序包 STD_LOGIC_1164中還定義了 STD_LOGIC型邏輯運(yùn)算符 AND、 NAND、 OR、 NOR、 XOR和 NOT的重載函數(shù),以及兩個(gè)轉(zhuǎn)換函數(shù),用于 BIT與 STD_LOGIC的相互轉(zhuǎn)換。 在仿真和綜合中, STD_LOGIC值是非常重要的,它可以使設(shè)計(jì)者精確模擬一些未知和高阻態(tài)的線路情況。對(duì)于綜合器,高阻態(tài)和“ ”忽略態(tài)可用于三態(tài)的描述 。但就綜合而言,STD_LOGIC型數(shù)據(jù)能夠在數(shù)字器件中實(shí)現(xiàn)的只有其中的 4種值,即“ ”、“ 0”、“ 1”和“ Z”。當(dāng)然,這并不表明其余的 5種值不存在。這 9種值對(duì)于 VHDL的行為仿真都有重要意義。 2) 標(biāo)準(zhǔn)邏輯矢量 (STD_LOGIC_VECTOR)數(shù)據(jù)類型 STD_LOGIC_VECTOR類型定義如下: TYPE STD_LOGIC_VECTOR IS ARRAY (NATURAL RANGE) OF STD_LOGIC; 顯然, STD_LOGIC_VECTOR是定義在 STD_LOGIC_1164程序包中的標(biāo)準(zhǔn)一維數(shù)組,數(shù)組中的每一個(gè)元素的數(shù)據(jù)類型都是以上定義的標(biāo)準(zhǔn)邏輯位 STD_LOGIC。 STD_LOGIC_VECTOR數(shù)據(jù)類型的數(shù)據(jù)對(duì)象賦值的原則是:同位寬、同數(shù)據(jù)類型的矢量間才能進(jìn)行賦值。下例描述的是CPU中數(shù)據(jù)總線上位矢賦值的操作示意情況,注意例中信號(hào)數(shù)據(jù)類型定義和賦值操作中信號(hào)的數(shù)組位寬。 【 例 】 … TYPE T_DATA IS ARRAY(7 DOWNTO 0) OF STD_LOGIC; 自定義數(shù)組類型 SIGNAL DATABUS, MEMORY: T_DATA; 定義信號(hào) DATABUS, MEMORY CPU﹕ PROCESS CPU工作進(jìn)程開(kāi)始 VAR1ABLE REG1﹕ T_DATA 定義寄存器變量 REG1 BEGIN … DATABUS=REG1; 向 8位數(shù)據(jù)總線賦值 END PROCESS CPU; CPU工作進(jìn)程結(jié)束 MEM﹕ PROCESS RAM工作進(jìn)程開(kāi)始 BEGIN … DATABUS=MEMORY; END PROCESS MEM; … 3. 其他預(yù)定義標(biāo)準(zhǔn)數(shù)據(jù)類型 VHDL綜合工具配帶的擴(kuò)展程序包中,定義了一些有用的類型。如 Synopsys公司在 IEEE庫(kù)中加入的程序包STD_LOGIC_ARITH中定義了如下的數(shù)據(jù)類型:無(wú)符號(hào)型(UNSIGNED)、有符號(hào)型 (SIGNED)、小整型 (SMALL _INT)。 在程序包 STD_LOGIC_ARITH中的類型定義如下: TYPE UNSIGNED IS ARRAY (NATURAL RANGE ) OF STD_LOGIC; TYPE SIGNED IS ARRAY (NATURAL RANGE) OF STD_LOGIC; SUBTYPE SMALL_INT IS INTEGER RANGE 0 TO 1; 如果將信號(hào)或變量定義為這幾個(gè)數(shù)據(jù)類型,就可以使用本程序包中定義的運(yùn)算符。在使用之前,請(qǐng)注意必須加入下面的語(yǔ)句: LIBRARY IEEE; USE ; UNSIGNED類型和 SIGNED類型是用來(lái)設(shè)計(jì)可綜合的數(shù)學(xué)運(yùn)算程序的重要類型, UNSIGNED用于無(wú)符號(hào)數(shù)的運(yùn)算,SIGNED用于有符號(hào)數(shù)的運(yùn)算。在實(shí)際應(yīng)用中,大多數(shù)運(yùn)算都需要用到它們。 在 IEEE程序包中, UNMERIC_STD和 NUMERIC_BIT程序包中也定義了 UNSIGNED型及 SIGNED型, NUMERIC_STD是針對(duì)于 STD_LOGIC型定義的,而 NUMERIC_BIT是針對(duì)于 BIT 型定義的。在程序包中還定義了相應(yīng)的運(yùn)算符重載函數(shù)。有些綜合器沒(méi)有附帶 STD_LOGIC_ARITH程序包,此時(shí)只能使用NUMBER_STD和 NUMERIC_BIT程序包。 在 STANDARD程序包中沒(méi)有定義 STD_LOGIC_VECTOR的運(yùn)算符,而整數(shù)類型一般只在仿真的時(shí)候用來(lái)描述算法,或作數(shù)組下標(biāo)運(yùn)算,因此 UNSIGNED和 SIGNED的使用率是很高的。 1) 無(wú)符號(hào)數(shù)據(jù)類型 (UNSIGNED TYPE) UNSIGNED數(shù)據(jù)類型代表一個(gè)無(wú)符號(hào)的數(shù)值,在綜合器中,這個(gè)數(shù)值被解釋為一個(gè)二進(jìn)制數(shù),這個(gè)二進(jìn)制數(shù)的最左位是其最高位。例如,十進(jìn)制的 8可以作如下表示: UNSIGNED(“1000) 如果要定義一個(gè)變量或信號(hào)的數(shù)據(jù)類型為 UNSIGNED,則其位矢長(zhǎng)度越長(zhǎng),所能代表的數(shù)值就越大。如一個(gè) 4位變量的最大值為 15,一個(gè) 8位變量的最大值則為 255, 0是其最小值,不能用UNSIGNED定義負(fù)數(shù)。以下是兩則無(wú)符號(hào)數(shù)據(jù)定義的示例: VARIABLE VAR﹕ UNSIGNED(0 TO 10); SIGNAL SIG﹕ UNSIGNED(5 TO 0); 其中,變量 VAR有 11位數(shù)值,最高位是 VAR(0),而非VAR(10);信號(hào) SIG有 6位數(shù)值,最高位是 SIG(5)。 2) 有符號(hào)數(shù)據(jù)類型 (SIGNED TYPE) SIGNED數(shù)據(jù)類型表示一個(gè)有符號(hào)的數(shù)值, 綜合器將其解釋為補(bǔ)碼,此數(shù)的最高位是符號(hào)位, 例如: SIGNED(“0101”) 代表 +5, 5; SIGNED(“1011”) 代表 5。 若將上例的 VAR定義為 SIGNED數(shù)據(jù)類型,則數(shù)值意義就不同了,如: VARIABLE VAR﹕ SIGNED(0 TO 10); 其中, 變量 VAR有 11位,最左位 VAR(0)是符號(hào)位 。 4. 用戶自定義數(shù)據(jù)類型方式 VHDL允許用戶自行定義新的數(shù)據(jù)類型,它們可以有多種,如枚舉類型 (ENUMERATION TYPE)、整數(shù)類型 (INTEGER TYPE)、數(shù)組類型 (ARRAY TYPE)、記錄類型 (RECORD TYPE)、時(shí)間類型 (TIME TYPE)、實(shí)數(shù)類型 (REAL TYPE)等。用戶自定義數(shù)據(jù)類型是用類型定義語(yǔ)句 TYPE和子類型定義語(yǔ)句SUBTYPE實(shí)現(xiàn)的,以下將介紹這兩種語(yǔ)句的使用方法。 1) TYPE語(yǔ)句用法 TYPE語(yǔ)句語(yǔ)法結(jié)構(gòu)如下: TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 [OF 基本數(shù)據(jù)類型 ]; 其中,數(shù)據(jù)類型名由設(shè)計(jì)者自定;數(shù)據(jù)類型定義部分用來(lái)描述所定義的 數(shù)據(jù)類型的表達(dá)方式和表達(dá)內(nèi)容 ;關(guān)鍵詞 OF后的基本數(shù)據(jù)類型是指數(shù)據(jù)類型定義中所定義的 元素的基本數(shù)據(jù)類型 , 一般都是取已有的預(yù)定義數(shù)據(jù)類型,如 BIT、 STD_LOGIC或 INTEGER等。 以下列出了兩種不同的定義方式: TYPE ST1 IS ARRAY(0 TO 15)OF STD_LOGIC; TYPE WEEK IS (SUN, MON, TUE, WED, THU, FRI, SAT); 第一句定義的數(shù)據(jù) ST1是一個(gè)具有 16個(gè)元素的數(shù)組型數(shù)據(jù)類型,數(shù)組中的每一個(gè)元素的數(shù)據(jù)類型都是 STD_LOGIC型;第二句所定義的數(shù)據(jù)類型是由一組文字表示的,而其中的每一文字都代表一個(gè)具體的數(shù)值,如可令 SUN=“1010”。 在 VHDL中,任一數(shù)據(jù)對(duì)象 (SIGNAL、 VARIABLE、CONSTANT)都必須歸屬某一數(shù)據(jù)類型,只有同數(shù)據(jù)類型的數(shù)據(jù)對(duì)象才能進(jìn)行相互作用。利用 TYPE語(yǔ)句可以完成各種形式的自定義數(shù)據(jù)類型以供不同類型的數(shù)據(jù)對(duì)象間的相互作用和計(jì)算。 2) SUBTYPE語(yǔ)句用法 子類型 SUBTYPE只是由 TYPE所 定義的原數(shù)據(jù)類型的一個(gè)子集, 它滿足原數(shù)據(jù)類型的所有約束條件,原數(shù)據(jù)類型稱為基本數(shù)據(jù)類型。子類型 SUBTYPE的語(yǔ)句格式如下: SUBTYPE 子類型名 IS 基本數(shù)據(jù) RANGEA 約束范圍; 子類型的定義只在基本數(shù)據(jù)類型上作一些約束,并沒(méi)有定義新的數(shù)據(jù)類型。子類型定義中的基本數(shù)據(jù)類型必須在前面已通過(guò) TYPE定義的類型。如下例: SUBTYPE DIGITS INTEGER RANGE 0 TO 9; 例中, INTEGER是標(biāo)準(zhǔn)程序包中已定義過(guò)的數(shù)據(jù)類型,子類型 DIGITS只是把 INTEGER約束到只含 10個(gè)值的數(shù)據(jù)類型。 由于子類型與其基本數(shù)據(jù)類型屬同一數(shù)據(jù)類型,因此屬于子類型的和屬于基本數(shù)據(jù)類型的數(shù)據(jù)對(duì)象間的賦值和被賦值可以直接進(jìn)行,不必進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。 利用子類型定義數(shù)據(jù)對(duì)象的好處是,除了使程序提高可讀性和易處理外,其實(shí)質(zhì)性的好處在于有利于提高綜合的優(yōu)化效率,這是因?yàn)榫C合器可以根據(jù)子類型所設(shè)的約束范圍,有效地推知參與綜合的寄存器的最合適的數(shù)目。 5. 枚舉類型 VHDL中的枚舉數(shù)據(jù)類型 是用文字符號(hào)來(lái)表示一組實(shí)際的二進(jìn)制數(shù)的類型 (若直接用數(shù)值來(lái)定義,則必須使用單引號(hào) )。例如狀態(tài)機(jī)的每一狀態(tài)在實(shí)際電路雖是以一組觸發(fā)器的當(dāng)前二進(jìn)制數(shù)位的組合來(lái)表示的,但設(shè)計(jì)者在狀態(tài)機(jī)的設(shè)計(jì)中,為了更便于閱讀和編譯,往往將表征每一狀態(tài)的二進(jìn)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1