====== Group declaration ======
===== group_declaration =====
group identifier : group_ template _name ( group_constituent_list ) ;
===== Parents =====
* entity_declarative_part
* architecture_declarative_part
* configuration_declarative_part
* package
* package_body
* block_declarative_part
* function_declarative_part
* procedure_declarative_part
* process_declarative_part
===== Further definitions =====
==== group_constituent_list ====
group_constituent { , group_constituent }
==== group_constituent ====
* [[.:bnf#name]]
* [[.:bnf#character_literal]]
===== Examples =====
Groups of type //pin2pin// are declared.
GROUP pinpair1 : pin2pin (clk, q1) ;
GROUP pinpair2 : pin2pin (clk, q2) ;
----
A group of the former declared groups.
GROUP clocked : gog (pinpair1, pinpair2);
----
* 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 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 //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// .
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 ;