VHDL是一种强类型语言,要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参数都必须具有确定的数据类型,并且相同数据类型的量才能互相传递和作用。VHDL中的数据分为四大类:标量型、复合类型、存取类型和文件类型。
标量型:包括实数类型、整数类型、枚举类型和时间类型。
复合类型:可以由小的数据类型复合而成,主要有数组型和记录型。
存取类型:为给定的数据类型的数据对象提供存取方式。
文件类型:用于提供多值存取类型。
这四类数据类型又可分为在现成的程序包中可以随时获得的预定义数据类型和用户自定义的数据类型。
1.VHDL的预定义数据类型
VHDL的预定义数据类型可以直接被用户使用,不必打开标准程序包standard。
(1)布尔(boolean)数据类型:二值枚举型数据类型,其取值为false(假)/true(真)。用于关系运算的返回值。
(2)位(bit)数据类型:二值枚举型数据类型,其取值为0/1。位数据类型的数据对象是变量、信号等,可以参与逻辑运算。
(3)位矢量(bit_vector)数据类型:是基于bit数据类型的一维数组。
(4)字符(character)数据类型:用单引号界定的单个ASCII码字符。(www.xing528.com)
(5)字符串(string)数据类型:用双引号界定的ASCII码字符串,是基于字符数据类型的一维数组。
(6)整数(integer)数据类型:在VHDL中整数的取值为32位补码(-231~+231-1),但在定义变量或信号时要用range子句限定范围。
(7)自然数(natural)和正整数(positive)数据类型:整数数据类型的子集。
(8)实数(real)数据类型:通常情况下,实数类型仅能在VHDL仿真器中使用,VHDL综合器不支持实数。
(9)时间(time)数据类型:时(hr)、分(min)、秒(sec)、毫秒(ms)、微秒( μs)、纳秒(1 ns=10-9s)、皮秒(1 ps=10-12s)、飞秒(1 fs=10-15s)。
2.IEEE预定义的标准逻辑位与矢量
在ieee库的程序包std_logic_1164中,定义了标准逻辑位和标准逻辑位矢量。使用前要打开ieee库和程序包std_logic_1164。
(1)标准逻辑位(std_logic)数据类型:枚举型数据类型,定义了9个值,分别是‘U’(未初始化的)、‘X’(强未知的)、‘0’(强0)、‘1’(强1)、‘Z’(高阻)、‘W’(弱未知的)、‘L’(弱0)、‘H’(弱1)和‘-’(忽略)。
(2)标准逻辑位矢量(std_logic_vector)数据类型:基于标准逻辑位的一维数组。
在ieee库的其他程序包中还定义了另外一些数据类型,但是上述介绍的数据类型在大多数情况下足够使用,另外用户也可以用type语句自定义数据类型。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。