Previous Up

Chapter 9  Example 9: a multiperiodic application

From the principal window, choose File / Save as and save your ninth application under a new folder of yout tutorial folder (e.g. my_example9) with the name example9.

9.1  The main algorithm


Figure 9.1: Main algorithm of the Example 9

Create the main algorithm basicAlgorithm (cf. figure 9.1) using the library int for the operations input<1> (int/input) and output<1> (int/output). For the operation compute, create a function definition compute and create a reference to this definition. Create the dependences between the references. Set the periods to 4 for input, 8 for compute, and 8 for output by selecting each reference and filling the Period field.

9.2  The main architecture

Open the architecture monoProc from the library u. Define it as main. The durations for the U operator are by default:

  
    int/input = 3
    Implode_int = 1
    compute = 1
    int/output = 3
  

Implode_int is an internal operation automatically generated by SynDEx to collect the different data produced by the different occurences of the int/input operation.
In this case, the system is not schedulable.

9.3  A mono-phase schedule

9.3.1  Durations

Modify the durations for the U operator:

  
    int/input = 1
    Implode_int = 1
    compute = 1
    int/output = 1
  

9.3.2  Adequation


Figure 9.2: A mono-phase schedule

Launch the adequation (Adequation / Launch Adequation). Display the schedule (Adequation / Display Schedule) (cf. figure 9.2).

Wait operation

Notice the new operation added by SynDEx (Wait) to respect the period of the input operations.

Multiple occurrences

Notice that because of the periods, during a cycle two input operations are executed (input#1 and input#2) whereas only one compute and one output operations are executed.

Implode operation

Notice the new operation added by SynDEx (Implode_compute) to provide the data from the input operations to the compute one.

9.4  A multi-phase schedule

9.4.1  Durations

Modify the durations for the U operator:

  
    int/input = 1
    Implode_int = 1
    compute = 2
    int/output = 1
  

9.4.2  Adequation


Figure 9.3: A multi-phase schedule

Launch the adequation (Adequation / Launch Adequation). Display the schedule (Adequation / Display Schedule). The computed schedule has two phases: a transitory phase (red) and a permanent phase (green) (cf. figure 9.3).

Transitory phase

The transitory phase is executed only once. It contains the first occurrence of the input#1 operation, the first occurrence of the input#2 operation, the first occurrence of the Implode_compute operation, and the first occurrence of the compute operation. The compute operation provide data consumed by the output operation schedule at time 9 in the permanent phase.

Permanent phase

The permanent phase is the one that is executed infinitely. It contains the second occurrence of the input#1 operation (and its following occurrences). It contains the first occurrence of the output operation (and its following occurrences).


Previous Up