VHDL顺序描述语句.ppt_第1页
VHDL顺序描述语句.ppt_第2页
VHDL顺序描述语句.ppt_第3页
VHDL顺序描述语句.ppt_第4页
VHDL顺序描述语句.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

第18讲VHDL顺序语句(4)主要知识点:RETURN语句NULL语句函数调用语句过程调用语句,VHDL语言的顺序语句,顺序语句(SequentialStatements)用来实现模型的算法描述。,顺序语句和并行语句是VHDL程序设计中两大基本描述语句系列。,并行语句(ConcurrentStatements)用来表示各模型算法描述之间的连接关系。,顺序语句只能出现在进程(PROCESS)过程(PROCEDURE)函数(FUNCTION)中,其它都是并行语句。,顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的,,理解,一个进程是由一系列顺序语句构成的,而进程本身属并行语句。也就是说,在同一设计实体中,所有的进程是并行执行的,每个进程内部是顺序执行的。,VHDL有如下六类基本顺序语句:,信号赋值语句变量赋值语句,1、赋值语句,2、流程控制语句,3、等待语句,4、子程序调用语句,5、返回语句,6、空操作语句,IF语句CASE语句LOOP语句NEXT语句EXIT语句,RETURN语句,NULL语句,WAIT语句,过程调用函数调用,返回语句RETURNRETURN语句是一段子程序结束后,返回主程序的控制语句。它只能用于函数与过程体内,并用来结束当前最内层函数或过程体的执行。RETURN语句的书写格式为:RETURN;RETURN表达式;,第一种格式只能用于过程,它后面一定不能有表达式;第二种格式只能用于函数,它后面必须有条件表达式,它是函数结束的必要条件,函数结束必须用RETURN语句。,例1:在函数体中使用RETURN语句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYexampleISPORT(a,b:ININTEGERrange0to10;y:OUTINTEGERrange0to10);ENDexample;ARCHITECTURErtlOFexampleISBEGINPROCESS(a,b)FUNCTIONmaximum(a,b:INTEGERrange0to10)RETURNINTEGERISVARIABLEtmp:INTEGER;,BEGINIF(ab)THENtmp:=a;ELSEtmp:=b;ENDIF;returntmp;ENDmaximum;BEGINytmp:=regaANDregb;WHEN101=tmp:=regaORregb;WHEN110=tmp:=NOTrega;WHENOTHERS=NULL;ENDCASE;,例2:采用NULL语句的四选一数据选择器。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(d0:INSTD_LOGIC_VECTOR(7DOWNTO1);d1:INSTD_LOGIC_VECTOR(7DOWNTO1);d2:INSTD_LOGIC_VECTOR(7DOWNTO1);d3:INSTD_LOGIC_VECTOR(7DOWNTO1);s0:INSTD_LOGIC;s1:INSTD_LOGIC;y:OUTSTD_LOGIC_VECTOR(7DOWNTO1);ENDmux4;ARCHITECTUREbehaveOFmux4IS,BEGINlable:PROCESS(d0,d1,d2,d3,s0,s1)VARIABLEtmp:INTEGER;BEGINtmp:=0;IF(s0=1)THENtmp:=tmp+1;ENDIF;IF(s1=1)THENtmp:=tmp+2;ENDIF;,CASEtmpISWHEN0=yyyyNULL;ENDCASE;ENDPROCESS;ENDbehave;上例是通过对用于选通8位总线的四选一多路选择器进行功能描述,具体说明NULL语句的使用。,子程序调用语句A.过程调用语句(ProcedureCall)与其他高级程序设计语言相似,VHDL提供了子程序的概念。其中在进程、函数和过程中,可以使用过程调用语句,此时它是一种顺序语句。一个过程被调用时将去执行它的过程体。,调用过程的语句格式如下:过程名(形参名=实参表达式,形参名=实参表达式);,一个过程的调用将分别完成以下三个步骤:,(1)将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应的形参;,(2)执行这个过程;,(3)将过程中IN和INOUT模式的形参值返回给对应的实参。,例3:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmaxISPORT(in1:INSTD_LOGIC_VECTOR(7DOWNTO0);in2:INSTD_LOGIC_VECTOR(7DOWNTO0);in3:INSTD_LOGIC_VECTOR(7DOWNTO0);q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDmax;,ARCHITECTURErtlOFmaxISproceduremaximum(a,b:INSTD_LOGIC_VECTOR;c:outstd_logic_vector)ISBEGINIF(ab)THENc:=a;ELSEc:=b;ENDIF;ENDmaximum;,BEGINPROCESS(in1,in2,in3)VARIABLEtmp1,tmp2:STD_LOGIC_VECTOR(7DOWNTO0);BEGINmaximum(in1,in2,tmp1);-过程调用maximum(tmp1,in3,tmp2);-过程调用q=tmp2;ENDPROCESS;ENDrtl;上例是一个取三个输入位矢量最大值的功能描述,它在结构体中的进程语句中使用了两个过程调用语句。,B.函数调用语句函数调用与过程调用是十分相似的,不同之处是,调用函数将返还一个指定数据类型的值,函数的参量只能是输入值。,函数语句分为两个部分,函数首和函数体。(1)函数首的格式为:FUNCTION函数名称(参数列表)RETURN数据类型名;(2)函数体的格式为:FUNCTION函数名称(参数列表)RETURN数据类型名IS说明部分BEGIN顺序语句RETURN返回变量END函数名称;调用函数语句的格式为:Y=函数名称(参数列表);,练习1:将例3改为函数调用实现.练习2:用函数实现求三个数中的最大数。三个整数(0-15之间):A,B,C;最大数:MAX。,断言语句(Assert)断言语句分为顺序断言语句和并行断言语句,顺序断言语句主要用于进程、函数和过程仿真、调试中的人机对话,它可以给出一个文字串作为警告和错误信息。断言语句的书写格式如下:ASSERT条件REPORT报告信息SEVERITY出错级别;在执行过程中,断言语句对条件(布尔表达式)的真假进行判断,如果条件为“TURE”,则向下执行另外一条语句;如果条件为“FALSE”,则输出错误信息和错误严重程度的级别。在REPORT后面跟着的是设计者写的字符串,通常是说明错误的原因,字符串要用双引号括起来。SEVERITY后面跟着的是错误严重程度的级别,他们分别是:,NOTE(注意)WARNING(警告)ERROR(错误)FAILURE(失败)若REPORT子句缺省,则默认消息为“Assertionviolation”;若SEVERITY子句缺省,则出错级别的默认值为“ERROR”。,例4:RS触发器的VHDL描述中断言语句的使用LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYrsffISPORT(s:INBIT;r:INBIT;q:OUTBIT;qb:OUTBIT);ENDrsff;ARCHITECTURErtlOFrsffISBEGINPROCESS(s,r)VARIABLElast_state:BIT;,BEGINASSERT(NOT(s=1ANDr=1)REPORTBothsandrequalto1SEVERITYERROR;IF(s=0ANDr=0)THENlast_state:=last_state;ELSIF(s=0ANDr=1)THENlast_state:=0;ELSElast_state:=1;ENDIF;q=last_state;qb=not(last_state);ENDPROCESS;ENDrtl;,上例中,如果r和s都为1时,表示一种不定状态。在进程中先是设定了一条断言语句,目的是:当判断r和s都为1时,输出终端将显示字符串“Bothsandrequalto1.”,同时可能终止模拟过程,并显示错误的严重程度。接下来用IF语句判别触发器的其他三种情况,最后将值送到触发器的两个输出端口上。,REPORT语句REPORT语句不增加硬件任何功能,但提供顺序断言语句的短格式,在仿真时使用REPORT语句可以提高程序的可读性。REPORT语句的书写格式为:REPORT输出信息SEVERITY出错级别;例:RS触发器的VHDL描述中REPORT语句的使用(本例中,用REPORT语句代替上例进程中的断言语句。),例5:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYrsffISPORT(s:INBIT;r:INBIT;q:OUTBIT;qb:OUTBIT);ENDrsff;ARCHITECTURErtlOFrsffISBEGINPROCESS(s,r)VARIABLElast_state:BIT;,BEGINIF(s=1ANDr=1)THENREPORT“Bothsandrequalto1.”;ELSIF(s=0ANDr=0)THENlast_state:=last_state;ELSIF(s=0ANDr=1)THENlast_state:=0;ELSElast_state:=1;ENDIF;q=last_state;qb=not(last_state);ENDPROCESS;ENDrtl;,在VHDL中,并行语句在结构体中的执行是同时并发执行的,其书写次序与其执行顺序并无关联,并行语句的执行顺序是由他们的触发事件来决定的。我们知道,实际的硬件系统中很多操作都是并发的,因此在对系统进行模拟时就要把这些并发性体现出来,并行语句正是用来表示这种并发行为的。在结构体语句中,并行语句的位置是:ARCHITECTURE结构体名OF实体名IS说明语句BEGIN并行语句END结构体名;,VHDL并行语句,其中并行语句主要有以下几种:PROCESS-进程语句BLOCK-块语句CONCURRENTSIGNALASSIGNMENT-并行信号代入语句CONDITIONALSIGNALASSIGNMENT-条件信号代入语句SELECTIVESIGNALASSIGNMENT-选择信号代入语句CONCURRENTPROCEDURECALL-并行过程调用语句ASSERT-并行断言语句GENERIC-参数传递语句COMPONENT_INSTANT-元件例化语句GENERATE-生成语句并行描述语句语句可以是结构性的,也可以是行为性的。下面对这些语句的应用加以介绍。,进程语句(PROCESS)进程语句是最主要的并行语句,它在VHDL程序设计中使用频率最高,也是最能体现硬件描述语言特点的一条语句。进程语句的内部是是顺序语句,而进程语句本身是一种并行语句。进程语句的综合是比较复杂的,主要涉及这样一些问题:综合后的进程是用组合逻辑电路还是用时序逻辑电路来实现?进程中的对象是否有必要用寄存器、触发器、锁存器或是RAM等存储器件来实现。进程语句结构中至少需要一个敏感信号量,否则除了初始化阶段,进程永远不会被再次激活。这个敏感量一般是一个同步控制信号,同步控制信号用在同步语句中,同步语句可以是敏感信号表、WAITUNTIL语句或是WAITON语句。一般来说,只有一个同步点或者是具有多个同步点但都使用完全相同的同步控制信号的进程不需要“记忆”在哪一个同步点上被挂起时,不会形成存储器。如下例所示:,-综合后不需要存储器的VHDL进程label1:PROCESS(a,b,c)BEGIN-其中没有其他同步描述ANDPROCESSlabel1;-综合后需要存储器的VHDL进程label2:PROCESSBEGINWAITUNTILclkEVENTANDclk=1;s=0;WAITUNTILclkEVENTANDclk=1;sstate:=stop;-这两个语句是并发关系ENDCASE;ANDPROCESSlabel4;,-综合为触发器的进程label5:PROCESSBEGINWAITUNTILclkEVENTANDclk=1;qA,a_B=B,a_Cin=Cin,a_Co=Co,a_S=S);SIGNALtmp1,tmp2:STD_LOGIC;BEGINlabel1:PROCESS(a_A,a_B)BEGINtmp1=a_AXORa_B;ENDPROCESSlabel1;,label2:PROCESS(tmp1,a_Cin)BEGINtmp2=tmp1ANDa_Cin;ENDPROCESSlabel2;label3:PROCESS(tmp1,a_Cin)BEGINa_S=tmp1XORa_Cin;ENDPROCESSlabel3;label4:PROCESS(a_A,a_B,tmp2)BEGINa_Co=tmp2OR(a_AANDa_B);ENDPROCESSlabel4;ENDBLOCKex;ENDdataflow;,在上面的例子中,结构体内含有4个进程语句,这4个进程语句是并行关系,共同形成了一个块语句。在实际应用中,一个块语句中又可以包含多个子块语句,这样循环嵌套以形成一个大规模的硬件电路。,并行信号代入语句信号代入语句有两种:一种是在结构体中的进程内使用,此时它作为一种顺序语句出现;另一种是在结构体的进程之外使用,此时它是一种并行语句,因此称之为并行信号代入语句。并行信号代入语句的语法格式为:信号量=敏感信号量表达式;需要注意的是,一条信号代入语句与一个信号代入的进程语句是等价的,我们可以把一条信号代入语句改写成一个信号代入的进程语句。,例:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYand_gatISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDand_gat;ARCHITECTUREbehaveOFand_gatISBEGINy=aANDb;-并行信号代入语句(在结构体进程之外)ANDbehave;本例是一个2输入与门的VHDL描述,在结构体中使用了并行信号代入语句。下面是2输入与门的另一种VHDL描述,在描述的结构体中采用了与上述并行信号代入语句等价的进程语句。,例:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYand_gatISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDand_gat;ARCHITECTUREbehaveOFand_gatISBEGINPROCESS(a,b)BEGINy=aANDb;-进程语句(顺序语句)ANDPROCESS;ANDbehave;,通过对上述两个例子的分析可见:从并行信号代入语句描述来看,当代入符号“=”右边的值发生任何变化时,信号代入语句的操作立即执行,将信号代入符号“=”右边的表达式代入给左边的信号量;从进程语句的描述来看,当进程敏感信号表中的敏感信号量发生变化时,进程将被启动,顺序信号代入语句将被执行以完成信号的代入操作。在VHDL中提供了三种并行信号代入语句:并发信号代入语句条件信号代入语句选择信号代入语句,(1)并发信号代入语句信号代入语句在进程内部执行时,它是一种顺序语句;信号代入语句在结构体的进程之外出现时,它作为并发语句的形式出现。作为并发信号代入语句,在结构体中他们是并行执行的,他们的执行顺序与书写无关。并发信号代入语句是靠事件驱动的。对于并发信号代入语句来说,只有代入符号“=”右边的对象有事件发生时才会执行该语句。在实际设计中,并发信号代入语句常用来进行加法器、乘法器、除法器和比较器等多种逻辑电路的描述。下面是一个用VHDL并发语句描述的全加器的例子。,例:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYaddISPORT(A:INSTD_LOGIC;B:INSTD_LOGIC;Cin:INSTD_LOGIC;Co:OUTSTD_LOGIC;S:OUTSTD_LOGIC);ENDadd;ARCHITECTUREdataflowOFaddISSIGNALtmp1,tmp2:STD_LOGIC;,BEGINtmp1=AXORB;tmp2=tmp1ANDCin;-4条并发信号代入语句S=tmp1XORCin;Co=tmp2OR(AANDB);ANDdataflow;,在上例的结构体中有4条并发信号代入语句,他们的执行顺序与书写顺序是无关的,因此上面的4条并发信号代入语句可以任意颠倒书写顺序,不会对执行结果产生任何影响。上面提到的并发信号代入语句是事件驱动的,例如:tmp2=tmp1ANDCin;S=tmp1XORCin;两条语句,只要tmp1和Cin中的值有一个发生变化,即有事件发生,那么这两条语句就会立即并发执行。,(2)条件信号代入语句条件信号代入语句也是一种并发描述语句,它是一种根据不同条件将不同的表达式代入目的信号的语句。条件信号代入语句的书写格式为:目的信号=表达式1WHEN条件1ELSE表达式2WHEN条件2ELSE表达式2WHEN条件3ELSE表达式n-1WHEN条件ELSE表达式;条件信号代入语句执行时要先进行条件判断,如果条件满足,就将条件前面的那个表达式的值代入目的信号;如果不满足条件,就去判断下一个条件;最后一个表达式没有条件,也就是说在前面的条件都不满足时,就将该表达式的值代入目的信号。,下面的例子是用条件信号代入语句来描述的七段显示译码器例:采用条件代入语句描述的七段显示译码器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYse7ISPORT(input:INSTD_LOGIC_VECTOR(3DOWNTO0);output:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDse7;ARCHITECTURErtlOFse7ISBEGINoutput=(0,1,1,1,1,1,1)WHENinput=“0000”ELSE(0,0,0,0,1,1,0)WHENinput=“0001”ELSE(1,0,1,1,0,1,1)WHENinput=“0010”ELSE,(1,0,0,1,1,1,1)WHENinput=“0011”ELSE(1,1,0,0,1,1,0)WHENinput=“0100”ELSE(1,1,0,1,1,0,1)WHENinput=“0101”ELSE(1,1,1,1,1,0,1)WHENinput=“0110”ELSE(0,0,0,0,1,1,1)WHENinput=“0111”ELSE(1,1,1,1,1,1,1)WHENinput=“1000”ELSE(1,1,0,1,1,1,1)WHENinput=“1001”ELSE(1,1,1,0,1,1,1)WHENinput=“1010”ELSE(1,1,1,1,1,0,0)WHENinput=“1011”ELSE(0,1,1,1,0,0,1)WHENinput=“1100”ELSE(1,0,1,1,1,1,0)WHENinput=“1101”ELSE(1,1,1,1,0,0,1)WHENinput=“1110”ELSE(1,1,1,0,0,0,1)WHENinput=“1111”ELSE(0,0,0,0,0,0,0);-灭灯ENDrtl;,在上例中,七段显示译码器有一个输入端口input和一个输出端口output。输入端口input是一个四位总线,表示3到0的四位逻辑向量,表示输入是一个四位二进制数。输出端口output也以总线形式表示,它表示6到0的7位逻辑向量,表示输出是一个七位二进制数,以驱动共阴极显示七段数码管。在上例的结构体中,用一个条件代入语句来完成所有状态的显示译码。在保留字WHEN的前面是驱动显示数码管的七位位矢量,WHEN的后面是译码的条件。需要说明的是条件信号代入语句中的书写顺序不是固定的,位置是可以任意颠倒的,他们并不表示执行的先后顺序,实际上他们是并发执行的。,(3)选择信号代入语句选择信号代入语句的书写格式为:WITH表达式SELECT目的信号=表达式1WHEN条件1;表达式2WHEN条件2;表达式3WHEN条件3;表达式nWHEN条件n;VHDL在执行选择信号代入语句时,目的信号是根据表达式的当前值来进行表达式代入的。当表达式的值符合某个条件时,就把该条件前的表达式代入目的信号;当表达式的值不符合条件时,语句就继续向下判断,直到找到满足的条件为止。选择信号代入语句与case语句相类似,都是对表达式进行测试,当表达式的值不同时,将把不同的表达式代入目的信号。需要注意的是,选择信号代入语句与case语句一样,必须把表达式的值在条件中都列出来,否则编译将会出错。,下面的例子是一个采用选择信号代入语句描述的选通8位总线的四选一多路选择器。例:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(d0:INSTD_LOGIC_VECTOR(7DOWNTO0);d1:INSTD_LOGIC_VECTOR(7DOWNTO0);d2:INSTD_LOGIC_VECTOR(7DOWNTO0);d3:INSTD_LOGIC_VECTOR(7DOWNTO0);s0:INSTD_LOGIC;s1:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDmux4;,ARCHITECTURErtlOFmux4ISSIGNALcomb:STD_LOGIC_VECTOR(1DOWNTO0);BEGINcombin2,c=out);ENDstructure;,注意:名称映射的书写顺序要求并不是很严格,只要把要映射的对应信号连接起来就可以了,顺序是可以颠倒的.,生成语句生成语句(GENERATE)是一种可以建立重复结构或者是在多个模块的表示形式之间进行选择的语句。由于生成语句可以用来产生多个相同的结构,因此使用生成语句就可以避免多段相同结构的VHDL程序的重复书写(相当于复制)。生成语句有两种形式:FOR-GENERATE模式和IF-GENERATE模式。FOR-GENERATE模式的生成语句FOR-GENERATE模式生成语句的书写格式为:标号:FOR循环变量IN离散范围GENERATE;ENDGENERATE标号;,其中循环变量的值在每次的循环中都将发生变化;离散范围用来指定循环变量的取值范围,循环变量的取值将从取值范围最左边的值开始并且递增到取值范围最右边的值,实际上也就限制了循环的次数;循环变量每取一个值就要执行一次GENERATE语句体中的并行处理语句;最后FOR-GENERATE模式生成语句以保留字ENDGENERATE标号:;来结束GENERATE语句的循环。生成语句的典型应用是存储器阵列和寄存器。下面以四位移位寄存器为例,说明FOR-GENERATE模式生成语句的优点和使用方法。下图所示电路是由边沿D触发器组成的四位移位寄存器,其中第一个触发器的输入端用来接收四位移位寄存器的输入信号,其余的每一个触发器的输入端均与左面一个触发器的Q端相连。,图用D触发器构成的四位移位寄存器根据上面的电路原理图,写出四位移位寄存器的VHDL描述如下。,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshift_regISPORT(di:INSTD_LOGIC;cp:INSTD_LOGIC;do:OUTSTD_LOGIC);ENDshift_reg;,ARCHITECTUREstructureOFshift_regISCOMPONENTdffPORT(d:INSTD_LOGIC;clk:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALq:STD_LOGIC_VECTOR(4DOWNTO0);BEGINdff1:dffPORTMAP(d1,cp,q(1));dff2:dffPORTMAP(q(1),cp,q(2));dff3:dffPORTMAP(q(2),cp,q(3));dff4:dffPORTMAP(q(3),cp,do);ENDstructure;,元件说明,元件例化,在上例的结构体中有四条元件例化语句,这四条语句的结构十分相似。我们对上例再做适当修改,使结构体中这四条元件例化语句具有相同的结构,如下例所示:,例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshift_regISPORT(di:INSTD_LOGIC;cp:INSTD_LOGIC;do:OUTSTD_LOGIC);ENDshift_reg;ARCHITECTUREstructureOFshift_regIS,COMPONENTdffPORT(d:INSTD_LOGIC;clk:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALq:STD_LOGIC_VECTOR(4DOWNTO0);BEGINq(0)=didff1:dffPORTMAP(q(0),cp,q(1));dff2:dffPORTMAP(q(1),cp,q(2));dff3:dffPORTMAP(q(2),cp,q(3));dff4:dffPORTMAP(q(3),cp,q(4));do=q(4)ENDstructure;,元件例化,元件说明,这样便可以使用FOR-GENERATE模式生成语句对上例中的规则体进行描述,如例所示。,例:FOR-GENERATE模式生成语句应用LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshift_regISPORT(di:INSTD_LOGIC;cp:INSTD_LOGIC;do:OUTSTD_LOGIC);ENDshift_reg;ARCHITECTUREstructureOFshift_regIS,COMPONENTdffPORT(d:INSTD_LOGIC;clk:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNAL

温馨提示

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

评论

0/150

提交评论