05 EDA工具課程之PrimeTimeppt課件_第1頁
05 EDA工具課程之PrimeTimeppt課件_第2頁
05 EDA工具課程之PrimeTimeppt課件_第3頁
05 EDA工具課程之PrimeTimeppt課件_第4頁
05 EDA工具課程之PrimeTimeppt課件_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、EDA技術(shù)實驗,Synopsys公司的靜態(tài)時序分析(STA)工具PrimeTime,Company Logo,主要內(nèi)容,PrimeTime實例分析,Company Logo,一、靜態(tài)時序分析(STA)介紹,簡介 靜態(tài)時序分析(Static Timing Analysis,簡稱STA)是一種驗證方法。它可以簡單的定義為:設(shè)計者提出一些特定的時序要求(或者說是添加特定的時序約束),套用特定的時序模型,針對特定的電路進行分析。分析的最終結(jié)果當然是要求系統(tǒng)時序滿足設(shè)計者提出的要求。 使用前提 靜態(tài)時序分析的前提是對同步邏輯設(shè)計進行時序驗證,設(shè)計者先提出要求,然后時序分析工具才會根據(jù)特定的時序模型進行分

2、析,即有約束才會有分析。若設(shè)計者不添加時序約束,那么時序分析就無從談起。 目的 進行靜態(tài)時序分析的主要目的就是為了找出隱藏的時序問題,提高系統(tǒng)工作主頻以及增加系統(tǒng)的穩(wěn)定性。對很多數(shù)字電路設(shè)計來說,提高工作頻率非常重要,因為高工作頻率意味著高處理能力。通過附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高工作頻率。,Company Logo,一、靜態(tài)時序分析(STA)介紹,靜態(tài)時序分析的主要優(yōu)點 1、能夠詳盡地覆蓋時序路徑; 2、不需要測試向量; 3、執(zhí)行速度快; 4、能夠為時序沖突生成全面的報告; 5、能夠完成使用仿真所不能實現(xiàn)的復(fù)雜分析,例如min/max 分析、組

3、合環(huán)檢測、自動地檢測并消除無效路徑。 靜態(tài)時序分析的缺點 靜態(tài)時序分析的優(yōu)點并不意味著STA能夠完全替代動態(tài)仿真,靜態(tài)驗證工具與動態(tài)驗證工具必須協(xié)同存在。一個主要的原因是STA只關(guān)注時序,不能驗證一個設(shè)計的邏輯功能;另一個是STA針對同步邏輯設(shè)計,因而某些設(shè)計風格并不是很適合靜態(tài)的方法。例如,一個設(shè)計的異步部分可能要求使用動態(tài)仿真,當然,任何混合信號的部分更是如此。,Company Logo,二、PrimeTime簡介,PrimeTime簡介 PrimeTime是Synopsys的靜態(tài)時序分析軟件,常被用來分析大規(guī)模,同步,數(shù)字ASIC.PrimeTime適用于門級的電路設(shè)計,可以和Synop

4、sys公司的其它EDA軟件非常好的結(jié)合在一起使用. PrimeTime的特點和功能 作為專門的靜態(tài)時序分析工具,PrimeTime可以為一個設(shè)計提供以下的時序分析和設(shè)計檢查: 建立和保持時間的檢查; 時鐘脈沖寬度的檢查; 時鐘門的檢查; 未約束的時序端點; 組合反饋回路; 基于設(shè)計規(guī)則的檢查,包括對最大電容,最大傳輸時間,最大扇出的檢查等。,Company Logo,二、PrimeTime簡介,PT和DC的STA的不同 1、目的不同 DC主要是為了綜合,所以它的時序約束都是以苛刻的估算為主,可以不區(qū)分什么分析類型,但PT主要是為了驗證它的約束,主要以來依賴于實際提取數(shù)據(jù)一提取的多數(shù)文件為主,必

5、須區(qū)分什么操作條件以及相應(yīng)的什么分析類型策略。 2、級別不同 DC的綜合是針對block的,所以它的時序約束也是針對預(yù)估的block的時序要求來編寫的,所以它是局部電路的時序約束。但PT主要是針對系統(tǒng)的靜態(tài)時序分析,所以它的時序約束主要是針對系統(tǒng)的性能規(guī)格來編寫,具有強制性和參照性。,Company Logo,二、PrimeTime簡介,PT和DC的STA的不同 3、輸入的文件類型不同 DC主要讀入的文件類型是電路的RTL描述,對它們的STA主要為了為綜合提供一個依據(jù),便于DC尋找能滿足要求的門;PT讀入的是設(shè)計的網(wǎng)表,屬于門級描述,對它的STA主要是為驗證實際電路是否滿足系統(tǒng)要求。 4、應(yīng)用

6、的階段不同 DC用于設(shè)計的邏輯綜合階段,主要作用是將設(shè)計的RTL描述轉(zhuǎn)換為電路門級描述;PT用于設(shè)計的驗證階段,主要作用是驗證具體電路在苛刻條件下是否存在時序異常。,Company Logo,三、PrimeTime進行時序分析的流程,1、 建立設(shè)計環(huán)境 - 建立搜索路徑(search path)和鏈接路徑(link path) 讀入設(shè)計和庫 (read_verilog和read_db) - 鏈接頂層設(shè)計 建立運作條件、連線負載模型、端口負載、驅(qū)動和傳輸時間,Company Logo,三、PrimeTime進行時序分析的流程,2、 說明時序聲明(約束) 定義時鐘周期、波形、不確定性(uncert

7、ainty)和滯后時間(latency) 說明輸入、輸出端口的延時。,PT約束的對象 設(shè)計 參照 單元 端口 引腳 時鐘 連線,Company Logo,三、PrimeTime進行時序分析的流程,時鐘的不確定性(uncertainty),Company Logo,三、PrimeTime進行時序分析的流程,時鐘的滯后時間(latency),Company Logo,三、PrimeTime進行時序分析的流程,時鐘的抖動(jitter),Company Logo,三、PrimeTime進行時序分析的流程,時鐘的電平轉(zhuǎn)換(transition),Company Logo,三、PrimeTime進行時序

8、分析的流程,3、 說明時序例外情況(timing exceptions) 設(shè)置多周期路徑(multicycle paths) 設(shè)置虛假路徑(false paths) 定義最大和最小延時、路徑分割(path segmentation)和失效?。╠isabled arcs),Company Logo,三、PrimeTime進行時序分析的流程,4、 進行分析和生成報告 時序約束檢查 生成約束報告( constraint reports ) 生成瓶頸分析報告( bottleneck reports ) -生成路徑時序報告( path timing reports )。,Company Logo,四、P

9、rimeTime的用戶界面,PrimeTime 提供兩種用戶界面,圖形用戶界面GUI(Graphical User Interface)和基于Tcl 的命令行界面pt_shell,其運行方式分別是: PrimeTime pt_shell,Company Logo,五、PrimeTime命令簡介,設(shè)計輸入 PT不能讀取RTL源文件,它是靜態(tài)分析引擎,只能讀取映射后的設(shè)計,包括db、verilog、vhdl和edif等格式的文件。 pt_shell read_db netlist_only .db 由于db格式的網(wǎng)表包含約束和環(huán)境屬性等,故使用netlist_only 選項指示PT只加載結(jié)構(gòu)化網(wǎng)表

10、。 pt_shell read_verilog .v Verilog網(wǎng)表文件。 pt_shell read_verilog .edf Edif網(wǎng)表文件。 pt_shell read_verilog .vhd VHDL網(wǎng)表文件。,Company Logo,五、PrimeTime命令簡介,創(chuàng)建時鐘 create_clock -period period_value -name clock_name -waveform edge_list source_objects pt_shellcreate_clock -period 4 -waveform list 0 2 name clk get_por

11、ts clk,Company Logo,五、PrimeTime命令簡介,時鐘延時 從時鐘樹到具體寄存器的時鐘輸入端會產(chǎn)生一定的延遲,這個延遲用 set_clock_latency -rise-fall -min-max -source delay object_list pt_shell set_clock_latency 1.2 -rise get_clocks CLK1,Company Logo,五、PrimeTime命令簡介,時鐘轉(zhuǎn)換 set_clock_transition -rise-fall -min -max transition clock_list pt_shell set_

12、clock_transition 0.38 -rise get_clocks CLK1 傳播時鐘 set_propagated_clock object_list pt_shell set_propagated_clock all_clocks,Company Logo,五、PrimeTime命令簡介,時鐘歪斜 在同步設(shè)計中,數(shù)據(jù)在一個時鐘邊沿由FF發(fā)送,在下一個時鐘沿由另一個FF接收,理想情況下兩個邊沿間應(yīng)有準確的一個時鐘周期的延時,然而由于連線延遲的差異,接收時鐘沿可早、可晚。為保證設(shè)計的robust,須指定時鐘歪斜。 set_clock_uncertainty -from from_cl

13、ock | -to to_clock -rise -fall -setup -hold uncertainty pt_shell set_clock_uncertainty -setup 0.65 get_clocks CLK pt_shell set_clock_uncertainty -hold 0.45 get_clocks CLK,Company Logo,五、PrimeTime命令簡介,指定生成的時鐘 create_generated_clock -name clock_name -source master_pin -divide_by divide_factor | -multi

14、ply_by multiply_factor -duty_cycle percent source_objects pt_shell create_generated_clock -multiply_by 2 -duty_cycle 60 -source get_pins CLK get_pins foo1,Company Logo,五、PrimeTime命令簡介,虛假路徑 set_false_path -from from_list -through through_list -to to_list pt_shell set_false_path -from ff12 -to ff34 pt

15、_shell set_false_path -from ff1/CP -through U1/Z U2/Z -through U3/Z U4/C -to ff2/D pt_shell foreach_in_collection clk1 all_clocks foreach_in_collection clk remove_from_collection all_clocks get_clocks $clk1 set_false_path -from get_clocks $clk1 -to get_clocks $clk2,Company Logo,五、PrimeTime命令簡介,設(shè)置虛假路

16、徑,Company Logo,五、PrimeTime命令簡介,設(shè)置虛假路徑,Company Logo,五、PrimeTime命令簡介,設(shè)置虛假路徑,Company Logo,五、PrimeTime命令簡介,設(shè)置虛假路徑,Company Logo,五、PrimeTime命令簡介,多周期路徑,Company Logo,五、PrimeTime命令簡介,多周期路徑,Company Logo,五、PrimeTime命令簡介,多周期路徑,Company Logo,五、PrimeTime命令簡介,時序約束檢查,Company Logo,五、PrimeTime命令簡介,生成報告,Company Logo,五、

17、PrimeTime命令簡介,生成報告 report_timing -from from_list -to to_list -through through_list -delay_type delay_type -nworst paths_per_endpoint -max_paths count -nets -group group_name -significant_digits digits -nosplit -transition_time -capacitance report_bottleneck -from from_list -to to_list -through throu

18、gh_list -max_cells cell_count -max_paths path_count -nworst_paths paths_per_endpoint -group group_name -significant_digits digits -nosplit,Company Logo,五、PrimeTime命令簡介,生成報告,Company Logo,五、PrimeTime命令簡介,詳細報告,Company Logo,五、PrimeTime命令簡介,詳細報告,Company Logo,六、實例分析,理論分析 固定參數(shù)launch edge、latch edge、Tsu、Th、

19、Tco概念 launch edge 時序分析起點(launch edge):第一級寄存器數(shù)據(jù)變化的時鐘邊沿,也是靜態(tài)時序分析的起點。 latch edge 時序分析終點(latch edge):數(shù)據(jù)鎖存的時鐘邊沿,也是靜態(tài)時序分析的終點。,Company Logo,六、實例分析,Clock Setup Time (Tsu) 建立時間(Tsu):是指在時鐘沿到來之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時間,如果建立的時間不滿足要求那么數(shù)據(jù)將不能在這個時鐘上升沿被穩(wěn)定的打入觸發(fā)器。如下圖所示:,Company Logo,六、實例分析,Clock Hold Time (Th) 保持時間(Th):是指數(shù)據(jù)穩(wěn)定后保

20、持的時間,如果保持時間不滿足要求那么數(shù)據(jù)同樣也不能被穩(wěn)定的打入觸發(fā)器。保持時間示意圖如下圖所示:,Company Logo,六、實例分析,Clock-to-Output Delay(tco) 數(shù)據(jù)輸出延時(Tco):這個時間指的是當時鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時間間隔。,Company Logo,六、實例分析,Clock skew 時鐘偏斜(clock skew):是指一個時鐘源到達兩個不同寄存器時鐘端的時間偏移,如下圖所示:,時鐘偏斜計算公式如下: Tskew = Tclk2 - Tclk1,Company Logo,六、實例分析,Data Arrival Time 數(shù)據(jù)到達

21、時間(Data Arrival Time):輸入數(shù)據(jù)在有效時鐘沿后到達所需要的時間。主要分為三部分:時鐘到達寄存器時間(Tclk1),寄存器輸出延時(Tco)和數(shù)據(jù)傳輸延時(Tdata),如下圖所示,數(shù)據(jù)到達時間計算公式如下: Data Arrival Time = Launch edge+ Tclk1 +Tco + Tdata,Company Logo,六、實例分析,Data Required Time(setup/hold) 數(shù)據(jù)需求時間(Data Required Time):在時鐘鎖存的建立時間和保持時間之間數(shù)據(jù)必須穩(wěn)定,從源時鐘起點達到這種穩(wěn)定狀態(tài)需要的時間即為數(shù)據(jù)需求時間。如圖下圖

22、所示:,(建立)數(shù)據(jù)需求時間計算公式如下: Data Required Time = Clock Arrival Time - Tsu (保持)數(shù)據(jù)需求時間計算公式如下: Data Required Time = Clock Arrival Time+ Th,Company Logo,六、實例分析,Setup slack 建立時間余量(setup slack):當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,就說時間有余量,Slack是表示設(shè)計是否滿足時序的一個稱謂。,Company Logo,六、實例分析,建立時間余量的計算公式如下: Setup slack = Data Required Time -

23、Data Arrival Time 由公式可知,正的slack表示數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間,滿足時序(時序的余量),負的slack表示數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間,不滿足時序(時序的欠缺量)。,Company Logo,六、實例分析,時鐘最小周期 時鐘最小周期:系統(tǒng)時鐘能運行的最高頻率。 1. 當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,時鐘具有余量; 2. 當數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間時,不滿足時序要求,寄存器經(jīng)歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù); 3. 當數(shù)據(jù)需求時間等于數(shù)據(jù)到達時間時,這是最小時鐘運行頻率,剛好滿足時序。 從以上三點可以得出最小時鐘周期為數(shù)據(jù)到達時間等于數(shù)據(jù)需求時間,的運算公式如下

24、: Data Required Time= Data Arrival Time,Company Logo,六、實例分析,建立時間余量圖示說明參考下圖:,Company Logo,六、實例分析,建立時間余量圖示說明: Setup slack=latch edge+Tclk2-Tsu-(launch edge+Tclk1+Tco+Tdata) =(latch edge-lanuch edge)+(Tclk2-Tclk1)-(Tsu+Tco+Tdata) 對于工具默認的單周期來說,latch edge-lanuch edge=T,如果不考慮時鐘的skew,Tclk2-Tclk1=0,上式可以表達成:

25、 Setup slack=T-(Tsu+Tco+Tdata),這就是為什么說源寄存器與目的寄存器之間延遲不能太長的原因,延遲越長,slack越小。,Company Logo,六、實例分析,保持時間余量圖示說明參考下圖:,Company Logo,六、實例分析,保持時間余量圖示說明: Hold slack=data arrival time data required time=(launch edge + Tclk1 + Tco + Tdata) (latch edge + Tclk2+ Th)=(launch edge latch edge) (Tclk2 Tclk1) + (Tco + T

26、data+ Th) 注意,上式中的launch edge為next launch edge,即為latch edge,所以launch edge latch edge=0,如果不考慮時鐘的skew,Tclk2-Tclk1=0,上式可以表達成: Hold slack=Tco + Tdata Th,這就是為什么說源寄存器與目的寄存器之間延遲不能太短的原因,時間太短,slack越小。,Company Logo,六、實例分析,設(shè)計范例說明 設(shè)計范例為一個32bit x 32bit的Pipeline乘法器,其架構(gòu)如圖一所示。Pipeline共分3級,電路之輸出輸入端皆有暫存器儲存運算數(shù)值,Company

27、 Logo,六、實例分析,時序約束(Timing Constraint) 要作靜態(tài)時序分析,首先要有時序限制。此設(shè)計范例的時序限制如下所述。(后為設(shè)定時序限制之SDC指令) 1 時脈規(guī)格(Clock Specification) 1.1 周期:6ns create_clock -name MY_CLOCK -period 6 -waveform 0 3 get_ports clk 1.2 Source Latency:1ns set_clock_latency -source 1 get_clocks MY_CLOCK 1.3 Network Latency:1ns set_clock_lat

28、ency 1 get_clocks MY_CLOCK 1.4 Skew:0.5ns set_clock_uncertainty 0.5 get_clocks MY_CLOCK,Company Logo,六、實例分析,合成軟體之時序報告 當Synopsys Design Compiler將電路合成完畢后,執(zhí)行下面指令可以產(chǎn)生時序報告: report_timing -path full -delay max -max_paths 10 -input_pins -nets -transition_time -capacitance timing_syn.txt 時序報告會儲存在timing_syn.

29、txt此檔案中。在檔案的開頭不遠處,會列出此電路最有可能不符合時序規(guī)格的路徑(Critical Path)。例如: Startpoint: S2/B2_reg_0_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Endpoint: S3/P3_reg_47_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Path Group: MY_CLOCK Path Type: max,Company Logo,六、實例分析,合成軟體之時序報告 當Synopsys Design Co

30、mpiler將電路合成完畢后,執(zhí)行下面指令可以產(chǎn)生時序報告: report_timing -path full -delay max -max_paths 10 -input_pins -nets -transition_time -capacitance timing_syn.txt 時序報告會儲存在timing_syn.txt此檔案中。在檔案的開頭不遠處,會列出此電路最有可能不符合時序規(guī)格的路徑(Critical Path)。例如: Startpoint: S2/B2_reg_0_ (rising edge-triggered flip-flop clocked by MY_CLOCK)

31、Endpoint: S3/P3_reg_47_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Path Group: MY_CLOCK Path Type: max,Company Logo,六、實例分析,繼續(xù)往下檢視檔案,你會看到Critical Path的詳細時序資訊。例如: Point Fanout Cap Trans Incr Path - clock MY_CLOCK (rise edge) 0.00 0.00 clock network delay (ideal) 2.00 2.00 S2/B2_reg_0_/CK (D

32、FFHQX4) 0.00 0.00 2.00r S2/B2_reg_0_/Q (DFFHQX4) 0.16 0.30 2.30r S2/n36 (net) 1 0.03 0.00 2.30r S2/U10/A (BUFX20) 0.16 0.00 2.30r S2/U10/Y (BUFX20) 0.23 0.21 2.51r . . S3/add_106/SUM47 (stage3_DW01_add_54_0) 0.00 7.96f S3/N94 (net) 0.01 0.00 7.96f S3/P3_reg_47_/D (DFFTRXL) 0.12 0.00 7.96f data arriv

33、al time 7.96,Company Logo,六、實例分析,繼續(xù)往下檢視檔案,你會看到Critical Path的詳細時序資訊。例如: Point Fanout Cap Trans Incr Path - clock MY_CLOCK (rise edge) 6.00 6.00 clock network delay (ideal) 2.00 8.00 clock uncertainty -0.50 7.50 S3/P3_reg_47_/CK (DFFTRXL) 0.00 7.50r library setup time -0.28 7.22 data required time 7.2

34、2 - data required time 7.22 data arrival time -7.96 - slack (VIOLATED) -0.74,Company Logo,六、實例分析,先由左往右看,第一個直行Point標示出路徑中的節(jié)點,節(jié)點可以是元件的輸出入端點,也可以是元件間的連線(Net)。第二個直行Fanout標示節(jié)點推動的元件個數(shù)。第三個直行Cap標示出節(jié)點推動的負載。第四個直行Trans標示出節(jié)點上信號的轉(zhuǎn)換時間(Transition Time)。第五個直行Incr標示出節(jié)點造成的延遲時間。最后一個直行Path則是自路徑起點到到此節(jié)點為止的總延遲時間。 再來我們由上往下檢

35、視Critical Path的時序資訊。 clock network delay (ideal) 2.00 2.00 此處的2ns的clock network delay是由我們給定的時序限制計算而來的,因為我們給定了各1ns的source latency及network latency,加起來共有2ns。 S2/B2_reg_0_/CK (DFFHQX4) 0.00 0.00 2.00 r 此行表示Critical Path的起點為S2 Instance下的B2_reg_0_這個instance的CK端點。由於有2ns的network delay,所以時脈信號到達此節(jié)點的時間為2ns(圖三)

36、。至於0ns的Transition Time則是因為我們沒有在時脈規(guī)格中定義其數(shù)值,合成軟體的會假設(shè)是一個0ns Transition Time的理想波形。最右邊的r是因為這個Flip-Flop是正緣觸發(fā),所以以r表示。如果是f就是負緣觸發(fā)。,Company Logo,六、實例分析,Company Logo,六、實例分析,S2/B2_reg_0_/Q (DFFHQX4) 0.16 0.30 2.30 r 接著信號自起點開始向終點傳遞,這一行表示路徑起點的Flip-Flop從CK端點到Q端點的時間延遲為0.3ns,且在此節(jié)點的Transition Time為0.16ns。所以信號到達此節(jié)點的時間

37、為2+0.3=2.3ns(圖四)。最右邊顯示r是因為Q端點從0變化到1時的延遲時間比1變化到0時的延遲時間還長,如果狀況相反的話,最右邊會標示f。以上數(shù)值是由元件庫(Cell Library)里的時序表(Timing Table)查出來的,其計算的方式請參照靜態(tài)時序分析(Static Timing Analysis)基礎(chǔ)及應(yīng)用(上)。 S2/n36 (net) 1 0.03 0.00 2.30 r S2/U10/A (BUFX20) 0.16 0.00 2.30 r 這兩行和上一行最右邊的Path欄位都一樣,這是因為其實它們是同一個節(jié)點,所以信號到達時間一樣。仔細的讀者這時候可能會有個疑問,F(xiàn)

38、lip-Flop的Q輸出端和后面Buffer的輸入端A信號到達時間應(yīng)該有一個連線延遲(Interconnect Delay)的差距吧?想法上是沒錯,但因為Design Compiler這個合成器將連線延遲的時間合併到元件延遲(Cell Dealy)的時間內(nèi)計算,所以從時序報告中看不到延遲時間的資訊。也就是說,如果Point欄是net的話,各位只需去檢視Fanout和Cap欄位即可。S2/n36這個net只有推動一個Buffer,其Fanout為1。負載則是Buffer的輸入負載和預(yù)估連線負載的總和,其值為0.03pF。,Company Logo,六、實例分析,Company Logo,六、實例分析,S2/U10/Y (BUFX20) 0.23 0.21 2.51 r 這一行是描述Buffer從輸入端到輸出端的時間延遲,

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論