Delay
  
    
    
     
   
   Formal Definition
  
   Delay is a mechanism allowing
   introducing timing parameters of specified systems. 
  
   Syntax:
  
   delay_mechanism ::= transport 
   | [ reject time_expression ] inertial 
  
   Description
  
   The delay mechanism allows introducing propagation times of described 
   systems. Delays are specified in signal assignment statements. It is 
   not allowed to specify delays in variable assignments. 
  
   There are two delay mechanism available in VHDL: inertial
    delay (default) and transport
    delay. 
  
   The transport delay is 
   defined using the reserved word transport 
   and is characteristic for transmission lines. New signal value is 
   assigned with specified delay independently from the width of the 
   impulse in waveform (i.e. the signal is propagated through the line - 
   Example 1). 
  
   Inertial delay is defined using the reserved word inertial 
   and is used to model the devices, which are inherently inertial. In 
   practice this means, that impulses shorter than specified switching 
   time are not transmitted (Example 2). 
  
   Inertial delay specification may contain a reject 
   clause. This clause can be used to specify the minimum impulse width 
   that will be propagated, regardless of the switching time specified 
   (Example 3). 
  
   If the delay mechanism is not specified then by default it is inertial. 
  
   Examples
  
   Example 1 
  
   B_OUT <= transport B_IN after 
   1 ns; 
  
     
   The value of the signal B_IN is assigned to the signal B_OUT with 1 
   ns delay. The distance between subsequent changes of B_IN is not 
   important - all changes are transmitted to B_OUT with specified delay 
   (Fig. 1). 
  
     
  
   Figure 1. Example of transport delay 
  
   Example 2 
  
   L_OUT <= inertial L_IN after 
   1 ns; 
  
     
   The signal value L_IN is assigned to the signal L_OUT with 1 ns 
   delay. Not all changes of the signal L_IN, however, will be 
   transmitted: if the width of an impulse is shorter than 1 ns then it 
   will not be transmitted. See Fig. 2 and the change of L_IN at 13 ns 
   and again at 13.7 ns. 
  
     
  
   Figure 2. Example of inertial delay 
  
   Example 3 
  
   Q_OUT <= reject 500 ps inertial 
   Q_IN after 1 ns; 
  
     
   The signal value Q_IN is assigned to the signal Q_OUT with 1 ns 
   delay. Although it is an inertial delay with switching time equal to 
   1 ns, the reject time is specified to 500 ps (.5 ns) and only 
   impulses shorter than 500 ps will not be transmitted (Fig. 3). 
  
     
  
   Figure 3. Example of inertial 
   delay with rejection limit. 
  
   Important Notes
  
   - 
   
    Delay mechanisms can be applied to signals only. It is not allowed to 
    specify delays in variable assignments. 
    - 
   
    Delays are not synthesizable. 
    - 
   
    The Inertial delay is the 
    default delay and the reserved word inertial 
    can be omitted. 
     
  
    
 
    |