VHDL硬件描述语言(三)——基本数据对象和数据类型

时间:2024-05-19 09:54:44

在VHDL语言里,基本数据对象有三种:常量,变量以及信号。

常量

常量就是常数,它的数值不能更改。它必须初始化。它的一般定义格式如下:

CONSTANT 常量名:数据类型 := 表达式;    --表达式是用来初始化常量的

变量

变量的格式如下:

VARIABLE 变量名:数据类型 := 初值;		--初值可以不赋。

变量赋值的时候使用“:=”来赋值。变量的值可以更改。对于变量的赋值是没有延迟的。

信号

信号的定义格式如下:

SIGNAL 信号名:数据类型 := 初值;			--初值可以不赋。

对于信号而言,我们认为它对应于一个实际物理部分。它的赋值不是立即生效的,而是有延迟的。

标准数据类型

整数与数学意义上的一致。它可以作为对信号总线状态的一种抽象;

位用来表示一个信号的状态,它有两种取值‘0’和‘1’。在实际应用中,位可以用来描述总线的值。

位矢量,它是一组位的集合。每一位都可以取‘0’和‘1’。通常用于表示总线状态。

布尔量,它是二值枚举。包括两种状态:“TRUE”和“FALES”。

上面这些数据类型都是定义在STD中的,这是VHDL语言的标准。一般在VHDL语言设计中,我们还经常使用IEEE标准委员会制定的IEEE库的STD_LOGIC_1164程序包中的STD_LOGIC类型和STD_LOGIC_VECTOR类型。

用户自定义数据类型

用户自定义数据类型的格式如下:

TYPE 数据类型名 IS 数据类型;

常用的有数组类型,整数类型,枚举类型,时间类型。

定义一个数组名为num的STD_LOGIC类型的数组,定义如下:

TYPE num IS ARRAY(0 TO 3) OF STD_LOGIC;

数据类型之间的转换

VHDL是一门强数据类型语言。它的数据类型之间的转换有两种方式。

强制类型转换

这种方式和C语言的非常类似,例如可以如下:

VARIABLE a:INTEGER;
VARIABLE b:REAL;
a:=INTEGER(y);

函数转换法

VHDL硬件描述语言(三)——基本数据对象和数据类型