数字集成电路可测性设计及验证方法学课件_第1页
数字集成电路可测性设计及验证方法学课件_第2页
数字集成电路可测性设计及验证方法学课件_第3页
数字集成电路可测性设计及验证方法学课件_第4页
数字集成电路可测性设计及验证方法学课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字集成电路可测性软件设计及验证平台2013年4月25日2023/6/6共102页2主要内容可测性基础可测性设计工具验证的必要性验证方法学介绍验证工具介绍2023/6/6共102页3主要内容可测性基础可测性设计工具验证的必要性验证方法学介绍验证工具介绍可测性基础什么是可测性设计?物理瑕疵及故障模型单一故障模型:SAFModel可测性设计常用方法检测SAF的算法:D算法测试矢量集故障覆盖率2023/6/6共102页42023/6/6共102页5什么是可测性设计?可测性设计,DesignForTest,即DFT。

为了测试所设计IC有没有被正确的制造出来(测试半导体生产处理过程中的瑕疵,不是测试芯片设计的对错)。DFT=增加芯片逻辑+生成测试矢量集(供测试设备用)2023/6/6共102页6物理瑕疵和故障模型1.开路和短路

2.金属线之间的电桥

3.漏源穿通CMOS反相器中的物理缺陷2023/6/6共102页7

物理故障 逻辑故障

封装引脚间的漏电或短路 单一固定故障 芯片焊接点到管脚连线断裂 延时故障 表面玷污、含湿气 短路或者开路故障 金属层迁移、应力、脱皮 …

金属层开路、短路 … … …2023/6/6共102页8

固定1故障:

U0的输入端A固定接在高电平上,其值一直为“1”

固定0故障:

U1的输出端Y固定接在低电平上,其值一直为“0”单一固定故障:stuck-atfault2023/6/6共102页9DFT常用方法功能点测试

需在每个测试点增加可控的输入和输出,I/O增加扫描测试(基于D算法)

结构化的DFT技术,全扫描和部分扫描内建自测试消除了对ATE的存储能力和频率的限制,更具发展潜力2023/6/6共102页10D算法D算法是20世纪60年代IBM提出测试SAF(stuck-atfaultmodel,简称SAF模型)的,D算法在没有故障和有故障的电路之间产生了逻辑的差异(Discrepancy),D为Discrepancy缩写,D算法即为差异算法。经典的D算法如下:1、瞄准特定的SAF。2、驱动故障节点为反向值。3、把错误传送到输出端口。4、记录测试向量,减掉已测试过的故障。

2023/6/6共102页11D算法第一步:是把某个节点作为测试目标,我们把U1的输出端作为测试的目标,探测它有无SA0的故障。2023/6/6共102页12D算法第二步:是通过驱动该节点为相反的值以激活(activate)目标的故障。

输入端口输入逻辑“0”,如U1输出没有SA0的故障,其逻辑“1”;如U1输出有SA0的故障,其逻辑为“0”。可以通过测试其逻辑值来判断值该节点是否有SA0的故障。2023/6/6共102页13D算法第三步:是把故障效应传送到输出端口,可以在输出端口观测到其逻辑值,有故障节点的逻辑值通过组合电路后可能会反向,但是差异还保留着。2023/6/6共102页14D算法第四步:记录向量。成功的测试向量被记录在内存里,已测试的故障从目标故障的清单里减掉。2023/6/6共102页15可测试的触发器有两种模式:正常模式——在这种模式下,所设计芯片以设计的原来功能工作;测试模式——在这种模式下,所设计芯片进行生产测试。扫描测试2023/6/6共102页16扫描测试标准D触发器与标准D触发器等效的扫描触发器2023/6/6共102页17

使用扫描触发器,会增加设计的面积,增加了路径的延迟,增大了触发器的输出负载和电路的功耗。SMIC0.18µm工艺库AREA(µm2)FFDQRHDLX63.2FFSDQRHDLX79.83增加百分比26.3%扫描测试2023/6/6共102页18扫描测试流程2023/6/6共102页19测试矢量集(TestPattern)

由一个或多个测试序列组成的测试矢量,测试矢量包含输入激励和预期的输出响应,以测试一个目标的故障。2023/6/6共102页20以二输入与非门为例,假设输入为A,B,输出为Y,Y=~(A*B);ABYA/1A/0B/1B/0Y/0Y/1001111101011011101101110101110010101测试矢量为:001,011,101,110

输入激励输出响应2023/6/6共102页21故障覆盖率

可以测试到的故障占总故障的比例。如果电路的每个节点既可以控制(controllable),又可观测(observable),那么电路的测试覆盖率就高。

可控,可测可控,不可测不可控点:冗余电路,门控时钟2023/6/6共102页22业界产品测试方法ATE:AutomaticTestEquipment2023/6/6共102页232023/6/6共102页24主要内容可测性基础可测性设计工具验证的必要性验证方法学介绍验证工具介绍2023/6/6共102页25DFTCompilerSynopsys公司的集成于DesignCompiler的先进测试综合工具独创的“一遍测试综合”技术功能强大的扫描式可测性设计分析、综合和验证技术支持RTL级、门级的扫描测试设计规则检查,以及给予约束的扫描链插入和优化启动命令source/opt/demo/synopsys.envdesign_vision&2023/6/6共102页26设计流程2023/6/6共102页271.Scan-ReadySynthesisDFTCompiler2023/6/6共102页282.SetATEConfiguration2023/6/6共102页29即测试时钟周期为100ns,输入端口的数据输入到达时间为5ns,双向端口的数据输入到达时间为55ns,输出端口的数据程序采样(strobe)时间为40ns。测试时间参数的设置一般放在.synopsys_dc.setup文件中,也可以包含在DC综合脚本文件里。测试时钟定义了驱动所有扫描触发器的时钟,测试时钟一般与电路的工作时钟不同,它是由ATE提供的,只在测试时使用。DFTC进行设计时,假设ATE对芯片做测试的所有时钟周期是相同的,等于test_default_period。2.SetATEConfiguration2023/6/6共102页303.Pre-ScanCheck执行create_test_protocol命令,生成测试协议执行dft_drc命令,检查设计中有无测试设计规则的违规。典型的设计综合规则有:

capacitance,transition,andfanout典型的测试设计规则主要检查

1.设计中是否有测试违规使得无法插入扫描链

2.设计中是否有测试违规使得无法捕获数据

3.设计中是否有测试违规使得测试覆盖率降低2023/6/6共102页314.ScanSpecification

在DFTC中,可以用set_scan_configuration命令进行扫描路径的管理set_scan_configuration-chain_count6set_scan_configuration-clock_mixingmix_clocksset_scan_configuration-internal_clockstrueset_scan_configuration-add_lockupfalse2023/6/6共102页324.ScanSpecification用下面的命令定义设计中其中一条扫描链:set_dft_signal-viewspec-typeScanDataIn-portSI1set_dft_signal-viewspec-typeScanDataOut-portSO1set_dft_signal-viewspec-typeScanEnable-portSE–active_satate1set_san_path-viewspecC1-scan_data_inSI1–scan_data_outS012023/6/6共102页335.ScanPreview执行preview_dft:1.检查扫描路径的一致性2.确定扫描链的数目3.分派扫描单元和为扫描单元排次序4.加入连接的硬件2023/6/6共102页346.ScanChainSynthesis执行insert_dft,读取已预览的扫描结构进行所需要的扫描代替插入测试点保证没有竞争连接扫描路径把违规减少到最少2023/6/6共102页35SettingtheEffortLevel2023/6/6共102页367.Post-ScanCheck2023/6/6共102页372023/6/6共102页388.EstimateTestcoverage2023/6/6共102页39FileOutputwrite-formatverilog–hierarchy–output./netlist/top_pad.svwrite_sdc./sdc/top_pad.sdcwrite_test_protocol-formatstil-output./spf/top_pad.spf.sv文件和.sdc文件供布局布线工具Astro生成芯片版图.spf文件供测试矢量生成工具Tetramax生成与测试矢量集,待芯片流片封装好后,测试矢量集供ATE设备来测试芯片。

2023/6/6共102页40主要内容可测性基础可测性设计工具验证的必要性验证方法学介绍验证工具介绍2023/6/6共102页41验证的必要性验证的概念,验证与测试的区别。经验表明,验证已经占到整个产品开发周期的70%以上,它已经成为复杂SOC(Systemon-Chip)开发中的重要壁垒。2023/6/6共102页42典型流程

时序不满足动态仿真正确Verificationisnotjustveryhard,itisvery,veryhard没有一个简单的工具可以解决你所有的验证问题。(VSIA,Virtual

Socket

Interface

Alliance)2023/6/6共102页43主要内容可测性基础可测性设计工具验证的必要性验证方法学介绍验证工具介绍2023/6/6共102页44验证方法学方法学:又称方法论,是一门学问采用的方法、规则与公理;一种特定的做法或一套做法。验证方法学:指完成验证过程中的一系列方法、技术和规范。

仿真技术

静态技术

物理验证

2023/6/6共102页45仿真技术基于事件的仿真--任何一个输入的变化都被标记为事件,即常说的功能仿真,精度高,速度慢。比如Modelsim,VCS。基于周期的仿真--单周期内只检查一次输入并计算设计的输出逻辑值。速度快,无时序、毛刺。比如Cyclone。事务级仿真--一堆事件的集合即为事务,即常说的验证平台。软硬件协同验证--需要专门的软硬件,成本高。传统仿真系统2023/6/6共102页46DUT:DesignUnderTest适用于基于事件的仿真和基于周期的仿真。适用于简单的设计。缺点:1.可扩展性差2.可重用性差层次化的验证系统2023/6/6共102页47适用于事务级仿真优点:1.可扩展性好2.可重用性好为什么要用事务级仿真?

2023/6/6共102页48基于事件的仿真事务级仿真Testbench代码可读性,可维护性差强仿真速度慢快Testbench结构DUT复杂时,结构混乱DUT复杂时,结构清晰Testbench代码量DUT简单时,代码量尚可DUT复杂时,代码量巨大DUT简单时,代码量略多DUT复杂时。代码量较少与待测设计联系程度非常紧密行为级与DUT联系紧密事务级具有自身独立性可复用性无强抽象层次无有参考模型无有基于事件的仿真与事务级仿真的比较事务级仿真RVM:ReferenceMethodologyMethodology,Synopsys公司。VMM:Verification

MethodologyManual,ARM公司和Synopsys公司。AVM:AdvancedVerificationMethodology,Mentor公司。OVM:OpenVerificationMethodology,Cadence公司和Mentor公司UVM:UniversalVerificationMethodology,Cadence公司2023/6/6共102页49为什么选用OVM?

验证方法学侧重点EDA验证工具支持的验证语言基类库是否开源RVM层次化验证VCSOpenVera否VMMRTL级模块VCSSystemVerilog是AVM层次化验证QuestasimSystemC/SystemVerilog是OVM开源和不同仿真器之间的透明性支持不同验证工具支持SystemVerilog等多种语言是UVM开源和快速入门QuestasimNC-verilog支持SystemVerilog等多种语言是2023/6/6共102页50各种验证方法学比较SystemVerilog介绍SystemVerilog结合了Verilog和C++的概念,具有如下新功能:1.面向对象编程(OOP)、2.随机约束(ConstraintRandom)、3.断言(Assertion)、4.功能覆盖率(FunctionalCoverage)。2023/6/6共102页51OOP:Object-orientedprogramming类:定义实物的抽象特点,包含方法和属性。对象:类的实例。方法:类的行为。继承:子类包含类的特性。2023/6/6共102页52SystemVerilog介绍-面向对象编程

CRT:ConstraintRandomTestclassmy_transactionextendsovm_transaction;

randintdata_i;constraintc_data_i{data_i>=0;data_i<262144;}

virtualfunctionvoidrandomize_();data_i=$random&18'h3ffff;endfunction2023/6/6共102页53SystemVerilog介绍-随机约束SystemVerilog介绍-断言Assertion示例propertyp10;@(posedgeclock)(io.data_check_o<=data_out_design_for_check+2)&&(io.data_check_o>=data_out_design_for_check-2);endpropertya10:assertproperty(p10);2023/6/6共102页54FunctionalCoveragecovergroup:覆盖率模型sample():采样函数bins:仓CovergroupCovkind;coverpointtr.kind{//kind为4位数据binszero={0};binshi[]={[8:$]};};endgroup2023/6/6共102页55SystemVerilog介绍-功能覆盖率OVM介绍OVM是一种基于SystemVerilog的验证方法或者策略。OVM已经实现了一个基本的层次化验证平台,大大简化验证工程师的工作量。OVM可以验证HDL代码或者网表文件OVM特点:1.开放性:支持所有验证工具2.开源:OVM库都是基于SystemVerilog实现

的,可以在网上下载。3.可靠性:两大公司共同开发维护2023/6/6共102页562023/6/6共102页57OVM结构ovm_envovm_sequecerovm_agentovm_transcationovm_scoreboardovm_driverovm_monitor2023/6/6共102页58静态技术语法检查--用户可以自由控制需要检查的规则,如代码风格,可综合检查,DFT检查。nlint工具。静态时序分析--检查建立、保持时间以及其他延时信息是否满足设计时序要求。PrimeTime。形式验证—不考虑时序信息,通常用于验证两个设计是否在功能上等效。Formality工具。2023/6/6共102页59一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(DynamicTimingSimulation)和静态时序分析(StaticTimingAnalysis)

1.动态时序仿真:利用仿真器和延迟文件,通过反标节点延迟信息来仿真。

优点:可直观查看波形;缺点:速度慢,看不到关键路径。

2.静态时序分析:分析每条时间路径上的延迟,来查看是否存在setup/hold违反。

优点:分析速度比较快,全面;缺点:不能查看功能是否正确。静态时序分析

2023/6/6共102页60

所谓形式验证,就是通过比较两个设计在逻辑功能是否等同的方法来验证电路的功能。优点:

1.不依赖于测试矢量,因此能提供更完全的验证;

2.可以实现RTL-to-RTL、RTL-to-gate、gate-to-gate之间的验证;

3.有定位功能,可以帮助你找出两个设计之间功能不等同的原因;

4.可以使用的文件格式有VHDL、Verilog、Synopsys的.db格式,以及EDIF网表等;

5.可以实现自动的分层验证;形式验证2023/6/6共102页61物理验证--版图级电源电压降电迁移功耗Astro布局布线工天线效应具中完成串扰2023/6/6共102页62主要内容验证的必要性验证方法学介绍验证工具介绍演示

如何利用OVM完成验证?2023/6/6共102页63基于OVM的数字滤波器验证平台数模转化器(DAC)中的数字插值滤波器做为此验证平台的DUT数字插值滤波器的功能:1.提高采样频率2.滤除带外(带宽20KHz)噪声

2023/6/6共102页64输入信号输出信号传统的滤波器验证平台仿真结果传统的验证平台:基于定向测试矢量+波形查看的方式2023/6/6共102页65传统验证平台没找到BUG的原因

1.仿真时间没有足够长2.借助波形来判断3.没有与理想参考模型比较

基于OVM的验证平台2023/6/6共102页66OVM验证平台验证步骤利用OVM库完成平台代码启动验证工具创建编译库编译验证平台代码启动仿真2023/6/6共102页67利用OVM库完成平台代码扩展OVM类逐层完成

接口

数据产生

驱动器

验证环境

比较器2023/6/6共102页68OVM平台--接口interfaceio_if();

logic[17:0]data_i;

logic[17:0]data_o;

logic[17:0]data_check_o;

modportdut_if(inputdata_i,outputdata_o);//DUT接口

modportcheck_if(inputdata_i,outputdata_check_o);//比较器模块接口Endinterface

io_ifmy_io();//装载接口

modulecheck(io_if.check_ifio,inputclock,rst,en);dutdut(.io(my_io),.clock(clock),.rst(rst),.en(rst_check));checkcheck(.io(my_io),.clock(clock),.rst(rst),.en(rst_check));2023/6/6共102页69OVM平台—数据产生classmy_transactionextendsovm_transaction;

randintdata_i;

functionnew(stringname="");

super.new(name);

endfunction:new

//产生随机事件的约束条件constraintc_data_i{data_i>=0;data_i<262144;}virtualfunctionvoidrandomize_();

data_i=$random&18'h3ffff;endfunction`ovm_object_utils_begin(my_transaction)//在程序中`ovm_field_int(data_i,OVM_ALL_ON+OVM_DEC)

`ovm_object_utils_end

endclass:my_transaction2023/6/6共102页70OVM平台—驱动器

classmy_driverextendsovm_driver;//

`ovm_component_utils(my_driver)//注册本类,这个宏的结尾没有符号;

virtualio_ifv_io;//装载虚拟接口

ovm_get_port#(my_transaction)get_port;//装载与激励发生器通信的通道接口:

functionnew(stringname,ovm_componentparent);

super.new(name,parent);

//〖建议〗验证程序中可写一些ovm_report_info的语句供提示用:

ovm_report_info("","Calledmy_driver::new");//在测试结果显示此函数被调用

endfunction:new

2023/6/6共102页71functionvoidbuild;

super.build();

ovm_report_info("","Calledmy_driver::build");

get_port=new("get_port",this);//初始化

endfunction:build

virtualtaskrun;

ovm_report_info("","Calledmy_driver::run");

forever

begin

my_transactiontx;

#1600get_port.get(tx);//从通道中取一个事件

ovm_report_info("",$psprintf("data_i=%2h",tx.data_i));v_io.dut_if.data_i=tx.data_i;

end

endtask:run

endclass:my_driver2023/6/6共102页72OVM平台—验证环境

classmy_envextendsovm_env;//

`ovm_component_utils(my_env)//注册本类

ovm_random_stimulus#(my_transaction)env_stimulus;//装载激励器

tlm_fifo#(my_transaction)env_fifo;//装载通道

my_driverenv_driver;//装载驱动器

functionnew(stringname="my_env",ovm_componentparent=null);

super.new(name,parent);

ovm_report_info("","Calledmy_env::new");

endfunction:new

2023/6/6共102页73virtualfunctionvoidbuild;

super.build();

ovm_report_info("","Calledmy_env::build");

env_stimulus=new("env_stimulus",this);//初始化激励器

env_fifo=new("env_fifo",this);//初始化通道

env_driver=new("env.driver",this);//初始化驱动器

endfunction:build

virtualfunctionvoidconnect;//设定连接关系

ovm_report_info("","Calledmy_env::connect");

env_stimulus.blocking_put_port.connect(env_fifo.put_export);//激励器侧接口-放事件

env_driver.get_port.connect(env_fifo.get_export);//驱动器侧接口-取事件

endfunction:connect2023/6/6共102页74virtualfunctionvoidconfigure;//

ovm_report_info("","Calledmy_env::configure");

env_stimulus.set_report_id_action("stimulusgeneration",OVM_NO_ACTION);//限制显示信息

endfunction:configure//你可删除上一行,看看有什么变化?

taskrun();

ovm_report_info("","Calledmy_env::run");

endtask:run

virtualfunctionvoidreport;

ovm_report_info("","Calledmy_env::report");

endfunction:report

//在运行下面的run_test()函数时,以上函数将自动依次运行

endclass:my_env2023/6/6共102页75modulecheck(io_if.check_ifio,inputclock,rst,en,input[17:0]data_out_design_for_check);wire[17:0]hcic_out;//参考模型Hcic_fullHcic_full

(clock,

en,rst,

io.data_i,

hcic_out,);assignio.data_check_o=hcic_out;propertyp10;

@(posedgeclock)(io.data_check_o<=data_out_design_for_check+2)&&(io.data_check_o>=data_out_design_for_check-2)||io.data_check_o==0;endpropertya10:assertproperty(p10);endmodule2023/6/6共102页76OVM平台—比较器`timescale1ns/1nsmoduletop;

importovm_pkg::*;

importmy_pkg::*;

parameterclock_cycle=100;

bitclock;

bitrst;

bitrst_check;

io_ifmy_io();//装载接口

dutdut(.io(my_io),.clock(clock),.rst(rst),.en(rst_check));//装载DUT

checkcheck(.io(my_io),.clock(clock),.rst(rst),.en(rst_check),

.data_out_design_for_check(my_io.dut_if.data_o));

//〖建议〗在验证程序顶级模块中一般采用继承ovm_test的类包装继承ovm_env的类2023/6/6共102页77OVM平台—顶层模块

classmy_testextendsovm_test;

`ovm_component_utils(my_test)//注册本类

my_envtop_env;//装载环境-top_env

functionnew(stringname="my_test",ovm_componentparent=null);

super.new(name,parent);

ovm_report_info("","Calledmy_test::new");

endfunction:new

virtualfunctionvoidbuild;

super.build();

ovm_report_info("","Calledmy_test::build");

top_env=new();//初始化

//〖建议〗在验证程序中可设定看门狗

set_global_timeout(1000000us);

endfunction:build

2023/6/6共102页78virtualfunctionvoidconnect;

ovm_report_info("","Calledmy_test::connect");

top_env.env_driver.v_io=my_io;//连接虚拟接口到驱动器的物理接口

endfunction:connect

taskrun;

my_transactiontx;

tx=new();

ovm_report_info("","Calledmy_test::run");

top_env.env_stimulus.generate_stimulus(tx,2000000);//激励器产生20个事件

endtask:run

endclass:my_test2023/6/6共102页79initialbeginrun_test(“my_test”);

clock=0;

rst=0;

rst_check=0;

#(32*clock_cycle)rst=1;

endalways#(clock_cycle/2)clock=~clock;initial

begin

$fsdbDumpfile("top.fsdb");

$fsdbDumpSVA;

$fsdbDumpvars(0,top,"+all");end

endmodule:top2023/6/6共102页80启动验证工具利用mentor的questasim,界面和操作类似于modelsim环境变量source/opt/demo/questasim.env启动命令vsim&2023/6/6共102页81脚本方式完成验证vlibdac_hcic//创建库vlog+acc-f../rtl/ovm_rtl/compile_questa_sv.f-workdac_hcic-sv+cover//编译整个验证平台vsim-cdac_hcic.top-sv_seed100-coverage-assertcover-assertdebug-sva-voptargs=“+acc”-pli/opt/springsoft/verdi/share/PLI/MODELSIM/LINUX/novas_fli.so//启动仿真viewassertions//查看断言run-all//开始运行quit-sim//结束仿真2023/6/6共102页82compile_questa_sv.f+incdir+/home1t/opt/questasim/questasim/verilog_src/ovm-2.1.2/src/home1t/opt/questasim/questasim/verilog_src/ovm-2.1.2/src/ovm_pkg.sv+incdir+/home/liuxp/dac/rtl/ovm_rtl+incdir+/home/liuxp/dac/rtl/dac_balise/dac_haf_cic/home/liuxp/dac/rtl/ovm_rtl/ovm_start.sv2023/6/6共102页83结果查看断言结果查看覆盖率查看2023/6/6共102页84断言结果查看—Questasim下2023/6/6共102页85断言结果查看—Verdi下2023/6/6共102页86Verdi(另外一个软件,专门用作波形查看和调试)下查看断言结果更加直观,箭头朝上就表示端正通过,朝下表示断言失败。覆盖率查看2023/6/6共102页87覆盖率查看2023/6/6共102页88静态验证工具静态时序分析—PrimeTime形式验证--Formality2023/6/6共102页89静态时序分析—PrimeTimePrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模、同步、数字ASIC。PrimeTime适用于门级的电路设计。1.逻辑综合后网表2.自动布局布线后网表2023/6/6共102页90PrimeTime流程

1.设置查找和链接路径;2.读入并链接所要分析的设计;3.设置操作条件和线上负载模型;4.设置基本的时序约束;5.检查所设置的约束以及该设计的结构。2023/6/6共102页91PrimeTime工具启动source/opt/demo/synopsys.envpt_shellprimetime&2023/6/6共102页922023/6/6共102页93命令输入区2023/6/6共102页94PrimeTime脚本—sourcept.scrsetlib_path/home1t/smic/smic_65/SCC65NLL_HS_RVT_V1p1asetsmic_stdlib_path${lib_path}/synopsys/1.2v/setsmic_diolib_path/home1t/smic/smic_65/SP65NLLD2RP_OV3_TTM_V0p2a/syn/3p3v/setsmic_aiolib_path/home1t/smic/smic_65/SP65NLLD2RP_OV3_ANALOG_TTM_V0p2a/syn/3p3v/setsmic_stdsymlib_path${lib_path}/Symbol/setsearch_path"$search_path$smic_stdlib_path$smic_aiolib_path\$smic_diolib_path$smic_stdsymlib_path$smic_iosymlib_path“setlink_path"*scc65nll_hs_rvt_ss_v1p08_125c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论