Component Declaration
  
    
    
     
   
   Formal Definition
  
   A component declaration declares a
   virtual design entity interface that may be used in component
   instantiation statement. 
  
   Simplified Syntax
  
   component component_name [ is ] 
  
      generic (generic_list); 
  
      port (port_list); 
  
   end component component_name; 
  
   Description
  
   A component represents an entity/architecture pair. It specifies a 
   subsystem, which can be instantiated
    in another architecture leading to a hierarchical 
   specification. Component instantiation is like plugging a hardware 
   component into a socket in a board (Fig. 1 in Example 1). 
  
   A component must be declared before it is instantiated. The component 
   declaration defines the virtual interface of the instantiated design 
   entity ("the socket") but it does not directly indicate the 
   design entity. 
  
   The binding of a design entity to a given component may be delayed 
   and may be placed either in the configuration specification or 
   configuration declaration. 
  
   The component can be defined in package,
    design entity, architecture, or block 
   declarations. If the component is declared in an architecture, it 
   must be declared before the begin 
   statement of the architecture. In such a case, the component can be 
   used (instantiated) in the architecture only. 
  
   A more universal approach is to declare a component in the package.
    Such a component is visible in any architecture, which uses this package. 
  
   Generics and ports of a component are copies of generics and ports of 
   the entity the component represents. 
  
   Examples
  
   Example 1 
  
   architecture STRUCTURE_2 of 
   EXAMPLE is 
   component XOR_4 is 
      port(A,B: in 
   BIT_VECTOR(0 to 3); 
      C: out 
   BIT_VECTOR(0 to 3)); 
   end component XOR_4; 
   signal S1,S2 : BIT_VECTOR(0 to 3); 
   signal S3 : BIT_VECTOR(0 to 3); 
   begin 
      X1 : XOR_4 port map(S1,S2,S3); 
   end architecture STRUCTURE_2; 
  
     
   The XOR_4 component has two 4-bit input ports (A and B) and the 4-bit 
   output port C. The declaration of this component is located in the 
   declaration part of the architecture body STRUCTURE_2. The component 
   instantiation statement assigns the X1 label to instantiated XOR_4 
   component and it associates its input-output interface with the S1, 
   S2 and S3 signals. 
  
     
  
   Figure 1. Example of component 
   declaration and instantiation 
  
   Important Notes
  
  
    
 
    |