vhdl学习笔记之数据类型

vhdl learning

Posted by fa1con on November 21, 2018

VHDL学习笔记之数据类型

概述

相同数据类型的量才能互相传递和作用。

分类

1.标量类型(SCALAR TYPE)
2.复合类型(COMPOSITE TYPE)
3.存取类型(ACCESS TYPE)
4.文件类型(FILES TYPE)
或者分为:预定义数据类型、用户自定义数据类型 。

定义

常量

constant 常数名:数据类型: = 表达式
例如:
constant Vcc: real:=5.0; –定义Vcc的数据类型
constant bus_width: integer := 8 –定义总线宽度为常数8

变量

variable 变量名: 数据类型 :=初始值;
variable count:integer 0 to 255:=20; –定义count整数变量,变化范围0-255,初始值为20。

赋值

1
2
3
x:=10.0  
Y:=1.5+x --运算表达式赋值,注意表达式必须与目标变量的数据类型相同。
A(3 to 6):=("1101"); --位矢量赋值

信号

signal 信号名:数据类型:=初始值

1
2
signal clock: bit:='0'; --定义时钟信号类型  
signal count: BIT_VECTOR(3 DOWNTO 0); --定义count为4位位矢量

信号赋值语句

目标信号名 <= 表达式;
例如:

1
2
x<=9;  
Z<=x after 5 ns; --在5ns后将x的值赋予z

VHDL的预定义数据类型

1.布尔量(boolean)

false = 0
ture = 1
转换类型:boolean_var := (bit_var = ‘1’);

2.位(bit)

bit表示一位信号值。放在单引号中,如’0’或者’1’

3.位矢量 (bit_vector)

bit_vector 是用双引号括起来的一组位数据。
如: “001100”,X”00B10B”

4.字符(character)

variable character_var: character:=’A’;

5.整数(integer)

VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。 如:signal sig: interger 0 to 15:=2; –必须指定范围

6.标准逻辑位(STD_LOGIC)

BIT数据类型的扩展,可以取值’U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-‘等。

7.标准逻辑位向量(STD_LOGIC_VECTOR)

##注意 相同类型(模型相同,数据类型相同)的端口可以写在同一行,详见笔记二。