====== 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 ;