4.3.1 标准数据类型
标准数据类型是在VHDL预定义库中定义的数据类型,在使用时不需要作参考库和程序包的申明。标准数据类型主要有10种,如表4.1所示。
表4.1 标准数据类型
(1)位(BIT)
在电子电路系统中,数字信号的值可以简单地用高、低电平表征,在VHDL中,数据信号的值可以用一个位来表示。BIT有“1”和“0”两种取值。如:
(2)位矢量(BIT_VECTOR)
位矢量也被称为数据字符串,是预定义的数据类型bit的一维数组,位矢量可用于表示数字系统中的数据总线。他们所代表的位矢量的长度即为等值的二进制数的位数。
位矢量的位长可用两种方法表示,如8位的总线信号bus可以如下定义:
或:
位矢量数据的赋值十分灵活,在基数表示法中,首先要有计算基数符,然后将该计算基数表示的值放在双引号内,基数符以“B”“O”“X”表示,并放在位矢量的前面,他们的含义是:
B:二进制基数符号,在字符串中每位表示一个bit。
O:八进制基数符号,在字符串中每位表示一个3bit的二进制数。
X:十六进制基数符号,在字符串中每位表示一个4bit的二进制数。
如:
Data1<=B"1101"; --位矢量长度为4
Data2<=O"12"; --位矢量长度为6
Data3<=X"1F"; --位矢量长度为8
通常对于二进制基数,基数符“B”可以省略。
在数值的二进制位长小于等于矢量位长的情况下,不仅可以将二进制的数值赋给位矢量,还可以把十六进制或八进制的数赋给位矢量。如对8位信号“bus”的赋值可有以下两种等价形式:
注意“bus”是8位二进制矢量,等同于2位十六进制矢量,而八进制每一位等同于3位二进制位,所以对“bus”不能使用八进制赋值。对于下面的12位总线“inst”,就可以使用二进制、十六进制和八进制赋值。
对于位矢量数据,可以通过脚标的方式,对其中的部分位进行,如将“011010101110”赋值给inst的操作,还可表示为:
数字间可增加下划线,用于提高可读性,相当于一个空的间隔符。如:
(3)整数(INTEGER)、自然数(NATURAL)、正整数(POSITIVE)
整数表征从−(231−1)~(231−1),即−2 147 483 647~2 147 483 647之间的整数,自然数和正整数是整数的子类型,仅取值范围有所不同。如:4,68,4578。
虽然在电子电路系统中整数也是用二进制数来表示的,但在VHDL中不能将整数看成位矢量,不能对整数进行位操作和逻辑操作。
(4)实数(REAL)
取值范围在−1.0E+38~1.0E+38之间,带有小数部分的浮点数。如:1.0,3.24。
(5)布尔量(BOOLEAN)
布尔量和BIT类型一样只有两个取值,但与BIT类型不同的是:布尔量表示的逻辑“真”或逻辑“假”没有数值的含义,不能用作算术运算,只能进行关系运算。
(6)字符
字符是用单引号括起的ASCII字符,可以是A~Z的任意一个字母和0~9任意一个数字,也可以是符号。需要注意的是虽然VHDL对关键字和标识符不区分大小写,但对于字符量是要去分大小写的,也就是说大写“A”和小写“a”是完全不同的两个字符。
(7)字符串
字符串是用双引号括起来的一串字符,如:“Start”。
(8)时间
TIME表征物理的时间,多用于系统仿真。时间量数据由整数和单位组成,整数和单位间应有空格隔开,例如:35 sec,2 min。
(9)错误等级
用于表明系统的工作状态,分四种错误等级:NOTE注意、WARNING警告、ERROR错误、FAILURE失败。主要用于系统调试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。