next up previous contents
Next: The map_list Class Up: Concurrent Statements Previous: process Execution

   
Component Instantiation Statements

Similar to process code the component instantiation statements are transformed into corresponding C++ statements. However, contrary to processes this statements are executed at elaboration time only. They reside in the constructor code of a corresponding architecture class and indirectly call constructors of the component to be instantiated. Besides executing the constructor of the new component another important task of the instantiation code is to connect the signals of the current component (also called actual signals; see Section 3.1 item 1) with the interface signals (ports) of the new component (also called formal ports/signals; see Section 3.1 item 2). Further it assigns appropriate values to the generic parameters (formal generics/parameters) of the new component.

Beside direct connections between actual and formals (signals or generic parameters) in VHDL also more complex structures are supported. E.g. type conversion functions may be used to fit the type of a formal port signal to an actual signal. Because of these special features the links between formals and actuals are not directly established by the instantiation code. Instead, the mapping information is packed into special mapping info instances of class map_list which are then passed over to the kernel function elaborate_component. Based on the mapping information and the library, entity, and architecture name of the new component this functions executes the constructor of the corresponding component and establishes all links between formals and actuals.



 
next up previous contents
Next: The map_list Class Up: Concurrent Statements Previous: process Execution

1998-11-17