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

上传人:宝路 文档编号:48095064 上传时间:2018-07-09 格式:PPT 页数:59 大小:335.96KB
返回 下载 相关 举报
VHDL语言的数据类型及运算操作符_第1页
第1页 / 共59页
VHDL语言的数据类型及运算操作符_第2页
第2页 / 共59页
VHDL语言的数据类型及运算操作符_第3页
第3页 / 共59页
VHDL语言的数据类型及运算操作符_第4页
第4页 / 共59页
VHDL语言的数据类型及运算操作符_第5页
第5页 / 共59页
点击查看更多>>
资源描述

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

1、第四章第四章 VHDLVHDL语言的数据类型及语言的数据类型及 运算操作符号运算操作符号VHDL语言像其它高级语言一样, 具有多种数据类型。对大多数数据类型 的定义,两者是一致的。但是也有某些 区别,如VHDL语言中可以由用户自己 定义数据类型,这一点在其它高级语言 中是做不到的。4.1 VHDL4.1 VHDL语言的客体及其分类语言的客体及其分类在VHDL语言中凡是可以赋予一个值的对象就称为客 体(Object)。客体主要包括以下3种:信号、变量、常数 (Signal、Variable、Constant)。在电子电路设计中,这 3类客体通常都具有一定的物理含义。例如,信号对应地代 表物理设计

2、中的某一条硬件接线;常数对应地代表数字电 路中的电源和地等。当然,变量对应关系不太直接,通常 只代表暂存某些值的载体。3类客体的含义和说明场合如下 表所示。4.1.1 4.1.1 常数(常数(ConstantConstant) 常数是一个固定的值。所谓常数说明就是对某一常数名赋 予一个固定的值。通常赋值在程序开始前进行,该值的数据类 型则在说明语句中指明。常数说明的一般格式如下:CONSTANT 常数名: 数据类型:=表达式; 例如:CONSTANT Vcc:REAL:=5.0;CONSTANT DALY:TIME:=100 ns;CONSTANT FBUS:BIT_VECTOR:=“0101

3、”;常数一旦被赋值就不能再改变。上面Vcc被赋值为5.0V,那 么在所有的VHDL语言程序中Vcc的值就固定为5.0V,它不像后 面所提到的信号和变量那样,可以任意代入不同的数值。另外, 常数所赋的值应和定义的数据类型一致。例如:CONSTANT Vcc:REAL:=“0101”;这样的常数说明显然是错误的。4.1.2 4.1.2 变量(变量(VariableVariable)变量只能在进程语句、函数语句和过程语句结构中使用, 它是一个局部量。在仿真过程中,它不像信号那样,到了规定 的仿真时间才进行赋值,变量的赋值是立即生效的。变量说明 语句的格式为:VARIABLE 变量名:数据类型 约束条

4、件:=表达式;例如:VARIABLE x,y:INTEGER;VARIABLE count:INTEGER RANGE 0 TO 255:=10;变量在赋值时不能产生附加延时。例如,tmp1,tmp2 ,tmp3都时变量,那么下式产生延时的方式时不合法的:tmp3:=tmp1+tmp2 AFTER 10ns;4.1.3 4.1.3 信号(信号(SignalSignal)信号是电子电路内部硬件连接的抽象。它除了没有数据流 动方向说明以外,其它性质几乎和前面所述的“端口”概念一致 。信号通常在构造体、包集合和实体中说明。信号说明语句格 式为:SIGNAL 信号名:数据类型 约束条件:=表达式; 例

5、如:SIGNAL sys_clk:BIT:=0;SIGNAL ground:BIT:=0;在程序中,信号值的代入采用“) OF STD_LOGIC;这里范围由“RANGE=(大于等于)。在关系运算符的左右两边时运算操作数,不同的关系运 算符对两边的操作数的数据类型有不同的要求。其中等号“=” 和不等号“/=”可以适用所有类型的数据。其它关系运算符则可 使用于整数(INTEGER)和实数(REAL)、位( STD_LOGIC)等枚举类型以及位矢量( STD_LOGIC_VECTOR)等数组类型的关系运算。在进行关 系运算时,左右两边的操作数的数据类型必须相同,但是位 长度不一定相同,当然也有例外

6、的情况。在利用关系运算符 对位矢量数据进行比较时,比较过程是从最左边的位开始, 自左至右按位进行比较的。在位长不同的情况下,只能按自 左至右的比较结果作为关系运算的结果。关系运算符(续)关系运算符(续)上例a的值位10,而b的值位7,a应该比b大。但是,由于位矢量是从左至右 按位比较的,当比较到次高位时,a的次高位为“0”而b的次高位为“1”,故比较 结果b比a大。这样的比较结果显然时不符合实际情况的。为了能使位矢量进行关系运算,在包集合“STD_LOGIC_UNSIGNED”中对 “STD_LOGIC_VECTOR”关系运算重新作了定义,使其可以正确的进行关系运 算。注意在使用时必须首先说明调用该包集合。当然,此时位矢量还可以和整 数进行关系运算。在关系运算符中小于等于符“b) THENELSE5 5、并置运算符、并置运算符5 5、并置运算符、并置运算符

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

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