Errors / Warnings 1 2 3 4 5 Can only map generic in configuration if declared in the entity Generic declared in component but not in entity, hence it is not used Can only map generic in component instance if declared in component declarations Can t map a generic in the component instance and the configuration Must map at least one generic to get the default value for other generics

Generic Values E M I C Default taken from entity Default taken from configuration Actual taken from component instance Actual taken from configuration

board-socket-chip analogy (This analogy was originally presented to me by Dr Alec Stanculescu) In this analogy, the architecture of the top-level entity represents the board being modeled The component instance represents a socket on the board, and the lower-level entity being instantiated in the architecture represents the chip This analogy helps describe how the ports and generics are mapped at each level At the board (architecture) level component socket pins are interconnected with signals The chip pins are then connected to socket pins when the chip is plugged into the socket Following is an example of how this works:

The entity and architecture shown are a simple 2-bit shift register made from two D flip-flop (DFF) component instantiations This example, though relatively simple, shows how ports and generics are mapped at different levels The component instance for component DFF in the architecture statement part acts like a socket in the architecture for the board When a component instance is placed in the architecture, signals are used to connect the component to the board, which is the architecture The actual chip is not connected to the socket until a configuration is specified for the board entity If all of the names of the socket ports and generics match the names of the actual entity being used, then no mapping is needed The default mapping connects the chip to the socket If the names are different, or the number of ports are not the same, for the component instanti-

Seven

ation and the actual entity, then a mapping between the socket (component instantiation) and the chip (actual entity) is needed The actual chip to be mapped is described by the entity and architecture shown here:

The names of the ports and generics are completely different than the component declaration; therefore, mapping is required Following is a configuration that places the actual chip in the socket (maps the ports and generics):