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