Execution rates

Overview of how execution rates are handled within Typhoon HIL Control Center software

Signal Processing components currently support only discrete time execution rates.

The execution rate is defined on a per-component basis. A component with an inherited execution rate will be assigned a sample time based on the sample times of the components it is connected to. Execution rate inheritance is done in two steps:
  • Forward propagation: sample time is inherited from the components connected to the input terminals. Always performed first.
  • Backward propagation: sample time is inherited from the components connected to the output terminals. Performed in cases when the execution rate could not be resolved using the forward propagation method.

Models can contain components with different execution rates. The fastest component execution rate has to be an integer multiple of the base simulation step (step of the FPGA solver). All other execution rates have to be integer multiples of the fastest execution rate.

The maximum number of execution rates is limited and depends on the HIL platform as defined in Table 1.

Table 1. Maximum number of execution rates
User CPU Max execution rates
ARM Cortex A53 2
ARM Cortex A9 4
Note: System CPU models run at two discrete execution rates and their default values are 100 µs and 50 ms. Those values can be modified from the Schematic Editor -> Schematic Settings panel.

When the model is executed in real time it is required that all execution-rate-related computations are completed within the defined simulation step. In case that the model takes longer to compute, an overrun condition will occur resulting in inaccurate simulation results.

To detect such a situation, the workload on every execution rate is monitored by dedicated hardware logic. Time-slot-utilization information is visualized in the HIL SCADA application. Computing interval overrun conditions are explicitly signaled using the dedicated CIO flag. For more information, please refer to the HIL SCADA Status Bar documentation.