Next: Constraints
Up: Syndex v6 - User
Previous: Characteristics
  Contents
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: Constraints
Up: Syndex v6 - User
Previous: Characteristics
  Contents
Julien Forget
2003-03-21