VHDL硬件描述語言簡介_第1頁
VHDL硬件描述語言簡介_第2頁
VHDL硬件描述語言簡介_第3頁
VHDL硬件描述語言簡介_第4頁
VHDL硬件描述語言簡介_第5頁
已閱讀5頁,還剩170頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

1、第五章第五章硬件描述語言硬件描述語言VHDL簡介簡介Intro. to VHDLlVHDLVery High Speed Integrated Circuit (VHSIC) Hardware Description LanguageDeveloped by TI, IBM, Intermetrics in 1983IEEE Std 1076-1987 and 1993lVHDL is a Hardware Description Language, VHDL is a Hardware Description Language, not a programming language. not

2、 a programming language.VHDL的優(yōu)點(diǎn)的優(yōu)點(diǎn)n用于設(shè)計(jì)復(fù)雜的、多層次的設(shè)計(jì)。支持設(shè)計(jì)用于設(shè)計(jì)復(fù)雜的、多層次的設(shè)計(jì)。支持設(shè)計(jì)庫和設(shè)計(jì)的重復(fù)使用庫和設(shè)計(jì)的重復(fù)使用n與硬件獨(dú)立,一個(gè)設(shè)計(jì)可用于不同的硬件結(jié)與硬件獨(dú)立,一個(gè)設(shè)計(jì)可用于不同的硬件結(jié)構(gòu),而且設(shè)計(jì)時(shí)不必了解過多的硬件細(xì)節(jié)。構(gòu),而且設(shè)計(jì)時(shí)不必了解過多的硬件細(xì)節(jié)。n有豐富的軟件支持有豐富的軟件支持VHDL的綜合和仿真,從而的綜合和仿真,從而能在設(shè)計(jì)階段就能發(fā)現(xiàn)設(shè)計(jì)中的能在設(shè)計(jì)階段就能發(fā)現(xiàn)設(shè)計(jì)中的Bug,縮短設(shè)縮短設(shè)計(jì)時(shí)間,降低成本。計(jì)時(shí)間,降低成本。n更方便地更方便地向向ASIC過渡過渡nVHDL有良好的可讀性,容易理解。

3、有良好的可讀性,容易理解。VHDL與計(jì)算機(jī)語言的區(qū)別與計(jì)算機(jī)語言的區(qū)別n運(yùn)行的基礎(chǔ)運(yùn)行的基礎(chǔ)n計(jì)算機(jī)語言是在計(jì)算機(jī)語言是在CPURAM構(gòu)建的平臺上運(yùn)構(gòu)建的平臺上運(yùn)行行nVHDL設(shè)計(jì)的結(jié)果是由具體的邏輯、觸發(fā)器組設(shè)計(jì)的結(jié)果是由具體的邏輯、觸發(fā)器組成的數(shù)字電路成的數(shù)字電路n執(zhí)行方式執(zhí)行方式n計(jì)算機(jī)語言基本上以串行的方式執(zhí)行計(jì)算機(jī)語言基本上以串行的方式執(zhí)行nVHDL在總體上是以并行方式工作在總體上是以并行方式工作n驗(yàn)證方式驗(yàn)證方式n計(jì)算機(jī)語言主要關(guān)注于變量值的變化計(jì)算機(jī)語言主要關(guān)注于變量值的變化nVHDL要實(shí)現(xiàn)嚴(yán)格的時(shí)序邏輯關(guān)系要實(shí)現(xiàn)嚴(yán)格的時(shí)序邏輯關(guān)系(一)(一)VHDL語言程序的基本結(jié)語言程序的基

4、本結(jié)構(gòu)構(gòu)Exampleentity and_2 is port (a, b: in std_logic; Y : out std_logic); end and_2;The Entity describesthe inputs and outputsarchitecture dataflow of and_2 isbegin Y=a and b;end dataflow;The Architecture describes the boxentity nameVHDL 大小寫不敏感大小寫不敏感Library IEEE;use IEEE.std_logic_1164.all;LibraryPac

5、kageAND_2abYVHDL 庫庫 (LIBRARY)n n n 設(shè)設(shè)計(jì)計(jì)庫庫IEEE庫庫預(yù)定義庫預(yù)定義庫( (隱含打開隱含打開) )STD庫庫STANDARD(隱含說明隱含說明)TEXTIO(用用USE說明說明)WORK庫庫資資 源源 庫庫(用用LIBRARY)其它庫其它庫STD_LOGIC_1164STD_LOGIC_ARITHSTD_LOGIC_UNSIGNEDNUMERIC_STDNUMERIC_BITMATH_REALMATH_COMPLEXVITAL_TIMINGVITAL_PRIMITIVE庫說明語句:庫說明語句:Library 庫名庫名;use 庫名庫名.程序包名程序包名.

6、項(xiàng)目名項(xiàng)目名;實(shí)體實(shí)體(Entity)n描述此設(shè)計(jì)功能輸入輸出端口(Port)n在層次化設(shè)計(jì)時(shí),Port為模塊之間的接口n在芯片級,則代表具體芯片的管腳A3.0B3.0equalEntity eqcomp4 isport(a, b: in std_logic_vector(3 downto 0); equal:out std_logic );end eqcomp4;實(shí)體端口的模式實(shí)體端口的模式n輸入(Input)n輸出(Output)n雙向(Inout):可代替所有其他模式,但降低了程序的可讀性,一般用于與CPU的數(shù)據(jù)總線接口n緩沖(Buffer):與Output類似,但允許該管腳名作為一些邏

7、輯的輸入信號(2) ) 端口說明端口說明PORT ( 端口名端口名,端口名端口名 : 方向方向 數(shù)據(jù)類型數(shù)據(jù)類型;:端口名端口名,端口名端口名 : 方向方向 數(shù)據(jù)類型數(shù)據(jù)類型 );端口方向端口方向 實(shí)實(shí)體體INOUTINOUTBUFFERLINKAGEOut與Buffer的區(qū)別nEntity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b = not(a); c = b;-Error end a;nEntity test2 is port(a:

8、in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b = not(a); c = b; end a;結(jié)構(gòu)體(結(jié)構(gòu)體(Architecture)n描述實(shí)體的行為描述實(shí)體的行為n結(jié)構(gòu)體有三種描述方式結(jié)構(gòu)體有三種描述方式n行為描述行為描述(behavioral)n數(shù)據(jù)流描述數(shù)據(jù)流描述(dataflow)n結(jié)構(gòu)化描述結(jié)構(gòu)化描述(structural)ENTITY描述電路的描述電路的I/O介面介面PackageARCHITECTURE描述電路的特性和運(yùn)作描

9、述電路的特性和運(yùn)作StructuralData FlowBehavioral不同的描述風(fēng)格不同的描述風(fēng)格結(jié)構(gòu)體行為描述結(jié)構(gòu)體行為描述Architecture behavioral of eqcomp4 is begincomp: process (a,b) beginif a=b then equal = 1; else equal =0;end if; end process comp;end behavioral ;高層次的功能描述,高層次的功能描述,不必考慮在電路中到不必考慮在電路中到底是怎樣實(shí)現(xiàn)的。底是怎樣實(shí)現(xiàn)的。結(jié)構(gòu)體數(shù)據(jù)流描述結(jié)構(gòu)體數(shù)據(jù)流描述描述輸入信號經(jīng)過怎樣的變換得到輸出信號描

10、述輸入信號經(jīng)過怎樣的變換得到輸出信號Architecture dataflow1 of eqcomp4 is begin equal = 1 when a=b else 0;end dataflow1;Architecture dataflow2 of eqcomp4 is beginequal = not(a(0) xor b(0) and not(a(1) xor b(1) and not(a(2) xor b(2) and not(a(3) xor b(3);end dataflow2;當(dāng)當(dāng)a和和b的寬度發(fā)生的寬度發(fā)生變化時(shí),需要修改變化時(shí),需要修改設(shè)計(jì),當(dāng)寬度過大設(shè)計(jì),當(dāng)寬度過大時(shí),設(shè)

11、計(jì)非常繁瑣時(shí),設(shè)計(jì)非常繁瑣結(jié)構(gòu)體結(jié)構(gòu)描述結(jié)構(gòu)體結(jié)構(gòu)描述architecture struct of eqcomp4 isbegin U0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1); U2:xnor2 port map(a(2),b(2),x(2); U3:xnor2 port map(a(3),b(3),x(3); U4:and4 port map(x(0),x(1),x(2),x(3),equal);end struct;類似于電路的網(wǎng)絡(luò)表,將各個(gè)器類似于電路的網(wǎng)絡(luò)表,將各個(gè)器件通過語言的形式進(jìn)行連接,與件

12、通過語言的形式進(jìn)行連接,與電路有一一對應(yīng)的關(guān)系。電路有一一對應(yīng)的關(guān)系。一般用于大規(guī)模電路的層次化設(shè)一般用于大規(guī)模電路的層次化設(shè)計(jì)時(shí)。計(jì)時(shí)。三種描述方式的比較三種描述方式的比較描述方式描述方式優(yōu)點(diǎn)優(yōu)點(diǎn)缺點(diǎn)缺點(diǎn)適用場合適用場合結(jié)構(gòu)化描結(jié)構(gòu)化描述述連接關(guān)系清連接關(guān)系清晰,電路模晰,電路模塊化清晰塊化清晰電路不易理解、電路不易理解、繁瑣、復(fù)雜繁瑣、復(fù)雜電路層次化設(shè)電路層次化設(shè)計(jì)計(jì)數(shù)據(jù)流描數(shù)據(jù)流描述述布爾函數(shù)定布爾函數(shù)定義明白義明白不易描述復(fù)雜不易描述復(fù)雜電路,修改不電路,修改不易易小小門數(shù)設(shè)計(jì)門數(shù)設(shè)計(jì)行為描述行為描述電路特性清電路特性清楚明了楚明了進(jìn)行綜合效率進(jìn)行綜合效率相對較低相對較低大型復(fù)雜的電大

13、型復(fù)雜的電路模塊設(shè)計(jì)路模塊設(shè)計(jì)(二)(二)VHDL語言中的數(shù)據(jù)語言中的數(shù)據(jù)2.1VHDL標(biāo)識符(標(biāo)識符(Identifiers)n基本標(biāo)識符由字母、數(shù)字和下劃線組成基本標(biāo)識符由字母、數(shù)字和下劃線組成n第一個(gè)字符必須是字母第一個(gè)字符必須是字母n最后一個(gè)字符不能是下劃線最后一個(gè)字符不能是下劃線n不允許連續(xù)不允許連續(xù)2個(gè)下劃線個(gè)下劃線n保留字保留字(關(guān)鍵字關(guān)鍵字)不能用于標(biāo)識符不能用于標(biāo)識符n大小寫是等效的大小寫是等效的Decoder_1 ,FFT ,SIG_N,_Decoder_1,2FFT, NOT-ACK, TYR_ ,DATA_ _BUS , RETURN一般的,在書寫程序時(shí),應(yīng)將一般的,在

14、書寫程序時(shí),應(yīng)將VHDL的保留字的保留字大寫或黑體大寫或黑體,設(shè)計(jì)者,設(shè)計(jì)者自己定義的字符小寫自己定義的字符小寫,以,以使得程序使得程序便于閱讀和檢查便于閱讀和檢查。盡管。盡管VHDL仿真綜仿真綜合時(shí)不區(qū)分大小寫,但一個(gè)優(yōu)秀的硬件程序設(shè)合時(shí)不區(qū)分大小寫,但一個(gè)優(yōu)秀的硬件程序設(shè)計(jì)師應(yīng)該養(yǎng)成良好的習(xí)慣。計(jì)師應(yīng)該養(yǎng)成良好的習(xí)慣。例:例:一些合法的標(biāo)識符:一些合法的標(biāo)識符:S_MACHINE,present_state,sig3, Decoder_1 ,F(xiàn)FT ,SIG_N,不合法的標(biāo)識符:不合法的標(biāo)識符:present-state,3states,cons_,_now , _Decoder_1,2F

15、FT,NOT-ACK,,TYR_ ,DATA_ _BUS ,RETURNn數(shù)組型對象的某一元素?cái)?shù)組型對象的某一元素n 標(biāo)識符(表達(dá)式)標(biāo)識符(表達(dá)式)n數(shù)組型對象的名字,數(shù)組下標(biāo)范圍中數(shù)組型對象的名字,數(shù)組下標(biāo)范圍中的一個(gè)值。的一個(gè)值。nB(3), A(M)VHDL下標(biāo)名下標(biāo)名n標(biāo)識符(表達(dá)式標(biāo)識符(表達(dá)式 方向方向 表達(dá)式)表達(dá)式)nA (0 TO 3) ,B( 4 TO 7),),nG(3 DOWNTO 0)VHDL段名段名2.2 VHDL數(shù)據(jù)對象(數(shù)據(jù)對象(Data Objects) 類似于一種容器,接受不同數(shù)據(jù)類似于一種容器,接受不同數(shù)據(jù)類型的賦值類型的賦值 -常數(shù)常數(shù) 信號信號 變量

16、變量數(shù)據(jù)對象數(shù)據(jù)對象常數(shù)(常數(shù)(Constant)n 固定值,不能在程序中被改變固定值,不能在程序中被改變n增強(qiáng)程序的可讀性,便于修改程序增強(qiáng)程序的可讀性,便于修改程序n在綜合后,連接到電源和地在綜合后,連接到電源和地n可在可在Library、Entity、Architecture、Process中進(jìn)行定義,其有效范圍也相應(yīng)限定中進(jìn)行定義,其有效范圍也相應(yīng)限定n常數(shù)說明:常數(shù)說明:Constant 常數(shù)名:常數(shù)名: 數(shù)據(jù)類型數(shù)據(jù)類型:=表表達(dá)式達(dá)式 Constant data_bus_width: integer := 8;Constant ROM_Size: Integer := 16#FF

17、FF#;數(shù)據(jù)對象數(shù)據(jù)對象變量(變量(Variable)n臨時(shí)數(shù)據(jù),沒有物理意義臨時(shí)數(shù)據(jù),沒有物理意義n只能在只能在Process和和Function中中定義,定義,并只在其內(nèi)部有效并只在其內(nèi)部有效n要使其全局有效,先轉(zhuǎn)換為要使其全局有效,先轉(zhuǎn)換為Signal。n用用 進(jìn)行賦值進(jìn)行賦值n變量說明:變量說明: 變量名:變量名: 數(shù)據(jù)類型數(shù)據(jù)類型n 變量賦值變量賦值數(shù)據(jù)對象數(shù)據(jù)對象信號(信號(Signals)n 代表連線,代表連線,Port也是一種信號也是一種信號n在在Entity中和中和Architecture中定義中定義n用用 = 進(jìn)行賦值進(jìn)行賦值n信號說明:信號說明: signal 信號名:信

18、號名: 數(shù)據(jù)類型數(shù)據(jù)類型; signal count:bit_vector(3 downto 0):=“0011”; nsignal Enable: Bit;nsignal CLK, CLEAR: Bit:=1;數(shù)據(jù)對象信號數(shù)據(jù)對象信號信號舉例信號舉例nLIBRARY ieee;nUSE ieee.std_logic_1164.all;nENTITY simp ISnPORT (a, b, c, d : IN Std_Logic;ng : OUT Std_Logic);nEND simp;nARCHITECTURE logic OF simp ISnSIGNAL e,f : Std_Logic

19、;nBEGINne = a or b;nf=not(c or d);ng =e and f;nEND logic;信號賦值信號賦值信號和變量的作用范圍信號和變量的作用范圍信號和變量的區(qū)別信號和變量的區(qū)別信號與變量的區(qū)別信號與變量的區(qū)別architecture rtl of start is signal count : integer range 0 to 7; begin process(clk) begin if (clkevent and clk=1) then count = count + 1; if(count=0) then carryout = 1; else carryout

20、 = 0; end if; end if; end process; end rtl;architecture rtl of start is begin process(clk)variable count : integer range 0 to 7;begin if (clkevent and clk=1) then count := count + 1; if(count=0) then carryout = 1; else carryout = 0; end if; end if; end process; end rtl;2.3 VHDL數(shù)據(jù)類型數(shù)據(jù)類型1. 標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類

21、型(編程者可直接使用編程者可直接使用) 預(yù)定義類型在預(yù)定義類型在VHDL標(biāo)準(zhǔn)程序包標(biāo)準(zhǔn)程序包STANDARD中定義,在應(yīng)用中自動(dòng)包含進(jìn)中定義,在應(yīng)用中自動(dòng)包含進(jìn)VHDL的源文件,的源文件,不需要不需要USE語句顯示調(diào)用語句顯示調(diào)用。數(shù)據(jù)類型如下:數(shù)據(jù)類型如下: 1.整數(shù)(整數(shù)(INTEGER)在在VHDL語言中,整數(shù)的表示范圍為語言中,整數(shù)的表示范圍為21474836472147483647,即從,即從(2311)到到(2311)。2.實(shí)數(shù)(實(shí)數(shù)(REAL)實(shí)數(shù)的定義值范圍為實(shí)數(shù)的定義值范圍為1.0E+381.0E+38。實(shí)數(shù)有正負(fù)數(shù),書寫時(shí)一定要有小數(shù)點(diǎn)。例實(shí)數(shù)有正負(fù)數(shù),書寫時(shí)一定要有小數(shù)點(diǎn)

22、。例如:如:1.0,+2.5,1.0E+383.位位(BIT)用來表示數(shù)字系統(tǒng)中的信號值。位值用字符用來表示數(shù)字系統(tǒng)中的信號值。位值用字符0或或者者1(將值放在引號中)表示。與整數(shù)中的(將值放在引號中)表示。與整數(shù)中的1和和0不同,不同,1和和0僅僅表示一個(gè)位的兩種取值。僅僅表示一個(gè)位的兩種取值。4.位矢量位矢量(BIT_VECTOR)位矢量是用雙引號括起來的一組數(shù)據(jù)。例如:位矢量是用雙引號括起來的一組數(shù)據(jù)。例如:“001100”,X“00bb”。在這里位矢量前面的。在這里位矢量前面的X表示表示是十六進(jìn)制是十六進(jìn)制。使用位矢量時(shí)必須注明位寬,使用位矢量時(shí)必須注明位寬,即數(shù)組即數(shù)組中元素個(gè)數(shù)和排

23、列,例如:中元素個(gè)數(shù)和排列,例如:SIGNAL s1:BIT_VECTOR(15 DOWNTO 0);); 5.布爾量布爾量(BOOLEAN)一個(gè)布爾量具有兩種狀態(tài)一個(gè)布爾量具有兩種狀態(tài),“真真”或者或者“假假”。沒有沒有數(shù)值的含義,也數(shù)值的含義,也不能進(jìn)行算術(shù)運(yùn)算不能進(jìn)行算術(shù)運(yùn)算。它。它能進(jìn)行關(guān)系運(yùn)能進(jìn)行關(guān)系運(yùn)算算。例如,它可以在。例如,它可以在if語句中被測試,測試結(jié)果產(chǎn)生語句中被測試,測試結(jié)果產(chǎn)生一個(gè)布爾量一個(gè)布爾量TRUE或者或者FALSE。 6.字符字符(CHARACTER)用用單引號單引號括起來,括起來,如如a。區(qū)分大小寫。字符包括從。區(qū)分大小寫。字符包括從a到到z中的任一個(gè)字母,

24、從中的任一個(gè)字母,從0到到9中的任一個(gè)數(shù)以及空格中的任一個(gè)數(shù)以及空格或者特殊字符,如或者特殊字符,如$,%等等。包集合等等。包集合standard中給出了預(yù)定義的中給出了預(yù)定義的128個(gè)個(gè)ASC碼字符。碼字符。7.字符串字符串(STRING)由雙引號括起來的一個(gè)字符序列,也稱字符矢量或字由雙引號括起來的一個(gè)字符序列,也稱字符矢量或字符串組。字符串常用于程序的提示和說明。字符串舉符串組。字符串常用于程序的提示和說明。字符串舉例如下:例如下:VATIABLE string_1 : STRING (0TO 3);string_1:= “a b c d”;8.時(shí)間時(shí)間(TIME)是一個(gè)物理量數(shù)據(jù)。包含

25、整數(shù)和單位兩部分,而且整是一個(gè)物理量數(shù)據(jù)。包含整數(shù)和單位兩部分,而且整數(shù)和單位之間至少應(yīng)留一個(gè)空格的位置。例如數(shù)和單位之間至少應(yīng)留一個(gè)空格的位置。例如55 sec,2 min等。在包集合等。在包集合STANDARD中給出了時(shí)間的預(yù)定中給出了時(shí)間的預(yù)定義,其單位為義,其單位為fs,ps,ns,s,ms,sec,min和和hr。例。例如:如:20 s,100 ns,3 sec。在系統(tǒng)仿真時(shí),時(shí)間數(shù)據(jù)特別有用,用它可以表示信在系統(tǒng)仿真時(shí),時(shí)間數(shù)據(jù)特別有用,用它可以表示信號延時(shí),從而使模型系統(tǒng)能更逼近實(shí)際系統(tǒng)的運(yùn)行環(huán)號延時(shí),從而使模型系統(tǒng)能更逼近實(shí)際系統(tǒng)的運(yùn)行環(huán)境。境。9.錯(cuò)誤等級錯(cuò)誤等級(SEVER

26、ITY LEVEL)用來表征系統(tǒng)的狀態(tài),共有用來表征系統(tǒng)的狀態(tài),共有4種:種:note(注意),(注意),warning(警告),(警告),error(出錯(cuò)),(出錯(cuò)),failure(失?。?。(失?。?。在系統(tǒng)仿真過程中可以用這在系統(tǒng)仿真過程中可以用這4種狀態(tài)來提示系統(tǒng)當(dāng)前種狀態(tài)來提示系統(tǒng)當(dāng)前的工作情況,從而使設(shè)計(jì)人員隨時(shí)了解當(dāng)前系統(tǒng)工的工作情況,從而使設(shè)計(jì)人員隨時(shí)了解當(dāng)前系統(tǒng)工作的情況,并根據(jù)系統(tǒng)的不同狀態(tài)采取相應(yīng)的對策。作的情況,并根據(jù)系統(tǒng)的不同狀態(tài)采取相應(yīng)的對策。1 0 . 大 于 等 于 零 的 整 數(shù) ( 自 然 數(shù) )大 于 等 于 零 的 整 數(shù) ( 自 然 數(shù) )(NATURA

27、L),),正整數(shù)正整數(shù)(POSITIVE)這兩種數(shù)據(jù)是整數(shù)的子類,這兩種數(shù)據(jù)是整數(shù)的子類,NATURAL類數(shù)據(jù)為取類數(shù)據(jù)為取0和和0以上的正整數(shù);而以上的正整數(shù);而POSITIVE 則只能為正整數(shù)。則只能為正整數(shù)。2. 用戶自定義數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型 格式:格式:type 數(shù)據(jù)類型名數(shù)據(jù)類型名 is 數(shù)據(jù)類型定義;數(shù)據(jù)類型定義;可以由用戶定義的數(shù)據(jù)類型有:可以由用戶定義的數(shù)據(jù)類型有:枚舉枚舉(ENUMERATED)類型;)類型;整數(shù)整數(shù)(INTEGER)類型;)類型;實(shí)數(shù)實(shí)數(shù)(REAL)、)、浮點(diǎn)數(shù)浮點(diǎn)數(shù)(FLOATING)類型;)類型;數(shù)組數(shù)組(ARRAY)類型;)類型;。“IEEE.

28、STD_LOGIC”九態(tài)數(shù)值模型如下:九態(tài)數(shù)值模型如下:U初始值;初始值; X 不定態(tài);不定態(tài); 1 邏輯邏輯1; 0 邏輯邏輯0; Z 高阻態(tài);高阻態(tài); W 弱信號不定;弱信號不定; L 弱信號弱信號0 H 弱信號弱信號1; 不可能情況不可能情況 。 3. IEEE 標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類型 “std-logic”和和“std-logic-vector”(三)(三)VHDL語言中的表達(dá)式語言中的表達(dá)式VHDL運(yùn)算符運(yùn)算符n邏輯運(yùn)算符邏輯運(yùn)算符AND、OR、NAND、NOR、XOR、NOTn關(guān)系運(yùn)算符關(guān)系運(yùn)算符=、/=、=n算術(shù)運(yùn)算符算術(shù)運(yùn)算符+、-、*、/n并置并置(連接連接)運(yùn)算符運(yùn)算符&

29、amp;1.邏輯運(yùn)算符邏輯運(yùn)算符在在VHDL語言中,共有語言中,共有6種邏輯運(yùn)算符,他們分別是:種邏輯運(yùn)算符,他們分別是: NOT 取反;取反; AND 與;與; OR 或;或; NAND 與非;與非; NOR 或非;或非; XOR 異或。異或。 這這6種邏輯運(yùn)算符可以對種邏輯運(yùn)算符可以對“STD_LOGIC ”和和“BIT”等邏等邏輯型數(shù)據(jù)、輯型數(shù)據(jù)、“STD_LOGIC _VECTOR”邏輯型數(shù)組及邏輯型數(shù)組及布布爾數(shù)據(jù)爾數(shù)據(jù)進(jìn)行邏輯運(yùn)算。進(jìn)行邏輯運(yùn)算。必須注意,運(yùn)算符的左邊和右邊,必須注意,運(yùn)算符的左邊和右邊,以及代入的信號的數(shù)據(jù)類型必須是相同的以及代入的信號的數(shù)據(jù)類型必須是相同的。 2

30、.算術(shù)運(yùn)算符算術(shù)運(yùn)算符VHDL語言中有語言中有5類算術(shù)運(yùn)算符,他們分別是:類算術(shù)運(yùn)算符,他們分別是:求和操作符:求和操作符: (加)、(減)(加)、(減)求積操作符求積操作符:*(乘)、(乘)、/(除)、(除)、MOD(求模)、(求模)、REM(取余)(取余)符號操作符:符號操作符: (正)、(負(fù))(正)、(負(fù))混合操作符:混合操作符: *(指數(shù))、(指數(shù))、ABS(取絕對值)(取絕對值)移位操作符:移位操作符:SLL(邏輯左移)、(邏輯左移)、SRL(邏輯右移)、(邏輯右移)、SLA(算術(shù)左移)、(算術(shù)左移)、SRA(算術(shù)右移)、(算術(shù)右移)、ROL(邏輯(邏輯循環(huán)左移)、循環(huán)左移)、ROR

31、邏輯循環(huán)右移)邏輯循環(huán)右移) 3.關(guān)系運(yùn)算符關(guān)系運(yùn)算符VHDL語言中有語言中有6種關(guān)系運(yùn)算符,他們分別是:種關(guān)系運(yùn)算符,他們分別是: = 等于;等于; /= 不等于;不等于; 小于;小于; 大于;大于; = 大于等于;大于等于;4.并置運(yùn)算符并置運(yùn)算符& 連接連接 SIGNAL g,h,i:STD_LOGIC;SIGNAL c,d,e:STD_LOGIC _VECTOR(1 TO 0);); d = i & NOT h;- -元素與元素并置,形成長度為元素與元素并置,形成長度為2的數(shù)組的數(shù)組 a = c & d; - -數(shù)組與數(shù)組并置,形成長度為數(shù)組與數(shù)組并置,形成長度

32、為4的數(shù)組的數(shù)組 5.VHDL操作符的優(yōu)先順序操作符的優(yōu)先順序 運(yùn)算符運(yùn)算符 優(yōu)先級優(yōu)先級NOT,ABS,* 最高優(yōu)先級最高優(yōu)先級 *,/,MOD,REM +(正號),(負(fù)號)(正號),(負(fù)號)+,& SLL,SLA,SRL,SRA,ROL,ROR =,/=,= AND,OR,NAND,NOR,XOR,XNOR 最低優(yōu)先級最低優(yōu)先級 (四)順序描述語句(四)順序描述語句1. 信號賦值語句和變量賦值語句信號賦值語句和變量賦值語句目標(biāo)信號目標(biāo)信號=表達(dá)式表達(dá)式目標(biāo)變量:表達(dá)式目標(biāo)變量:表達(dá)式2. If 語句語句語句格式:語句格式:if 條件條件 1 then 第第1組順序語句;組順序語句;

33、elseif 條件條件 2 then 第第2組順序語句;組順序語句; elseif 條件條件 n then 第第n組順序語句;組順序語句; else 第第n+1組順序語句;組順序語句;end if;IF語句的應(yīng)用語句的應(yīng)用n 八八-三優(yōu)先級編碼器真值表三優(yōu)先級編碼器真值表 輸輸 入入 輸出輸出 d7 d6 d5 d4 d3 d2 d1 d0 q2 q1 q0 0 x x x x x x x 1 1 1 1 0 x x x x x x 1 1 0 1 1 0 x x x x x 1 0 1 1 1 1 0 x x x x 1 0 0 1 1 1 1 0 x x x 0 1 1 1 1 1 1 1

34、 0 x x 0 1 0 1 1 1 1 1 1 0 x 0 0 1 1 1 1 1 1 1 1 0 0 0 0n nLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY priority_encoder IS PORT ( d : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 ) ; q : OUT STD_LOGIC_VECTOR ( 2 DOWNTO 0 ) ) ; END priority_encoder ; ARCHITECTURE example_if OF priority_encoder IS BEGIN PRO

35、CESS ( d ) BEGIN IF ( d (7)=0 ) THEN q= ”111”; ELSIF ( d (6) = 0 ) THEN q= ”110”; ELSIF ( d (5) = 0 ) THEN q= ”101”; ELSIF ( d (4) = 0 ) THEN q= ”100”; ELSIF ( d (3) = 0 ) THEN q= “011”; ELSIF ( d (2) = 0 ) THEN q= “010”; ELSIF ( d (1) =0 ) THEN q= “001”; ELSE q順序處理語句;順序處理語句;n : WHEN 條件表達(dá)式的值條件表達(dá)式的值=

36、順序處理語句;順序處理語句; END CASE;nWHEN 中的條件有下述四種方式:中的條件有下述四種方式: WHEN 值值=順序處理語句;順序處理語句; WHEN 值值值值值值=順序處理語句;順序處理語句;-若干若干可列的值??闪械闹怠?WHEN 值值TO 值值=順序處理語句;某個(gè)區(qū)間的值。順序處理語句;某個(gè)區(qū)間的值。 WHEN OTHERS=順序處理語句;順序處理語句; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT ( a,b,d0,d1,d2,d3 : IN STD_LOGIC ; q : OUT STD_L

37、OGIC ) ; END mux4;例:用例:用CASE語句設(shè)計(jì)四選一電路語句設(shè)計(jì)四選一電路 ARCHITECTURE example_case OF mux4 IS SIGNAL sel : INTEGER RANGE 0 TO 3 ; BEGIN PROCESS ( a,b,d0,d1,d2,d3 ) BEGIN sel=0; IF ( a=1 ) THEN sel=sel+1 ; END IF ; IF ( b=1 ) THEN sel q q q q=d3; END CASE; END PROCESS; END example_case;CASE語句設(shè)計(jì)的四選一電路實(shí)現(xiàn)語句設(shè)計(jì)的四選一

38、電路實(shí)現(xiàn)n上述程序所描述的是一個(gè)平衡結(jié)構(gòu)的四選一電路上述程序所描述的是一個(gè)平衡結(jié)構(gòu)的四選一電路.FGHOBUFabd0d1d2d3q用用IF語句設(shè)計(jì)四選一電路語句設(shè)計(jì)四選一電路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (a, b, d0, d1-, d2, d3: IN STD_LOGIC; q: OUT STD_LOGIC); END mux4; ARCHITECTURE example_if OF mux4 IS BEGIN PROCESS (a, b, d0,d1,d2,d3) BEGIN IF (a

39、= 0 AND b = 0) THEN q = d0; ELSIF (a = 1 AND b = 0) THE q = d1; ELSIF (a = 0 AND b = 1) THEN q = d2; ELSIF (a = 1 AND b = 1) THEN q = d3; END IF; END PROCESS; END example_if; 用用IF語句設(shè)計(jì)四選一電路是權(quán)電路語句設(shè)計(jì)四選一電路是權(quán)電路GFd0abd1d2d3yF(四)并行描述語句(四)并行描述語句n1進(jìn)程內(nèi)部所有的語句都是順序執(zhí)行的,進(jìn)程內(nèi)部所有的語句都是順序執(zhí)行的,n 2. 進(jìn)程和進(jìn)程之間是并行執(zhí)行的,進(jìn)程和進(jìn)程之間是

40、并行執(zhí)行的,n 3進(jìn)程的啟動(dòng)由進(jìn)程的啟動(dòng)由PROCESS語句的敏感信號量語句的敏感信號量表中的信號量觸發(fā),也可以由表中的信號量觸發(fā),也可以由WAIT語句觸發(fā)。語句觸發(fā)。 1. 進(jìn)程語句進(jìn)程語句 (進(jìn)程名:進(jìn)程名:)process(敏感信號表)敏感信號表) 變量說明語句;變量說明語句;begin 一組順序語句;一組順序語句;end process (進(jìn)程名進(jìn)程名);當(dāng)進(jìn)程鐘沒有敏感信號表時(shí),進(jìn)程語句中必須當(dāng)進(jìn)程鐘沒有敏感信號表時(shí),進(jìn)程語句中必須有其他形式的敏感信號激勵(lì);而當(dāng)進(jìn)程中有敏有其他形式的敏感信號激勵(lì);而當(dāng)進(jìn)程中有敏感信號表時(shí),進(jìn)程語句中不允許再出現(xiàn)感信號表時(shí),進(jìn)程語句中不允許再出現(xiàn)wai

41、t、wait for、wait until和和wait on 中的任何一種敏感中的任何一種敏感信號激勵(lì)語句,否則出錯(cuò)。信號激勵(lì)語句,否則出錯(cuò)。用進(jìn)程設(shè)計(jì)用進(jìn)程設(shè)計(jì)D觸發(fā)器觸發(fā)器n LIBRARY IEEE USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff4 IS PORT (clk, d, clr, pset:IN STD_LOGIC; q:OUT STD_LOGIC ); END dff4; ARCHITECTURE rtl OF dff4 IS BEGIN clrpsetD QclknPROCESS (clk, pset, clr) BEGIN IF (clr

42、 = 0 ) THEN q = 0; ELSIF (pset = 0) THEN q = 1; ELSIF (clk EVENT AND clk = 1) THEN q = d; END IF; END PROCESS; END rtl; n利用進(jìn)程語句設(shè)計(jì)一位加法器利用進(jìn)程語句設(shè)計(jì)一位加法器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY half_adder IS PORT(a, b: IN STD_LOGIC; sum, carry: OUT STD_LOGIC); END half_adder; nARCHITECTURE behav

43、 OF half-adder IS BEGIN PROCESS (a, b) BEGIN sum= a XOR b AFTER 5nS; carry= a AND b AFTER 5nS; END PROCESS; END behav; 進(jìn)程語句的啟動(dòng)進(jìn)程語句的啟動(dòng)進(jìn)程語句有兩種工作狀態(tài):進(jìn)程語句有兩種工作狀態(tài):等待狀態(tài)等待狀態(tài)和和執(zhí)行執(zhí)行狀態(tài)狀態(tài)。當(dāng)敏感信號表中的信號沒有變化時(shí),。當(dāng)敏感信號表中的信號沒有變化時(shí),進(jìn)程處于等待狀態(tài);當(dāng)敏感信號表中的信號進(jìn)程處于等待狀態(tài);當(dāng)敏感信號表中的信號有變化時(shí),進(jìn)程處于執(zhí)行狀態(tài),將順序執(zhí)行有變化時(shí),進(jìn)程處于執(zhí)行狀態(tài),將順序執(zhí)行進(jìn)程中的語句。當(dāng)最后一個(gè)語句執(zhí)

44、行完后,進(jìn)程中的語句。當(dāng)最后一個(gè)語句執(zhí)行完后,就返回進(jìn)程語句的開始,等待下一次敏感信就返回進(jìn)程語句的開始,等待下一次敏感信號表中的信號變化。號表中的信號變化。進(jìn)程啟動(dòng)的進(jìn)程啟動(dòng)的WAIT語句語句n(1) 無限等待無限等待 WAIT;n(2) 敏感信號量變化等待敏感信號量變化等待 WAIT ON 信號名信號名,信號名,信號名; n(3) 條件等待條件等待 WAIT UNTIL 表達(dá)式;表達(dá)式;n(4) 時(shí)間等待時(shí)間等待 WAIT FOR 時(shí)間表達(dá)式;時(shí)間表達(dá)式; 例如例如 :WAIT FOR 20nS;-同步點(diǎn)在延時(shí)同步點(diǎn)在延時(shí)20nS后,后, WAIT ON clk, interrupt FO

45、R 5nS;-當(dāng)信號當(dāng)信號clk或或 interrupt變化變化5nS后啟動(dòng)后啟動(dòng) 進(jìn)程。進(jìn)程。 2. 并發(fā)信號賦值語句并發(fā)信號賦值語句 信號賦值語句在進(jìn)程內(nèi)部出現(xiàn)時(shí),是順序描述語句,信號賦值語句在進(jìn)程內(nèi)部出現(xiàn)時(shí),是順序描述語句,在進(jìn)程之外出現(xiàn)時(shí),以并發(fā)語句的形式出現(xiàn)。是并在進(jìn)程之外出現(xiàn)時(shí),以并發(fā)語句的形式出現(xiàn)。是并行執(zhí)行的,執(zhí)行順序與書寫順序無關(guān)。行執(zhí)行的,執(zhí)行順序與書寫順序無關(guān)。LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL;ENTITY gate IS PORT(a,b : IN STD_LOGIC); x,y,z :OUT STD_LOGIC);END

46、gate;ARCHITECTURE behave OF gate ISBEGIN x=a AND b; y=a OR b; z=a XOR b;END behave;ABXYZGATE例:產(chǎn)生右圖電路符號的例:產(chǎn)生右圖電路符號的VHDL程序程序3. 條件信號賦值語句條件信號賦值語句 目標(biāo)信號目標(biāo)信號=表達(dá)式表達(dá)式1 when 條件條件1 else 表達(dá)式表達(dá)式2 when 條件條件2 else 表達(dá)式表達(dá)式3 when 條件條件3 else 表達(dá)式表達(dá)式 n-1 when 條件條件n-1 else 表達(dá)式表達(dá)式n; ABXAND_GATELIBRARY IEEEUSE IEEE.STD_LOG

47、IC_1164.ALL;ENTITY and_gate IS PORT(a,b : IN STD_LOGIC); x:OUT STD_LOGIC);END and_gate;ARCHITECTURE rtl OF and_gate ISBEGIN x=0 when a=0 and b=0 else x=0 when a=0 and b=1 else x=0 when a=1 and b=0 else 1;END rtl;4. 選擇信號賦值語句選擇信號賦值語句 with 表達(dá)式表達(dá)式 select 目標(biāo)信號目標(biāo)信號=表達(dá)式表達(dá)式1 when 條件條件1, 表達(dá)式表達(dá)式2 when 條件條件2,

48、表達(dá)式表達(dá)式3 when 條件條件3, 表達(dá)式表達(dá)式 n when 條件條件n, QMMUX40D1D2D3DSEL1.0LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL;ENTITY mmux4 IS PORT(d0,d1,d2,d3: IN STD_LOGIC; sel:in std_logic_vector(1 downto 0); q:OUT STD_LOGIC);END mmux4;ARCHITECTURE rtl OF mmux4 ISBEGIN with sel select qa(0), c= x(0), b=b(0) ); 在端口元在端口元素中定

49、義素中定義輸入輸入在端口元在端口元素中定義素中定義輸出輸出IC 器件器件AIC 器件器件BIC 器件器件C連接導(dǎo)線連接導(dǎo)線連接導(dǎo)線連接導(dǎo)線用固定邏輯的用固定邏輯的IC硬件實(shí)現(xiàn)硬件實(shí)現(xiàn)VHDL組件組件VHDL組件組件VHDL組件組件信號信號信號信號用用VHDL結(jié)構(gòu)實(shí)現(xiàn)結(jié)構(gòu)實(shí)現(xiàn)任何一個(gè)任何一個(gè)VHDL程序都可以改變成一個(gè)組件,程序都可以改變成一個(gè)組件,并可隨時(shí)應(yīng)用到更大的程序中。使用的關(guān)鍵字并可隨時(shí)應(yīng)用到更大的程序中。使用的關(guān)鍵字是是COMPONENT和和SIGNALCOMPONENT描述預(yù)先定義的邏輯,并將其描述預(yù)先定義的邏輯,并將其存儲在庫中的軟件包中;而存儲在庫中的軟件包中;而SIGNAL是

50、邏輯電是邏輯電路內(nèi)部的連接,和輸入輸出有區(qū)別。路內(nèi)部的連接,和輸入輸出有區(qū)別。輸入、輸出使用端口語句在輸入、輸出使用端口語句在實(shí)體實(shí)體中定義,而信中定義,而信號在號在結(jié)構(gòu)體結(jié)構(gòu)體(ARCHITECTURE)內(nèi)部用信號)內(nèi)部用信號語句定義。語句定義。1G2G3GIN1IN2IN3IN4OUT1OUT2OUT31G2G3GIN1IN2IN3IN4OUT1OUT2OUT3ABXABXABXVHDL組件示例組件示例2輸入與門輸入與門XAB的的VHDL程序程序ENTITY and_gate IS PORT(A,B:IN BIT;X:OUT BIT);END ENTITY and_gate;ARCHITE

51、CTURE andfunction OF and_gate ISBEGIN X=A AND B; END ARCHITECTURE andfunction;ENTITY OR_gate IS PORT(A,B:IN BIT;X:OUT BIT);END ENTITY OR_gate;ARCHITECTURE ORfunction OF OR_gate ISBEGIN XIN1,B=IN2,X=OUT1);G2:AND_gate PORT MAP (A=IN3,B=IN4,X=OUT2);G3:OR_gate PORT MAP (A=OUT1,B=OUT2,X=OUT3);SIGNAL OUT1

52、,OUT2:BIT;END ARCHITECTURE Logicoperation; (五)時(shí)鐘信號的(五)時(shí)鐘信號的VHDL描述方描述方法法1. 時(shí)鐘邊沿的描述時(shí)鐘邊沿的描述 0CLK1CLK(1)上升沿)上升沿CLKCLKeventCLKevent AND CLK=1VHDL屬性描述:屬性描述:0CLK1CLK(2)下降沿)下降沿CLKCLKeventclkEVENT AND CLK=0VHDL屬性描述:屬性描述:2. 時(shí)序電路中進(jìn)程敏感信號時(shí)序電路中進(jìn)程敏感信號 例:例:D觸發(fā)器功能描述觸發(fā)器功能描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENT

53、ITY dff1 IS PORT(clk,d:IN STD_LOGIC; q:OUT_LOGIC);END dff1;ARCHITECTURE rtl OF dff1 ISBEGINPROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN q=d; END IF; END PROCESS;END rtl;3. 同步復(fù)位、置位信號同步復(fù)位、置位信號 PROCESS(時(shí)鐘信號名)(時(shí)鐘信號名) BEGIN IF 時(shí)鐘邊沿表達(dá)式時(shí)鐘邊沿表達(dá)式 AND 復(fù)位復(fù)位/置位表達(dá)式置位表達(dá)式 THEN 復(fù)位置位語句;復(fù)位置位語句; ELSE 其他執(zhí)行語句;其他執(zhí)行語句; EN

54、D IF;END PROCESS;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff1 IS PORT(clk,d,clr:IN STD_LOGIC; q:OUT STD_LOGIC);END dff1;ARCHITECTURE rtl OF dff1 ISBEGINPROCESS(clk) BEGIN IF (clkEVENT AND clk=1)THEN IF(clr=1)THEN q=0; ELSE q=d; END IF; END IF; END PROCESS;END rtl;4. 異步復(fù)位、置位信號異步復(fù)位、置位信號 LIBRAR

55、Y IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff2 IS PORT(clk,d,clr:IN STD_LOGIC; q:OUT STD_LOGIC);END dff2;ARCHITECTURE rtl OF dff2 ISBEGINPROCESS(clk,clr) BEGIN IF(clr=1)THEN q=0; ELSEIF (clkEVENT AND clk=1)THEN q=d; END IF; END IF; END PROCESS;END rtl;(七)子程序(七)子程序子程序:在主程序調(diào)用它以后能夠?qū)⑻幚斫Y(jié)果返回主子程序:在主程序調(diào)用它以后

56、能夠?qū)⑻幚斫Y(jié)果返回主程序的程序模塊。在程序的程序模塊。在VHDL語言中,子程序有兩種類語言中,子程序有兩種類型:過程(型:過程(procedure)和函數(shù)()和函數(shù)(function)。過程和函。過程和函數(shù)的主要區(qū)別體現(xiàn)在以下幾個(gè)方面:數(shù)的主要區(qū)別體現(xiàn)在以下幾個(gè)方面:(1)過程可以具有多個(gè)返回值,而函數(shù)只能有一個(gè))過程可以具有多個(gè)返回值,而函數(shù)只能有一個(gè)返回值。返回值。(2)過程通常用來定義一個(gè)算法,而函數(shù)用來產(chǎn)生)過程通常用來定義一個(gè)算法,而函數(shù)用來產(chǎn)生一個(gè)特定的值。一個(gè)特定的值。(3)過程中的參數(shù)可以具有)過程中的參數(shù)可以具有3種端口模式:種端口模式:in、out、inout,而函數(shù)中的參

57、數(shù)只具有一種端口模式:,而函數(shù)中的參數(shù)只具有一種端口模式:in1. 子程序子程序過程過程 過程的書寫結(jié)構(gòu):過程的書寫結(jié)構(gòu): PROCEDURE 過程名(參數(shù)過程名(參數(shù)1;參數(shù);參數(shù)2;)IS 定義語句定義語句; -變量或常量定義變量或常量定義 BEGIN 順序處理語句順序處理語句 -過程描述語句過程描述語句 END 過程名;過程名; 參數(shù)的對象類型包括常量、信號和變量;參數(shù)的對象類型包括常量、信號和變量;端口模式包括端口模式包括in、out和和inoutLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY procedure1 IS PORT(din

58、1:IN INTEGER RANGE 0 TO 31; din2:IN INTEGER RANGE 0 TO 31; dout:OUT INTEGER RANGE 0 TO 31);END PROCEDURE1;過程定義在結(jié)構(gòu)體中及過程的調(diào)用過程定義在結(jié)構(gòu)體中及過程的調(diào)用ARCHITECTURE a1 OF procedure1 ISprocedure jfq (d1:IN INTEGER RANGE 0 TO 31; d2:IN INTEGER RANGE 0 TO 31; fout:OUT INTEGER RANGE 0 TO 31)IS BEGIN fout:=d1+d2; END jfq;BEGIN PROCESS VARIABLE fo:INTEGER RANGE 0 TO 31;jfq(din1,din2,fo); dout=fo

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論