next up previous contents
Next: Constraints Up: Syndex v6 - User Previous: Characteristics   Contents

Adequation

You may have constructed several local algorithm and/or architecture definitions, but only one of them may be labeled "(main)" becoming the algorithm (main) which will be mapped onto the architecture (main), when the adequation is performed.

To label an algorithm window or an architecture window with "(main)", choose MAIN DEFINITION (for the algorithm) or MAIN ARCHITECTURE (for an architecture) in the EDIT menu.

To run the adequation, i.e. the optimization heuristics provided by SynDEx, choose between NO FLATTEN or FLATTEN. In both cases, the main algorithm graph is transformed by SynDEx 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 replacing paths of dependences connected along the hierarchy through ports, by direct dependences between corresponding ports of the transformed operations. The difference between NO FLATTEN and FLATTEN lies in the references resolution.

With NO FLATTEN, explicit hierarchy is ignored. In the graph of the main definition all references are directly replaced by operations containing the same ports as their definition. References or dependences included in those definitions are ignored. Additionnally, repetitions are expanded.

With FLATTEN, references corresponding to explicitly hierarchical definitions are replaced by the graph of this definition, conditioning and repetitions are expanded. This process is iterated until all vertices of the transformed graph become atomic (no hierarchy remains).

Notice that SynDEx needs characterization for each vertex of the transformed graph to perform the adequation. If you chose NO FLATTEN, do not forget to characterize the definitions corresponding to references at the highest level of hierarchy in the main algorithm. With FLATTEN you only need to characterize atomic definitions. You will also have to characterize additional operations generated by SynDEx when you use conditioning or repetition.

At the end of the adequation, a timing window will open. This window gives a diagram of the real-time simulation of the algorithm executed on the architecture.

The adequation result is appended to your sdx file once the adequation has been performed and you save your application.

In the timing window you will find one timing, describing a distribution, for each operator and each medium of the architecture. Each timing for an operator describes a scheduling of constants (by default not displayed, option SHOW CONSTANTS in WINDOW/OPTION), sensors, actuators, memories and operations. Each timing for a medium describes a scheduling of inter-operator communications, sending or receiving data from or to an operator. Each box has a length which is proportional to the duration of the corresponding operation. When you have important duration differences between definitions, you can disable this proportionnal display, each box will have the same length (option SCALE in WINDOW/OPTION).

When the cursor points at a box this one is highlighted (yellow) as well as the boxes it is in relation of execution precedence, i.e. its predecessors (red) and successors (green). You may ask for drawing arrows between boxes which are in relation of execution precedence by choosing the option ARROWS in the window obtained from the WINDOW/OPTIONS menu; you may also choose to have the time in horizontal (horizontal view) or in vertical (vertical view). You may move a timing line or column in order to rearrange their respective positions: point the cursor at this line or column, click the left button of the mouse and drag until the new position.


next up previous contents
Next: Constraints Up: Syndex v6 - User Previous: Characteristics   Contents
Julien Forget 2003-03-21