====== Configuration ======
===== configuration_declaration =====
configuration identifier of
entity _name is
configuration_declarative_part
block_configuration
end [ configuration ]
[ configuration _simple_name ] ;
===== Further definitions =====
==== identifier ====
* [[.:bnf#basic_identifier]]
* [[.:bnf#extended_identifier]]
==== name ====
* [[.:bnf#simple_name]]
* [[.:bnf#operator_symbol]]
* [[.:bnf#selected_name]]
* [[.:variable_declarations|indexed_name]]
* [[.:bnf#slice_name]]
* [[.:bnf#attribute_name]]
==== configuration_declarative_part ====
''{ [[.:bnf#configuration_declarative_item]] }''
===== block_configuration =====
''for [[.:bnf#block_specification]]'' \\
'' { [[.:bnf#use_clause]] }'' \\
'' { [[.:bnf#configuration_item]] }'' \\
''end for ;''
==== simple_name ====
* [[.:bnf#identifier]]
===== Examples =====
Example of a default-configuration of a testbench which uses the corresponding analysed object for the architecture //arch_of_testbench// .
CONFIGURATION cfg OF testbench IS
FOR arch_of_testbench
END FOR ;
END cfg ;
----
The libraries //vendor// and //mylib// are published.
For the entity //example// the whole content of the library //mylib// is published, and in its architecture //structural// the entity //alu_ver_2// is used with the architecture //beh// from the library //mylib// for the instance //ALU// with the label //ALU1// . For the instances of //MUX//, labelled //mux1// , //mux2// and //mux3//, the entity //mux12345// with the architecture //rtl// from the library //vendor// is used.
For all instances of //add// the defaults are used.
LIBRARY vendor, mylib ;
CONFIGURATION cfg_of_ex OF example IS
USE mylib.ALL ;
FOR structural
FOR ALU1: ALU
USE ENTITY mylib.alu_ver_2(beh);
END FOR ;
FOR mux1, mux2, mux3: MUX
USE ENTITY vendor.mux12345(rtl);
END FOR ;
FOR ALL : add
END FOR ;
END FOR ;
END cfg_of_ex ;