Subtype declarations
subtype_declaration
subtype identifier is subtype_indication ;
Parents
- entity_declarative_part
- architecture_declarative_part
- package
- package_body
- block_declarative_part
- function_declarative_part
- procedure_declarative_part
- process_declarative_part
Further definitions
identifier
subtype_indication
[ resolution_function_ name ] type_mark [ constraint ]
Examples
These are standard predefined subtypes. natural is an integer -type which is restricted to the range of 0 to the maximum integer -value. positive is also an integer -type which is restricted to the range of 1 to the maximum integer -value.
SUBTYPE natural IS integer RANGE 0 TO integer'high ; SUBTYPE positive IS integer RANGE 1 TO integer'high ;
These are common examples such as subtypes which are created from basic types by means of range-constraints.
The ranges of integer - and real subtypes are declared with the keyword RANGE .
The ranges of character -, string - and enumeration subtypes are declared by explicitly stating a certain section.
SUBTYPE primary_color IS color RANGE yellow TO blue ; SUBTYPE same_color IS primary_color ; SUBTYPE address_integer IS integer RANGE 0 TO 127 ; SUBTYPE human_size IS real RANGE 0.50 TO 2.50 ; SUBTYPE byte IS bit_vector (7 DOWNTO 0); SUBTYPE name IS string ( 1 TO 31 ); SUBTYPE color_10 IS colors (1 TO 10);
The two subtypes sbit and xbit are declared as subtypes of zbit and a resolution function is assigned to both of them. The resolution function makes sure that in a multiple assignment to a signal only definite values are assigned.
SUBTYPE sbit IS wiredX zbit ; SUBTYPE xbit IS wiredX zbit RANGE 'X' TO '1' ;