Configuration is mainly used when more number of architectures are used in a single entity. One architecture can be behavioral model whereas other is structural for the same entity. The architecture used in the model is selected by indicating which architecture is to be used in the compiled configuration. A configuration defines the component instances in a given block are bound to design entities in order to describe how design entities are put together to form a complete design.
Need of Configurations :
Sometimes it may be convenient to specify multiple views for a single entity and use any one of these for simulation. This can be easily done by specifying one architecture body for each view and using a configu ration to bind the desired architecture body. For ex ample, there may be three architecture bodies, called MUX_BEH, MUX_STR, and MUX_MIXED, corresponding to an entity MUX. Any one of these can be selected for simulation by specifying an appropriate configura tion. Similarly it may be desirable to as sociate a component with any one of a set of entities. The component declaration may have its name and the names, types, and number of ports and generics different from those of its entities. The VHDL provides two ways, 1) configuration specification and 2) configuration declaration. A structural description can declare a component specification and create instances of components. We mentioned that a component declared can be thought of as a template for a design entity. The binding of an entity to this template is achieved through a configuration declaration. This declaration can also be used to specify actual generic constants for components and blocks. So the configuration declaration plays a pivotal role in organizing a design description in preparation for simulation or other processing.