1.3 Configuration

...
ENTITY e IS
    ...
BEGIN
    ...
END e ;

...
ARCHITECTURE a OF e IS
    ...
BEGIN
    ...
END a ;

...
CONFIGURATION c
        OF e IS
    ...
    ...
    ...
END


...
PACKAGE pkg IS
    ...
    ...
    ...
END pkg ;

configuration_declaration ::=

configuration
identifier of
         entity _name is
    configuration_declarative_part
     block_configuration
end [ configuration ]
            [ configuration _simple_name ] ;


..
PACKAGE BODY pck
        IS
    ...
    ...
    ...
END pck ;

...
b: BLOCK IS
    ...
BEGIN
    ...
END BLOCK b ;

FUNCTION f (...)
    RETURN r IS
    ...
BEGIN
    ...
END f ;

PROCEDURE p (...) IS
    ...
BEGIN
    ...
END p ;

p : PROCESS
    ...
BEGIN
    ...
END PROCESS p ;

1.3.1 Further definitions

identifier ::=
    basic_identifier | extended_identifier

name ::=
    simple_name
    | operator_symbol
    | selected_name
    | indexed_name
    | slice_name
    | attribute_name

configuration_declarative_part ::=
    { configuration_declarative_item }

block_configuration ::=
    for block_specification
        {use_clause}
        {configuration_item}
    end for ;

simple_name ::= identifier

1.3.2 Examples

CONFIGURATION cfg OF testbench IS
   FOR
arch_of_testbench
   END FOR ;
END cfg ;

Example of a default-configuration of a testbench
which uses the corresponding analysed object for the
architecture arch_of_testbench .

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 ;

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.