版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL硬件描述语言及应用,-一种很好的数字系统硬件电路的形式化描述实现,VHDL语言概述,HDL:Hardware Description Language VHDL:由美国国防部开发,1987年由IEEE标准化,1993年进一步修订 Verilog:1983年由Gateway Design Automation公司开发, 1990年被推向公众领域, 1995年成为IEEE标准 建议:VHDL比较严谨,Verilog比较自由,初学还是用VHDL比较好,初学用Verilog会比较容易出错,VHDL中的注意事项,在VHDL语言中,大小写不加区分,但在代码中巧妙应用大小写,可以使代码变得易于阅读和
2、规范 实体名必须与VHDL文件名相同,否则编译会出错 信号与变量,过程与函数的区分,VHDL语言程序的基本构成,库、包集合:用于存放预先编译好的程序包(PACKAGE)和数据集合体,以便不同的VHDL设计使用 实体说明:规定设计单元的输入输出接口信号和引脚 构造体:定义设计单元的具体构造和操作,VHDL语言程序的基本构成示例,库、包集合说明,实体说明,构造体,库和包集合的使用,库的说明总是放在设计单元的最前面,调用方法: LIRARY库名 USE库名.所要调用的程序包名.ALL 具体可打开安装目录C:alteraquartus60librariesvhdl下相应的文件进行学习 常用库和包集合:
3、IEEE库中的包集合STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED,其中后两个包在日本synopsys(新思)公司目录中,该公司在FPGA行列还推出了prime time静态时序分析工具 STD库中STANDARD包集合是VHDL的标准配置,使用时可以不说明 WORK库:VHDL现行工作库,可以理解为用户当前编辑的目录中所有可用的包和数据集,实体(ENTITY),实体类似于原理图中的一个部件符号,它并不描述设计的具体功能,只是定义所需的全部输入/输出信号。实体格式如下: ENTITY实体名ISGENERIC(常数名:数据类型:设定值)类属说明
4、PORT端口说明(端口信号名1:模式类型;端口信号名2:模式类型;端口信号名3:模式类型;端口信号名4:模式类型);END实体名;实体名:实体名必须与VHDL文件名相同,否则编译会出错,Exemple of ENTITY,GENERIC所定义的元件叫做参数化元件,即元件的规模或特性由GENERIC的常数决定,利用GENERIC可以设计更加通用的元件,弹性地适应不同的应用,端口信号名在实体之中必须是唯一的,信号名应是合法的标识符,分别有IN、OUT、INOUT、BUFFER、LINKAGE,常用的有INTEGER、STD_LOGIC、STD_LOGIC_VECTOR,ARCHITECTURE,所
5、有能被仿真的实体都由结构体(ARCHITECTURE)描述,即结构体描述实体的结构或行为,一个实体可以有多个结构体,每个结构体分别代表该实体功能的不同实现方案 结构体格式:ARCHITECTURE结构体名OF实体名IS定义语句(元件例化);BEGIN并行处理语句;END结构体名; 结构体名是对本结构体的命名,它是该结构体的惟一名称,虽然可以由设计人员自由命名,但一般都将命名和对实体的描述结合起来,例如:行为描述(BEHAVE),寄存器传输级(RTL),Exemple of ARCHITECTURE,ARCHITECTURE的BLOCK子结构,子结构的使用使设计者可以把整个电路分成若干个相对独立
6、的模块来进行描述 子结构有:BLOCK,PROCESS,SUBPROGRAMS BLOCK与ARCHITECTURE相当于整体原理图与子原理图关系,结构内部语句是并发的,如希望BLOCK有条件执行,可采用卫式BLOCK,如下:,ARCHITECTURE的PROCESS子结构,PROCESS中的语句是顺序执行的,一个结构体中可以有多个PROCESS,它们之间可以通过信号进行通信 PROCESS的启动受敏感信号控制,敏感信号的变化会直接导致PROCESS的启动,ARCHITECTURE的SUBPROGRAM子结构,与高级语言中的子程序概念差不多,可以反复调用,但不能重入,结构内语句为顺序执行,有P
7、rocedure和Function之分 多个过程和函数汇集在一起构成包集合,几个包集合汇集在一起构成库,VHDL中的数据对象,在逻辑综合中,VHDL常用的数据对象有信号、变量及常量 信号SIGNAL:为全局变量,定义格式:SIGNAL信号名:数据类型:=初始值;赋值格式:目标信号名=表达式 常在结构体中用赋值语句完成对信号赋初值的任务,因为综合器往往忽略信号声名时所赋的值 常量:全局变量,在设计中描述某一规定类型的特定值不变,如利用它可设计不同模值的计数器,模值存于一常量中,对不同的设计,改变模值仅需改变此常量即可,就如上一章所说的参数化元件。定义格式:CONSTANT常数名:数据类型:=表达
8、式 变量(VARIABLE):用于声明局部值或用于子程序中,变量的赋值符号为“:=”,定义格式:VARIABLE变量名:数据类型:=初始值,VHDL中的信号与变量,信号是实际的,是内部的一个存储元件(SIGNAL)或者是外部输入(IN、OUT、INOUT、BUFFER) 变量是虚的,仅是为了书写方便而引入的一个名称,常用在实现某种算法的赋值语句当中 如果在一个进程中多次为一个信号赋值,只有最后一个值会起作用 ,这与SIGNAL的硬件特性有关 变量赋值时,变量的值改变是立即发生的 信号赋值用“=”,变量赋值用“:=”,VHDL的数据类型,VHDL是一种强类型语言,对于每一个常数、变量、信号、函数
9、及设定的各种参量的数据类型(DATATYPES)都有严格要求,相同数据类型的变量才能互相传递和作用,标准定义的数据类型都在VHDL标准程序表STD中定义,实际使用中,不需要用USE语句以显式调用 VHDL常用的数据类型有三种:标准定义的数据类型、IEEE预定义标准逻辑位与矢量及用户自定义的数据类型,标准定义的数据类型,Boolean布尔量:取值为FALSE和TRUECHARACTER字符:ASCII字符,编程时用单引号括起来,如ASTRING字符串:字符失量,双引号括起来,如“ADFBD”INTEGER整数:32位,范围从-(231-1)到(231-1);REAL实数:实数类型仅能在VHDL仿
10、真器中使用,综合器不支持BIT位:取值为0或1;TIME时间:范围从-(231-1)到(231-1),表达方法包含数字、(空格)单位两部分,如(10PS);BIT_VECTOR位矢量:其于BIT数据的数组,使用矢量必须注明宽度,即数组中的元素个数和排列,如SIGNALA:BIT_VECTOR(7DOWNTO0)NATUREAL自然数:整数的一个POSITIVE正整数:SEVRITYLEVEL错误等级:在VHDL仿真器中,错误等级用来设计系统的工作状态,共有四种可能的状态值:NOTE,WARNING,ERROR和FAILURE,IEEE预定义的标准逻辑位与矢量,STD_LOGIC:工业标准的逻辑
11、类型,取值为0、1、Z、X(强未知)、W(弱未知)、L(弱0)、H(弱1)、(忽略)、U(未初始化),只有前四种具有实际物理意义,其他的是为了与模拟环境相容才保留的 STD_LOGIC_VECTOR:工业标准的逻辑类型集,STD_LOGIC的组合,用户自定义的数据类型,用户自定义的数据类型有枚举类型、整数类型和实数类型、数组类型、记录类型四种 枚举类型:TYPE数据类型名IS(枚举文字,枚举文字,.) 整数类型与实数类型是标准包中预定义的整数类型的子集,由于综合器无法综合未限定范围的整数类型的信号或变量,故一定要用RANGE子句为所定义整数范围限定范围以使综合器能决定信号或变量的二进制的位数。
12、格式:TYPE数据类型名ISRANGE约束范围; 数组类型:数组是同一类型数据集合,记录内元素类型可以不同TYPE数据类型名ISARRAY(下限TO上限)OF类型名称,多维数组不能生成逻辑电路,只能用于仿真图形 记录类型:TYPE记录类型名ISRECODE元素名:数据类型名;元素名:数据类型名;。ENDRECODE,用户自定义的数据类型举例,RANGE其范围一般由调用者传递的参数决定,用户自定义的子类型,对已定义类型作一些范围限制(也可以与原数据类型完全一致),定义格式为: SUBTYPE 子类型名 IS 数据类型名(范围),数据类型转换,VHDL中,不同数据类型不能直接进行运算和代入,要进行
13、运算或代入必需对类型进行转换,使之一致,BIT_VECTOR与STD_LOGIC_VECTOR,代入STD_LOGIC_VECTOR的值只能是二进制,代入BIT_VECTOR的值除二进制外还可以是八进制和十六进制,数据类型的限定,VHDL中有时可以用上下文关系来判断某一数据的数据类型,如果不能判断出来,就必需对数据进行类型限定,类似C中的强制类型转换,运算符:算术运算符,关系运算符,逻辑运算符与连接运算符,运算符的使用,逻辑运算、算术运算、关系运算的左右以及代入的数据类型一定要相同 VHDL中左右没有优先级的差异,如 x=(a AND b) OR (NOT c AND d) 能真正综合的算术运
14、算符只有“+”,“-”,“*”;“MOD”,“REM”,“/”分母是2乘方时可综合,由于硬件特性,后4种应慎用,最好作适当变通 “=”应通过上下文关系判定是关系运算符还是代入符 位的连接也可以采用集合的方式,把并置符改成“,”即可,如:temp_4=(1,0,1,0);其中temp_4为4位宽的位失量,但这种方式不能用于位失量连接,如:temp_4=(temp_2,temp_2);就是错误的,VHDL的主要描述语句,顺序描述语句和并发描述语句是程序设计中两大基本描述语句系列 顺序描述语名只出现在PROCESS和SUBPROGRAM中,语句按出现的次序加以执行 对于FPGA搭建的应用系统,元件在
15、定义的仿真时该应该是并发工作的,并发语句就用于表示这种并发行为,赋值语句,赋值语句分为变量赋值和信号赋值,区别如下:格式:变量赋值为“变量名:=表达式”,信号赋值为“信号名=表达式” 所用的地方:变量说明和使用都只能在顺序语句中(进程、函数),信号的说明只能在同步语句中,但可以在顺序语句和同步语句中使用赋值过程:变量的赋值是立即的,而信号的赋值的执行和信号值的更新至少要延时DELTA延时,只有延时后信号才能得到新值,否则将保持原值,在进程中,信号赋值在结束时起作用,顺序语句,WAIT语句,WAIT语句属于敏感信号激励信号,一个进程语句含有敏感信号时,进程中不能出现WAIT等待语句;当进程语句不
16、含有敏感信号时,进程语句必须含有其他形态的敏感信号激励 WAIT语句有五种形式:WAIT无限等待;WAITON(敏感信号1,敏感信号2,敏感信号N)敏感信号变化,表中的信号产生变化时才往下运行 WAITUNTIL布尔表达式为TRUE时,进程启动,为FARLSE是等待WAITFOR时间表达式到时进程才会启动WAITUNTIL布尔表达式ON(敏感信号1,敏感信号2,敏感信号N)FOR时间表达式多条件等待语句,注意在多条件等待语句的表达式中,至少应有一个信号量,因为处于等待进程中的变量是不可改变的,两个描述完全等价,右边的写法中每次a和b有新的变化,进程便会结束挂起壮态,顺序语句,IF语句,其完整的
17、书写格式IF标号:IFTHEN;ELSIFTHEN;.ELSE;ENDIFIF标号,顺序语句,CASE语句,CASE语句是另一种形式的流程控制语句,可读性比IF的强,格式如下CASE条件表达式ISWHEN条件取值=顺序处理语句;WHEN条件取值=顺序处理语句;WHEN条件取值=顺序处理语句;WHENOTHERS=顺序处理语句;ENDCASE;,顺序语句,FOR模式的LOOP语句,格式:LOOP标号:FOR循环变量IN离散范围LOOP顺序处理语句;ENDLOOPLOOP标号;,顺序语句,WHILE模式的LOOP语句,格式:LOOP标号:WHILE条件LOOP顺序处理语句;ENDLOOPLOOP标
18、号;,顺序语句,NEXT和EXIT语句,这两种语句都是用于跳出LOOP循环的,NEXT语句是用来跳出本次循环的,而EXIT语句是用于跳出全部循环的。格式:NEXT或EXITLOOP标号WHEN条件,顺序语句,NEXT与EXIT使用说明,NEXT语句一般用于LOOP的内循环控制 EXIT没有循环标号,退出当前LOOP EXIT有循环标号,程序跳至标号处 EXIT+循环标号+WHEN,当WHEN为真时跳至标号处,如无标号跳出当前LOOP,顺序语句,NULL与RETURN语句,NULL空操作语句,书写格式为“NULL;”,唯一的作用是使程序流程运行到下一个语句,常用于CASE语句当中 用在一段子程序
19、结束后,用来返回到主程序的控制语句,一般情况之下,有两种书写格式,分别是RETURN;只能用于进程返回RETURN表达式;只能用于函数返回 在实际的应用中,一般的VHDL综合工具要求函数中只能包含一个RETURN,并规定这条RETURN语句只能写在函数末尾,但一些VHDL综合工具允许函数中出现多个RETURN语句,顺序语句,REPORT 和ASSERT断言语句,报告语句是93版VHDL标准提供的一种新的顺序语句,该语句没有增加任何功能,只是提供了某些形式的顺序断言语句的短格式,也算是ASSERT语句的一个精简,格式如下:REPORT输出信息SEVERITY出错级别 主要用于程序仿真、调试中的人
20、机对话,它可以给出一个文字串作为警告和错误信息,基本书写格式如下:ASSERT条件REPORT输出信号字符串SEVERITY错误级别;有四种NOTE、WARNING、ERROR和FAILURE,顺序语句,并发信号赋值语句,注意:信号赋值语句在顺序语句里面也有,顺序语句里可以给信号赋值也可以给变量赋值,而顺序语句里只能对变量说明,不能对信号说明。并行语句刚好相反 为什么变量不能在并行语句里面说明呢? 为什么信号不能在顺序语句里面说明呢?,并发语句,信号是全局的,变量是局部的,赋值方式一:信号名=表达式 赋值方式二 (条件信号赋值): 目标信号=表达式1WHEN条件1ELSE表达式2WHEN条件2
21、ELSE表达式3WHEN条件3ELSE表达式4 注意:用条件信号赋值,只有当用进程、IF和CASE难以对电路进行描述时才用;条件信号赋值语句ELSE是必须的、不能进行嵌套 且必须用在结构体中的进程之外 赋值方式三(选择信号赋值): WITH选择条件表达式SELECT目标信号=信号表达式1WITH选择条件1信号表达式2WITH选择条件2信号表达式3WITH选择条件3信号表达式4WITHOTHERS 注意:选择信号赋值语句必须用在结构体中的进程之外,并发信号赋值语句的三种形式,并发语句,块语句,在VHDL语言设计中,块语句常常用来对比较复杂的结构体作结构化描述,格式如下块标号:BLOCK卫式表达式
22、类属子句;端口子句;块说明部分;BEGINENDBLOCK块标号;卫式表达式:是一个布尔条件表达式,只有当这个表达式为TURE时,BLOCK语句才被执行;类属子句:块的属性说明块说明部分:用于定义USE、子程序、数据类型、子类型、常量、信号和元件块语句说明部分:用于描述块的具体功能,可以包含结构块中的任何并行语句结构。注:块语句的作用就是将一个大的结构划成一块一块小的结构 ,现比较流行原理图和元件的方式,这样更为简洁直观,并发语句,进程语句,进程语句是一种应用广泛的并行语句,一个结构体中可以包括一个或者多个进程语句,结构体中的进程语句是并发关系,即各个进程是同时处理的、并行执行的;但在每一个进
23、程语句结构中,组成进程的各个语句都是顺序执行,在进程语句中是不能用并行语句的。格式进程标号:PROCESS敏感信号表IS 进程语句说明部分;BEGINENDPROCESS进程标号;注:1、敏感信号表列出了进程语句敏感的所有信号,每当其中的一个信号发生变化时,就会引起其他语句的执行,如果敏感信号表不写,那么在PROCESS里面必须有WAIT语句,由WAIT语句来产生对信号的敏感;而当敏感信号表存在时,就不能在PROCESS里再有WAIT语句;2、IS可有可无,是由93版规定的3、进程语句说明部分是进程语句的一个说明区,它主要用来定义进程语句所需要的局部数据环境,包括数据类型说明、子程序说明和变量
24、说明。4、进程语句有两种存在状态,一是等待,当敏感信号没有发生变化时;一是执行,当敏感信号变化时。 5、时钟信号自动进入敏感表,并发语句,子程序调用语句,子程序分为函数和过程,它们的定义属于说明语句,均可在顺序语句和并行语句里面使用,它们的调用方法不一样。函数只有一个返回值,用于赋值,可以说在信号赋值的时候就是对函数的调用;过程有很多个返回值,用于进行处理,准确的来说子程序调用语句就是过程调用语句。,并发语句,参数传递语句,参数传递语句即在实体中定义的GENERIC,可以描述不由材料和不同工艺构成的相同元件或模块的性能参数(如延时),在定义了GENERIC的实体叫参数化实体,由参数化实体形成的
25、元件在例化时具有很大的适应性,在不同的环境下,只须用GENERICMAP来修改参数就可以了 使用时,在对元件例化时加在里面就可,比如已经定义了一个AND2的实体,要在EXAMPLE里面使用AND2,要先对AND2进行元件声明,再将AND2例化,如下:u0:AND2GENERICMAP(参数值1,参数值2)PORTMAP(参数表),并发语句,元件例化语句,一个实体就相当于元件,元件名就相当于实体名,元件要实现的功能在实体里面就已经描述好,比如,同一个文件夹下已经有一个名为A.VHD的文件,如果要在另一个文件B.VHD里面用到A.VHD里面定义的功能,那么可以在B.VHD文件里面通过元件声明和元件
26、例化来调用A这个元件,总的来说调用元件过程就是“建立元件-元件声明-元件例化”,元件调用时不用USE语句。 注:元件声明语句属说明语句,不是同步语句,以下对元声的说明是为了更好地了解元件的调用,元件的实例化之前必须要有元件声明元件声明语句格式COMPONENT元件名就是文件名,即是实体名GENERIC;这就是所产的元件参数PORT;ENDCOMPONENT;元件例化格式:元件符:元件名GENERICMAP(参数表)PORTMAP(端口表),并发语句,元件例化语句实例,并发语句,元件声明,元件例化,并行断言语句,前面已经说过顺序断言语句,这里的断言语句是并行的,可以放在实体说明、结构体和块语句中
27、使用,可以放在任何要观察和调试的点上,而顺序断言语句只能在进程、函数和过程中使用 其实断言语句的顺序使用格式和并行使用格式是一样的,因此断言语句是可以应用在任何场所的,格式请看顺序的说明,并发语句,思考:是不是所有的VHDL语句都可以归结为顺序语句和并行语句呢?,可以把VHDL语句分为三大类:顺序语句、并行语句和说明语句,其中说语句在没有调用之前是不会参与执行的,如:元件和函数说明,在元件实例化和函数调用前是不参与执行的 三类语句的关系是顺语句可以用在并行语句和说明语句当中;说明语句可以用在并行语句当中;而并行语句是不能用在其他语句当中,可以说并行语句属于一种高级形态,是语句的最终形态,过程和
28、函数有什么区别?,过程可以具有多个返回值(准确来说不是返回值,而是这些信号在过程之中被改变),函数只有一个返回值 过程通常用来定义一个算法,而函数用来产生一个具有特定意义的值 过程中的形式参数可以有三种通信模式(输入、输出、双向),而函数中的形参只能是输入通信模式(因为函数是用来产生一个值的) 过程中可以使用赋值语句或WAIT语句,而函数不可(因为过程是用来处理的),VHDL语言的构造体描述方式,行为描述方式 数据流描述方式(寄存器传输描述RTL) 结构描述方式,行为描述方式,所谓行为描述,就是对设计实体的数学模型的描述,其抽象程度远远高于数据流描述方式和结构描述方式. 行为描述类似于高级编程
29、语言,当要描述一个设计实体的行为时,无须知道具体电路的结构,只需要用一组状态来描述即可. 行为描述的优点在于只需要描述清楚输入与输出的行为,而不需要花费更多的精力关注设计功能的门级实现.,数据流描述方式,数据流描述是对从信号到信号的数据流的路径形式进行描述,因此很容易进行逻辑综合. 由于要对信号的流动路径进行描述,因此要求设计人员对设计实体的功能实现要有一定的了解,有时候还需要对内部电路有清楚的认识,具有一定的难度.,结构描述方式,结构描述方式就是在多层次的设计中,通过调用库中的元件或是已设计好的模块来完成设计实体功能的描述. 在结构体中,描述只表示元件(或模块)和元件(或模块)之间的互连,就
30、像网表一样. 当引用库中不存在的元件时,必须首先进行元件的创建,然后将其放在工作库中,通过调用工作库来引用元件.在引用元件时,要先在结构体说明部分进行元件的说明,然后在使用元件进行元件例化. 基本演变成原理图+元件的设计方式,全加器,设有两个四位二进制数相加 1 0 0 1 被加数A 0 1 0 1 加数 B 1 1 1 0 和 S 在相加过程中,两数相加有时要产生进位,这个进位要送到高位的和中去.所以一个全加器要求三个变量(被加数Ai和加数Bi以及低位向本位的进位Ci-1)的和Si和向高位的进位Ci.,全加器真值表,一位全加器的逻辑示意图,a,b,Cin,S,Co,采用行为描述方法设计一位全
31、加器,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_adder IS PORT(a,b,Cin:IN STD_LOGIC; Co,S:OUT STD_LOGIC); END full_adder; ARCHITECTURE behav OF full_adder IS BEGIN PROCESS(a,b,Cin) VARIABLE ai,bi,ci,si:INTEGER; BEGIN IF (a=0) THEN ai := 0; ELSE ai := 1; END IF; IF (b=0) THEN bi := 0; ELSE b
32、i := 1; END IF;,IF (Cin=0) THEN ci := 0; ELSE ci := 1; END IF; si := ai + bi +ci; CASE si IS WHEN 0= S =0;Co=0; WHEN 1= S =1;Co=0; WHEN 2= S =0;Co=1; WHEN 3= S =1;Co=1; WHEN OTHERS=S=X;Co=0; END CASE; END PROCESS; END behav;,一位全加器实现的逻辑电路图,采用数据流描述方法设计一位全加器,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; E
33、NTITY full_adder IS PORT(a,b,Cin:IN STD_LOGIC; Co,S:OUT STD_LOGIC); END full_adder; ARCHITECTURE dataflow OF full_adder IS SIGNAL temp1,temp2:STD_LOGIC; BEGIN temp1 = a XOR b; temp2 = temp1 AND Cin; S = temp1 XOR Cin; Co = temp2 OR (a AND b); END dataflow;,采用半加器设计全加器,1位半加器,1位全加器,H_ADDER a co b so,H_
34、ADDER a co b so,H_ADDER a co b so,F_ADDER ain cout bin sum cin,ain,bin,ain,a c b,u1,u2,u3,sum,cout,d,e,f,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2 IS PORT(A,B:IN STD_LOGIC; c: OUT STD_LOGIC); END or2; ARCHITECTURE ful OF or2 IS BEGIN c = a OR b; END fu1;,或门设计,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备保养与安全操作承诺书(3篇)
- 恙虫病老年护理
- 创意自动生成系统
- 加氢裂化装置容器与管线的在用检验
- 护理实践中的康复护理
- 2026年从业证在教育试题及答案
- 护理常规课件在临床护理中的应用
- 课点16-视频生视频
- 护理带教老师的教学研究与论文写作
- 2026年小学五年级下册数学口算速算技巧专项训练卷含答案
- 高速铁路动车组悬挂系统设计方案
- 2026年河南应用技术职业学院单招职业适应性测试题库附答案
- 道路工程-公路土工试验课件
- 直臂式高空作业车施工方案
- 豆浆吃醋啦课件
- 五年级语文古诗文阅读理解试题库
- 气动工具安全培训课件
- 邮政数据安全管理办法
- 东莞辅警招录考试真题及答案
- 《涉外法治概论》课件 杜涛 第7-10章 对外贸易与经济制裁法律制度-涉外应急管理法律制度
- 2025年健康教育与健康促进副高真题解析含答案
评论
0/150
提交评论