首页 百科知识 4.3.1标准数据类型

4.3.1标准数据类型

时间:2022-10-15 百科知识 版权反馈
【摘要】:标准数据类型是在VHDL预定义库中定义的数据类型,在使用时不需要作参考库和程序包的申明。标准数据类型主要有10种,如表4.1所示。在电子电路系统中,数字信号的值可以简单地用高、低电平表征,在VHDL中,数据信号的值可以用一个位来表示。他们所代表的位矢量的长度即为等值的二进制数的位数。虽然在电子电路系统中整数也是用二进制数来表示的,但在VHDL中不能将整数看成位矢量,不能对整数进行位操作和逻辑操作。

4.3.1 标准数据类型

标准数据类型是在VHDL预定义库中定义的数据类型,在使用时不需要作参考库和程序包的申明。标准数据类型主要有10种,如表4.1所示。

表4.1 标准数据类型

img78

(1)位(BIT)

在电子电路系统中,数字信号的值可以简单地用高、低电平表征,在VHDL中,数据信号的值可以用一个位来表示。BIT有“1”和“0”两种取值。如:

img79

(2)位矢量(BIT_VECTOR)

位矢量也被称为数据字符串,是预定义的数据类型bit的一维数组,位矢量可用于表示数字系统中的数据总线。他们所代表的位矢量的长度即为等值的二进制数的位数。

位矢量的位长可用两种方法表示,如8位的总线信号bus可以如下定义:

img80

或:

img81

位矢量数据的赋值十分灵活,在基数表示法中,首先要有计算基数符,然后将该计算基数表示的值放在双引号内,基数符以“B”“O”“X”表示,并放在位矢量的前面,他们的含义是:

B:二进制基数符号,在字符串中每位表示一个bit。

O:八进制基数符号,在字符串中每位表示一个3bit的二进制数。

X:十六进制基数符号,在字符串中每位表示一个4bit的二进制数。

如:

Data1<=B"1101";  --位矢量长度为4

Data2<=O"12";   --位矢量长度为6

Data3<=X"1F";   --位矢量长度为8

通常对于二进制基数,基数符“B”可以省略。

在数值的二进制位长小于等于矢量位长的情况下,不仅可以将二进制的数值赋给位矢量,还可以把十六进制或八进制的数赋给位矢量。如对8位信号“bus”的赋值可有以下两种等价形式:

img82

注意“bus”是8位二进制矢量,等同于2位十六进制矢量,而八进制每一位等同于3位二进制位,所以对“bus”不能使用八进制赋值。对于下面的12位总线“inst”,就可以使用二进制、十六进制和八进制赋值。

img83

对于位矢量数据,可以通过脚标的方式,对其中的部分位进行,如将“011010101110”赋值给inst的操作,还可表示为:

img84

数字间可增加下划线,用于提高可读性,相当于一个空的间隔符。如:

img85

(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失败。主要用于系统调试。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈