教學(xué)用第1章硬件描述語(yǔ)言vhdl_第1頁(yè)
教學(xué)用第1章硬件描述語(yǔ)言vhdl_第2頁(yè)
教學(xué)用第1章硬件描述語(yǔ)言vhdl_第3頁(yè)
教學(xué)用第1章硬件描述語(yǔ)言vhdl_第4頁(yè)
教學(xué)用第1章硬件描述語(yǔ)言vhdl_第5頁(yè)
已閱讀5頁(yè),還剩118頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 1 章硬件描述語(yǔ)言 VHDL數(shù)字系統(tǒng)設(shè)計(jì)分為硬件設(shè)計(jì)和設(shè)計(jì), 但是隨著計(jì)算機(jī)技術(shù)、超大規(guī)模集成電路(CPLD、FPGA)的發(fā)展和硬件描述語(yǔ)言(HDL, Hardware DescriptionLanguage)的出現(xiàn),軟、硬件設(shè)計(jì)之間的界限被打破,數(shù)字系統(tǒng)的硬件設(shè)計(jì)可以完全用來(lái)實(shí)現(xiàn),只要掌握了 HDL 語(yǔ)言就可以設(shè)計(jì)出各種各樣的數(shù)字邏輯電路。1.1 老的硬件設(shè)計(jì)方法老的硬件設(shè)計(jì)方法有如下幾個(gè)特征:(1) 采用自下而上的設(shè)計(jì)方法使用該方法進(jìn)行硬件設(shè)計(jì)是從選擇具體元器件開(kāi)始,并用這些元器件進(jìn)行邏輯電路設(shè)計(jì),從而完成系統(tǒng)的硬件設(shè)計(jì),然后再將各功能模塊連接起來(lái),完成整個(gè)系統(tǒng)的硬件設(shè)計(jì),(2) 采用

2、通用邏輯元器件通常采用 74 系列和 CMOS4000 系列的產(chǎn)品進(jìn)行設(shè)計(jì)(3) 在系統(tǒng)硬件設(shè)計(jì)的后期進(jìn)行調(diào)試和仿真只有在部分或全部硬件電路連接完畢,才可以進(jìn)行電路調(diào)試,一旦考慮不周到,系統(tǒng)設(shè)計(jì)存在較大缺陷,則要重新設(shè)計(jì),使設(shè)計(jì)周期延長(zhǎng)。(4) 設(shè)計(jì)結(jié)果是一張電路圖當(dāng)設(shè)計(jì)調(diào)試完畢后,形成電原理圖,該圖包括元器件型號(hào)和信號(hào)之間的互連關(guān)系等等。老的硬件設(shè)計(jì)方法已經(jīng)使用了幾十年,是廣大電子工程師熟悉和掌握的法,但是現(xiàn)在這種方法老了,不僅方法老了,就連使用的元器件也老了。1.2 使用 HTL 的硬件設(shè)計(jì)方法所謂硬件描述語(yǔ)言,就是利用一種人和計(jì)算機(jī)都能識(shí)別的語(yǔ)言來(lái)描述硬件電路的功能,信號(hào)連接關(guān)系及定時(shí)關(guān)

3、系,它可以比電原理圖更能表示硬件電路的特性。該方法有如下特征:(1) 支持自頂向下的設(shè)計(jì)方法所謂自頂向下的設(shè)計(jì)方法就是從系統(tǒng)的總體要求出發(fā),自頂向下分三個(gè)層次對(duì)系統(tǒng)硬件進(jìn)行設(shè)計(jì)。第一個(gè)層次是行為描述,所謂行為描述,實(shí)際就是對(duì)整個(gè)系統(tǒng)的數(shù)學(xué)模型的描述,在行為描述階段,并不真正考慮其實(shí)際操作和算法怎么實(shí)現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)和工作過(guò)程是否能達(dá)到系統(tǒng)設(shè)計(jì)規(guī)格書的要求。第二個(gè)層次是數(shù)據(jù)流描述,又稱為寄存器描述或 RTL 方式描述,該描述比行為描述更注重硬件的具體實(shí)現(xiàn),通過(guò)該描述可以導(dǎo)出系統(tǒng)的邏輯表達(dá)式,為邏輯綜合作準(zhǔn)備,當(dāng)然進(jìn)行邏輯綜合和邏輯綜合工具的能力有關(guān),當(dāng)然設(shè)計(jì)還必須了解邏輯綜合工具的說(shuō)明和規(guī)

4、定,第三個(gè)層次為邏輯綜合。該層次把 RTL 描述的程序轉(zhuǎn)換成基本邏輯元件表示的文件,該文件就象老的設(shè)計(jì)方法中的電原理圖。(2)采用大量的 ASIC(3)早期仿真以確定系統(tǒng)的可行性(4)使設(shè)計(jì)更容易只需寫出系統(tǒng)的 HDL 源程序文件,其它由計(jì)算機(jī)去做(5) 全部設(shè)計(jì)文件就是 HDL 源程序文件1.3 VHTL 硬件設(shè)計(jì)語(yǔ)言當(dāng)前 ASIC 制造商都自己開(kāi)發(fā)了 HDL 語(yǔ)言,但是都不通用,只有國(guó)防部開(kāi)發(fā)的 VHDL 語(yǔ)言成為了 IEEE. STD_1076 標(biāo)準(zhǔn),并在全世界得到了承認(rèn)。該語(yǔ)言集成了各種 HDL 語(yǔ)言的優(yōu)點(diǎn),使數(shù)字系統(tǒng)設(shè)計(jì)更加簡(jiǎn)單和容易。VHDL語(yǔ)言是一個(gè)規(guī)模龐大的語(yǔ)言,在使用它之前完

5、全學(xué)會(huì)它是很難的,本書介紹的只是 VHDL 語(yǔ)言的一部分。1.4VHDL 語(yǔ)言的基本結(jié)構(gòu)VHDL 語(yǔ)言通常包含實(shí)體(Entity),構(gòu)造體(Architecture),配置(Configuration) , 包集合(Package) , 和庫(kù)(Library) 五部分. 其中實(shí)體用于描述所設(shè)計(jì)的系統(tǒng)的外部接口信號(hào);構(gòu)造體用于描述系統(tǒng)的結(jié)構(gòu)和行為;建立輸入和輸出之間的關(guān)系;配置語(yǔ)句安裝具體元件到實(shí)體結(jié)構(gòu)體對(duì),可以被看作是設(shè)計(jì)的零件;包集合存放各個(gè)設(shè)計(jì)模塊共享的數(shù)據(jù)類型、常數(shù)和子程序等;庫(kù)是專門存放預(yù)編譯程序包的地方。如下詳細(xì)介紹。1.4.1 基本設(shè)計(jì)單元VHDL 的基本設(shè)計(jì)單元就是實(shí)體,無(wú)論數(shù)字

6、電路復(fù)雜還是簡(jiǎn)單,都是由實(shí)體和構(gòu)造體組成。(1)實(shí)體說(shuō)明實(shí)體說(shuō)明有如下結(jié)構(gòu):ENTITY實(shí)體名IS端口說(shuō)明END實(shí)體名;(VHDL 語(yǔ)言中不分大小寫字母)其中:端口說(shuō)明是對(duì)設(shè)計(jì)實(shí)體中輸入和輸出借口進(jìn)行描述,格式如下:PORT(端口名(,端口名):方向 數(shù)據(jù)類型名;:端口名(,端口名):方向 數(shù)據(jù)類型名);端口名是賦予每個(gè)系統(tǒng)引腳的名稱,一般用幾個(gè)英文字母組成。端口方向是定義引腳是輸入還是輸出,見(jiàn)下表:常用的端口數(shù)據(jù)類型有兩種:BIT 和 BIT_VECTOR,當(dāng)端口被說(shuō)明為 BIT 時(shí),只能取值“1”或“0”,當(dāng)端口被說(shuō)明為 BIT_VECTOR 時(shí),它可能是一組二進(jìn)制數(shù)。方向說(shuō)明IN輸入到實(shí)

7、體OUT從實(shí)體輸出輸出INOUT雙向BUFFER輸出(但可以反饋到實(shí)體內(nèi)部)LINKAGE不指定方向例:PORT(n0, n1, select: IN BIT;q: OUT BIT;bus: OUT BIT_VECTOR(7 DOWNTO 0);本例中,n0, n1, select 是輸入引腳,屬于 BIT 型,q 是輸出引腳,BIT型,bus 是一組 8 位二進(jìn)制總線,屬于 BIT_VECTOR,例:LIBRARY IEEE;USE IEEE.STD_LOGIC.1164.ALL;ENTITY mm ISPORT(n0,n1,select:IN STD_LOGIC;Q:OUT STD_LOG

8、IC;Bus:OUT STD_LOGIC_VECTOR(7DOWNTO 0);END mm;在此例中端口數(shù)據(jù)類型取自IEEE 標(biāo)準(zhǔn)庫(kù)(該庫(kù)中有數(shù)據(jù)類型和函數(shù)的說(shuō)明),其中 STD_LOGIC 取值為“0”,“1”,“X”和“Z”。因?yàn)槭褂昧藥?kù)所以在實(shí)體說(shuō)明前要增加庫(kù)說(shuō)明語(yǔ)句。(2) 構(gòu)造體構(gòu)造體是實(shí)體的一個(gè)重要部分,每一個(gè)實(shí)體都有一個(gè)或一個(gè)以上的構(gòu)造體。1)一般說(shuō)明構(gòu)造體格式如下:ARCHITECTURE構(gòu)造體名 OF 實(shí)體名 IS定義語(yǔ)句信號(hào),常數(shù),數(shù)據(jù)類型,函數(shù)等的定義BEGIN并行處理語(yǔ)句END 構(gòu)造體名;例:ENTITY nax ISPORT(a0,a1:IN BIT;Sel:IN B

9、IT;Sh:OUT BIT);END nax;ARCHITECTUREdataflow OF nax ISBEGINsh=(a0 AND sel) OR (NOT sel AND a1);END dataflow;構(gòu)造體描述設(shè)計(jì)實(shí)體的具體行為,它包含兩類語(yǔ)句:并行語(yǔ)句并行語(yǔ)句總是在進(jìn)程語(yǔ)句(PROS)的外部,該語(yǔ)句的執(zhí)行與書寫順序無(wú)關(guān),總是同時(shí)被執(zhí)行順序語(yǔ)句順序語(yǔ)句總是在進(jìn)程語(yǔ)句(PROS)的,從仿真的角度,該語(yǔ)句是順序執(zhí)行的一個(gè)構(gòu)造體包含幾個(gè)類型的子結(jié)構(gòu)描述,這些描述是:*BLOCK 描述(塊描述)*PROS 描述(進(jìn)程描述)*SUNPROGRAMS 描述(子程序描述)2) BLOCK 語(yǔ)句

10、描述使用 BLOCK 語(yǔ)句描述的格式如下:塊標(biāo)號(hào):BLOCKBEGIN:END BLOCK塊標(biāo)號(hào):例:二選一電路ENTITY mux ISPORT (d0,d1,sel: IN BIT;q: OUT BIT);END mux;ARCHITECTUREconnect OFmuxISSIGNAL tmp1,tmp2,tmp3: BIT;BEGINcale:BLOCKBEGINtmp1=d0 AND sel;tmp2=d1 AND (NOT sel);tmp3=tmp1 OR tmp2;q=tmp3;END BLOCK cale;END connect;在對(duì)程序進(jìn)行仿真時(shí),BLOCK 中的語(yǔ)句是并行

11、執(zhí)行的,與書寫順序無(wú)關(guān),這一點(diǎn)和構(gòu)造體中直接寫的語(yǔ)句是一樣的。3)進(jìn)程(PROS)描述進(jìn)程描述的格式如下:進(jìn)程名:PROS(信號(hào) 1,信號(hào) 2,。)BEGIN:END PROS 進(jìn)程名;* 一般用于組合電路進(jìn)程模式:進(jìn)程標(biāo)記:PROS ( 信號(hào)名, 信號(hào)名, 信號(hào)名)VARIABLE 變量名 : STD_LOGIC;VARIABLE 變量名 : STD_LOGIC;BEGIN-指定信號(hào)-指定變量-過(guò)程調(diào)用-如果語(yǔ)句-CASE 語(yǔ)句-循環(huán)語(yǔ)句ENDPROS 進(jìn)程標(biāo)記;* 用于時(shí)序電路進(jìn)程模式:進(jìn)程標(biāo)記:PROS ( 信號(hào)名, 信號(hào)名, 信號(hào)名)VARIABLE 變量名 : STD_LOGIC;V

12、ARIABLE 變量名 : STD_LOGIC;BEGINWAIT UNTIL 時(shí)鐘信號(hào) = 1;-指定信號(hào)-指定變量-過(guò)程調(diào)用-如果語(yǔ)句-CASE 語(yǔ)句- 循環(huán)語(yǔ)句END PROS 進(jìn)程標(biāo)記;例:ENTITY mux1 ISPORT (d0,d1,sel: IN BIT;q: OUT BIT);END mux1;ARCHITECTUREconnect OF mux1ISBEGINcale:PROS(d0,d1,sel)VARIABLE tmp1,tmp2,tmp3: BIT;-在進(jìn)程中定義的變量BEGINtmp1:=d0 AND sel;-輸入端口向變量賦值tmp2:=d1 AND (NOT

13、sel);tmp3:=tmp1 OR tmp2;q=tmp3;END PROS cale;ENDconnect;在 PROS 中的語(yǔ)句是順序執(zhí)行的,這一點(diǎn)和 BLOCK 中的語(yǔ)句是不一樣的。當(dāng) PROS 所帶的信號(hào)量發(fā)生變化時(shí),PROS 中的語(yǔ)句就會(huì)執(zhí)行一遍。4)子程序描述子程序的概念和其它高級(jí)程序中子程序的概念相同,在VHDL中有兩種類型:過(guò)程(Procedure)函數(shù)(Function)1. 過(guò)程的格式:PROCEDURE 過(guò)程名(參數(shù) 1,參數(shù) 2。)IS定義變量語(yǔ)句BEGIN順序處理語(yǔ)句END 過(guò)程名;例:PROCEDURE vector_to_(z: IN STD_LOGIC_VEC

14、TOR;x_flag : OUT;q: INEGER) ISBEGINq:=0;x_flag:=FALSE;FOR i IN z RANGE LOOPq:=q*2;IF(z(i)=1)THENq:=q+1;ELSEIF (z(i)/=10)THENx_flag:=TRUE;END IF;END LOOP;END vector_to_;在過(guò)程中,語(yǔ)句是順序執(zhí)行的。2函數(shù)函數(shù)的格式:FUNCTION 函數(shù)名(參數(shù) 1,參數(shù) 2。)RETURN數(shù)據(jù)類型名IS定義變量語(yǔ)句BEGIN順序處理語(yǔ)句RETURN 返回變量名;END 函數(shù)名;在 VHDL 語(yǔ)言中函數(shù)的參數(shù)都是輸入信號(hào),例:FUNCTIONmi

15、n(x,y:EGER)RETURNEGERISBEGINIF XWHEN 1RETURN 0;=WHEN ZRETURN Z;=END CASE;END invert;END logic該包使用例:USE logic.three_level_logic,logic.invert;/使用數(shù)據(jù)類型和函數(shù)兩個(gè)項(xiàng)目ENTITYinverter ISPORT(x:hree_level_logic ;y: OUT three_level_logic);END inverter;ARCHITECTURE inverter_body OF inverter ISBEGINkk:PROSBEGINYset, b

16、=qb, c=q)U2:nand2 PORT MAP(a=reset, b=q, c=qb)END rsff1;ARCHITECTURE rsff2 OF rs ISBEGINq=NOT(qb AND set);qb=NOT(q AND reset);END rsff2兩個(gè)構(gòu)造體,可以用配置語(yǔ)句進(jìn)行設(shè)置:CONFIGRATION rscon OF rs IS /選擇構(gòu)造體 rsff1FORrsff1ENDFOR;ENDrscon;1.4.3VHDL 中使用的數(shù)據(jù)類型和運(yùn)算操作VHDL 可以象其它高級(jí)語(yǔ)言一樣定義數(shù)據(jù)類型,但還可以用戶自己定義數(shù)據(jù)類型。(1)信號(hào)、常量和變量信號(hào):通常認(rèn)為信號(hào)是電

17、路中的一根線常數(shù):可以在數(shù)字電路中代表電源、地線等等變量:可以代表某些數(shù)值1常數(shù)常數(shù)的描述格式:CONSTANT常數(shù)名:數(shù)據(jù)類型:=表達(dá)式例:CONSTANTVcc: REAL:=5.0;CONSTANTDALY: TIME:=100ns;FBUS: BIT_VECTOR:=”0101”;CONSTANT2變量變量只能在進(jìn)程、函數(shù)和過(guò)程中使用,一旦賦值立即生效。變量的描述格式:VARIABLE變量名:數(shù)據(jù)類型 約束條件:=表達(dá)式例:VARIABLEx, y:EGER;VARIABLEcount:EGER RANGE 0 TO 255:=10;3信號(hào)信號(hào)除了沒(méi)有方向的概念以外幾乎和端口概念一致。

18、信號(hào)的描述格式:SIGNAL信號(hào)名:數(shù)據(jù)類型 約束條件:=表達(dá)式例:sys_clk: BIT:=0;SIGNALground: BIT:=0SIGNAL在程序中,信號(hào)值輸入信號(hào)時(shí)采用代入符”=”,而不是賦值符“:=”,同時(shí)信號(hào)可以附加延時(shí)。信號(hào)傳送語(yǔ)句:s1=s2 AFTER 10ns信號(hào)是一個(gè)全局量,可以用來(lái)進(jìn)行進(jìn)程之間的通信4信號(hào)與變量的區(qū)別信號(hào)賦值可以有延遲時(shí)間,變量賦值無(wú)時(shí)間延遲信號(hào)除當(dāng)前值外還有許多相關(guān)值,如歷史信息等,變量只有當(dāng)前值進(jìn)程對(duì)信號(hào)敏感,對(duì)變量不敏感信號(hào)可以是多個(gè)進(jìn)程的全局信號(hào),但變量只在定義它之后的順序域可見(jiàn)信號(hào)可以看作硬件的一根連線,但變量無(wú)此對(duì)應(yīng)關(guān)系1.4.4VHD

19、L 中的數(shù)據(jù)類型(1) 標(biāo)準(zhǔn)數(shù)據(jù)類型1整數(shù)(EGER)范圍:-2147483547-21474836462實(shí)數(shù)(REAL)范圍:-1.0E38-1.0E38書寫時(shí)一定要有小數(shù)。3位(BIT)在數(shù)字系統(tǒng)中,信號(hào)經(jīng)常用位的值表示,位的值用帶單引號(hào)的1和0來(lái)表示明確說(shuō)明位數(shù)值時(shí):BIT(1)4位矢量(BIT_VECTOR)位矢量是引號(hào)括起來(lái)的一組位數(shù)據(jù)“010101”5量()只有“真”和“假”兩個(gè)狀態(tài),可以進(jìn)行關(guān)系運(yùn)算6字符(CHARACTER)字符量通常用單引號(hào)括起來(lái),對(duì)大小寫敏感明確說(shuō)明 1 是字符時(shí):CHARACTER(1)7字符串(STRING)字符串是雙引號(hào)括起來(lái)的一串字符:“l(fā)aksdk

20、lakld”8時(shí)間(TIME)時(shí)間的:fs,ps,ns,ms,sec,min,hr例: 10 ns整數(shù)數(shù)值和之間應(yīng)有空格9錯(cuò)誤等級(jí)(SEVERITY LEVEL)用來(lái)表示系統(tǒng)的狀態(tài),它共有 4 種:NOTE(注意)WARNING(警告)ERROR(錯(cuò)誤)FAILURE(失?。?0.大于等于零的整數(shù)(NATURAL)、正整數(shù)(ITIVE)只能是正整數(shù)數(shù)據(jù)除定義類型外,有時(shí)還需要定義約束范圍。例:EGER RANGE100 DOWNTO 0BIT_ VECTOR (3 DOWNTO 0)REAL RANGE 2.0 TO 30.0(2)用戶定義的數(shù)據(jù)類型用戶定義的數(shù)據(jù)類型的一般格式:TYPE數(shù)據(jù)類

21、型名 ,數(shù)據(jù)類型名 數(shù)據(jù)類型定義不完整的數(shù)據(jù)類型格式:TYPE數(shù)據(jù)類型名 ,數(shù)據(jù)類型名;可由用戶定義的數(shù)據(jù)類型為:* 枚舉(ENUMERATED)格式:TYPE 數(shù)據(jù)類型名 IS(元素、元素、);例 1: TYPEk In,Tue,wed,Thu,Fri,Sat);例 2: TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);* 整數(shù)(EGER)格式:TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 約束范圍例:TYPEdigit ISEGER RANGE 0 TO 9* 實(shí)數(shù)(REAL)格式:TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 約束范圍例:TYPEcurrent IS R

22、EALRANGE -1E4 TO 1E4* 數(shù)組(ARRAY)格式:TYPE數(shù)據(jù)類型名 ISARRAY范圍 OF 原數(shù)據(jù)類型名;例:TYPE word IS ARRAY (1TO 8) OF STD_LOGIC;TYPE word IS ARRAY (EGER 1 TO 8) OF STD_LOGIC;TYPE instruction IS (ADD,SUB,INC,SRL,SRF,LDA,LDB);SUBTYPE digit ISEGER 0 TO 9;TYPE indflag IS ARRAY (instructionADDTOSRF)OFdigit;數(shù)組常在總線、ROM 和 RAM 中使

23、用。* 時(shí)間(TIME)格式: TYPE 數(shù)據(jù)模型名不副實(shí) IS范圍UNITS 基本;END UNITS;TYPE time RANGE 1E18 TO 1E18UNITSfs;ps=1000fs;ns=1000ps;us=1000ns;ms=1000us;sec=1000 ms;min=60 sec;hr=60 min;END UNITS;*(RECODE)將不同的數(shù)據(jù)類型放在一塊,就是類型數(shù)據(jù)格式:TYPE 數(shù)組類型名 IS RECORD元素名:數(shù)據(jù)類型名;元素名:數(shù)據(jù)類型名;:END RECORD;例:TYPE bIS RECORDaddr0: STD_LOGIC_VECTOR(7 DO

24、WNTO0);addr1: STD_LOGIC_VECTOR(7 DOWNTO0);r0:EGER;END RECORD;存取(ACS)文件(FILE)(3)數(shù)據(jù)類型的轉(zhuǎn)換數(shù) 據(jù) 類 型 轉(zhuǎn) 換 函 數(shù) 有VHDL語(yǔ)言 的 包 提 供 , 例 如 :STD_LOGIC_1164,STD_LOGIC_ARITH 等等轉(zhuǎn)換函數(shù)見(jiàn)表:函數(shù)說(shuō)明STD_LOGIC_1164 包 TO_STDLOGICVECTOR(A) TO_BITVECTOR(A) TO_LOGIC(A) TO_BIT(A)由BIT_VECTOR轉(zhuǎn)換成STD_LOGIC_VECTOR由STD_LOGIC_VECTOR轉(zhuǎn) 換 成BIT_

25、VECTOR由 BIT 轉(zhuǎn)換成 STD_LOGIC由 STD_LOGIC 轉(zhuǎn)換成 BITSTD_LOGIC_ARITH 包CONV_STD_LOGIC_VECTOR(A,位長(zhǎng))CONV_EGER(A)由EGER,UNSIGNED 和 SIGNED 轉(zhuǎn)換成STD_LOGIC_VECTOR由 UNSIGNED 和 SIGNED 轉(zhuǎn) 換 成EGER例:由 STD_BIT_VECTOR 轉(zhuǎn)換成EGERLIBRARYIEEEUSE IEEE.STD_LOGIC_1164.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALLENTITY add5 ISPORT(num: IN STD_LO

26、GIC_VECTOR(2DOWNTO0);:);END add5;ARCHITECTURE rtl OF add5 ISSIGNAL in_num:EGER RANGE 0 TO 5;:BEGINSTD_LOGIC_UNSIGNED 包CONV_EGERSTD_LOGIC_VECTOR 轉(zhuǎn)換成EGERIn_num=CONV_EGER(num);END rtl;(5)有關(guān) BIT_VECTOR 和 STD_BIT_VECTOR 的語(yǔ)句例:SIGNAL a: BIT_VECTOR(11 DOWNTO 8);SIGNAL b: STD_LOGIC_VECTOR(11 DOWNTO 0);a=X”A8

27、”; 十六進(jìn)制可以賦予位矢量b=X”A8”;十六進(jìn)制不可以賦予邏輯矢量,所以此句錯(cuò),邏輯量中只能賦予二進(jìn)制b=TO_STDLOGICVECTOR(X”AF7”);十六進(jìn)制變換b=TO_STDLOGICVECTOR(O”5177”); 八進(jìn)制變換b=TO_STDLOGICVECTOR(B”1010_1111_0111”); 三位二進(jìn)制變換(6) IEEE 標(biāo)準(zhǔn)“STD_LOGIC”和”STD_LOGIC_VECTOR”1993 年制定的標(biāo)準(zhǔn) IEEE STD1164 對(duì) STD_LOGIC 的值做如下規(guī)定:U初始值X不定0011ZW弱信號(hào)不定L 弱信號(hào) 0H 弱信號(hào) 1-不可能情況1.4.5 V

28、HDL 語(yǔ)言的運(yùn)算操作符優(yōu) 先 級(jí)別類型操 作符說(shuō)明高邏輯運(yùn)算符AND邏輯與OR邏輯或NAND邏輯與非NOR邏輯或非XOR邏輯異或關(guān)系運(yùn)算符=等號(hào)/=不等號(hào)大于=大于等于加、減、并+加(1)邏輯運(yùn)算符要求運(yùn)算符左右的數(shù)據(jù)類型必須相同,例:x=(a AND b) OR (NOT c AND d);x=bAND a ANDd AND e;x=bOR c OR dOR e;x=aXOR d XORe;a=(x1 AND x2)OR (y1 AND y2);(2) 算數(shù)運(yùn)算符在使用乘法運(yùn)算符時(shí),應(yīng)該特別慎重,因?yàn)樗梢允惯壿嬮T數(shù)大大增加。低置運(yùn)算符-減&并置正負(fù)運(yùn)算符+正-負(fù)乘除法運(yùn)算符*乘/除MOD

29、取模REM取余*指數(shù)ABS取絕對(duì)值NOT取反(3)關(guān)系運(yùn)算符應(yīng)該注意小于等于=和代入運(yùn)算符的不同(從上下文區(qū)別)(4)并置運(yùn)算符并置運(yùn)算符 ”&” 用于位連接,例如:y(0)=b(0)&eny(1)=b(1)&eny(2)=b(2)&eny(3)=b(3)&eny(4)=a(0)y(5)=a(1)y(6)=a(2)y(7)=a(3)從上可以看出 a,b 是四位長(zhǎng)度的矢量,而 y 的位長(zhǎng)是 7 位,上述情況可以表示成:tmp_b=b AND (en&en&en&en);y= a&tmp_b;若是位連接,可以簡(jiǎn)單寫為:tmp_b=b AND (en,en,en,en);1.4.5VHDL 語(yǔ)言構(gòu)造

30、體的描述方式有三種描述方式:行為描述,RTL 描述和 ASIC 描述,采用后兩種描述方式可以進(jìn)行邏輯綜合。(1) 行為描述描述數(shù)字系統(tǒng)的行為,主要用于仿真和系統(tǒng)工作原理的研究。下面介紹一些語(yǔ)句。1)代入語(yǔ)句格式: 信號(hào)量=敏感信號(hào)量表達(dá)式;例如: z=a NOR(b NAND c);該例中有三個(gè)敏感量,無(wú)論哪一個(gè)發(fā)生變化都可以使 z 變化。具有時(shí)間延遲的代入語(yǔ)句:a=b AFTER 10 ns表示當(dāng) b 發(fā)生變化 10 ns 后 a 才變化。例:與門電路ENTITY and2 ISPORT(a,b : IN BIT;c: OUT BIT);END and2;ARCHITECTURE and2_

31、behaveOF and2 ISBEGINc=a AND b;END and2_behave;2)延時(shí)語(yǔ)句VHDL 中有兩種延時(shí)語(yǔ)句:慣性延時(shí)和傳輸延時(shí)。*慣性延時(shí)VHDL 中慣性延時(shí)是缺省的,因?yàn)檫壿嬘布娐房偸怯袝r(shí)間延遲的,若延遲時(shí)間是 20ns,那末輸入信號(hào)時(shí)間若小于 20ns,則輸出信號(hào)將不跟隨輸入信號(hào)的變化。有時(shí)為使延遲時(shí)間更真實(shí)際電路,就專門設(shè)置慣性時(shí)間:b=a AFTER 10 ns;* 傳輸延時(shí)傳輸延時(shí)常代表總線、連接線的延遲時(shí)間,該時(shí)間必須專門說(shuō)明。該傳輸延時(shí)只對(duì)信號(hào)起純延時(shí)作用。例:b=TRANSPORT a AFTER 20 ns;(2) 數(shù)據(jù)流描述方式數(shù)據(jù)流描述方式是一

32、種可以進(jìn)行邏輯綜合的描述方式,由于要進(jìn)行邏輯綜合所以對(duì)使用的語(yǔ)句有一定的限制,VHDL 中的每一個(gè)命令和語(yǔ)句都對(duì)邏輯綜合能力進(jìn)行了定義,要進(jìn)行邏輯綜合的設(shè)計(jì)實(shí)體就要使用有邏輯綜合能力令和語(yǔ)句。例:四選一電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux42 ISPORT(input:IN STD_LOGIC_VECTOR(3DOWNTO 0);Sel:IN STD_LOGIC_VECTOR(1DOWNTO 0);Y:OUT STD_LOGIC);END mux42;ARCHI

33、TECTURE app OF mux42 ISBEGINyn1.b=n2,c=m);1.4.6VHDL 語(yǔ)言的主要描述語(yǔ)句(1)順序描述語(yǔ)句順序描述語(yǔ)句只能用在進(jìn)程和子程序中,它和其他高級(jí)語(yǔ)言一樣,其語(yǔ)句是按照語(yǔ)句的出現(xiàn)的順序加以執(zhí)行的.如下分別介紹有關(guān)的順序描述語(yǔ)句.1. WAIT 語(yǔ)句進(jìn)程在執(zhí)行過(guò)程中總是處于兩種狀態(tài):執(zhí)行或掛起,進(jìn)程的狀態(tài)變化受等待語(yǔ)句的控制,當(dāng)進(jìn)程執(zhí)行到等待語(yǔ)句,就被掛起,并等待再次執(zhí)行進(jìn)程.等待語(yǔ)句的格式:WAIT 無(wú)限等待* WAIT ON 敏感信號(hào)變化格式:WAIT ON 信號(hào),信號(hào)例: PROS(a,b)BEGINy=a AND b;END PROS;該例中的進(jìn)

34、程與下例中進(jìn)程相同:例: PROSBEGINy=aAND b;WAITON a,b;END PROS;* WAIT UNTIL 直到條件滿足格式: WAIT UNTIL表達(dá)式當(dāng)進(jìn)程執(zhí)行到該語(yǔ)句時(shí),被掛起;若表達(dá)式為真時(shí),進(jìn)程將被啟動(dòng).例: WAIT UNTIL (x*10)100)WAIT FOR 等到時(shí)間到格式: WAIT FOR 時(shí)間表達(dá)式當(dāng)進(jìn)程執(zhí)行到該語(yǔ)句時(shí),被掛起;等待一定的時(shí)間后,進(jìn)程將被啟動(dòng).例: WAIT FOR 20 ns*多條件 WAIT 語(yǔ)句例: WAIT ON nmi,errupt UNTIL (nmi=TRUE) OR (errupt=TRUE)FOR5 us該等待有三

35、個(gè)條件:第一,信號(hào) nmi 和errupt 任何一個(gè)有一次刷新動(dòng)作第二, 信號(hào) nmi 和errupt 任何一個(gè)為真第三, 等待 5 us只要一個(gè)以上的條件被滿足,進(jìn)程就被啟動(dòng).*超時(shí)等待若在程序中所設(shè)置的等待條件不會(huì)滿足,則進(jìn)程就不能啟動(dòng),為防止進(jìn)入無(wú)限等待情況,應(yīng)做一些處理.2. 斷言語(yǔ)句(ASSERT)格式: ASSERT 條件 REPORT 輸出信息SEVERITY 級(jí)別執(zhí)行到斷言語(yǔ)句時(shí),判斷條件,若條件滿足就繼續(xù)執(zhí)行,否則輸出文字串和錯(cuò)誤級(jí)別信息.例: ASSERT (tiaojian=1)REPORT “some thing wrong”SEVERITY ERROR;3. 信號(hào)代入

36、語(yǔ)句格式: 目的信號(hào)量=信號(hào)量表達(dá)式例: a=b;4. 變量賦值語(yǔ)句格式: 目的變量:=表達(dá)式例: c:=a+d5. IF 語(yǔ)句1) IF 的門閂控制格式:IF 條件 THEN順序執(zhí)行語(yǔ)句END IF;例:IF (a=1) THENc順序處理語(yǔ)句ENDCASE;其中 WHEN 的條件表達(dá)式可以有 4 種形式:WHEN值=順序處理語(yǔ)句值|值|值|值=順序處理語(yǔ)句WHENWHEN值 TO 值=順序處理語(yǔ)句WHENOTHERS=順序處理語(yǔ)句例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux43 ISPORT(a,b,i0,i1,i2,i3:IN

37、STD_LOGIC;q: OUT STD_LOGIC);END mux43;ARCHITECTURE mux4_behaveOF mux43 ISSIGNAL sel:EGER RANGE 0 TO 3;BEGINnn: PROS(a,b,i0,i1,i2,i3)BEGINsel=0;IF (a=1) THENsel=sel+1;END IF;IF (b=1) THENselqqqq=i3;ENDCASE;END PROS nn;ENDmux4_behave;7. LOOP 語(yǔ)句格式一:標(biāo)號(hào): FOR 循環(huán)變量 IN離散范圍LOOP順序處理語(yǔ)句END LOOP 標(biāo)號(hào);例: ASUM: FORi

38、 IN 1 TO 9 LOOPsum=1+sum;END LOOP ASUM;例:位奇偶校驗(yàn)電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY pcISPORT(a: IN STD_LOGIC_VECTOR(7DOWNTO0);y: OUT STD_LOGIC);END pc;ARCHITECTUREbehave OF pc ISBEGINcbc:PROS(a)VARIABLE tmp: STD_LOGIC;BEGINtmp:=0;FOR i IN 0 TO 7 LOOPtmp:=tmp XOR a(i);END LOOP;y=tmp;END P

39、ROS cbc;END behave;格式二:標(biāo)號(hào): WHILE 條件 LOOP順序處理語(yǔ)句END LOOP 標(biāo)號(hào);在該語(yǔ)句中,如果條件為真,則進(jìn)行循環(huán),否則結(jié)束循環(huán).例:sum:=0abcd: WHILE (I10) LOOPsum:=I+sum;I:=I+1;END LOOP abcd;8. NEXT 語(yǔ)句在 LOOP 語(yǔ)句中用 NEXT 語(yǔ)句跳出循環(huán).格式: NEXT 標(biāo)號(hào)WHEN 條件;NEXT 語(yǔ)句用于控制內(nèi)循環(huán)的結(jié)束.例:PROS (a,b)CONSTANT max_limit:EGER:=255BEGINFOR I IN 0 TO max_limit LOOPIF (done(I

40、)=TRUE) THENNEXT;ELSE done(I):=TRUE;END IF;q(I)=a(I) AND b(I);END LOOP;END PROS;9.EXIT 語(yǔ)句EXIT 語(yǔ)句用于結(jié)束 LOOP 循環(huán)狀態(tài).格式: EXIT 標(biāo)號(hào) WHEN 條件例:PROS(a)VARIABLE_a:EGER;BEGIN_a:=aFOR I=0 IN 0TO max_limitLOOPIF (_a=0) THENEXIT;ELSE_a:=_a-1;q(I)=3.1416/REAL(a*I);END IFEND LOOP;y=q;END PROS;(2)并發(fā)描述語(yǔ)句1. 進(jìn)程語(yǔ)句在一個(gè)構(gòu)造體中多個(gè)

41、 PROS 語(yǔ)句可以同時(shí)并行的執(zhí)行,該語(yǔ)句有如下特點(diǎn):1)可以和其它進(jìn)程語(yǔ)句同時(shí)執(zhí)行,并可以存取構(gòu)造體和實(shí)體中所定義的信號(hào)2)進(jìn)程中的所有語(yǔ)句都按照順序執(zhí)行3)為啟動(dòng)進(jìn)程,在進(jìn)程中必須包含一個(gè)敏感信號(hào)表或 WAIT 語(yǔ)句4)進(jìn)程之間的通信是通過(guò)信號(hào)量來(lái)實(shí)現(xiàn)的2. 并發(fā)信號(hào)代入代入語(yǔ)句在進(jìn)程中使用是順序語(yǔ)句,但是在進(jìn)程外即在構(gòu)造體中使用就是并發(fā)語(yǔ)句,相當(dāng)于一個(gè)進(jìn)程.例:ARCHITECTURE behave OF a_var ISBEGINOutput=a(I);END behave;可以等效于:ARCHITECTURE behave OF a_var ISBEGINss PROS(a,I)BE

42、GINOutput=a(I);END PROS ss;END behave;信號(hào)代入語(yǔ)句的右邊可以是算數(shù)表達(dá)式,也可以是邏輯表達(dá)式,還可以是關(guān)系表達(dá)式,所以可以仿真加法器、乘法器、除法器、比較器和各種邏輯電路。3. 條件信號(hào)代入條件代入語(yǔ)句也是并發(fā)語(yǔ)句,它可以將符合條件的表達(dá)式代入信號(hào)量。格式:目的信號(hào)量=表達(dá)式 1 WHEN 條件 1ELSE表達(dá)式 2 WHEN 條件 2ELSE表達(dá)式 3 WHEN 條件 3:ELSE表達(dá)式 n;例:四選一電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux44 ISPORT(i0,i1,i2,i3,a,

43、b:IN STD_LOGIC;q: OUT STD_LOGIC);END mux44;ARCHITECTURE aa OF mux44 ISSIGNAL sel: STD_LOGIC_VECTOR(1DOWNTO0);BEGINsel=b & a;q= i0WHENsel=00ELSEi1WHENsel=01ELSEi2WHENsel=10ELSEi3WHENsel=11;END aa;4. 選擇信號(hào)代入格式: WITH 表達(dá)式樣 SELECT目的信號(hào)量=表達(dá)式 1WHEN條件 1表達(dá)式 2WHEN條件 2:表達(dá)式 nWHEN條件 n;該語(yǔ)句很象 CASE 語(yǔ)句.例:LIBRARY IEEE;

44、USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux45 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUTSTD_LOGIC);END mux45;ARCHITECTURE bb OF mux45ISSIGNAL sel:EGER range0 to 3;BEGINWITH sel SELECTq=i0 WHEN 0,i1 WHEN 1,i2 WHEN 2,i3 WHEN 3;sel=0WHENa=0ANDb=0ELSE1WHENa=1ANDb=0ELSE2WHENa=0ANDb=1ELSE3WHENa=1ANDb=1;END bb;5

45、. 并發(fā)過(guò)程調(diào)用語(yǔ)句過(guò)程調(diào)用語(yǔ)句可以并發(fā)執(zhí)行,但要注意如下問(wèn)題:并發(fā)過(guò)程調(diào)用是一個(gè)完整的語(yǔ)句,在它之前可以加標(biāo)號(hào)并發(fā)過(guò)程調(diào)用語(yǔ)句應(yīng)帶有IN,OUT 或INOUT 的參數(shù),他們應(yīng)該列在過(guò)程名后的括號(hào)內(nèi)并發(fā)過(guò)程調(diào)用可以有多個(gè)返回值例:ARCHITECTURE.BEGINvector_to_(z,x_flag,q);:END;等同于:ARCHITECTURE.BEGINPROS(z,q)BEGINvector_to_(z,x_flag,q);:END PROS;END;1.4.7 基本邏輯電路設(shè)計(jì)(1)組合邏輯電路例1 2 輸入與非門電路LIBRARY ieee;USE ieee.std_logic

46、_1164.all;entity xx1isport(a,b:in std_logic;y:out std_logic);end xx1;architecture nand2pp OF xx1isbeginy=a nand b;end nand2pp;例 2: 2 輸入或非門LIBRARY ieee;use ieee.std_logic_1164.all;entity nor2 isport(a,b: in std_logic;y: out std_logic);end nor2;architecture nor_behave of nor2isbeginy=a nor b;end nor_b

47、ehave;例3 2 輸入異或門電路library ieee;use ieee.std_logic_1164.all;entity xor2 isport(a,b: in std_logic;y: out std_logic);end xor2;architecture xor_behave ofxor2isbeginy=a xor b;end xor_behave;例 4 3-8 譯LIBRARY ieee;USE ieee.std_logic_1164.all;entity decoder38 isport(a,b,c,g1,g2a,g2b: in std_logic;y: out std

48、_logic_vector(7 downto0);end decoder38;architecture behave38 OF decoder38 issignal indata: std_logic_vector(2 downto0);beginindatayyyyyyyyy=XX;end case;elsey=11111111;end if;end pros;end behave38;例 5 優(yōu)先編LIBRARY ieee;USE ieee.std_logic_1164.all;entity prior isport( input: in std_logic_vector(7downto0

49、);y: out std_logic_vector(2 downto 0);end prior;architecture be_prior OF prior isbeginpros(input)beginif(input(0)=0) theny=111;elsif (input(1)=0)theny=110;elsif (input(2)=0)theny=101;elsif (input(3)=0)theny=100;elsif (input(4)=0)theny=011;elsif (input(5)=0)theny=010;elsif (input(6)=0)theny=001;elsif

50、 (input(7)=0)theny=000;end if;end pros;end be_prior;例7四選一選擇器LIBRARY ieee;USE ieee.std_logic_1164.all;entity mux4 isport( input: in std_logic_vector(3downto0);a,b: in std_logic;y: out std_logic);end mux4;architecture be_mux4 OF mux4 issignal sel: std_logic_vector(1 downto 0);beginsel=b&a;pros(input,s

51、el)beginif(sel=00) theny=input(0);elsif (sel=01)theny=input(1);elsif (sel=10)theny=input(2);elsey=input(3);endif;endpros;endbe_mux4;例8:加法器LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arill;ENTITY adder ISPORT (op1, op2: INUNSIGNED(7downto0);result:OUTEGER);END adder;ARCHITECTUREmaxpld

52、OF adder ISBEGINresult =CONV_EGER(op1 +op2);END maxpld;例9半加器LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY half ISPORT (a, b: INstd_LOGIC;s,co: OUT std_LOGIC);END half;ARCHITECTUREhalf1 OF half ISsignal c,d:std_logic;BEGINc=a or b;d=a nand b;co=not d;s=c and d;end half1;例 10 全加器,由半加器組成,以元件方式調(diào)用.LIBR

53、ARY ieee;USE ieee.std_logic_1164.all;ENTITY half ISPORT (a, b: INstd_LOGIC;s,co: OUT std_LOGIC);END half;ARCHITECTURE half1 OF half ISsignalc,d:std_logic;BEGINc=aor b;d=anand b;co=not d;s=c and d;end half1;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY full ISPORT (a, b,cin: INstd_LOGIC;s,co: OUT s

54、td_LOGIC);END full;ARCHITECTURE full1 OF full IScomponenlfPORT (a, b: INstd_LOGIC;s,co: OUT std_LOGIC);end component;signal u0_co,u0_s,u1_co:std_logic;beginu0:half port map(a,b,u0_s,u0_co);u1:half port map(u0_s,cin,s,u1_co);co=u0_co or u1_co;end full1;例 10: 三態(tài)門LIBRARY ieee;USE ieee.std_logic_1164.al

55、l;ENTITY tri ISPORT (din, en:INstd_LOGIC;dout: OUTstd_LOGIC);END tri;ARCHITECTURE tri1 OFtri ISBEGINtri_gate: pros(din,en)beginif (en=1) thendout=din;elsedout=Z;end if;end pros;end tri1;例 11 三態(tài)單向總線LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY bufs ISPORT (din: INstd_LOGIC_vector(7downto 0);dout :

56、OUT std_LOGIC_vector(7downto0)bus;en: INstd_LOGIC);END bufs;ARCHITECTURE bufs1 OF bufs ISBEGINpros(en,din)beginif (en=1) thendout=din;elsedout=ZZZZZZZZ;end if;end pros;end bufs1;(2)時(shí)序電路設(shè)計(jì)1. 時(shí)鐘信號(hào)和復(fù)位信號(hào)1) 時(shí)鐘信號(hào)的描述* 若進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào),這時(shí)時(shí)鐘信號(hào)出現(xiàn)在 PROS 后的括號(hào)中.例: pros (clock_signal)beginif (clock_edge_condition) t

57、hensignal_out=signal_in:其它語(yǔ)句:end if;end pros;* 在進(jìn)程中用 WAIT ON 語(yǔ)句等待時(shí)鐘這樣的電路沒(méi)有敏感信號(hào),進(jìn)程通常停留在 WAIT ON 語(yǔ)句上,只有時(shí)鐘信號(hào)到來(lái)且滿足一定條件時(shí),其余語(yǔ)句才能執(zhí)行.例:prosbeginwait on (clock_signal) until (clock_edge_condition)signal_out=signal_in;:其它語(yǔ)句:end pros;*敏感表中只能有一個(gè)時(shí)鐘信號(hào)*wait on 語(yǔ)句只能放在進(jìn)程的最前面或者最后面*時(shí)鐘的邊沿描述描述時(shí)鐘一定要指明是上升沿還是下降沿上升沿到來(lái)的條件:IF

58、 clk=1 AND clkLAST_VALUE=0ANDclkEVENT下降沿到來(lái)的條件:IF clk=0 AND clkLAST_VALUE=1clkEVENTAND關(guān)于時(shí)鐘信號(hào)的總結(jié):IF clock_signal=current_value ANDclock_signalLAST ANDclock_siganlEVENT可以簡(jiǎn)單寫為:IF clock_signal=clock_siganlEVENTANDcurrent_value例 1:對(duì)于上升沿 D 觸發(fā)器,其描述為:pros(clk,d)beginif(clkevent and clk=1) thenq=d;end if;end

59、pros;例 2:對(duì)于上升沿 D 觸發(fā)器的另一描述為:prosbeginuntil clkevent and clk=1;waitq=d;end pros;2. 復(fù)位信號(hào)*同步復(fù)位當(dāng)復(fù)位信號(hào)有效且在給定的時(shí)鐘邊沿到來(lái)時(shí),觸發(fā)器才被復(fù)位.例 1:pros (clock)beginif (clock_edge_condition) thenif (reset_condition) thensignal_out=reset_value;elsesignal_out=signal_in;:其它語(yǔ)句:end if;end if;end pros;例 2:pros(clock)(clockeventand

60、 clock=1)ifthenif reset=1 thencount=0;elsecount=count+1;end if;end if;end pros;此例中,敏感表中只有時(shí)鐘信號(hào),因?yàn)橹挥袝r(shí)鐘到來(lái)時(shí)才能復(fù)位.* 異步復(fù)位只要復(fù)位信號(hào)有效,觸發(fā)器就被復(fù)位,所以敏感表中除時(shí)鐘信號(hào)外,還需要復(fù)位信號(hào)例 1:pros(reset_signal,clock_signal)beginif (reset_signal) thensignal_out=reset_value;elsif (clock_event and clock_edge_condition)thensignal_out=signa

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論