Previous Up Next

Chapter 9  Adequation

Performing an adequation means to execute heuristics, seeking for an optimized implementation of a given algorithm onto a given architecture, both set as “Main”.

9.1  Main algorithm and main architecture

There can be several algorithms and architectures but only one main algorithm (cf. Main mode in section 5.1.2) and one main architecture (cf. section 6.3.2) on which the adequation will be performed.

To define an algorithm as main, right click on the background of the target definition window. Choose the Set As Main Definition option. To define an architecture as main, right click on the background of the target architecture. Choose the Set As Main Architecture option

9.2  Characterization

To be able to perform an adequation, each operation and each data type of a dependence must be associated with a duration (cf. chapter 7).

You will also have to characterize additional operations generated by SynDEx in case of conditioning (cf. section 5.2) or repetition (cf. section 5.3).

9.3  To launch the adequation

To launch the adequation of the main algorithm onto the main architecture, from the Adequation menu of the principal window, choose the Launch Adequation option.

The adequation process is preceded by:

9.4  Multi-periodic applications

In case of a multi-periodic application, the flattening process is preceded by:

9.5  Flattening


The main algorithm graph is transformed for the adequation to obtain a graph with a unique level of hierarchy, where each vertex is an operation in the sense of AAA (which is the same as an atomic definition in SynDEx). This transformation consists in replacing references by corresponding definitions, and paths of dependences connected along the hierarchy through ports by direct dependences between corresponding ports of the transformed operations.

Abstract references

In case of abstract references (cf. section 5.1.7), the hierarchy is not taken into account, i.e. the flattening does not go into the hierarchical referenced definitions. All the abstract references are directly replaced by operations containing the same ports as their definition. References or dependences included in those definitions are ignored.

9.6  Schedule

The schedule is displayed as sets of ordered operations infinitely repeated.

In case of a multi-periodic application, the schedule may have one or two parts. In the first case it is a permanent part displayed as sets of ordered operations infinitely repeated and in the second case it is:

SynDEx adds some Wait vertices to force the operators to satisfy the start time dates of every operation computed by the adequation according to their period.

9.6.1  To display the schedule

To view the computed distribution and schedule, from the Adequation menu, choose the Display Schedule option. It opens a window for the diagram of the real-time simulation of the algorithm executed on the architecture.

9.6.2  The schedule window

In the schedule window you will find one schedule for each operator and for each communication medium of the architecture. Each operation or communication (send/receive) is represented by a box the length of which is proportional to its duration. The operations of the transient part have a red left edge whereas the operations of the permanent part have a green left edge.


Each schedule for an operator describes a scheduling of constants, sensors, actuators, functions and delays. By default constants are not displayed. From the Window menu, choose Schedule Display Options. Then check Show Constants to change this setting.


Each schedule for a communication medium describes a scheduling of inter-operator communications, sending (resp. receiving) data from (resp. to) an operator. Note that although a communication is called “Send proc1 proc2” it is represented by a unique operation which represents the duration of the communication (send/receive) on the medium.

Start and end dates

The start date (resp. the end date) is displayed on the left edge (resp. right) of each box.


In case of big duration differences, you can disable the scale. From the Window menu, choose Schedule Display Options. Then uncheck Scale to change this setting.


When the cursor points at an operation, its box is highlighted in orange. The predecessors of the pointed operation have their boxes highlighted in green and its successors in red. Operations highlighted in pink are successors in the next repetition, rather than in the same repetition, in case of multi-periodic application.

Schedule position

Position the pointer inside the small space between two schedules of operators or between the schedule of an operator and the schedule of a communication medium then, left click and before releasing the button, drag and drop that schedule to change its position.

Warning: This feature is operational only in Vertical Display mode.

Other options

From the Window menu, choose Schedule Display Options. Check Horizontal Display to change the orientation of the display. Check Show Arrows to draw arrows between boxes which are in relation of execution precedence Uncheck Labels to not draw the names of the operations.

Previous Up Next