4.12 Group declaration

...
ENTITY e IS
    ...
BEGIN
    ...
END e ;

...
ARCHITECTURE a OF e IS
    ...
BEGIN
    ...
END a ;

...
CONFIGURATION c
        OF e IS
    ...
    ...
    ...
END

...
PACKAGE pkg IS
    ...
    ...
    ...
END pkg ;


group_declaration ::=

group
identifier : group_template_name
    (group_constituent_list) ;

...
PACKAGE BODY pck
        IS
    ...
    ...
    ...
END pck ;

...
b: BLOCK IS
    ...
BEGIN
    ...
END BLOCK b ;

FUNCTION f (...)
    RETURN r IS
    ...
BEGIN
    ...
END f ;

PROCEDURE p (...) IS
    ...
BEGIN
    ...
END p ;

p : PROCESS
    ...
BEGIN
    ...
END PROCESS p ;

4.12.1 Further definitions

group_constituent_list::=
    group_constituent { , group_constituent }

group_constituent ::=
    name | character_literal

4.12.2 Examples

GROUP pinpair1 : pin2pin (clk, q1) ;

Groups of type pin2pin are declared.

GROUP pinpair2 : pin2pin (clk, q2) ;
GROUP clocked : gog (pinpair1, pinpair2);

A group of the former declared groups.

GROUP path IS ( SIGNAL , SIGNAL ) ;
GROUP a_to_s : path (a,s) ;

ATTRIBUTE propagation_delay : time ;
ATTRIBUTE propagation_delay OF a_to_s :
               GROUP IS 250 ns ;

The group template path is declared.
The group a_to_s is declared.

The attribute propagation_delay is declared.
The attribute propagation_delay is assigned to
a_to_s and is given the value of 250 ns.

GROUP pin_set IS ( SIGNAL <>) ;
GROUP paths IS ( GROUPS <>) ;

GROUP sources : pin_set (inp1, inp2) ;
GROUP targets : pin_set (outp1, outp2) ;
GROUP ins_to_outs : paths (sources,
                           targets) ;

ATTRIBUTE propagation_delay : time ;
ATTRIBUTE propagation_delay OF
          ins_to_outs : GROUP IS delay ;

The group template pin_set is declared.
The gourp template paths is declared.

The group of signals sources and targets
are declared.

The group of groups ins_to_outs is declared.

The attribute propagation_delay is declared.
The attribute propagation_delay is assigned to
ins_to_outs and is given the value of delay .