数据类型定义语句
用户自定义数据类型是用类型定义语句TYPE和子类型定义语句SUBTYPE实现的。
TYPE语句最常用的用法有如下两种
第一种属于数组型数据类型定义语句;
数组类型又分为限定性数组和非限定性数组类型。
区别是:限定性数组下标的取值范围在数组定义时就被确定了,而非限定性数组下标的取值范围需留待随后确定。
第二种属于枚举类型定义语句;
限定性数组型数据类型定义
数组类型属于复合类型,是将一组具有相同数据类型的元素集合在一起,作为一个数据对象来处理的数据类型
限定性数组定义语句格式如下:
TYPE 数组名 IS ARRAY(数组范围) OF 基本数据类型;
其中,
“数组名”是新定义的限定性数组类型的名称,可以是任何标识符,有设计者自定,此名将作为定义的新数据
类型之用,而使用方法则与曾经提到的预定义数据类型的用法一样,数据类型与数组元素的数据类型相同。
“数组范围”明确指出数组元素的定义数量和排序方式,
以整数来表示的基本数据类型,一般都是取己有的预定义数据类型,如BIT/STD_LOGIC、INTEGER
但要求一个数组所有类型都是相同类型。
实例:TYPE stb IS ARRAY (7 DOWNTO 0) OF STD_LOGIC;
此数组类型名称是stb,它有8个元素,它的各元素排序是stb(7)、stb(6)、...、stb(0);
数组中的每一个元素都是标准逻辑位STD_LOGIC类型。
实例:TYPE TD IS ARRAY(7 DOWNTO 0 , 3 TO 0) OF STD_LOGIC;
类型名是TD,它有8*4个元素,是一个矩形类型,包括TD(7,3)、TD(7,2)、TD(7,1)、TD(7,0)、TD(6,3)等
实例:TYPE MATRIX IS ARRAY (1