语言的数据类型及运算操作符课件

上传人:我*** 文档编号:144722474 上传时间:2020-09-13 格式:PPT 页数:25 大小:430KB
返回 下载 相关 举报
语言的数据类型及运算操作符课件_第1页
第1页 / 共25页
语言的数据类型及运算操作符课件_第2页
第2页 / 共25页
语言的数据类型及运算操作符课件_第3页
第3页 / 共25页
语言的数据类型及运算操作符课件_第4页
第4页 / 共25页
语言的数据类型及运算操作符课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《语言的数据类型及运算操作符课件》由会员分享,可在线阅读,更多相关《语言的数据类型及运算操作符课件(25页珍藏版)》请在金锄头文库上搜索。

1、VHDL语言的数据类型及运算操作符,应知: VHDL语言的三种客体:信号、变量及常数的定义 VHDL语言的数据类型、运算操作符 应会: 进一步熟悉Maxplus II的运行环境。 掌握VHDL设计方法。,本次课教学目标,VHDL语言的数据类型及运算操作符,教学单元一:VHDL语言的客体 教学内容: 复习VHDL程序设计基本结构 教学实例 VHDL语言的三类客体,一、VHDL程序设计基本结构,库、程序包,Entity Declaration,Architecture Body,进程或其它并行结构,配置(Configuration),设计实体,描述层与层之间的连接关系以及实体与结构之间的连接关系,

2、多个过程和函数汇集在一起构成pachage;几个pachage汇集在一起形成library,二、教学实例二选一电路的VHDL描述,功能及电路描述,d0,d1,sel,q,Function table sel q 0 q=d0 1 q=d1,逻辑电路设计方法,VHDL描述方法,功能描述 真值表 输出函数的最简表达式 画逻辑图,变量定义,三、VHDL语言的客体(object),客体:凡是可以赋予一个值的对象就称为客体,客体包括以下三类: 信号(signal)、变量(variable)、常量(constant),定义格式:,SIGNAL 信号名:数据类型 约束条件:=表达式VARIABLE 变量名:

3、数据类型 约束条件:=表达式 CONSTANT 常数名:数据类型:=表达式,定义举例:,SIGNAL nextcount:BITVECTOR(2 DOWNTO 0); SIGNAL clk: BIT:=0; VARIABLE x,y: INTEGER; VARIABLE count: INTEGER RANGE 0 TO 255:=10; CONSTANT VCC:REAL:=5.0;,信号名,数据类型,约束条件,信号定义说明(signal),信号是全局量,在实体中定义的信号,在其对应的结构体中都是可见的。,信号通常在architecture、pachage和Entity中定义。,信号是电子电

4、路内部硬件连接的抽象,和port类似。,在实体中定义的端口,在其构造体中都可以看成一个信号。,信号赋值采用代入语句:目标信号名=表达式;信号赋值都是存在延时的。,在构造体中的并行信号代入语句的运行是独立于构造体中的其它语句的,每当信号的驱动源改变,都会引发信号代入操作。,信号初始值的设置不是必需的,且初始值仅在行为仿真中有效。,例如:一结构体的逻辑描述如下: ARCHITECTURE fun1 OF add IS BEGIN sum= a XOR b; carry=a AND b; END fun1; 每当a或b的值发生改变,两个赋值语句将被同时并行启动,并将新值分别赋予sum和carry。,

5、变量定义说明(variable),变量赋值采用“:=”符号,且变量赋值是立即发生的。,变量是一个局部量。,变量只能在进程语句process、函数语句function和过程语句procedure中定义。,变量的赋值源必须与变量的数据类型一致。,变量的初始值不是必需的,综合过程中综合器将略去所有的初始值。,变量通常代表暂存某些值的载体。,常数定义说明( CONSTANT ),使用常数可以改善代码的可读性,容易修改。 CONSTANT delay:TIME:=100 ns; CONSTANT fbus: BIT_VECTOR:=“0101”; 类似C语言中的预定义: #define TRUE 1,常

6、数是全局量。,常数一旦被赋值,不能再改变。,常数是固定值,在程序开始前赋值。,教学单元二:VHDL语言的数据类型 教学内容: 复习VHDL语言的客体 教学实例 VHDL语言的数据类型 训练及总结,一、VHDL语言的数据类型,特点,标准数据类型,用户定义数据类型,VHDL语言提供了标准数据类型 用户可以自定义数据类型 VHDL语言是强类型语言,标准数据类型及其说明 约束区间 数据类型的转换 数据类型的限定,枚举(Enumerated) 整数、实数(Integer,Real) 数组(Array) 记录(Record) 用户定义的子类型SUBTYPE IEEE标准“STD_LOGIC”与“BIT”,

7、(一)VHDL语言的标准数据类型(1),1. 标准数据类型及其说明,说明,整数不能看作是位矢量,不能按位来进行访问,对整数不能用逻辑操作符,它可以用来准确地表示总线的某一状态。,实数书写时一定要有小数点,如:1、1 .0和1是完全不相同的,位与整数中的1和0不同,1和0仅仅表示一个位的两种取值,位矢量是用“”括起来的一组位数据,“00011”,若前面有x,表示16进制,布尔量是二值枚举量,但与位不同,没有数值的含义,不能进行算术运算,可以进行关系运算,在IF语句中测试。,字符中的大小写字符是不一样的,可以显式指明字符: CHARACTER (1),时间类型的整数和单位之间至少应留一个空格的位置

8、,在包集合STANDARD中给了时间单位的预定义:fs,ps,ns,s,ms,sec,min,hr,错误等级有4种:NOTE(注意)、WARNING(警告)、ERROR(出错)、 FAILURE(失败),提示系统当前的工作情况,(一) VHDL语言的标准数据类型(2),2. 约束区间的说明,VHDL语言属于强类型语言,任何一个信号和变量的赋值均须落入给定的约束区间中,即落入有效数值的范围中。 约束区间的说明通常跟在数据类型说明的后面,DOWNTO表示下降,TO表示上升。 例如: INTEGER RANGE 100 DOWNTO 1; REAL RANGE 2.0 TO 3.0; BIT_VEC

9、TOR(3 DOWNTO 0);,(一)VHDL语言的标准数据类型(3),3. 数据类型的转换,数据类型可以在代入时通过函数来转换,变换函数通常由VHDL语言的包集合提供。 参见课本p42。,4. 数据类型的限定,数据类型限定的方式是在数据前加上“类型名”。 格式如下: 类型名(表达式) 例如: VARIABLE data1,data2:INTEGER; Data1:=INTEGER(74.94*REAL(data2);,(二)用户定义数据类型(1),1. 定义格式,TYPE 数据类型名 IS 数据类型定义; 利用其它已定义的说明所进行的“假”定义,不能进行逻辑综合。,2. 用户定义数据类型简

10、介,枚举 整数类型 实数类型 数组 记录 子类型,enumerated Integer Real Array Record Subtype,用文字符号来表示一组实际的二进制数。 格式:TYPE 数据类型名 IS (元素、元素、); 例如:TYPE week IS(sun,mon,tue,wed,thu,fri,sat); TYPE STD_LOGIC IS (U , X , 0 , 1 , Z, W , L , H , - ); 在IEEE库的程序包STD_LOGIC_1164中,定义了标准逻辑位STD_LOGIC数据类型。,枚 举 类 型,标准数据类型的一个子类,限定其取值范围,以便能为综合

11、器所接受。 格式:TYPE 数据类型名 IS 数据类型定义 约束范围; 例如:TYPE num1 IS INTEGER RANGE 0 TO 9; TYPE current IS REAL RANGE -5.0 TO 5.0; 在程序中可以定义: VARIABLE tmp1,tmp2,tmp3:NUM1;,整数、实数类型,数组是将相同类型的数据集合在一起所形成的一个新的数据类型。 TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型名; TYPE instruction IS ARRAY (INTEGER 1 TO 8) OF STD_LOGIC; TYPE STD_LOGIC_VE

12、CTOR IS ARRAY(NATURAL RANGE ) OF STD_LOGIC; SIGNAL a: STD_LOGIC_VECTOR(3 DOWNTO 0);,没有范围限制,在信号定义时说明范围,数组类型,记录类型,将不同类型的数据和数据名组织在一起而形成的新类型。 TYPE 数据类型名 IS RECORD 元素名:数据类型名; 元素名:数据类型名; . END RECORD; 从记录数据类型中提取元素时使用符号“.”,用户定义的子类型,用户定义的子类型是用户对已定义的数据类型作一写范围限制而形成的一种新的数据类型。 SUBTYPE 子类型名 IS 数据类型名范围; SUBTYPE S

13、TD3BIT IS STD_LOGIC_VECTOR(0 TO 2); SIGNAL a:STD3BIT; a=“000”;,U : 未初始化 X : 强未知 0 : 强0 1 : 强1 Z : 高阻 W : 弱信号不定 L : 弱信号0 H : 弱信号1 - :忽略,(二)用户定义数据类型(2),3. 标准逻辑位STD_LOGIC数据类型与BIT数据类型,STD_LOGIC在IEEE库程序包STD_LOGIC_1164中预定义,使用时须在程序前面加上库说明和包说明。,STD_LOGIC是标准BIT类型的扩展,共定义了9种值,而BIT只有两个值0和1。,对于STD_LOGIC_VECTOR的代

14、入值只能是二进制数,而BIT_VECTOR的值除二进制数以外,还可能是16进制及8进制数,BIT_VECTOR还可以用“-”来分隔数值位。例如: SIGNAL a: BIT_VECTOR(7 DOWNTO 0); SIGNAL b: STD_LOGIC_VECTOR(7 DOWNTO 0); a=XA8; b=X A8; ,这两种类型可以用函数转换。例如: b=TO_STDLOGICVECTOR(X A8);,教学单元三: VHDL语言的运算操作符 (operators) 教学内容: VHDL语言的运算操作符 训练及总结,一、VHDL语言的运算操作符(operators)(1),逻辑运算 Lo

15、gical,关系运算 Relational,算术运算 Arithmetic,并置运算 Concatenation,NOT AND OR NAND NOR XOR,= /= =,+ - * / MOD REM + - * ABS, SIGNAL y: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL en: STD_LOGIC; tmp_b=b AND (en ,数值系统的状态模型,二态数值系统:逻辑1和逻辑0,信号的状态可取二者之一,在VHDL语言中通常用BIT数据类型来描述。在二态数值系统中无法解决总线竞争(总线冲突)的问题。 TYPE BIT IS (0,1);,三态数值系统:逻辑1、逻辑0和未知状态。有两个或以上输出信号连接在一起,且它们的逻辑值是相反的,称为总线冲突或总线竞争,此时电路的输出值将为未知状态“X”。 TYPE threestate IS (X,0,1);,数值系统的状态模型,四态数值系统:未知态X、逻辑1、逻辑0和高阻态Z。 TYPE fourstate IS (X、0,1、Z); 四态数值系统能比较精确地描述TTL器件的工作过程。 当总线上两种不同状态施加时,其最终的取值结果如下表,U2,U1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号