數(shù)字集成電路驗(yàn)證方法學(xué)_第1頁(yè)
已閱讀1頁(yè),還剩90頁(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、數(shù)字集成電路驗(yàn)證方法學(xué),浙江大學(xué)ICLAB實(shí)驗(yàn)室2016-12-26,主要內(nèi)容,驗(yàn)證的必要性驗(yàn)證方法學(xué)介紹驗(yàn)證工具介紹演示,2,共91頁(yè),主要內(nèi)容,驗(yàn)證的必要性驗(yàn)證方法學(xué)介紹驗(yàn)證工具介紹演示,3,共91頁(yè),驗(yàn)證的必要性,驗(yàn)證的概念,驗(yàn)證與測(cè)試的區(qū)別。經(jīng)驗(yàn)表明,驗(yàn)證已經(jīng)占到整個(gè)產(chǎn)品開(kāi)發(fā)周期的70%以上,它已經(jīng)成為復(fù)雜SOC(System on-Chip)開(kāi)發(fā)中的重要壁壘。制造、設(shè)計(jì)和驗(yàn)證能力之間存在鴻溝,4,共91頁(yè),典

2、型流程,Verification is not just very hard, it is very, very hard?沒(méi)有一個(gè)簡(jiǎn)單的工具可以解決你所有的驗(yàn)證問(wèn)題。(VSIA,Virtual Socket Interface Alliance),5,共91頁(yè),主要內(nèi)容,驗(yàn)證的必要性驗(yàn)證方法學(xué)介紹驗(yàn)證工具介紹演示,6,共91頁(yè),驗(yàn)證方法學(xué),方法學(xué):又稱方法論,是一門(mén)學(xué)問(wèn)采用的方法、規(guī)則與公理;一種特

3、定的做法或一套做法。驗(yàn)證方法學(xué):指完成驗(yàn)證過(guò)程中的一系列方法、技術(shù)和規(guī)范。 1.仿真技術(shù) 2.靜態(tài)技術(shù) 3.物理驗(yàn)證,7,共91頁(yè),仿真技術(shù),基于事件的仿真--任何一個(gè)輸入的變化都被標(biāo)記為事件,即常說(shuō)的功能仿真,精度高,速度慢。比如Modelsim, VCS?;谥芷诘姆抡?-單周期內(nèi)只檢查一次輸入并計(jì)算設(shè)計(jì)的輸出邏輯值。速度快,無(wú)時(shí)序、毛刺。比如Cyclone。事務(wù)級(jí)仿真--一堆事件的集合即為事務(wù),即常

4、說(shuō)的驗(yàn)證平臺(tái)。軟硬件協(xié)同驗(yàn)證--需要專門(mén)的硬件,成本高 。,8,共91頁(yè),驗(yàn)證方法比較,9,共91頁(yè),傳統(tǒng)驗(yàn)證系統(tǒng),DUT:Design Under Test適用于基于事件的仿真和基于周期的仿真。適用于簡(jiǎn)單的設(shè)計(jì)。,缺點(diǎn):1.可擴(kuò)展性差2.可重用性差,10,共91頁(yè),層次化的驗(yàn)證系統(tǒng),,適用于事務(wù)級(jí)仿真優(yōu)點(diǎn):1.可擴(kuò)展性好2.可重用性好,11,共91頁(yè),為什么要用事務(wù)級(jí)仿真?,基于事件的仿真與事務(wù)級(jí)仿真的比較,12,共9

5、1頁(yè),事務(wù)級(jí)仿真,RVM: Reference Verification Methodology, Synopsys公司。  VMM:Verification Methodology Manual, ARM公司和 Synopsys公司。AVM:Advanced Verification Methodology, Mentor公司。OVM:Open Verification Metho

6、dology, Cadence和Mentor公司。UVM: Universal Verification Methodology, Cadence、Mentor和Synopsys公司。,13,共91頁(yè),為什么選用OVM?,各種驗(yàn)證方法學(xué)比較,14,共91頁(yè),OVM介紹,OVM是一種基于SystemVerilog的驗(yàn)證方法或者策略,已經(jīng)實(shí)現(xiàn)了一個(gè)基本的層次化驗(yàn)證平臺(tái),大大簡(jiǎn)化驗(yàn)證工程師的工作量。OVM可以驗(yàn)證HDL代碼或者網(wǎng)表文件O

7、VM特點(diǎn): 1.開(kāi)放性:支持所有驗(yàn)證工具 2.開(kāi)源:OVM庫(kù)都是基于SystemVerilog實(shí)現(xiàn)的,可以在網(wǎng)上下載。 3.可靠性:兩大公司共同開(kāi)發(fā)維護(hù),15,共91頁(yè),OVM結(jié)構(gòu),,ovm_envovm_sequencerovm_agentovm_scoreboardovm_driverovm_monitor,16,共91頁(yè),SystemVerilog介紹,SystemVerilog結(jié)合了Verilo

8、g和C++的概念,具有如下新功能:1.面向?qū)ο缶幊?OOP) 、2.隨機(jī)約束(Constraint Random)、3.斷言(Assertion) 、4.功能覆蓋率(Functional Coverage) 。,17,共91頁(yè),OOP:Object-oriented programming對(duì)象:對(duì)象(Object)是一個(gè)現(xiàn)實(shí)實(shí)體的抽象,對(duì)象可被認(rèn)為是一個(gè)把數(shù)據(jù)(屬性)和程序(方法)封裝在一起的實(shí)體,這個(gè)程序產(chǎn)生該對(duì)象的動(dòng)作,屬

9、性反映了對(duì)象當(dāng)前的狀態(tài) 。面向?qū)ο缶幊蹋褐饕菍⑽覀儗?shí)際生活中的對(duì)象經(jīng)過(guò)抽象,將它定義成為一個(gè)類,通過(guò)類的屬性和方法來(lái)模擬生活中的這個(gè)對(duì)象。這樣使得程序更容易結(jié)構(gòu)化、抽象起來(lái)更方便。 傳統(tǒng)的編程結(jié)構(gòu)和設(shè)計(jì)方法以過(guò)程為中心進(jìn)行功能組合,代碼的擴(kuò)充和復(fù)用能力很差。對(duì)象是對(duì)現(xiàn)實(shí)世界實(shí)體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點(diǎn),也可很好地溝通。,SystemVerilog介紹-面向?qū)ο缶幊?18,共9

10、1頁(yè),類:定義實(shí)物的抽象特點(diǎn), 包含方法和屬性。對(duì)象:類的實(shí)例。方法:類的行為。繼承:子類包含類的特性。,SystemVerilog介紹-面向?qū)ο缶幊?19,共91頁(yè),CRT:Constraint Random Test class my_transaction extends ovm_transaction; rand int data_i; constraint c_data_i { data_i >

11、;= 0; data_i < 262144; } endclassmy_transaction tr = new();tr.randomize(); //tr.data_i大于0小于262144,SystemVerilog介紹-隨機(jī)約束,20,共91頁(yè),SystemVerilog介紹-隨機(jī)約束,class transcation; rand bit [1:0] src

12、; rand bit [31:0] data; bit [31:0] low, high; constraint cons{ src dist {0:=40, [1:3]:=60}; data inside {[low:high]}; }endclass,21,共91頁(yè),SystemVerilog介紹-斷言,斷言:屬于驗(yàn)證方法中的一種,是對(duì)設(shè)計(jì)屬性(行為)的描述, 如果一個(gè)屬性不是我們期望

13、的那樣,那么斷言就會(huì)失敗。assertions與verilog相比:verilog是一種過(guò)程性語(yǔ)言。它的設(shè)計(jì)目的是硬件描述,它可以很好的控制時(shí)序,但是描述復(fù)雜的時(shí)序關(guān)系,代碼較為冗長(zhǎng)。assertions是一種描述性語(yǔ)言,設(shè)計(jì)目的為仿真驗(yàn)證,可以有很多內(nèi)嵌的函數(shù)來(lái)測(cè)試特定的時(shí)序關(guān)系和自動(dòng)收集覆蓋率數(shù)據(jù)。,22,共91頁(yè),SystemVerilog介紹-斷言,Assertion 示例property p10;@(posedge

14、clock) (io.data_check_o=data_out_design_for_check-2);endpropertya10: assert property (p10);,23,共91頁(yè),SystemVerilog介紹-斷言,property pr1; @(posedge clock) start |-> req ##2 (gnt==1 && req==0);endpropertyA_

15、pr1: assert property (pr1);,24,共91頁(yè),SystemVerilog介紹-功能覆蓋率,功能覆蓋率: 衡量哪些設(shè)計(jì)特征已經(jīng)被程序驗(yàn)證過(guò)的一個(gè)指標(biāo)代碼覆蓋率 1. 語(yǔ)句覆蓋(StatementCoverage) 2. 判定覆蓋(DecisionCoverage) 3. 條件覆蓋(ConditionCoverage) 4. 路徑覆蓋(PathCoverage),25,共91頁(yè),

16、語(yǔ)句覆蓋,語(yǔ)句覆蓋(StatementCoverage):度量被測(cè)代碼中每個(gè)可執(zhí)行語(yǔ)句是否被執(zhí)行到了。int foo(int a, int b){   return  a / b;}TeseCase: a = 10, b = 5 語(yǔ)句覆蓋率:100%代碼

17、的bug: b=0,26,共91頁(yè),判定覆蓋&條件覆蓋,判定覆蓋(DecisionCoverage):度量程序中每一個(gè)判定的分支是否都被測(cè)試到了。條件覆蓋(ConditionCoverage):度量判定中的每個(gè)子表達(dá)式結(jié)果true和false是否被測(cè)試到了。int foo(int a, int b){    if (a 

18、;< 10 || b < 10) // 判定    {        return 0; // 分支一    }    else 

19、;   {        return 1; // 分支二    }},TestCaes1: a = 5, b = 15覆蓋了分支一TestCaes2: a = 15,&

20、#160;b = 15  覆蓋了分支二,TestCase1: a = 5, b = 5       true,  trueTestCase2: a = 15, b = 15  

21、0;false, false,TestCase1: a = 5, b = 15  true,  false   分支一TestCase2: a = 15, b = 5  false, true &#

22、160;  分支一,判定覆蓋率:100%,條件覆蓋<100%,條件覆蓋率:100%判定覆蓋率:100%,條件覆蓋率:100%,判定覆蓋<100%,27,共91頁(yè),路徑覆蓋,路徑覆蓋(PathCoverage):度量了是否函數(shù)的每一個(gè)分支都被執(zhí)行了。,int foo(int a, int b){    int n

23、Return = 0;    if (a < 10)    {// 分支一        nReturn += 1;    }  &#

24、160; if (b < 10)    {// 分支二        nReturn += 10;    }    return nReturn;},Te

25、stCase1 a = 5,    b = 5     nReturn = 11TestCase2 a = 15,  b = 5     nReturn = 10TestCase3 a = 5,  &

26、#160; b = 15   nReturn = 1TestCase4 a = 15,  b = 15   nReturn = 0路徑覆蓋率:100%,28,共91頁(yè),SystemVerilog介紹-功能覆蓋率,,29,共91頁(yè),Functional Coveragecovergroup:覆蓋率模型coverpoint

27、:覆蓋點(diǎn)sample():采樣函數(shù)bins: 倉(cāng),SystemVerilog介紹-功能覆蓋率,30,共91頁(yè),SystemVerilog介紹-功能覆蓋率,covergroup Covkind; coverpoint tr.kind{//kind為4位數(shù)據(jù) bins zero={0}; bins hi[] = {[8:$]};};endgroupCovkind cov = new();Cov.sample();,31

28、,共91頁(yè),SystemVerilog介紹-功能覆蓋率,covergroup group(@posedge clk); ca: coverpoint a; // a為1bit cb: coverpoint b; // b為1bit cab: cross ca cb;endgroupgroup grp = new();//不需要調(diào)用grp.sample();,32,共91頁(yè),靜態(tài)技術(shù),語(yǔ)法檢查--用戶可以自由控制需要檢查

29、的規(guī)則,如代碼風(fēng)格,可綜合檢查,DFT檢查。 nlint工具。靜態(tài)時(shí)序分析--檢查建立、保持時(shí)間以及其他延時(shí)信息是否滿足設(shè)計(jì)時(shí)序要求。 Prime Time。形式驗(yàn)證等價(jià)性檢查:不考慮時(shí)序信息,通常用于驗(yàn)證兩個(gè)設(shè)計(jì)是否在功能上等效(有g(shù)olden design)。 Formality 工具。模型檢查:驗(yàn)證設(shè)計(jì)的功能(沒(méi)有g(shù)olden design)。JasperGold,33,共91頁(yè),語(yǔ)法檢查,用戶可以自由控制需要檢查的規(guī)則

30、代碼風(fēng)格檢查:命名規(guī)范等可綜合檢查:設(shè)計(jì)的代碼是否滿足可綜合要求DFT檢查:代碼是否會(huì)影響后端DFT的設(shè)計(jì)跨時(shí)鐘域設(shè)計(jì)檢查:亞穩(wěn)態(tài)傳播檢查等常用工具為:nlint工具。,34,共91頁(yè),一般來(lái)說(shuō),要分析或檢驗(yàn)一個(gè)電路設(shè)計(jì)的時(shí)序方面的特征有兩種主要手段:動(dòng)態(tài)時(shí)序仿真(Dynamic Timing Simulation)和靜態(tài)時(shí)序分析(Static Timing Analysis) 1.動(dòng)態(tài)時(shí)序仿真:利用仿真器和延遲文件,

31、通過(guò)反標(biāo)節(jié)點(diǎn)延遲信息來(lái)仿真。 優(yōu)點(diǎn):可直觀查看波形;缺點(diǎn):速度慢,看不到關(guān)鍵路徑。 2.靜態(tài)時(shí)序分析:分析每條時(shí)間路徑上的延遲,來(lái)查看是否存在setup/hold違反。 優(yōu)點(diǎn):分析速度比較快,全面;缺點(diǎn):不能查看功能是否正確。,,靜態(tài)時(shí)序分析,35,共91頁(yè),靜態(tài)時(shí)序分析,針對(duì)建立時(shí)間、保持時(shí)間的檢查,分為四種情況輸入端口到寄存器寄存器到寄存器寄存器到輸出輸入到輸出針對(duì)周期個(gè)數(shù),分為:?jiǎn)沃芷跈z查多

32、周期檢查,36,共91頁(yè),所謂等價(jià)性檢查,就是通過(guò)比較兩個(gè)設(shè)計(jì)在邏輯功能是否等同的方法來(lái)驗(yàn)證電路的功能。優(yōu)點(diǎn): 1.不依賴于測(cè)試矢量,因此能提供更完全的驗(yàn)證; 2.可以實(shí)現(xiàn)RTL-to-RTL、RTL-to-gate、gate-to-gate兩者之間的驗(yàn)證; 3.有定位功能,可以幫助你找出兩個(gè)設(shè)計(jì)之間功能不等同的原因; 4.可以使用的文件格式有VHDL、Verilo

33、g、Synopsys 的.db格式,以及EDIF網(wǎng)表等; 5.可以實(shí)現(xiàn)自動(dòng)的分層驗(yàn)證;,,形式驗(yàn)證之等價(jià)性檢查,37,共91頁(yè),形式驗(yàn)證之等價(jià)性檢查,# set reference(RTL)read_verilog -r -libname WORK ABC.vread_db tcb018gbwp7twc.dbset_top ABC# set implentation(Gate)read_veri

34、log -i -libname WORK ABC_mapped.vset_top ABCmatchverify,38,共91頁(yè),所謂模型檢查,就是通過(guò)SystemVerilog中的斷言來(lái)描述DUT的特性,通過(guò)窮舉法產(chǎn)生隨機(jī)激勵(lì),判斷設(shè)計(jì)是否滿足設(shè)計(jì)需求。是仿真的補(bǔ)充。優(yōu)點(diǎn): 1.不需要人為產(chǎn)生激勵(lì),產(chǎn)生的激勵(lì)更完整; 2.對(duì)于某些模塊,用模型檢查比仿真驗(yàn)證速度更快 3.得到的波形很短(主要是

35、斷言失敗的波形),幾十個(gè)周期,方便定位問(wèn)題缺點(diǎn): 只能適合用于模塊級(jí)別的驗(yàn)證,,形式驗(yàn)證之模型檢查,39,共91頁(yè),物理驗(yàn)證--版圖級(jí),電源電壓降串?dāng)_ Astro/ICC 布局布線工天線效應(yīng) 具中完成電遷移,,40,共91頁(yè),物理驗(yàn)證--版圖級(jí),電遷移 EM(electrical mobility)概念:金屬線在電流

36、和溫度的作用下產(chǎn)生的金屬遷移的現(xiàn)象原因:電子沿著電壓梯度漂移,與組成導(dǎo)線的金屬粒子發(fā)生碰撞,若能量很高,會(huì)使金屬導(dǎo)體的某些部位產(chǎn)生空洞或小丘,從而引起導(dǎo)線失效。失效模式:主要包括短路、斷路以及參數(shù)退化和時(shí)序違規(guī)等,41,共91頁(yè),主要內(nèi)容,驗(yàn)證的必要性驗(yàn)證方法學(xué)介紹驗(yàn)證工具介紹演示,42,共91頁(yè),,如何利用OVM完成驗(yàn)證?,43,共91頁(yè),基于OVM的數(shù)字濾波器驗(yàn)證平臺(tái),數(shù)模轉(zhuǎn)化器(DAC)中的數(shù)字插值濾波器作為此驗(yàn)證平臺(tái)的

37、DUT數(shù)字插值濾波器的功能: 1.提高采樣頻率 2.濾除帶外(帶寬20KHz)噪聲,44,共91頁(yè),傳統(tǒng)的濾波器驗(yàn)證平臺(tái)仿真結(jié)果,傳統(tǒng)的驗(yàn)證平臺(tái):基于定向測(cè)試矢量+波形查看的方式,45,共91頁(yè),傳統(tǒng)驗(yàn)證平臺(tái)沒(méi)找到BUG的原因,1.仿真時(shí)間沒(méi)有足夠長(zhǎng) 2.借助波形來(lái)判斷 3.沒(méi)有與理想?yún)⒖寄P捅容^ 基于OVM的驗(yàn)證平臺(tái),,46,共91頁(yè),OVM驗(yàn)證平臺(tái)驗(yàn)證步驟,1.利用OVM庫(kù)完成

38、平臺(tái)代碼2.啟動(dòng)驗(yàn)證工具3.創(chuàng)建編譯庫(kù)4.編譯驗(yàn)證平臺(tái)代碼5.啟動(dòng)仿真,47,共91頁(yè),利用OVM庫(kù)完成平臺(tái)代碼,擴(kuò)展OVM類逐層完成: 1.接口 2.數(shù)據(jù)產(chǎn)生 3.驅(qū)動(dòng)器 4.驗(yàn)證環(huán)境 5.比較器,48,共91頁(yè),OVM平臺(tái)--接口,interface io_if();logic [17:0] data_i;logic [17:0] data_o;logic [17:0] data_che

39、ck_o;modport dut_if(input data_i, output data_o);// DUT接口modport check_if(input data_i, output data_check_o);// 比較器模塊接口 Endinterfaceio_if my_io();//裝載接口module check(io_if.check_if io, input clock,rst,en);dut dut(.

40、io(my_io), .clock(clock), .rst(rst), .en(rst_check)); check check(.io(my_io), .clock(clock), .rst(rst), .en(rst_check)) ;,49,共91頁(yè),OVM平臺(tái)—數(shù)據(jù)產(chǎn)生,class my_transaction extends ovm_transaction; rand int data_i;

41、 function new (string name = ""); super.new(name);

42、 endfunction: new //產(chǎn)生隨機(jī)事件的約束條件 constraint c_data_i { data_i >= 0; data_i

43、 <262144; } virtual function void randomize_(); data_i = $random & 18'h3ffff; endfunction`ovm_object_utils_begin(my_transaction)//在程序中 `ovm_fiel

44、d_int(data_i, OVM_ALL_ON + OVM_DEC) `ovm_object_utils_end endclass: my_transaction,50,共91頁(yè),OVM平臺(tái)—驅(qū)動(dòng)器,class my_driver extends ovm_driver;// `ovm_component_utils

45、(my_driver)//注冊(cè)本類,這個(gè)宏的結(jié)尾沒(méi)有符號(hào); virtual io_if v_io;//裝載虛擬接口 ovm_get_port #(my_transaction) get_port;//裝載與激勵(lì)發(fā)生器通信的通道接口:

46、 function new(string name, ovm_component parent); super.new(name, parent);

47、 //〖建議〗驗(yàn)證程序中可寫(xiě)一些ovm_report_info的語(yǔ)句供提示用: ovm_report_info("", "Called my_driver::new");//在測(cè)試結(jié)果顯示此函數(shù)被調(diào)用

48、 endfunction: new,51,共91頁(yè),function void build; super.build(); ovm

49、_report_info("", "Called my_driver::build"); get_port = new("get_port", this);//初始化 endfunction

50、: build virtual task run;

51、 ovm_report_info("", "Called my_driver::run"); forever

52、 begin my_transaction tx; #1600

53、 get_port.get(tx);//從通道中取一個(gè)事件 ovm_report_info("",$psprintf("data_i = %2h",tx.data_i)); v_io.dut_if.data_i = tx.data_i;

54、 end endtask: run

55、 endclass: my_driver,52,共91頁(yè),OVM平臺(tái)—驗(yàn)證環(huán)境,class my_env extends ovm_env;// `ovm_component_utils(my_env)//注冊(cè)本類

56、 ovm_random_stimulus #(my_transaction) env_stimulus;//裝載激勵(lì)器 tlm_fifo #

57、(my_transaction) env_fifo;//裝載通道 my_driver env_driver;//裝載驅(qū)動(dòng)器

58、 function new(string name = "my_env", ovm_component parent = null); super.new(name, parent); ovm_report_info(&qu

59、ot;", "Called my_env::new"); endfunction: new,53,共91頁(yè),virtual function void build; super.bu

60、ild(); ovm_report_info("", "Called my_env::build"); env_stimulus = new(&qu

61、ot;env_stimulus", this);//初始化激勵(lì)器 env_fifo = new("env_fifo", this);//初始化通道 env_driver = new("env.driver", th

62、is);//初始化驅(qū)動(dòng)器 endfunction: build

63、 virtual function void connect;//設(shè)定連接關(guān)系 ovm_report_info("", "Called my_env::connect"); env_

64、stimulus.blocking_put_port.connect(env_fifo.put_export);//激勵(lì)器側(cè)接口-放事件 env_driver.get_port.connect(env_fifo.get_export);//驅(qū)動(dòng)器側(cè)接口-取事件 endfunction: connect,54,共91頁(yè),virtual function void configu

65、re;// ovm_report_info("", "Called my_env::configure"); env_stimulus.set_report_id_action("s

66、timulus generation", OVM_NO_ACTION);//限制顯示信息 endfunction: configure//你可刪除上一行,看看有什么變化?

67、 task run(); ovm_report_info("","Called my_env::run"); endtask: r

68、un virtual function void report;

69、 ovm_report_info("", "Called my_env::report"); endfunction: report

70、 //在運(yùn)行下面的run_test()函數(shù)時(shí),以上函數(shù)將自動(dòng)依次運(yùn)行 endclass: my_env,55,共91頁(yè),module check(io_if.check_if io, input clock,rst,en, input [17:0] data_out_design_for_check

71、);wire [17:0] hcic_out;//參考模型Hcic_full Hcic_full (clock, en, rst, io.data_i, hcic_out,);assign io.data_check_o= hcic_out;property p10; @(posedge clock) (io.data_check_o=data_out_design_for_check-2)||io.data_che

72、ck_o==0;endpropertya10: assert property (p10);endmodule,OVM平臺(tái)—比較器,56,共91頁(yè),`timescale 1ns/10ps module top;

73、 import ovm_pkg::*; import my_pkg::*;

74、 parameter clock_cycle = 100; bit clock; bit rst; bit rst_che

75、ck; io_if my_io();//裝載接口 dut dut(.io(my_io), .clock(clock), .rst(rst),

76、 .en(rst_check));//裝載DUT check check(.io(my_io), .clock(clock), .rst(rst), .en(rst_check), .data_out_design_for_check(my_io.dut_if.data_o)); //〖建議〗在驗(yàn)證程序頂級(jí)模塊中一般采用繼承ovm_test

溫馨提示

  • 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ù)僅提供信息存儲(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)論