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
  
  
    
 
    |