====== Configuration specification ======
===== configuration_specification =====
for component_specification binding_indication ;
===== Parents =====
* architecture_declarative_part
* block_declarative_part
===== Further definitions =====
==== component_specification ====
''[[.:bnf#instantiation_list]] : component _[[.:bnf#name]]''
==== binding_indication ====
''[ **use** [[.:bnf#entity_aspect]] ]''
''[ [[.:bnf#generic_map_aspect]] ]''
''[ [[.:bnf#port_map_aspect]] ]''
===== Comment =====
In the generic map aspect an actual must be an expression or the reserved word **OPEN** .
In the port map aspect an actual must be a signal, an expression or the reserved word **OPEN** . (In VHDL'87 only signals could be connected with input ports; in VHDL'93 globally static values can be used.)
===== Examples =====
For the components //add_comp// of the labels //c1// , //c2// and //c3// the behavioural description //add_1// from the default-library ( //work// ) is to be used.
In all other labels ( **OTHERS** ) the description //add_configuration// from the default-library ( //work// ) is to be used for the components //add_comp//.
FOR c1, c2, c3 : add_comp USE
ENTITY work.add_1( behaviour ) ;
FOR OTHERS : add_comp USE
CONFIGURATION work.add_configuration;
----
All components //register_comp// which are used are not to be linked.
FOR ALL : register_comp USE OPEN ;
----
For the components //nand2_comp// of the labels //c(1)// to //c(5)// the entity nand with the generic //N=2// and the corresponding in-/output concatenation ( **PORT MAP** ) is to be used.
For the component //nand2_comp// of the label //c(6)// the configuration //nand2_configuration// from the library //my_lib// is to be used with the corresponding in-/output concatenation ( **PORT MAP** ).
FOR c( 1 TO 5 ) : nand2_comp USE
ENTITY nand( arc )
GENERIC MAP ( N => 2 )
PORT MAP ( I(1) => a, I(2) => b, O => s ) ;
FOR c(6) : nand2_comp USE
CONFIGURATION
my_lib.nand2_configuration
PORT MAP ( a, b, s ) ;