在原有已定义数据类型基础上加上一些约束条件,可以定义该数据类型的子类型。通过定义新的数据
类型可以达到同样的目的,VHDL不允许不同类型的数据之间直接进行操作运算,而某个数据类型的子类型
则可以和原有类型数据直接进行操作运算。
例:
SUBTYPE natural is integer range 0 to integer'high;
--定义自然数(natural)为整数(integer)的子类型。
SUTYPE my_logic is std_logic range '0' to 'z';
例:子类型和原有类型数据之间的合法和非法操作:
SUBTYPE my_logic is std_logic range '0' to '1';
signal a:bit;
signal b:std_logic;
signal c:my_logic;
b<=a;--非法
b<=c;--合法