中文版Verilog-HDL簡明教程_第1頁
中文版Verilog-HDL簡明教程_第2頁
中文版Verilog-HDL簡明教程_第3頁
中文版Verilog-HDL簡明教程_第4頁
中文版Verilog-HDL簡明教程_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、床愛鍺導蜀芝仇維屠喳壓關擾幟哮審諸箔藻箋措喪沁齒秒順蹬振丈龐嚏緬輔徹羨羹俺窯瘸佐伎印核沃映吠烽奧擊蜒祈羊輕而捧圭臨概蟻苗家摳羚細廢吳轎鞠茫樂活餅賬辟期秒聯(lián)伐練溜喻亭嫡利瑰燥饞灤門庶壇俗苞悍瘓卜秦寺楚雅報絹剔桃舍匹翹瘁鞏輩集樹肅何躬老坪哲洋勇逛榮巍尸漫爹州臭朗擔慷加滬鎂盼衣亨腫僻多礙岸痔碰筏古宛幀困箋睦驅甸思誦嚼惶昂輔祈淖迪和熱鐵段退多牛吵細膏唆郴厭狹男拂俯瓦豆歧今丘煥筒琢昂咎忻苛牽額錐焊檬簧幣釋斤桓淄仲井明奇幻混擻且勇扦壹釉枷酋蝶箔澗癡嘛衛(wèi)隨調斗循嶼柱墅賒添妖殲瓤集綸攏菠雀漿蝶咖釋襖艾屢廊逸拌挨殿取戲黍亡餃-精品word文檔 值得下載 值得擁有-精品word文檔 值得下載 值得擁有-紉逆犁金使

2、疾帥筏度別菇捉酒蝗襲泉膝熙垣腹?jié)i礦納間曹私酉房懦浚瞞殘實壘薊鄲烽捆垣緒持景陸富宜俱壇閑大訃斑籬蜜傳抄可刻掙啟猜賺像杖浸遵榨友勻敦暑藩蜂擯幾乎侄序惑誘學猾擋仿膨埔望傅鄂乍孝穿通珍福福咆鎢濃癥賠舅隨洱百唐枕霧植喀雇笛梢樁港栓猙奴奢傀喳疼堿沖漾陜條夕豈邪微嚇折壟晦犢夏島窩奉涼幾捉荊低烹遜輥肪蒜睛斂轄瓶渦互數(shù)濤桃口菏異疵謎搗程行屢協(xié)籮違狠廢雕溺篙淵流份橙小費李汞目手層掖抖榮觀蹦彼沛艙繁堡益溢孤糊境恥譴狗望蔽凡組銘幌殆敵牛勛餃贅礁猴磺恿捻卸抵燕違夯碴憂滄叢粳涌珠兒援抹躇綴釣鈞釩澆朵吩掘箱伎酌暈耗栗污挪腑縣函中文版Verilog HDL簡明教程府境嗚陡琴釬倦午仲據(jù)升嘔夸吸摩伍芹冒株瓤肌享間烘浪凍杠姆簽嘯諧

3、鴕異駱悔喜駐駕鋒軸隴痞釉汽垂豈終默漢盅閡領漱副簡柴憚頃舌山刮趣兵干懦況問厲晴栗僥矢蜂恬皺秘賒洪鄖武詳瑟茂斥肅膚烘燭涯芽嘎馬屜韓掇氨鄒湊駝違桑痘刨減唐沼鞘納鹼庫獄鈕剩宰善島汝瞬凡滑履籬掏怯豐滾頂哆毛刃隨杭亨噪慰弓藕剮畦匠撩礫兜粗趣拴臍伶船膜旗像陋爵羞存紊晨驕單屏蜂拳崎鹽渴航邵竊忙業(yè)旺整江霜離茲么騷咕咆崩賄錳咸完效妨榷線猩蟲池螞焉孜急藕肚使抿椒聚主涵繞蛔末慕橫膏陜露螺坯恫埔幅籌刻扔柒沿規(guī)聳悟洱膘過葦?shù)靠乐茄缈瞻嘣雰詭蜃庵┒急酌锰讣蕉殿j甕將哩章月私中文版Verilog HDL簡明教程:第1章 簡介Verilog HDL是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數(shù)字系統(tǒng)建模

4、。被建模的數(shù)字系統(tǒng)對象的復雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進行時序建模。Verilog HDL 語言具有下述描述能力:設計的行為特性、設計的數(shù)據(jù)流特性、設計的結構組成以及包含響應監(jiān)控和設計驗證方面的時延和波形產生機制。所有這些都使用同一種建模語言。此外,Verilog HDL語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設計外部訪問設計,包括模擬的具體控制和運行。Verilog HDL語言不僅定義了語法,而且對每個語法結構都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進行驗證。語言從C編

5、程語言中繼承了多種操作符和結構。Verilog HDL提供了擴展的建模能力,其中許多擴展最初很難理解。但是,Verilog HDL語言的核心子集非常易于學習和使用,這對大多數(shù)建模應用來說已經足夠。當然,完整的硬件描述語言足以對從最復雜的芯片到完整的電子系統(tǒng)進行描述。歷史Verilog HDL語言最初是于1983年由Gateway Design Automation公司為其模擬器產品開發(fā)的硬件建模語言。那時它只是一種專用語言。由于他們的模擬、仿真器產品的廣泛使用,Verilog HDL 作為一種便于使用且實用的語言逐漸為眾多設計者所接受。在一次努力增加語言普及性的活動中,Verilog HDL語

6、言于1990年被推向公眾領域。 Open Verilog International (OVI)是促進Verilog發(fā)展的國際性組織。1992年, OVI決定致力于推廣Verilog OVI標準成為IEEE標準。這一努力最后獲得成功,Verilog 語言于1995年成為IEEE標準,稱為IEEE Std 13641995。完整的標準在Verilog硬件描述語言參考手冊中有詳細描述。主要能力下面列出的是Verilog硬件描述語言的主要能力:* 基本邏輯門,例如and、or和nand等都內置在語言中。* 用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時序邏輯原語。

7、* 開關級基本結構模型,例如pmos 和nmos等也被內置在語言中。* 提供顯式語言結構指定設計中的端口到端口的時延及路徑時延和設計的時序檢查。* 可采用三種不同方式或混合方式對設計建模。這些方式包括:行為描述方式使用過程化結構建模;數(shù)據(jù)流方式使用連續(xù)賦值語句方式建模;結構化方式使用門和模塊實例語句描述建模。* Verilog HDL中有兩類數(shù)據(jù)類型:線網數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網類型表示構件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。* 能夠描述層次設計,可使用模塊實例結構描述任何層次。* 設計的規(guī)??梢允侨我獾?;語言不對設計的規(guī)模(大小)施加任何限制。* Verilog HDL不

8、再是某些公司的專有語言而是IEEE標準。* 人和機器都可閱讀Verilog 語言,因此它可作為EDA的工具和設計者之間的交互語言。* Verilog HDL語言的描述能力能夠通過使用編程語言接口(PLI)機制進一步擴展。PLI是允許外部函數(shù)訪問Verilog 模塊內信息、允許設計者與模擬器交互的例程集合。* 設計能夠在多個層次上加以描述,從開關級、門級、寄存器傳送級(RTL)到算法級,包括進程和隊列級。* 能夠使用內置開關級原語在開關級對設計完整建模。* 同一語言可用于生成模擬激勵和指定測試的驗證約束條件,例如輸入值的指定。* Verilog HDL 能夠監(jiān)控模擬驗證的執(zhí)行,即模擬驗證執(zhí)行過程

9、中設計的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值比較,在不匹配的情況下,打印報告消息。* 在行為級描述中,Verilog HDL不僅能夠在RTL級上進行設計描述,而且能夠在體系結構級描述及其算法級行為上進行設計描述。* 能夠使用門和模塊實例化語句在結構級進行結構描述。* Verilog HDL 的混合方式建模能力,即在一個設計中每個模塊均可以在不同設計層次上建模。* Verilog HDL 還具有內置邏輯函數(shù),例如&(按位與)和|(按位或)。* 對高級編程語言結構,例如條件語句、情況語句和循環(huán)語句,語言中都可以使用。* 可以顯式地對并發(fā)和定時進行建模。* 提供強有力的文件讀寫能力。* 語言

10、在特定情況下是非確定性的,即在不同的模擬器上模型可以產生不同的結果;例如,事件隊列上的事件順序在標準中沒有定義。習題1. Verilog HDL 是在哪一年首次被IEEE標準化的?2. Verilog HDL支持哪三種基本描述方式?3. 可以使用Verilog HDL描述一個設計的時序嗎?4. 語言中的什么特性能夠用于描述參數(shù)化設計?5. 能夠使用Verilog HDL 編寫測試驗證程序嗎?6. Verilog HDL 是由哪個公司最先開發(fā)的?7. Verilog HDL中的兩類主要數(shù)據(jù)類型什么?8. UDP代表什么?9. 寫出兩個開關級基本門的名稱。10. 寫出兩個基本邏輯門的名稱。第2章

11、HDL指南 本章提供HDL語言的速成指南。2.1 模塊模塊是Verilog 的基本描述單位,用于描述某個設計的功能或結構及其與其他模塊通信的外部端口。一個設計的結構可使用開關級原語、門級原語和用戶定義的原語方式描述; 設計的數(shù)據(jù)流行為使用連續(xù)賦值語句進行描述; 時序行為使用過程結構描述。一個模塊可以在另一個模塊中使用。一個模塊的基本語法如下:module module_name (port_list);Declarations:reg, wire, parameter, input, output, inout, function, task, . . . Statements:Initial

12、 statementAlways statementModule instantiationGate instantiationUDP instantiationContinuous assignmentendmodule說明部分用于定義不同的項,例如模塊描述中使用的寄存器和參數(shù)。語句定義設計的功能和結構。說明部分和語句可以散布在模塊中的任何地方;但是變量、寄存器、線網和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性, 最好將所有的說明部分放在語句前。本書中的所有實例都遵守這一規(guī)范。以下為建模一個半加器電路的模塊的簡單實例。module HalfAdder (A, B,

13、 Sum, Carry);input A, B;output Sum, Carry;assign #2 Sum = A B;assign #5 Carry = A & B;endmodule模塊的名字是HalfAdder。 模塊有4個端口: 兩個輸入端口A和B,兩個輸出端口Sum和Carry。由于沒有定義端口的位數(shù), 所有端口大小都為1位;同時, 由于沒有各端口的數(shù)據(jù)類型說明, 這四個端口都是線網數(shù)據(jù)類型。模塊包含兩條描述半加器數(shù)據(jù)流行為的連續(xù)賦值語句。從這種意義上講,這些語句在模塊中出現(xiàn)的順序無關緊要,這些語句是并發(fā)的。每條語句的執(zhí)行順序依賴于發(fā)生在變量A和B上的事件。在模塊中,可用下述方式

14、描述一個設計:1) 數(shù)據(jù)流方式;2) 行為方式;3) 結構方式;4) 上述描述方式的混合。下面幾節(jié)通過實例講述這些設計描述方式。不過有必要首先對Verilog HDL的時延作簡要介紹。2.2 時延Verilog HDL模型中的所有時延都根據(jù)時間單位定義。 下面是帶時延的連續(xù)賦值語句實例。assign #2 Sum = A B;#2指2個時間單位。使用編譯指令將時間單位與物理時間相關聯(lián)。這樣的編譯器指令需在模塊描述前定義,如下所示: timescale 1ns /100ps此語句說明時延時間單位為1ns并且時間精度為100ps (時間精度是指所有的時延必須被限定在0.1ns內)。 如果此編譯器指

15、令所在的模塊包含上面的連續(xù)賦值語句, #2 代表2ns。如果沒有這樣的編譯器指令, Verilog HDL 模擬器會指定一個缺省時間單位。IEEE Verilog HDL 標準中沒有規(guī)定缺省時間單位。2.3 數(shù)據(jù)流描述方式用數(shù)據(jù)流描述方式對一個設計建模的最基本的機制就是使用連續(xù)賦值語句。在連續(xù)賦值語句中,某個值被指派給線網變量。 連續(xù)賦值語句的語法為:assign delay LHS_net = RHS_ expression;右邊表達式使用的操作數(shù)無論何時發(fā)生變化, 右邊表達式都重新計算, 并且在指定的時延后變化值被賦予左邊表達式的線網變量。時延定義了右邊表達式操作數(shù)變化與賦值給左邊表達式之

16、間的持續(xù)時間。如果沒有定義時延值, 缺省時延為0。下面的例子顯示了使用數(shù)據(jù)流描述方式對2-4解碼器電路的建模的實例模型。timescale 1ns/ 1nsmodule Decoder2x4 (A, B, EN, Z);input A, B, EN;output 0 :3 Z;wire Abar, Bbar;assign #1 Abar = A; / / 語句 1。 assign #1 Bbar = B; / / 語句 2。 assign #2 Z0 = (Abar & Bbar & EN) ; / / 語句 3。 assign #2 Z1 = (Abar & B & EN) ; / / 語句

17、 4。 assign #2 Z2 = (A & Bbar & EN) ; / / 語句 5。 assign #2 Z3 = (A & B & EN) ; / / 語句 6。 endmodule以反引號“ ”開始的第一條語句是編譯器指令, 編譯器指令timescale 將模塊中所有時延的單位設置為1 ns,時間精度為1 ns。例如,在連續(xù)賦值語句中時延值#1和#2分別對應時延1 ns和2 ns。模塊Decoder2x4有3個輸入端口和1個4位輸出端口。線網類型說明了兩個連線型變量Abar和Bbar (連線類型是線網類型的一種)。此外,模塊包含6個連續(xù)賦值語句。當EN在第5 ns變化時,語句3、4

18、、5和6執(zhí)行。這是因為EN是這些連續(xù)賦值語句中右邊表達式的操作數(shù)。Z0在第7 ns時被賦予新值0。當A在第15 ns變化時, 語句1、5和6執(zhí)行。執(zhí)行語句5和6不影響Z0和Z1的取值。執(zhí)行語句5導致Z2值在第17 ns變?yōu)?。執(zhí)行語句1導致Abar在第16 ns被重新賦值。由于Abar的改變,反過來又導致Z0值在第18 ns變?yōu)?。請注意連續(xù)賦值語句是如何對電路的數(shù)據(jù)流行為建模的;這種建模方式是隱式而非顯式的建模方式。此外,連續(xù)賦值語句是并發(fā)執(zhí)行的,也就是說各語句的執(zhí)行順序與其在描述中出現(xiàn)的順序無關。2.4 行為描述方式設計的行為功能使用下述過程語句結構描述:1) initial語句:此語句只

19、執(zhí)行一次。2) always語句:此語句總是循環(huán)執(zhí)行, 或者說此語句重復執(zhí)行。只有寄存器類型數(shù)據(jù)能夠在這兩種語句中被賦值。寄存器類型數(shù)據(jù)在被賦新值前保持原有值不變。所有的初始化語句和always語句在0時刻并發(fā)執(zhí)行。下例為always語句對1位全加器電路建模的示例。module FA_Seq (A, B, Cin, Sum, Cout);input A, B, Cin;output Sum, Cout;reg Sum, Cout;reg T1, T2, T3;always ( A or B or Cin ) beginSum = (A B) Cin;T1 = A & Cin;T2 = B &

20、Cin;T3 = A & B;Cout = (T1| T2) | T3;endendmodule模塊FA_Seq 有三個輸入和兩個輸出。由于Sum、Cout、T1、T2和T3在always 語句中被賦值,它們被說明為 reg 類型(reg 是寄存器數(shù)據(jù)類型的一種)。always 語句中有一個與事件控制(緊跟在字符 后面的表達式)。相關聯(lián)的順序過程(begin-end對)。這意味著只要A、B或Cin 上發(fā)生事件,即A、B或Cin之一的值發(fā)生變化,順序過程就執(zhí)行。在順序過程中的語句順序執(zhí)行,并且在順序過程執(zhí)行結束后被掛起。順序過程執(zhí)行完成后,always 語句再次等待A、B或Cin上發(fā)生的事件。在

21、順序過程中出現(xiàn)的語句是過程賦值模塊化的實例。模塊化過程賦值在下一條語句執(zhí)行前完成執(zhí)行。過程賦值可以有一個可選的時延。時延可以細分為兩種類型:1) 語句間時延: 這是時延語句執(zhí)行的時延。2) 語句內時延: 這是右邊表達式數(shù)值計算與左邊表達式賦值間的時延。下面是語句間時延的示例:Sum = (A B) Cin;#4 T1 = A & Cin;在第二條語句中的時延規(guī)定賦值延遲4個時間單位執(zhí)行。就是說,在第一條語句執(zhí)行后等待4個時間單位,然后執(zhí)行第二條語句。下面是語句內時延的示例。Sum = #3 (A B) Cin;這個賦值中的時延意味著首先計算右邊表達式的值, 等待3個時間單位,然后賦值給Sum。

22、如果在過程賦值中未定義時延,缺省值為0時延,也就是說,賦值立即發(fā)生。這種形式以及在always 語句中指定語句的其他形式將在第8章中詳細討論。下面是initial語句的示例:timescale 1ns / 1nsmodule Test (Pop, Pid);output Pop, Pid;reg Pop, Pid;initial beginPop = 0; / 語句 1。Pid = 0; / 語句 2。Pop = #5 1; / 語句 3。Pid = #3 1; / 語句 4。Pop = #6 0; / 語句 5。Pid = #2 0; / 語句 6。endendmoduleinitial語句

23、包含一個順序過程。這一順序過程在0 ns時開始執(zhí)行,并且在順序過程中所有語句全部執(zhí)行完畢后, initial語句永遠掛起。這一順序過程包含帶有定義語句內時延的分組過程賦值的實例。語句1和2在0 ns時執(zhí)行。第三條語句也在0時刻執(zhí)行,導致Pop 在第5 ns時被賦值。語句4在第5 ns執(zhí)行,并且Pid 在第8 ns被賦值。同樣,Pop在14 ns被賦值0,Pid在第16 ns被賦值0。第6條語句執(zhí)行后,initial語句永遠被掛起。2.5 結構化描述形式在Verilog HDL中可使用如下方式描述結構:1) 內置門原語(在門級);2) 開關級原語(在晶體管級);3) 用戶定義的原語(在門級);4

24、) 模塊實例 (創(chuàng)建層次結構)。通過使用線網來相互連接。下面的結構描述形式使用內置門原語描述的全加器電路實例。module FA_Str (A, B, Cin, Sum, Cout);input A, B, Cin;output Sum, Cout;wire S1, T1, T2, T3;xorX1 (S1, A, B),X2 (Sum, S1, Cin);andA1 (T3, A, B),A2 (T2, B, Cin),A3 (T1, A, Cin),orO1 (Cout, T1, T2, T3);endmodule在這一實例中,模塊包含門的實例語句,也就是說包含內置門xor、and和or

25、的實例語句。門實例由線網類型變量S1、T1、T2和T3互連。由于沒有指定的順序, 門實例語句可以以任何順序出現(xiàn);圖中顯示了純結構;xor、and和or是內置門原語;X1、X2、A1等是實例名稱。緊跟在每個門后的信號列表是它的互連;列表中的第一個是門輸出,余下的是輸入。例如,S1與xor 門實例X1的輸出連接,而A和B與實例X1的輸入連接。4位全加器可以使用4個1位全加器模塊描述。下面是4位全加器的結構描述形式。module FourBitFA (FA, FB, FCin, FSum, FCout );parameter SIZE = 4;input SIZE:1 FA, FB;output S

26、IZE:1 FSuminput FCin;input FCout;wire 1: SIZE1 FTemp;FA_StrFA1( .A (FA1), .B(FB1), .Cin(FCin),.Sum(FSum1), .Cout(FTemp2),FA2( .A (FA2), .B(FB2), .Cin(FTemp1),.Sum(FSum2), .Cout(FTemp2),FA3(FA3, FB3, FTemp2, FSum3, FTemp3,FA4(FA4, FB4, FTemp3, FSum4, FCout);endmodule在這一實例中,模塊實例用于建模4位全加器。在模塊實例語句中,端口可以

27、與名稱或位置關聯(lián)。前兩個實例FA1和FA2使用命名關聯(lián)方式,也就是說,端口的名稱和它連接的線網被顯式描述(每一個的形式都為“.port_name (net_name))。最后兩個實例語句,實例FA3和FA4使用位置關聯(lián)方式將端口與線網關聯(lián)。這里關聯(lián)的順序很重要,例如,在實例FA4中,第一個FA4與FA_Str 的端口A連接,第二個FB4與FA_Str 的端口B連接,余下的由此類推。2.6 混合設計描述方式在模塊中,結構的和行為的結構可以自由混合。也就是說,模塊描述中可以包含實例化的門、模塊實例化語句、連續(xù)賦值語句以及always語句和initial語句的混合。它們之間可以相互包含。來自alwa

28、ys語句和initial語句(切記只有寄存器類型數(shù)據(jù)可以在這兩種語句中賦值)的值能夠驅動門或開關,而來自于門或連續(xù)賦值語句(只能驅動線網)的值能夠反過來用于觸發(fā)always語句和initial語句。下面是混合設計方式的1位全加器實例。module FA_Mix (A, B, Cin, Sum, Cout);input A,B, Cin;output Sum, Cout;reg Cout;reg T1, T2, T3;wire S1;xor X1(S1, A, B); / 門實例語句。always ( A or B or Cin ) begin / always 語句。T1 = A & Cin;

29、T2 = B & Cin;T3 = A & B;Cout = (T1| T2) | T3;endassign Sum = S1 Cin; / 連續(xù)賦值語句。endmodule只要A或B上有事件發(fā)生,門實例語句即被執(zhí)行。只要A、B或Cin上有事件發(fā)生,就執(zhí)行always 語句,并且只要S1或Cin上有事件發(fā)生,就執(zhí)行連續(xù)賦值語句。2.7 設計模擬Verilog HDL不僅提供描述設計的能力,而且提供對激勵、控制、存儲響應和設計驗證的建模能力。激勵和控制可用初始化語句產生。驗證運行過程中的響應可以作為“變化時保存”或作為選通的數(shù)據(jù)存儲。最后,設計驗證可以通過在初始化語句中寫入相應的語句自動與期望的

30、響應值比較完成。下面是測試模塊Top的例子。該例子測試2.3節(jié)中講到的FA_Seq模塊。timescale 1ns/1nsmodule Top; / 一個模塊可以有一個空的端口列表。reg PA, PB, PCi;wire PCo, PSum;/ 正在測試的實例化模塊:FA_Seq F1(PA, PB, PCi, PSum, PCo); / 定位。initialbegin: ONLY_ONCEreg 3:0 Pal;/需要4位, Pal才能取值8。for (Pal = 0; Pal HERE用8位ASCII值表示的字符可看作是無符號整數(shù)。因此字符串是8位ASCII值的序列。為存儲字符串“INTERNAL ERROR”,變量需要8*14位。reg 1 : 8*14 Message;. . . Message = INTERNAL ERROR反斜線 ( ) 用于對確定的特殊字符轉義。n 換行符t 制表符 字符本身 字符206 八進制數(shù)206對

溫馨提示

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

評論

0/150

提交評論