




已阅读5页,还剩159页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,附录B硬件描述语言VHDL-本课件内容较多,供教师有选择地使用-,2,附录B内容提要,B.1VHDL的产生与发展B.2用VHDL建立电路模型B.3面向模拟器的某些特性B.4VHDL中的对象B.5数据类型B.6VHDL的词法单元B.7属性B.8表达式与运算符B.9子程序过程与函数B.10程序包与设计库B.11行为描述B.12结构描述B.13重载B.14VHDL保留字和预定义程序包,3,VHDL是什么?,HDLHardwareDescriptionLanguage;VHSICVeryHighSpeedIntegratedCircuit;VHDLVHSICHardwareDescriptionLanguage;VHDL是一个硬件描述语言,IEEE审定的工业标准;80年代初期美国政府超高速集成电路(VHSIC)发展计划的衍生物;VHDL的IEEE国际标准:IEEEStd1076IEEEstd1076-1987,1076-1993,1076-2000,1076-2002.,4,VHDL的发展历程,1981年6月,美国成立了VHDL工作小组;1983年6月,由Intermitrics,IBM和TexasInstrument组成开发小组,任务是:提出语言版本;开发其软件环境。1987年12月,IEEE公布了IEEE-1076作为HDL的第一个标准;1993年,IEEE公布了VHDL_93;1999年:VHDL_AMS(AnalogMixedSignal)1999年:VHDL1076.6(RTL可综合子集);2000年1月公布了VHDL1076-2000;2000年5月公布了VHDL1076-2002;,5,VHDL的主要目标,覆盖多个层次的广谱的HDL面向高层次的行为(算法)描述;RTL级描述;门级描述;电路级描述(不太方便);物理参数描述(延时,功耗,频率,尺寸.);可读性好,既可被计算机接受,又可作文档;VHDL描述与工艺无关有较长的生命期;(与工艺有关的参数,可通过VHDL的Attribute加进去)因为是标准有通用性。,6,VHDL的设计环境,7,HDL的3方面特性,8,VHDL行为描述和结构描述,以2选1多路器为例实体声明(下)对应于框图(左)entitymuxisbeginport(in2,in2,sel:inbit;out1:outbit);generic(delay:=5ns);end;,9,VHDL行为描述,architecturemuxbhofmuxisbeginifsel=1thenout1=in1afterdelayelseout1=in2afterdelay;end;,10,VHDL结构描述之一,architecturemux1ofmuxisbeginNOT:sb=U0(sel)AND2:s1=U1(sel,in1);AND2:s2=U2(sb,in2);OR2:out1=U3(s1,s2);end;,示意,没有遵守VHDL语法,11,VHDL结构描述之二,architecturemux2ofmuxisbeginNOT:sb=U0(sel)NAND2:s1=U1(sel,in1);NAND2:s2=U2(sb,in2);NAND2:out1=U3(s1,s2);end;,示意,没有遵守VHDL语法,12,VHDL的基本概念和主要特点,VHDL基本单元:(4种声明)程序包(package),属任选项。实体(entity),是必选项。结构体(architecture),是必选项。配置(configuration),属任选项。,13,程序包,程序包分2部分:packagedeclarationpackagebody用法:use,程序包的内容:数据类型定义函数过程,14,编译单元和设计库,设计库:存放各编译单元的地方。例:STD库:STANDARD包;TEXTIO包;.WORK库:当前的编译单元所在的库。其它库,编译单元共计5种:实体,结构体;包,包体;配置单元;编译单元均可单独作为一个文件,也可放在一起。,15,程序包(续),将程序包的声明部分和包体部分分开,可以实现内部保密的目的;程序包可用来定义多种数据类型以及对这些数据类型的运算。数据抽象化:如果程序包提供了对某数据类型的所有运算,就可看作把类型的实际定义从设计中提取了出来,也就是说使用这种数据类型的用户不必了解这种类型的对象是如何构造的,而只需了解这种数据类型支持哪些运算即可。,16,程序包(续),常用的程序包:IEEE.std_logic_1164-std_logic数据类型及有关函数IEEE.std_logic_arith-算术运算函数IEEE.std_logic_signed-带符号的算术运算函数IEEE.std_logic_unsigned-不带符号的算术运算函数,17,如何使程序包成为可见,library;-打开一个库use.all;-打开一个程序包也可用某个特定的元件名代替all可以是IEEE或ALTERA或;在QuartusII中,实际上是其中一个子目录名。,18,用户自定义程序包,用户自定义程序包必须和自己的设计在同一目录下。使用自定义程序包的方法:librarywork;-此语句可以省略,因为WORK库永远可见(VHDL的默认规则)。usework.all;,19,实体和结构体,实体声明:描述电路的接口信息,简称实体,保留字entity。结构体:描述电路的行为或结构,保留字architecture。,20,实体和结构体的对应关系,21,实体声明的语法形式,-提供公共信息entityisport();generic();外部可见begin;外部不可见end;,22,实体声明,公共信息中的可见部分:端口名称端口信息端口模式:in,out,inout,buffer信号取值类型:二值逻辑、多值逻辑、整数、实数、记录、数组类属信息公共信息中外部不可见部分:-实体语句部分是可选项,包括:类型声明;断言语句(用于约束条件的判断,典型例子是触发器的建立时间和保持时间)等。,23,端口模式,端口模式:in,out,inout,buffer连接到in端口的信号,只能出现在赋值符号的右边;连接到out端口的信号,只能出现在赋值符号的左边;,24,端口模式(续)-inout与buffer的区别,端口模式:in,out,inout,buffer连接到inout端口的信号,可以出现在赋值符号的左边或右边;(用途:和双向总线相连)连接到buffer端口的信号,可以出现在赋值符号的左边或右边。(和out类似,但可出现在赋值符号的右边),25,结构体(Architecture)的语法形式,architectureofisbeginendarchitecture;,26,并行与串行,27,并行语句,进程(process)语句;进程和进程之间并行执行。进程内部的语句顺序执行。简单的进程语句可以简化为并行信号赋值语句。例子见下页并行信号赋值语句;块(block)语句;断言(assert)语句;过程调用语句;生成(generate)语句;元件例化语句;,见后,28,进程是一个无限循环;进程中的语句顺序执行;进程中允许有多个wait语句;遇到wait语句进程即被挂起,直到条件满足,进程被激活,接着向下执行;进程间通过信号而相互激励/通信;注意延迟时间的处理,进程内部执行过程,29,结构体(Architecture)中的进程(进程之间并行执行),entitysubtracterisport(in1,in2,in3:ininteger;out1,out2:outinteger);endsubtrcter;,architecturesimplestofsubtracterisbeginprocess(in1,in2)-进程语句之一beginout1=in2-in1after5ns;endprocess;process(in2,in3)-进程语句之二beginout2=in2+in3after4ns;endprocess;endsimplest;,简单的进程语句可以简化为并行信号赋值语句。,30,简单进程化简为单个并行语句,进程语句若满足以下2个特点:进程语句中只有一个信号赋值语句。该赋值语句右边的所有信号都是敏感信号。则可以简化为并行信号赋值语句architecturesimplestofsubtracterisbeginout1=in2-in1after5ns;-并行信号赋值语句之一out2=in2+in3after4ns;-并行信号赋值语句之二endsimplest;,31,block语句,block语句可以出现在architecture中,相当于一个语法括号。例:加上这个语法括号与否不影响语义加上这个语法括号有助于概念清晰,增加可读性。,32,block语句(续),block中的声明部分(选项):在保留字block和begin之间可以写入声明语句信号声明,变量声明,类属声明端口声明.,其可见范围限于该block之内。,33,block语句(续),block的相互嵌套注意这种情况下的可见范围被保护的块被保护的块含保护表达式;保护表达式跟在关键字BLOCK之后;保护表达式是布尔表达式:当布尔表达式值为True时,块中包括的驱动源起作用;当布尔表达式值为False时,所有驱动源失去作用。例子见文件vhdl_2.ppt,34,顺序执行语句,顺序语句只出现在进程和子程序(过程和函数)中;包括:wait语句;顺序赋值语句:信号赋值符号:“=”;变量赋值符号:“=”;顺序控制语句:条件控制:if,case;循环控制:loop,forloop,whileloop,next,exit;断言语句:assert,report;过程调用:过程名(实际参数);返回语句:return;空语句:null;,35,Wait语句,Wait:-休眠,直到永远;Waiton:-休眠,直到敏感信号有事件发生;Waitfor:-休眠一段时间;Waituntil:-休眠,直到条件为真;,Waiton语句的简化形式:,36,顺序语句与并行语句-语法及应用-,顺序执行的语句-process中只能放顺序语句;并行执行的语句-architecture中只能放并行语句;某些语句既可当作并行语句,也可当作顺序语句,例如简单的信号赋值语句;断言语句;.,37,顺序语句,-顺序语句只能出现在process中,38,(1)顺序信号赋值语句,信号名=transport|inertial波形,波形;波形:=值表达式after时间表达式;,B=transportA+C;B=transportAafter5ns;,Clock=0,1after1ns,0after2ns,1after3ns,0after4ns,1after5ns;,B=A+C;B=Aafter5ns;,Clock=transport0,1after1ns,0after2ns,1after3ns,0after4ns,1after5ns;,例:,39,信号赋值的特点,信号赋值一定经过延时;信号赋值语句中如果缺少延时指定,则默认延迟时间为0;VHDL模拟器则将其按对待。延时特性:如果缺少指定,则默认为惯性延迟;惯性延迟:inertial传输延迟:transport,40,信号特点与属性,信号只能在进程外部定义,不能在进程内部或子程序内部定义。实体中声明端口信号。信号可以有预定义属性:信号自身的属性:Delayed,Stable(t)关于事件的属性:Event关于事项处理的属性:Active,41,(2)变量赋值语句-立即赋值,ArchitectureAofEissignalS:Bit:=0;signalOut1:Bit;process(S)beginS语句;when离散范围=语句;whenothers=语句;endcase;,45,CASE语句,signalC:Integerrange1to20;signalOut1:(0,1,2,3);process(C)caseCiswhen1=Out1Out1Out1Out1=(A*A)loopB:=B-A;endlooploop2;endlooploop1;,loop1:forAin10downto1looploop2:loopB:=B-A;nextloop1whenBnull;whenothers=x:=xmod2;endcase;,53,并行语句,-并行语句只能出现在architecture中,不可放在Process中!,54,(1)并行信号赋值语句,(1)并行信号赋值语句:简单并行信号赋值语句;条件并行信号赋值语句;选择并行信号赋值语句;,55,(a)简单并行信号赋值语句,信号=选择项波形,波形;选择项:=transport|inertial|guarded等价于:process(敏感信号表)begin信号=选择项波形,波形;endprocess;举例:,Clock=transport0,1after1ns,0after2ns,1after3ns,0after4ns,1after5ns;,56,(b)条件并行信号赋值语句,并行语句,顺序语句,信号=选择项波形1when条件1else:波形n-1when条件n-1else波形n;,process(敏感信号表)beginif条件1then信号=选择项波形1;:elsif条件n-1then信号=选择项波形n-1;else信号=选择项波形n;endif;endprocess;,57,例:y=transport1afterDelaywhenA=1andB=1else0afterDelay;等价于process(A,B)beginifA=1andB=1theny=transport1afterDelay;elsey信号信号=选择项波形n;endcase;endprocess;,并行语句,顺序语句,with表达式select信号=选择项波形1when分支1,:波形nwhen分支n;,59,withSelselectDoutDoutDoutDoutDout0andIO1);beginU1:Invportmap(S,S_bar);-元件例化end;,73,基本元件库和宏单元库-元件例化,芯片制造商一般都提供基本元件库和宏单元库。这些库有利于提高芯片制造的质量和效率。Altera公司也提供基本元件库和宏单元库。Altera公司宏单元库的所有的端口(ports)都只使用STD_LOGIC类型或STD_LOGIC_VECTOR类型。从Quartus2中查阅库及程序包的方法(见下页),74,从Quartus2中查阅库及程序包,.Quartus2LibrariesVHDLIEEEstd_1164.vhdmath_real.vhdnumeric_std.vhdStdstandard.vhdtextio_VHDL87.vhdtextio_VHDL93.vhdAltera,75,设计分解举例,4位计数器:,76,设计分解举例(续),1位计数器:entitycounter_elementisport(c_in,clock:inbit;c_out,b_out:outbit);endcounter_element;,77,设计分解举例(续),1位计数器的Architecture:architecturedata_flowofcounter_elementissignaldff_out:bit:=0;signalexor_out:bit:=0;beginL1:b_out=dff_out;-并行赋值语句L2:exor_out=dff_outxorcin;-进程的简略形式L3:c_out=dff_outandcin;L4:process(clock)-进程beginifclockeventandclock=1thendff_out=exor_out;endif;endprocess;enddata_flow;,78,决断信号和决断函数,79,声明一个决断信号,80,总线应用举例,访问整个总线:fred_bus=11111111;访问整个总线中的某一位(bit):bus(3)=1;访问整个总线中的一段(slice):bus(3downto2)=11;,VHDL提供了向量类型以表示总线;最常见的向量类型是:bit_vector,std_logic_vector,例:signalfred_bus:bit_vector(7downto0);signalbarney_bus:std_logic_vector(3downto0);signalbetty_bus:std_logic_vector(0to3);,TO和DOWNTO有什么区别?,81,VHDL中的对象,VHDL中的对象是存放值的容器,共有4类:信号:SIGNALclock:bit;变量:VARIABLEsum:real;常量:在被声明的时候被赋值(仅此一次);CONSTANTsum:integer;文件(VHDL93)FILEinput:TextISINSTD_INPUT,82,VHDL3种对象的比较,83,信号与变量的比较-对综合的影响-,84,含中间变量的进程,ENTITYvar_exISPORT(x,a,b:INbit;z:OUTbit);ENDvar_ex;ARCHITECTUREexampleOFvar_exISBEGINPROCESS(x,a,b)VARIABLEtmp:bit;BEGINIF(x=1)THENtmp:=aANDb;z=tmp;ELSEz=1;ENDIF;ENDPROCESS;ENDexample;,变量tmp保存中间值,85,(前页VHDL描述)对应的逻辑图:,变量tmp保存中间值,86,基本元件之间通过信号实现连接,87,(前页VHDL描述)对应的逻辑图:,ARCHITECTUREexampleOFsig_exISSIGNALtemp:bit;BEGINtemp=axorb;y=tempandc;ENDexample;,来自前页的描述,88,信号用于连接多个进程,ENTITYmultipleISPORT(data_a,data_b,data_c,sel_x,sel_y:INbit;data_out:OUTbit);ENDmultiple;ARCHITECTUREexampleOFmultipleISSIGNALtemp:bit;BEGINprocess_a:PROCESS(data_a,data_b,sel_x)BEGINIF(sel_x=0)THENtemp=data_a;ELSEtemp=data_b;ENDIF;ENDPROCESSprocess_a;process_b:PROCESS(temp,data_c,sel_y)BEGINIF(sel_y=0)THENdata_out=temp;ELSEdata_out=data_c;ENDIF;ENDPROCESSprocess_b;ENDexample;,信号temp在这里被赋值,信号temp在这里被使用,89,(前页VHDL描述)对应的逻辑图:,由process_a所产生,由process_b所产生,90,举例说明变量与信号的区别:,变量muxval的新值已经得到,信号muxval的新值还未得到,91,变量用于非组合逻辑的描述,思考:若进程的某一次执行过程中,内部变量没有被赋值,它的取值应该如何?,ENTITYunsynthISPORT(sela,selb:INbit;dout:OUTbit);ENDunsynth;ARCHITECTUREexampleOFunsynthISBEGINPROCESS(sela,selb)VARIABLEtemp:bit;BEGINIF(sela=1)THENtemp:=1;ELSIF(selb=1)THENtemp:=0;ENDIF;dout=temp;ENDPROCESS;ENDexample;,这个VHDL描述,定义了一个锁存器,而不是一个组合逻辑电路,92,例子中有几个寄存器?,ENTITYreg1ISPORT(d,clk:inbit;q:outbit);ENDreg1;ARCHITECTUREreg1OFreg1ISSIGNALa,b:bit;BEGINPROCESS(clk)BEGINIFclk=1THENa=d;b=a;q=b;ENDIF;ENDPROCESS;ENDreg1;,?,93,例子中有几个寄存器(续前)?,94,例子中有几个寄存器?,ENTITYreg1ISPORT(d,clk:inbit;q:outbit);ENDreg1;ARCHITECTUREreg1OFreg1ISSIGNALa,b:bit;BEGINPROCESS(clk)BEGINIFclk=1THENa=d;b=a;ENDIF;ENDPROCESS;q=b;ENDreg1;,信号赋值语句移动了位置,信号赋值语句移动了位置,它已经不再对clk的边沿敏感。,95,例子中有几个寄存器?,96,例子中有几个寄存器?,ENTITYreg1ISPORT(d,clk:inbit;q:outbit);ENDreg1;ARCHITECTUREreg1OFreg1ISSIGNALa,b:bit;BEGINPROCESS(clk)BEGINIFclk=1THENb=a;a=d;ENDIF;ENDPROCESS;qTrue,others=False);variableHex_value:Eight_digit:=(others=0);,105,枚举类型举例(九值逻辑),TYPEStd_ULogicIS(U,-UninitializedX,-ForcingUnknown0,-Forcing01,-Forcing1Z,-HighImpedanceW,-WeakUnknownL,-Weak0H,-Weak1-Dontcare);,程序包std_logic_1164中有此定义,这里不仅出现了“值”而且出现了强度。,106,强度的意义,强度与信号值有关,与元件本身工艺有关:常用强度:F(强制)R(电阻)W(弱)Z(高阻)U(未定)NMOS:F0,R1;CMOS:F0,F1;,107,整数类型(integer)及其子域,其作用同代数中的整数(在standard程序包中定义);整数的范围可以由编译器设定缺省值指定;也可以由用户指定。用户可以随意给整数指定一个子域。例如:fred:INTEGERRANGE0to255;思考:为什么要指定子域?若用户没有给对象指定一个子域(见下例),则INTEGER的范围被编译器设定的的缺省值所决定。例:fred:INTEGER;,108,子类型举例(Std_Ulogic的子类型),以下定义取自程序包std_logic_1164:SUBTYPEstd_logicISResolvedstd_ulogic;SUBTYPEX01ISResolvedstd_ulogicRANGEXTO1;-(X,0,1)SUBTYPEX01ZISResolvedstd_ulogicRANGEXTOZ;-(X,0,1,Z)SUBTYPEUX01ISResolvedstd_ulogicRANGEUTO1;-(U,X,0,1)SUBTYPEUX01ZISResolvedstd_ulogicRANGEUTOZ;-(U,X,0,1,Z)-FUNCTIONResolved(s:std_ulogic_vector)RETURNstd_ulogic;-,109,预定义类型举例,预定义整数类型:INTEGER10进制整数:2,0,77459102,77_459_102,10E916进制整数:16#FFD1#8进制整数:8#720#2进制整数:2#10110010#,2#1011_0010#指定范围的整数对象:signala,b:Integerrange128to127;预定义子类型:Natural0to;Positive1to预定义实数类型:REAL1.0,0.0,3.1415926,-43.6E-4signalf:Realrange1.0to1.0;typeBOOLEANis(TRUE,FALSE);typeBITis(0,1);,110,自定义类型举例,typeByteisrange-128to127;typeBit_positionisrange7downto0;typeDecimal_intisrange-1E9to1E9;Subtypedigitalisintegerrange0to9;subtypeRegisterisBit_Vector(7downto0);注意type与subtype的区别typemonthisrange1to12;subtypesummerismonthrange6to8;,111,类型转换,赋值时,若值类型和对象类型不一致,要使用显式类型转换。同一父类型的诸子类型相互兼容。,112,用类型标记实现类型转换,类型标记实际上是类型的名字;类型标记转换仅适用于关系密切的标量类型,即整数和浮点数;可以用类型转换函数实现类型转换。枚举类型不能使用类型标记的方法进行类型转换;,举例:假定有:VARIABLEi:Integer;VARIABLEr:Real;则下列赋值语句可以正常工作:i:=Integer(r);r:=Real(i);-把浮点数转换为整数时会发生舍入现象,113,预定义的类型标记,某些程序包中预定义了一些类型转换函数,即类型标记。程序包Numeric_Bit中定义了有符号数Signed和无符号数Unsigned类型,可以用类型标记方法实现它们和Bit_Vector之间的类型转换。程序包Numeric_Std中定义了有符号数和无符号数类型,可以用类型标记方法实现它们和Std_Logic_Vector之间的类型转换。程序包std_logic_unsigned中定义了一些函数,使得可以对Std_Logic_Vector类型的对象方便地进行算术运算(如同无符号整数类型一样地进行)。程序包std_logic_signed中定义了一些函数,使得可以对Std_Logic_Vector类型的对象方便地进行算术运算(如同有符号整数类型一样地进行)。,114,用类型转换函数实现类型转换,FUNCTIONTo_Bit(s:Std_ULogic;xmap:Bit:=0)RETURNBitISBEGINCASEsISWHEN0L=RETURN(0);WHEN1H=RETURN(1);WHENOTHERS=RETURNxmap;ENDCASE;END;,左面的类型转换函数取自程序包Std_Logic_1164;调用转换函数To_Bit时,第二个参数可以被略去不写。此时,该参数取默认值。用户也可以写出自己的类型转换函数,放入自定义程序包。,115,用常数实现类型转换,下面的例子使用常数把类型为Std_ULogic的值转换Bit类型的值:LIBRARYIEEE;USEIEEE.Std_Logic_1164.ALL;ENTITYtypeconvISEND;ARCHITECTUREarchOFtypeconvISTYPEtypeconv_typISARRAY(Std_ULogic)OFBit;CONSTANTtypeconv_con:typeconv_typ:=(0L=0,1H=1,OTHERS=0);SIGNALb:Bit;SIGNALs:Std_ULogic;BEGINb=10ns;-信号上次事件至少发生在10ns前signal_nameStable(10ns);-最少已稳定10ns,138,利用属性的实例(续),Std_Logic_1164中,有下面2个预定义函数用来检查时钟沿:FUNCTIONRising_Edge(SIGNALs:Std_ULogic)RETURNBoolean;FUNCTIONFalling_Edge(SIGNALs:Std_ULogic)RETURNBoolean;可用于:检查“建立时间”和“保持时间”:脉冲宽度检查:,139,触发器的“建立时间”和“保持时间”,使用预定义属性检查数据建立/保持时间和最小脉冲宽度:,d_setup,d_hold,p_width,d,clk,实例见下页,140,141,数组对象的属性(例),例:VARIABLEbyte:Bit_Vector(7DOWNTO0);,142,枚举对象的属性(例),例:TYPEoperationsIS(add,sub,mult,div);,143,自定义属性,目的:通过属性插入附加信息。实例:,144,子程序,子程序分为过程和函数:过程调用是1条语句;函数调用是1个返回值的表达式。,145,-子程序的重载指两个或多个子程序使用相同的名字,它允许这些子程序使用不同类型的参数表。例如:,子程序重载,FUNCTIONmin(a,b:Integer)RETURNIntegerISBEGINIFay);-名字关联(顺序无关)min(b=y,a=x);-名字关联(顺序无关),148,有限状态机(FSM)模型,Moore型有限状态机:输出是且仅是FSM当前状态的函数;,149,有限状态机(FSM)模型(续),Mealy型有限状态机:输出是FSM当前状态和输入变量当前值的函数。,150,Moore型状态机-空调机控制器,151,Moore型状态机-空调机控制器,(1)temp_high=0ANDtemp_low=0(2)temp_low=1(3)temp_high=1(4)reset=0,状态迁移图,输出是且仅是FSM当前状态的函数,152,Moore型状态机-空调机控制器,状态迁移表:,输出是且仅是FSM当前状态的函数,153,Mealy型状态机,状态迁移图:,输出是FSM当前状态和输入变量当前值的函数,154,Mealy型状态机,状态迁移表:,输出是FSM当前状态和输入变量当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025南京市城市基础设施建设项目预拌混凝土供应合同
- 高铁桥梁考试题及答案
- 高级气焊工考试题及答案
- 服务营销的考试题及答案
- 飞机高级铆工考试题及答案
- 法学专利考试题目及答案
- 对口考试题及答案17题
- 中国造纸化学品项目投资计划书
- 中国氯化橡胶树脂涂料项目投资计划书
- 电站锅炉考试题型及答案
- 山东省名校考试联盟2026届高三上学期10月阶段性检测数学试卷(含答案)
- 2025年个人电动汽车购买协议
- 无人机测绘课件
- 养老机构销售技巧培训
- 创意笔筒产品设计与制作方案
- 快递员安全寄递培训课件
- 2025公务员考试《常识》高分题库完美版附答案详解
- GB/T 17824.1-2022规模猪场建设
- GB/T 10299-2011绝热材料憎水性试验方法
- 铸造缺陷汇总图课件
- 人教版一年级上册数学期中测试卷(真题汇编)
评论
0/150
提交评论