EDA第五章復(fù)習(xí)總結(jié)_第1頁
EDA第五章復(fù)習(xí)總結(jié)_第2頁
EDA第五章復(fù)習(xí)總結(jié)_第3頁
EDA第五章復(fù)習(xí)總結(jié)_第4頁
EDA第五章復(fù)習(xí)總結(jié)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、5.1 VHDL 概述硬件描述語言(VHDL)的突出優(yōu)點1 .打破了 IC設(shè)計者與使用者的界線2 .VHDL及其配套工具軟件簡單易學(xué),直觀明了,便于迅速掌握,也便于修改。3 .極大地縮短了專用芯片的開發(fā)周期,降低開發(fā)成本,加快了產(chǎn)品更新?lián)Q代的速度,提 局廣品的市場黨爭力。4 .大大縮小電路板面積和整機體積,提高產(chǎn)品可靠性,增強產(chǎn)品功能,實現(xiàn)技術(shù)保密。5 .可實現(xiàn)電路設(shè)計的模塊化和積木式多級組合。各模塊均可在今后被重復(fù)再利用(調(diào) 用)。6 .完全實現(xiàn)擁有整機的自主知識產(chǎn)權(quán),不再在關(guān)鍵芯片(專用芯片)的進口及價格方面 受制于人。5.2 VHDL程序的結(jié)構(gòu)、基本的VHDL描述的組成:L實體(enti

2、ty)部分64頁2.結(jié)構(gòu)體(architecture)部分67頁IN(輸入)、OUT(輸出)是表示信號的類別;BIT是表示信號的類型,BIT是系統(tǒng)定義的類型,即二進位類型,信號只有0' 和1'兩種值;每個VHDL語句都是以“;”結(jié)束,包括最后一個語句也不例外;VHDL中的“注釋”是以兩個減號“-”開始的。二、實體描述ENTITY 實體名ISPORT(信號名:類別信號類型; 信號名:類別信號類型);END實體名;同樣類別和類型的信號可以用逗號分隔,在一個語句行中說明。信號的類別主要有以下4種:IN:此信號是輸入信號;OUT:此信號是輸出信號,提供給其他的實體;BUFFER:緩沖信

3、號,也是實體的輸出信號,但是可以被實體本身的結(jié)構(gòu)體讀INOUT :雙向信號,既可以輸入,也可以輸出。系統(tǒng)預(yù)定義的信號類型有:BIT:二進位型,信號的值只能是0'或1'。BIT_VECTOR :二進位向量,實際對應(yīng)的是二進位數(shù)組 BOOLEAN :布爾型,取值只能是true或者false ;INTEGER :整型,一般都用32位二進制數(shù)表示整型數(shù) ;CHARACTER :字符型,使用8位編碼的ASCII字符。三、結(jié)構(gòu)體描述ARCHITECTURE 結(jié)構(gòu)體名OF實體名IS聲明部分BEGIN描述部分END結(jié)構(gòu)體名;對于一個實體來說,可以有幾種不同的結(jié)構(gòu)體描述。5.3 VHDL程序的元

4、素一、關(guān)鍵字85頁二、標(biāo)識符的命名85頁三、數(shù)據(jù)類型91頁預(yù)定義:整數(shù)Integer: -(2的31次方-1)2的31次方-1實數(shù) Real: -1.0E+38-+1.0E+38位 Bit: 0'或'1'位矢量 Bit_Vector:” 001100'布爾量Boolean:真或假字符 Character:' A' ,' C'物理Time:預(yù)定義為時間,其他如電壓、電流等也為物理型錯誤等級:NOTE、WARNING、ERROR、FAILURE自然數(shù)(Natural)、正整數(shù)(Positive)字符串(String),如"

5、morning”用戶自定義類型:96頁枚舉型 可以通過枚舉類型來定義信號的取值。除了最常用的二值邏輯(已經(jīng)預(yù) 定義為BIT型),還可以有三值邏輯(信號有三種取值:0'、1'和'z'),九值 邏輯等TYPE枚舉類型名IS (枚舉型值表);如 TYPE qit_logic IS ('0','1',Z,'X') STD_ULOGIC兀IEEE1164標(biāo)準(zhǔn)邏輯包中所定義的std_ulogic類型是一種九值邏輯,也是一 種枚舉型的數(shù)據(jù)類型:TYPE std_ulogic IS ( 'U', -Uninitia

6、lized'X', -Forcing Unknown'0', - Forcing 0'1', - Forcing 1'Z', -High Impedance'W,-Weak Unknown'L', -Weak 0'H', -Weak 1'-', -Don't Care);數(shù)組類型TYPE 數(shù)組名IS ARRAY(范圍)OF基類型1,其中的“基類型”是已經(jīng)定義過的類型,甚至可以是 已經(jīng)定義過的數(shù)組類 型。2,定義中的“范圍”,既表示數(shù)組的大小,也說明用什么方式表示數(shù)組元

7、素的 下標(biāo)。通常,“范圍”是用整數(shù)表示,也可以用枚舉值表示3, “范圍”用整數(shù)表示時,整數(shù)范圍可以是遞增表示,也可以是遞減表示:TYPE register IS ARRAY (0 TO 7) OF BIT;TYPE regist_1 IS ARRAY (7 DOWNTO 1) OF BIT;TYPE rom IS ARRAY (0 TO 7) OF register;TOD!類型實際上是用register基類型定義的二維數(shù)組,即TYPE rom IS ARRAY (0 TO 7, 0 TO 7) OF BIT;數(shù)組的范圍還可以用 已經(jīng)定義過的枚舉型來表示,如:TYPE light_delay

8、IS ARRAY (traffic_light) OF INTEGER;這里的traffic-light是已經(jīng)定義的枚舉類型,有三個取A ("red、yellow、green”)。將來定義的類型為light-delay的數(shù)組,也只會有三個元素。在VHDL中,可以對數(shù)組的整體賦值:如定義了 regist_1類型的數(shù)組信號:TYPE regist_1 IS ARRAY (7 DOWNTO 0) OF BIT;SIGNAL arr_1, arr_2 : regist_1;以下的賦布操作后VHDL 6都是允許的:arr_1 <= "10110110"arr_2 &l

9、t;=arr_1;子類而97頁希望對某種類型數(shù)據(jù)的范圍加以限制四、對象VHD把信號、變量、常量和文件統(tǒng)稱為對象。89頁1 .常量的定義CONSTANT常量名:類型名:=常量值;例如:CONSTANT array_size : INTEGER := 16;CONSTANT gate_delay : TIME := 50ns;2 .變量的定義變量的定義采用如下的方式:VARIABLE變量名:類型名序初值;變量的賦值用“F”來表示。變量的賦值沒有延遲。3.信號的定義信號定義的方式:SIGNAL信號名:類型名F初值;信號的賦值用“ 二”表示,有延遲,初始化不同于賦值信號的傳送可以規(guī)定延遲,也可以不規(guī)定

10、延遲。但是 VHDL規(guī)定,如果沒有指定信號傳送的延遲,信號的傳送也會有一個最小延遲A o信號可以是全局定義的,PORT中定義的信號就是對所有的結(jié)構(gòu)體都有效。但是,信 號也可以是局部定義的,在結(jié)構(gòu)體內(nèi)部定義的信號只對這個結(jié)構(gòu)體有效。五、詞法單元87頁1 .注釋以雙連符(-)開始直到行末2 .VHDL中的數(shù)字八進制:以。開頭,如O" 340”二進制:以B開頭,如B” 11100000'十六進制:以X開頭,如X“ E0”3 .字符文字字符表示形式為:單引號括起來的 ASCII字符,如A;' *'4 .字符串文字字符串表示形式為:雙引號括起來的圖形字符序列。如&quo

11、t;how are you",”5 .位用位用表示形式為:雙引號括起來的擴展的 數(shù)字序列,數(shù)字序列前冠以基數(shù)說明符如:夕11110101” 長度為八的二進制數(shù),等效2456 .VHDL語句中使用的標(biāo)點符號分號(;)是一條語句結(jié)束的標(biāo)志逗號(,)是對象的分隔符冒號(:)和原點(.)的用法在每條語句中給出六、表達式與運算符102頁具體的運算符和其他程序設(shè)計語言中的表達式很相似,一個表達式是由運算符把對象名、文 字、函數(shù)調(diào)用及括起來的表達式連接起來的式子。在一個VHDL表達式中,數(shù)據(jù)的類型應(yīng)該相同。如果不同的數(shù)據(jù)類型出現(xiàn)在同 一個表達式,VHDL不會進行自動類型的轉(zhuǎn)換,而只會給出錯誤信息。

12、VHDL支持運算符的重載。例如可以對不同類型的信號各自進行AND運算七、VHDL的庫和包1 .VHDL庫的種類和使用VHDL的庫可以分為三種類型:系統(tǒng)庫,IEEE庫、用戶庫。系統(tǒng)庫是VHDL語言本身預(yù)定義的庫,包括 STD庫和WORK庫。STD庫是系 統(tǒng)的標(biāo)準(zhǔn)庫,所有系統(tǒng)本身預(yù)定義的類型和有關(guān)的操作都包含在這個庫中。WORK庫是用戶的工作庫。對用戶都是透明的,也就是隨時都可以使用的,不需要在描述中專 門說明。IEEE庫是IEEE認可的標(biāo)準(zhǔn)庫,其中包括對于 STD_LOGIC類型以及有關(guān)函數(shù) 的定義。用戶庫就是VHDL軟件提供廠商開發(fā)的庫,應(yīng)該查詢相應(yīng)軟件的說明。2 .程序包一個VHDL庫可以包

13、含許多內(nèi)容,并且往往以程序包(Package的形式組織在 一起。一個程序包由兩個部分構(gòu)成:包的說明部分(Package Declaration)和包的主體 部分(Package Bod»?;镜慕Y(jié)構(gòu)如下:PACKAGE程序包名IS程序包說明部分END程序包名;PACKAGE BODY 程序包名 IS程序包主體描述END程序包名;說明部分可以包括:常量說明;信號說明,這里說明的信號可以被所有的結(jié)構(gòu)體使用;類型說明;函數(shù)或過程說明;部件(Component)說明,程序包的主體部分 則是對所包含的函數(shù)、過程、結(jié)構(gòu)體進行具體的描述。程序包示例PACKAGE qit_utilities IST

14、YPE qit IS ('0' ,'1' ,'Z' , 'X');FUNCTION "AND" (a, b :qit) RETURN qit;只是聲明,有這個函數(shù)FUNCTION "OR" (a, b :qit) RETURN qit;END qit_utilities;PACKAGE BODY qit_utilities ISFUNCTION "AND" (a, b :qit) RETURN qit IS對函數(shù)的具體過程描述CONSTANT qit_and_table

15、: qit_2d :=('0', '0', '0', '0'),('0', '1', '1', 'X'),('0', '1', '1', 'X'),('0', 'X', 'X', 'X');BEGINRETURN qit_and_table(a, b);END "AND"FUNCTION "OR" (a

16、, b :qit) RETURN qit IS函數(shù)的定義方法 71 頁例 3-3 比較CONSTANT qit_or_table : qit_2d :=('0', '1', '1', 'X'),('1', '1', '1', '1'),('1', '1', '1', '1'),('X', '1', '1', 'X');BEGINRETURN

17、qit_or_table(a, b);END "OR"END qit_utilities;以上而程序包中定義了一種 4值邏輯及其操作。在說明部分定義了一種新的信號類 型qit,也就是一種4值邏輯,還說明了兩個函數(shù)AND和OR,用來對4值邏輯進行“與” “或”運算。在BODY部分實現(xiàn)了這兩個函數(shù)。3 .庫和程序包的引用77頁在所有的VHDL源程序都要首先聲明使用什么VHDL庫。聲明要使用關(guān)鍵字LIBRARY ,例如,要使用IEEE庫,使用這個庫中的哪個程序包就應(yīng)該作以下的聲明: LIBRARY IEEE;USE庫名.程序包名.ALL;包中所有內(nèi)容可用USE庫名.程序包名.子程

18、序名;包中選中內(nèi)容可用4 .函數(shù)和過程前一頁程序包的例子VHDL中既可以使用函數(shù),也可以使用過程(Procedure。兩者統(tǒng)稱為子程序。函數(shù)的定義包括函數(shù)說明和函數(shù)主體兩部分,基本的格式如下:FUNCTION 函數(shù)名(參數(shù)表)RETURN 類型ISBEGIN函數(shù)體END函數(shù)名;函數(shù)體中一定要包括RETURN語句。過程的定義和函數(shù)的定義非常相似:PROCEDURE 過程名(參數(shù)表)ISBEGIN過程體END過程名;過程沒有返回值。函數(shù)的參數(shù)傳遞總是 一個方向的,也就是傳入到函數(shù),而過程的參數(shù)傳遞可以是 兩 個方向的。具體在過程執(zhí)行中參數(shù)如何傳遞,取決于參數(shù)的類別( IN、OUT、INOUT 等)

19、,而對于函數(shù)參數(shù)的類別,則 只能有一種:IN,就是輸入到函數(shù)。5.4 VHDL程序的描述語句可以有許多并行處理語句,這些語句的執(zhí)行是可以同時進行的。并行語句主要是 信號傳送語句。傳送時可以指定傳輸延遲。如果傳送時沒有指定時延,VHDL會對并行處理語句的執(zhí)行加上一個最小時延 A一、并行賦值語句并行賦值語句是最基本的VHDL語句,它的格式是:信號名 <二表達式;信號名 <=表達式AFTER延遲時間;例5.4半加器的數(shù)據(jù)流描述。ENTITY half_adder ISPORT(a, b: IN BIT;s, c0: OUT BIT);END half_adder;ARCHITECTURE

20、 h_adder OF half_adder ISSIGNAL c, d: BIT;BEGIN信號時非輸入輸出的中間量相 c<= a OR b;d<= a NAND b;當(dāng)于下一階段的輸入和上一階段的輸出 ?c0<= NOT d;s<= c AND d;END h_adder;二、條件賦值語句條件賦值語句也是一種信號賦值語句,只是賦給信號的值可以根據(jù)條件的不同而不 同。條件賦值語句的格式如下:信號名 <=表達式1 WHEN 布爾表達式1 ELSE表達式2 WHEN 布爾表達式2 ELSE表達式n WHEN 布爾表達式n ELSE表達式;例5.5用條件賦值語句描述數(shù)

21、據(jù)選擇器。ENTITY mux4_to_1 ISPORT(d0, d1, d2, d3, a, b: IN BIT;y: OUT BIT);END mux4_to_1;ARCHITECTURE sampleOF mux4_to_1 IS 和例5.4比,沒有需要中間信號 BEGIN y<= d0 WHEN a='0' AND b='0' ELSE di WHEN a='0' AND b='1' ELSE d2 WHEN a='1' AND b='0' ELSE d3 WHEN a='1&

22、#39; AND b='1'END sample_1三,選擇信號賦值語句選擇信號賦值語句可以根據(jù)一個表達式的不同取值,給信號或者信號數(shù)組賦以不同 的結(jié)果。選擇信號賦值語句的格式如下:WITH 表達式 SELECT信號名 <=信號值1 WHEN 表達式值1,信號值2 WHEN表達式值2,信號值 n WHEN others;例5.6用信號選擇語句 描述數(shù)據(jù)選擇器。ENTITY mux4_to_1 ISPORT(d0, d1, d2, d3, a, b: IN std_logic; y: OUT std_logic);END mux4_to_1;ARCHITECTURE sam

23、ple_2 OF mux4_to_1 IS BEGINWITH a&b SELECT y<= d0 WHEN "00", di WHEN "01", d2 WHEN "10", d3 WHEN "11", 'X' WHEN OTHERS; END sample_2;5.4.2 順序描述語句并行信號傳輸語句主要描述硬件電路或系統(tǒng)中信號的傳送過程。同時, VHDL還支持 順序描述語句,主要使用于對電路和系統(tǒng)的性能描述。順序描述語句的執(zhí)行就和一般程序設(shè)計語言中語句相似,是按照語句的順序依次執(zhí)

24、行 的。前一條語句的 結(jié)果會影響到下一條語句的執(zhí)行。一、PROCESS語句132 頁盡管PROCESS語句本身是并行描述語句,可以和其他并行語句同時執(zhí)行,但是 PROCESS語句內(nèi)部的語句都是順序語句。PROCESS語句一旦開始執(zhí)行,就要依次執(zhí)行其中的順序語句,一直到最后的 END PROCESS 為止。PROCESS語句的格式如下:PROCESS信號1,,信號k)用到的信號變量說明(定義);其他說明;BEGIN順序語句 順序語句END PROCESS;多分支IF語句的格式:IF布爾表達式THEN順序語句 ELSIF布爾表達式 THEN順序語句 ELSE順序語句 END IF;二、分支語句兩分

25、支IF語句的格式:IF布爾表達式THEN順序語句ELSE順序語句END IF;例5.7反向器的順序描述。ENTITY inverter ISPORT(x: IN BIT;y: OUT BIT);END inverter;ARCHITECTURE behave OF inverter ISBEGINPROCESS(x)只用到x作為判斷條件BEGINIF (x='0') THEN y<=1'ELSE y<= 0'END IF;END PROCESS;END behave;、另外一種分支語句CASE語句CASE語句是從多個可能的分支中選擇一個分支進行操作C

26、ASE語句的格式如下:CASE表達式ISWHEN 值1 =順序語句1WHEN值k =>順序語句k WHEN OTHERS => 順序語句 k+1 END CASE;例5.8四選一數(shù)據(jù)選擇器的順序描述。ENTITY mux4_1 ISPORT(a, b, i0, i1, i2, i3: IN BIT;y: OUT BIT);END mux4_1;ARCHITECTURE behave OF mux4_1 ISSIGNAL sel bit_vector(1 DOWNTO 0);BEGINsel<=b & a;PROCESS(sel, i0, i1, i2, i3)BEGI

27、NCASE sel ISWHEN "00" => y<=i0;WHEN "01" => y<=i1;WHEN "10" => y<=i2;WHEN "11" => y<=i3;END CASE;END PROCESS;END behave四、循環(huán)語句VHDL中提供了兩種形式的循環(huán)語句:FOR循環(huán)和WHILE循環(huán)FOR循環(huán)的格式如下:FOR變量IN范圍LOOP順序語句 順序語句END LOOP;其中的“變量”和“范圍”應(yīng)該有相同的類型。例如變量是整型,范圍可以是一個 整

28、數(shù)范圍。如果變量是枚舉型,則“范圍”要限制在枚舉類型所定義的取值范圍內(nèi)。WHILE循環(huán)的格式如下:WHILE 布爾表達式LOOP順序語句順序語句 END LOOP;WHILE循環(huán)中的布爾表達式可以是邏輯表達式或者關(guān)系表達式。在for循環(huán)或者WHILE循環(huán)中都可以使用NEXT語句來結(jié)束本次循環(huán),用EXIT語句來結(jié)束循環(huán), 到下一條順序語句繼續(xù)執(zhí)行。它們的格式基本相同:NEXT WHEN 布爾表達式;EXIT WHEN布爾表達式;5.4.3 VHDL的描述風(fēng)格在VHDL中對這一類的描述稱為“性能”描述(行為描述),性能描述中一定有 PROCESS 語句。VHDL還有另一種描述,稱為“結(jié)構(gòu)”描述。1

29、 .性能描述(行為描述)這種描述完全是從與非門輸入和輸出的邏輯關(guān)系出發(fā),對與非門性能的一種描述。2 .數(shù)據(jù)流描述(RTL描述)建立在并行信號賦值語句基礎(chǔ)上。當(dāng)語句中任意一個輸入信號的值發(fā)生改變時,賦值語句就被激活,從而認為數(shù)據(jù)從一個設(shè)計中“流入”,然后又“流出”3 .結(jié)構(gòu)描述語句結(jié)構(gòu)描述是VHDL的三種描述方法之一。結(jié)構(gòu)描述的基礎(chǔ)是部件:COMPONENT。 所使用的部件應(yīng)該是 事先已經(jīng)定義 過的。可以直接取自某個 VHDL庫,也可以是用戶自定義的存放在 WORK庫的部件。所用部件所在的庫或程序包, 必須在程序開始前聲明。在結(jié)構(gòu)描述中所使用的部件必須首先聲明。 部件的聲明在ARCHTECTUR

30、E的聲 明部分進行。部件聲明語句(Component Declaration)的格式如下:COMPONENT 部件名PORT(信號名:類別信號類型;信號名:類別信號類型);END COMPONENT;部件描述語句第一種格式的COMPONENT語句是:標(biāo)號:部件名PORT MAP(信號名1,信號名2,信號名n);在使用這種格式時,必須注意PORT MAP所列出的信號名應(yīng)該和 部件定義 時的信號名的順序相一致。標(biāo)號是部件的標(biāo)識。同樣的部件在電路中可以使用多次,它們都有相同的部件名,但是有不同的標(biāo)號第二種格式是:標(biāo)號:部件名PORT MAP(接口信號1=信號名1,,接口信號n =信號名n);采用這樣的格 式,就不要求COMP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論