(2)用户定义的数据类型
用户定义的数据类型的一般格式:
TYPE 数据类型名 {,数据类型名} 数据类型定义
不完整的数据类型格式:
TYPE 数据类型名 {,数据类型名};
可由用户定义的数据类型为:
* 枚举(ENUMERATED)
格式:TYPE 数据类型名 IS(元素、元素、…);
例1: TYPE week IS(Sun,Mon,Tue,wed,Thu,Fri,Sat);
例2: TYPE STD_LOGIC IS
(‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-‘);
* 整数(INTEGER)
格式:TYPE 数据类型名 IS 数据类型定义 约束范围
例:TYPE digit IS INTEGER RANGE 0 TO 9
* 实数(REAL)
格式:TYPE 数据类型名 IS 数据类型定义 约束范围
例:TYPE current IS REAL RANGE -1E4 TO 1E4
* 数组(ARRAY)
格式:TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型名;
例:TYPE word IS ARRAY (1 TO 8) OF STD_LOGIC;
TYPE word IS ARRAY (INTEGER 1 TO 8) OF STD_LOGIC;
TYPE instruction IS (ADD,SUB,INC,SRL,SRF,LDA,LDB);
SUBTYPE digit IS INTEGER 0 TO 9;
TYPE indflag IS ARRAY (instruction ADD TO SRF) OF digit;
数组常在总线、ROM和RAM中使用。
* 时间(TIME)
格式: TYPE 数据模型名不副实 IS 范围
UNITS 基本单位
单位;
END UNITS;
TYPE time RANGE –1E18 TO 1E18
UNITS
fs;
ps=1000 fs;
ns=1000 ps;
us=1000 ns;
ms=1000 us;
sec=1000 ms;
min=60 sec;
hr=60 min;
END UNITS;
* 记录(RECODE)
将不同的数据类型放在一块,就是记录类型数据
格式:TYPE 数组类型名 IS RECORD
元素名:数据类型名;
元素名:数据类型名;
:
:
END RECORD;
例:TYPE bank IS RECORD
addr0: STD_LOGIC_VECTOR(7 DOWNTO 0);
addr1: STD_LOGIC_VECTOR(7 DOWNTO 0);
r0: INTEGER;
END RECORD;
存取(ACCESS)
文件(FILE)
|