




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章设计验证随着集成度的提高,系统的规模日益庞大且复杂。强壮的系统应有完备的验证作保障。验证工作量远大于系统设计工作量。验证工作的基本技术和方法。Page1目前,验证一般通过仿真实现本章节中,验证和仿真不加区分1精选课件ppt4.1验证概述Page2验证过程是证明设计正确的过程,验证的目的是为了保证设计实现与设计规范是一致的,保证从设计规范开始,经过一系列变换后得到的网表与最初的规范是一致的,整个变换的过程是正确的。4.1.1验证的概念2精选课件pptPage34.1验证概述从自然语言表述的系统规范变换成完整的、可验证和无二义性的系统规范。从系统规范变换成可实现的模块设计规范。从模块设计规范变换成RTL及代码描述。从RTL代码通过综合工具变换成门级网表。从门级网表通过后端布局布线工具变换成具有延时信息的网表。FPGA设计可能包含的几个变换:3精选课件pptPage44.1验证概述验证是一个多次重复的过程,是一个不断向期望结果靠近的过程。系统规范网表交换验证4精选课件pptPage54.1验证概述验证和测试是ASIC设计流程中两个不同的环节。验证的目的则是为了确认设计符合设计规范,目前验证一般通过仿真实现。测试的目的是为了确认生产后的设计产品是否合格、正确,一般由加工厂家或封装测试厂家完成。4.1.2验证和测试(VerificationvsTest)5精选课件ppt4.1验证概述系统规范网表芯片电路设计生产验证(仿真)测试对物理器件高低电平的确认不属于本教材范畴对设计规范及功能的确认6精选课件pptPage64.1验证概述传统的电子线路设计验证方法4.1.3Top-Down/Bottom-Up验证方法目前的电子线路设计验证方法逻辑设计、画电路图、搭建电路、测试验证借助EDA工具在计算机上进行RTL级设计和验证。7精选课件pptPage74.1.3Top-Down/Bottom-Up验证方法Top-Down验证法系统级验证:根据系统规范对系统进行建模,并对建立的模型进行验证。功能验证:验证设计的RTL代码应符合系统规范。主要方法--功能仿真(形式化验证为辅)。门级网表验证:通过功能仿真或形式化工具检验RTL代码和综合后网表的是否相等。时序验证:验证综合后含有延时信息的网表时序是否满足要求。对于同步设计一般通过静态时序分析工具完成验证。8精选课件pptPage84.1.3Top-Down/Bottom-Up验证方法Bottom-Up验证法模块级验证验证模块的各种工作情况,保证每个单元的设计质量。子系统验证、系统级验证分层次组装模块进行子系统验证直至完成系统级验证。备注:系统级验证,目标是验证整个设计的功能。验证主要集中在设计和外环境之间能否协调工作,包括一些极端情况、边界条件和错误处理等。9精选课件pptPage9目前主流的两类“验证技术”:4.1.4验证技术(1)基于形式化的验证通过数学的方法,证明设计的功能是否与规范一致。等价性检验:比较两个设计是否完全等价。两个网表比较,网表与RTL代码比较模型检验:根据设计的RTL代码,提取有限状态机并穷举搜索设计状态空间,验证设计特性。模型检验工具:Cadence的FormalCheck、IBM的Sugar和
Sypopsys的Vera局限性很大1、设计规模越来越大复杂2、模型检验所描述的特性有限10精选课件ppt4.1.4验证技术(2)基于TestBench的验证(目前主要的验证方式)Testbench——测试平台即:Testbench产生激励给被验证设计(DUV)或待测设计(DUT),同时检查DUV/DUT输出是否满足要求11精选课件pptPage104.1.4验证技术
TB结构模型黑盒验证法白盒验证法灰盒验证法解释:DUV/DUTDesignUnderVerificationDesignUnderTest12精选课件pptTestbench功能:为DUV/DUT提供激励信号正确实例化DUV/DUT将仿真数据显示在终端或者存为文件,也可以显示在波形窗口用于分析复杂设计可以使用EDA工具,自动比较仿真结果与理想值。激励实例化DUT终端显示值、存成文件波形显示自动比较结果正确性13精选课件ppt4.1.5仿真工具1、仿真器仿真器是验证中最常用的工具。仿真器试图创建一个能够模拟真实设计的工作环境,使验证工程师和设计进行交互,在设计生产之前发现设计错误,以减少损失。之所以称为仿真器,是因为它们是真实状态的一种近似。Page1114精选课件pptPage124.1.5仿真工具验证人员在仿真器中,通过testbench为设计提供输入激励(为电路建立模拟工作环境),仿真器通过一定方式与验证人员交互,将电路的输出状态随环境变化的信息反映给验证人员。业界常用的仿真器有:Cadence的NC-Verilog,Synopsys的VCS和Mentor的ModelSim15精选课件pptPage134.1.5仿真工具最常见的和仿真器一起使用的验证工具。通过波形观察器的图形界面,设计人员可以直观地观察随时间变化的信号以及信号之间的相互关系,定位设计错误或测试文件的错误。2、波形观察器工具TB运行中即统计被测设计代码的测试覆盖情况,给出报告,验证者可依据此报告分析判断验证工作的完备性。几个主要覆盖分析方面:3、代码覆盖分析工具16精选课件ppt4.1.5仿真工具使用代码覆盖技术必须非常了解设计细节,通过代码覆盖分析工具了解哪些语句、路径已经被执行,那些表达式已经被执行,那些过程没有被触发等等,然后修改测试程序,提高代码覆盖率。提高覆盖率可以提高测试的完备性。语句覆盖路径覆盖表达式覆盖触发覆盖自动机覆盖17精选课件pptPage154.1.6验证计划和流程随着设计规模的加大,验证工作量越来越大,制定验证计划或者《验证规范》是验证过程的一个重要环节,验证计划可以提高验证效率,减少验证的盲目性。制定《验证规范》在《系统设计规范》签收(signoff)后开始。18精选课件pptPage164.1.6验证计划和流程应该注意:验证工程师应与总体设计师以及设计人员一起讨论整个设计功能、模块划分、接口方式等,详尽理解设计规范。在此基础上制定《验证方案》确定需要验证的功能特性,确定验证策略,规划验证环境和验证程序的开发,确定整个验证所需的验证人员的数目,资源和时间等等。19精选课件pptPage174.1.6验证计划和流程典型的验证流程20精选课件pptPage184.1.6验证计划和流程《验证方案》的要点(验证什么、如何验证)确定设计需要验证的特性(验证内容);确定验证策略系统级/模块级,黑/白/灰盒式验证,激励产生策略,验证响应方式(观察法、记录法、自检查法),人员、设备、环境管理安排等。确定验证方法具体验证的步骤和方法,如自顶向下/自下向上,激励的具体方式等。21精选课件ppt4.1.6验证计划和流程制作标准的测试组件和测试模板。个人编制相关部分的测试方案;编制、调试测试程序,进行系统测试。测试记录及分析,编制测试报告。回归测试:对发现问题修改后的设计重新测试。
(1)确认修改是否正确(2)修改是否影响其他设计22精选课件ppt4.2功能验证所谓的“验证程序”是对“待测电路”的输入序列和预期输出相应的代码集合。4.2.1验证程序(TestBench)的组成一个典型的验证程序模型23精选课件ppt4.2.1验证程序(TestBench)的组成一个典型的Testbench的六个组成部分:DUV(被验证的设计)DesignUnderVerification,可能是RTL设计,也可以是网表。输入激励
产生DUV需要的各种输入信号。时序控制模块
产生TB和DUV所需的时钟信号。参考模块
产生预期信号(行为级编码模块/以验证过正确的设计)。诊断记录
相关信号变化情况的记录。断言检查器
对特定的信号形式检测。24精选课件ppt编写仿真激励:1、仿真激励与被测对象的连接模块实例的端口方式:(1)名称对应:将模块实例外部的信号直接对应于模块的端口名称。modulehalfadd(x,y,sum,cout);……endmodule名称对应halfaddu_halfadd_a(.x(ax),.y(ay),.sum(asum),.cout(acout));(2)位置对应:外部信号按照该模块端口声明的顺序一一对应。Halfaddu_halfadd_b(bx,by,bsum,bcout);25精选课件ppt2、使用initial语句和always语句
通常主动产生激励用initial,被动检测响应用always。前者执行一次,后者不断重复执行。在initial中多次运行一个语句块,使用嵌入循环语句:while、repeat、for和forever。initialbeginforeverbengin…..endend条件发生时执行always@(posedgeclk)beginsiga=sigb……end26精选课件ppt3、时钟、复位写法(1)普通时钟信号
//产生一个周期为10的时钟
parameterFAST_PERIOD=10;regclk;initialbeginclk=0;forever#(FAST_PERIOD/2)clk=~clk;end27精选课件ppt用always产生一个周期为10的时钟parameterFAST_PERIOD=10;regclk;initialclk=0;always#(FAST_PERIOD/2)clk=~clk;
28精选课件ppt(2)非50%占空比时钟parameterHi_time=5;parameterLo_time=10;regclk;alwaysbegin#Hi_timeclk=0;#Lo_timeclk=1;end由于clk0时刻未初始化,前5纳秒输出为x29精选课件ppt(3)固定数目时钟\\产生两个高脉冲parameterPulseCount=4,PERIOD=10;regclk;initialbeginclk=0;repeat(PulseCount)#(PERIOD/2)clk=~clk;end30精选课件ppt(4)异步复位信号parameterPERIOD=10;regRst_n;initialbeginRst_n=1;#PERIODRst_n=0;#(5*PERIOD)Rst_n=1;endRst_n为低有效,代码表示10ns时复位,复位延时50ns31精选课件ppt(5)同步复位:initialbeginRst_n=1;@(negedgeclk);//等待时钟下降沿Rst_n=0;#30;@(negedgeclk);//等待时钟下降沿Rst_n=1;end32精选课件ppt另一种同步复位initialbeginRst_n=1;@(negedgeclk);//等待时钟下降沿Rst_n=0;//复位开始repeat(3)@(negedgeclk);//经过3个时钟下降沿Rst_n=1;//复位撤销end33精选课件ppt4、利用系统函数和系统任务
display在显示数据$display(“Addr:%b->Data:%d”,add,data);时序检查系统任务$setup(sig_d,posedgeclk,1);//若clk上升沿到达之前的1ns时间内sig_d发生跳变,则建立时间不足告警$hold(posedgeclk,sig_d,0.1);//若clk上升沿到达之后的0.1ns时间内sig_d发生跳变,则保持时间不足告警dato_out={$random}%256;从文本文件中读出和写入数据(类似C语言文件操作)34精选课件ppt搭建仿真环境35精选课件ppt单顶层的TestBench代码:moduletestbench;//测试平台顶层//时钟激励产生initialbengin…end//复位激励产生initialbegin…end//各种测试激励initialbengin…end//设计模块实例mpiu_mpi(.clk(clk),.rst_n(rst_n),.mpi_data(data),.mpi_addr(addr),.mpi_csn(csn),.mpi_rw(rw));36精选课件ppt确认仿真结果1、直接观测波形2、观察文本输出利用系统任务打印的信息查看仿真结果,$display、$monitor、$fdisplay3自动检查仿真结果(1)数据库比较法。(数据库存储期望结果)(2)波形比较法。(存储标准波形,仿真结果与其比较)(3)动态自检法。编写行为级与DUT功能一致代码,同时读入激励,比较输出结果37精选课件ppt举例:加法器38精选课件ppt39精选课件pptPage224.2.1验证程序(TestBench)的组成BookPage141例:一个编码器的验证。40精选课件pptPage234.2.2实用构造Testbench技术1、使用行为级代码描述验证模型设计工程师编写的电路模型代码,要从实现的角度出发,从物理实现上考虑verilog代码的写法,写出的代码必须是可综合的。验证工程师编写的用于验证的代码不必考虑到内部的实现问题,只要按规范描述出一个设计的功能就可以了,也就是说只要建立一个设计“逻辑模型”。行为模型代码的描述往往比RTL代码的描述简单的多,容易正确描述电路功能。41精选课件pptPage244.2.2实用构造Testbench技术2、使用抽象数据类型
行为级代码可以不受可综合要求的约束,可以在更高的层次上实现数据的抽象,使得验证程序编写时更方便。①实数数据类型数字滤波器的仿真例子(P148;例4.4)。②记录数据类型记录是一种抽象的数据结构,可以由不同类型信息组成,可以方便的表示在具有一定结构的数据。Verilog语言本身并不支持记录结构,通过一些方法可以模拟记录的实现。42精选课件pptPage25记录的用法记录的用途在仿真中主要用于描述一定格式的数据块。创建一个没有参数的module,内部的所有变量都用寄存器类型声明。当模块实例化后,用模块中定义的变量表示记录中的域。对记录可以进行行为级的处理,准备好仿真数据。(备注:行为级数据准备不占用信号时序时间)
4.2.2实用构造Testbench技术43精选课件pptPage304.2.2实用构造Testbench技术③多维数组数据类型数组类型是记录类型的特例(域等长,二维数组在设计中也用于对RAM等数据结构的建模)。测试激励需要构造有固定格式的数据帧时,使用二维数组是一种较好的方法。(例如SDH数据帧信元的构成等)44精选课件pptPage314.2.2实用构造Testbench技术3、编写结构化的仿真代码行为代码通常按功能和需求划分结构,复杂的仿真功能,可以按功能划分若干个子功能,然后编写行为代码实现这些子功能。在Verilog中,可以用module,function和task实现仿真代码结构化。封装是实现结构化仿真编码的主要手段,封装的主要思想是将实现的细节隐藏起来,将功能和它的实现完全分离开,只要封装的接口不变,实现的修改和优化不影响用户的使用。45精选课件pptPage324.2.2实用构造Testbench技术实现封装的几种方法变量局部化
方法一:变量声明时局部化尽可能地将变量的声明局部化,避免变量在其它模块间相互作用,产生不正确地结果。方法二:用task和function使变量局部化在verilog语言中,用task和function也可以使说明局部化。46精选课件pptPage334.2.2实用构造Testbench技术integerI;//全局Ialwaysbeginfor(I=0;I<=32,I=I+1)begin…end
endalwaysbeginfor(I=5;I>0,I=I-1)begin…endendalwaysbegin:block_1integerI;//局部Ifor(I=0;I<=32,I=I+1)begin…endendalwaysbegin:block_2integerI;//局部Ifor(I=5;I>0,I=I-1)begin…endend47精选课件pptPage344.2.2实用构造Testbench技术实现封装的几种方法总线功能模型
BFM(BusFunctionModule)总线功能模型BFM,也称为事务处理程序(transactions)描述模块。所谓BFM就是DUV和TB之间的一种抽象,它是任务的集合,集合中的每个任务完成一个特定的事务,事务可以是非常简单的操作,如内存的一次读、写,也可以是非常复杂的操作,如通信中结构化的数据包。BFM被直接链接到DUV上,TB通过“函数/功能”调用实现DUV的操作。48精选课件pptPage354.2.2实用构造Testbench技术TB-BFM-DUV模型49精选课件pptPage36例4.11带有微机接口芯片MPI的仿真(8255、8251等)。CPU接口可抽象成右图形式。根据预定义的协议,由CPUBFM产生CPU接口所需要的实际物理信号(图右侧信号),图左侧接口用特定的数据初始化一个事务,根据不同的事务,CPUBFM产生不同物理信号,把左侧的接口称为过程接口。在BFM中根据CPU接口的时序,应用task产生一次CPU读写操作所需要的各种信号。50精选课件pptPage37modulecpu_bfm(A,D,ALE,WRB,RDB,CSB);
output[13:0]A; //地址总线inout[7:0]D; //双向数据总线outputALE,WRB,RDB,CSB; //控制线reg[13:0]A;regALE,WRB,RDB,CSB;
//定义CPU读写信号的所需要的时序参数
parametertSalr=10,tSlr=5,Prd=30,tHrd=10; parametertHar=10,tVl=5,tSalw=10,tVwr=40,parametertSdw=20,tSlr=5; parameterdata_width=8,addr_width=14; reg[data_width-1:0]work_reg;51精选课件pptPage38taskrd_cpu;
//读操作的时序;
input[addr_width-1:0]addr;begin
#10A=addr;CSB=1’b0;
#(tSalr-tVl)ALE=1’b1;
#tVlALE=1’B0;
#tSlrRDB=1’B0;
#Prdwork_reg=D; RDB=1’B1;
#tHarA=14’hzzzz;CSB=1’b1;endendtask
taskwr_cpu;
//写CPU操作input[addr_width:0]addr;input[data_width:0]write_value;begin#10A=addr;CSB=1’B0;#(tSalw-tVl)ALE=1’B1;#tVlALE=1’B0;#tSlwWRB=1’B0;#(tVwr-tSdw)D=write_value;WRB=1’b1;#tHdwReleaseD;A=14’Hzzzz;CSB=1’B0;endendtaskendmodule//cpu_interface52精选课件pptPage39在测试程序中,实例化cpu_bfm模块,直接和被测试的设计连接,通过层次关系调用元件的cpu任务,实现对目标器件的读写操作。moduletestbench;….
cpu_bfmcpu_inst(.A(A),.D(D),.ALE(ALE),.WRB(WRB),.RDB(RDB),.CSB(CSB));DUVDUV_inst(/*othersignal*/…
/*cpusignal*/.A(A),.D(D),.ALE(ALE),.WRB(WRB),.RDB(RDB),.CSB(CSB),
/*othersignal*/….);例4.12cpu_interface的使用方法53精选课件pptPage40initialbegin#300cpu_inst.rd_cpu(14’h0010);
//此时cpu_inst.work_reg中既存储了读出的数…;//otheroperation#1000cpu_inst.wr_cpu(14’h0001,8’h3C);…;//otheroperationendendmodule//testbench例4.12
cpu_interface
的使用方法54精选课件pptPage414、编写具有层次结构的仿真代码4.2.2实用构造Testbench技术上面的CPU接口的仿真代码例子中包含了一定的层次结构。验证工程师在最顶层,只需要写出特定的完成某项功能验证的事务序列,而这些序列中的事务去调用不同的事务处理程序,这些不同的事务处理程序又可以去调用更低层的事务处理程序,以产生CPU接口所需要的物理信号。这种层次化结构,可以为验证工程师提供一个良好的可操作环境,使他们更关注于DUV的验证而不是注意如何产生DUV接口信号。55精选课件pptPage425、编写具有自检查功能的仿真程序4.2.2实用构造Testbench技术设计的有效性必须通过设计对激励响应的结果得以体现,有几种方式可以检查设计响应是否正确。通过人工观测DUV输出波形的结果是否正确;通过日志的方式,将一些结果输出到文件中,在仿真结束后,分析日志文件;自检查方式;56精选课件pptPage436、验证代码的重用4.2.2实用构造Testbench技术大规模FPGA/ASIC设计一般由多个层次构成,设计人员应对各个层次上的子模块逐一验证,然后将这些验证过的模块连接在一起形成高层规模较大的设计。为这些不同的子模块开发不同的验证环境需要花费大量的时间和精力,验证重用是解决这一问题的有效方法,验证人员利用大量的可重用验证模块构造出不同层次模块的验证环境。57精选课件pptPage446、验证代码的重用两种形式4.2.2实用构造Testbench技术①同一个芯片设计中验证重用在验证的不同周期或设计的不同阶段验证代码的重用。好的验证代码可以在子模块级和系统级验证时均可重用。②不同芯片设计之间的重用验证代码可以用于同一芯片的更新换代上,或用于一个包含许多标准设计模块的芯片或与以前设计有相同性的新设计中。58精选课件pptPage456、验证代码的重用4.2.2实用构造Testbench技术重用的模块越多,所考虑的事项和投入的精力就越多。需要在验证重用所取得的效果和投入重用的资源做些平衡。仿真程序被划分成两个主要的部分:可重用的验证代码与专用的验证代码。59精选课件pptPage464.3基于断言的验证基于断言的验证是一种有效的“白盒”验证方法,它在RTL设计的源代码中监视系统的关键行为,特别是在某些特殊情况下的行为。通过断言的方法,可以增加观测点,在仿真过程中及时发现设计错误。断言中用到的概念:特性(Property):用于刻画设计特征的一些行为属性。事件(Event):验证过程的一个行为。断言(Assertion):用于监控或检查施加在设计上的一些规则和假设的一种机制。60精选课件pptPage474.3基于断言的验证用户可以用各种硬件描述语言如Verilog、VHDL或SystemC等形成断言以监视设计在仿真过程中的行为。也可以利用已有的断言库,将断言直接加入到设计中。如:Accellera()推出的采用了断言思想的验证库OVL(OpenVerificationLibrary),该库中用HDL语言(VHDL和Verilog),定义和实现了一些非常常用的属性声明。一些专用的硬件特性描述语言(PropertySpecificationLanguage:PSL)和断言语言已经称为工业标准,并开始推向市场,例如IBM公司开发的Suger语言已被Accellera组织接受,成为PSL工业的标准。61精选课件pptPage484.3基于断言的验证断言可以有多种实现方法,最常用、最简单的方法是所谓的“叙述性”的实现方法,即在设计结构中描述断言,断言和设计中的其他结构一起并发地计算。叙述性断言实际上是一些代码,这些代码中一般包含三部分:①断言的条件,②报告信息,③错误的严重程度以及相关的处理。例:assert_always[#(severity_level,options,msg)]inst_name(clk,
reset_n,
test_expr)备注:assert_always模块是Accellera组织OVL库中的标准件,详见书中page166。62精选课件pptPage49modulecounter_0_to_9(reset_n,clk);
`defineASSERT_ON1
inputreset_n,clk;reg[3:0]count;always@(posedgeclk)beginif(reset_n==0||count>=9)count=1’b0;elsecount=count+1;end
assert_always#(0,0,"error:countnotwithin0and9")valid_count(clk,reset_n,(count>=4’b0000)&&(count<=4’b1001));//always断言endmodule例4.14模9计数器中使用always断言。63精选课件pptPage504.3基于断言的验证一个断言实际上就是一段Verilog代码,用模块的形式将其封装起来。使用时直接实例化,把断言嵌入在设计中,当测试条件不成立的时候,触发该断言。在验证中使用断言的优点:节约仿真时间,一旦出现了仿真错误,可以立即停止仿真;增加了设计的可观察性;减少设计错误定位时间,可以准确而快速定位设计错误;减少人为干预,自动监控测试。64精选课件pptPage514.4时序验证时序验证的目的是为了确认物理实现的电路时序是否满足时序规范要求。时序验证的方法分为动态验证和静态验证两种,本节简单地介绍静态时序分析中的一些基本概念。(备注:简介动态时序分析概念。)4.4.1静态时序分析概述静态时序分析是通过分析设计中所有可能的信号路径以确定时序约束是否满足时序规范,不依赖于激励,且可以穷尽所有路径,运行速度快,占用内存少。对于同步设计电路,仅借助于静态时序分析工具即可完成时序验证的任务。65精选课件pptPage524.4时序验证常见的静态时序分析的工具Synopsys公司的Primetime和MentorGraphic公司的SSTVelocity是比较有影响的用于全定制IC时序分析的工具。FPGA供应商如Altera,Xilinx和Actel也在其集成环境中嵌入了静态时序分析工具。66精选课件pptPage53四种基本时序路径:路径1(Path1):从输入管脚到D触发器的输入;路径2(Path2):从D触发器的输入到下一个D出发器的输入;路径3(Path3):从D触发器的输入到输出管脚;路径4(Path4):从输入到输出;时钟路径(clockpath):从一个时钟的输入通过一个或多个缓冲器到达一个时序元件的时钟管脚的路径;67精选课件pptPage544.4.1静态时序分析概述一条路径的延时等于在该条路径上所有元件延时和连线延时之和。静态分析工具通过反向跟踪路径终点到起点所有的延时来计算路径的传输延时。在时序分析中,禁止组合环的存在,要求所有的反馈路径都可以在时钟边界被打断。元件延时是一个门的输入到输出之间的延时。连线延时是时序分析路径上一个元件的输出到下一个元件输入之间的路径延时(寄生电容,线电阻,驱动强度等都会引起延时)。一条路径的延时是由该路径的组合电路、存储元件、路径上门的扇出负载、信号之间的互连线负载、时钟的歪斜率、时钟抖动和信号的压摆率等所决定。goonfromhere06.11.2268精选课件pptPage554.4.2静态时序分析中的基本概念1.扇入和扇出一个逻辑门的扇入是指连接到该门输入的数目,一个逻辑门的扇出是指连接到该门输出的负载门的数目,扇出越多,延时越大。69精选课件pptPage564.4.2静态时序分析中的基本概念2.压摆率(slewrate)压摆率(slewrate):电压变化的速度。70精选课件pptPage574.4.2静态时序分析中的基本概念3.时钟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家用电器产品维护维修服务协议
- 2022学年上海交大附中高一(下)期中地理试题及答案
- 探望同学150字(10篇)
- 历史朝代变迁及重要事件探究教案
- 八年级英语阅读活动方案
- 农户与农业种植合作社种植协议
- 公交公司避暑活动方案
- 公交营运活动方案
- 公众聚餐活动方案
- 公会片头活动方案
- 砌筑挡土墙搭设脚手架专项方案设计
- 长篇情感电台读文(10篇)精选
- “文化引导型”城市更新思想思考与实践课件
- 卷心菜中过氧化物酶热稳定性的初步研究
- DB35_T 169-2022 森林立地分类与立地质量等级
- 涡轮增压器系统及常见故障案例
- 动火作业危害识别及控制措施清单
- 宋大叔教音乐第三单元进阶版讲义2
- 26个科室建设指南
- 安全带检测报告(共8页)
- 河道治理监理月报
评论
0/150
提交评论