Group
Formal Definition
A named collection of named
entities. Groups relate different named entities for the purposes not
specified by the language. In particular, groups may be decorated
with attributes.
Simplified Syntax
group group_template_name is
( entity_class_list ) ;
group group_name
: group_template_name ( group_constituent_list );
Description
The user-defined attributes are connected individually with each
named entity. That is why each separate named entity can have its own
attributes. In case when the user wants to assign information to
several related named entities, he/she should define a group
consisting of these units, and then specify attributes for the entire
group. The set of units with the specified characteristics can be
defined by means of group declaration. The group declaration in turn
requires group template declaration to be defined earlier.
THE GROUP TEMPLATE DECLARATION
The group template declaration defines pattern of a group connecting
named entities with the specified class. The set of possible entity
classes contains entity,
architecture, configuration, procedure, function, package, type,
subtype, constant, signal, variable, component, label, literal,
units, group, and file.
Each entity class entry defines an entity class that may appear at
that particular position in the group type (Example 1).
The box symbol (<>) can be used together with the name of an
entity class to allow zero or more units belonging to this group
(Example 2). If such a declaration appears on the list, it must be
the last one.
THE GROUP DECLARATION
Group declaration connects named entities having the specified characteristics.
The group declaration consists of identifier,
group template name and group
constituent list. The identifier
represents a group, the group
template name indicates group's template declaration, and the group
constituent indicates the chosen named entities belonging to
this group (Example 3).
THE ATTRIBUTES OF GROUPS
The attribute specification of a group is realized in a similar way
to other attribute specifications. First, the attribute of a given
type is declared and it is specified for the given group in its
declaration part which contains declaration of the particular group
(Example 4).
Examples
Example 1
group Variable_group is
( variable, variable );
The Variable_group template group declaration creates two variables
which serve as a pattern for the variables belonging to this group.
Example 2
group Component_group is
( component <> );
The Component_group pattern declaration creates a group, which
consists of a component list of arbitrary length.
Example 3
group Input_pair :
Variable_group ( A1, A2 );
The Input_pair group declaration creates a group, which consists of
A1 and A2 variables and is based on the Variable_group group template
(declared in Example
1).
Example 4
function Compute_Values (A,
B:Integer) return BOOLEAN is
variable A1, A2: Integer;
group Variable_group is
( variable, variable );
group Input_pair :
Variable_group ( A1, A2 );
attribute Input_name: String;
attribute Input_name of
Input_pair : group is
"Input variables";
begin
.......
end function;
The value of the attribute Input_name for the group Input_pair is
equal to Input variables.
Important Notes
|