Download AUGH User Guide DEVELOPMENT VERSION INCOMPLETE

Transcript
CHAPTER 4. DESIGN TRANSFORMATIONS
4.2
10
Wiring branch conditions
By default, conditional assignments as described in C language with the keywords if and switch
are implemented with a branch condition.
Figure 4.2: Wiring a condition
The Figure 4.2 illustrates the transformation of the following if construct:
myif1:
if(A + B == 0) R = C + D; else R = E + F;
A conditional jump is replaced by an unconditional assignment. This assignment can then be
merged with the other instructions that were before and after the if construct, which can offer very
interesting scheduling optimizations.
To manually wire a condition, use the following command:
hier node-switch find label myif1 one-cycle
It is also possible to find a condition from a source line:
hier node-switch find line 99 wire one-cycle
4.3
Adding shared components
A fast design is one that executes a lot of instructions at a time. By default, AUGH allocates only the
minimum number of components to map the instructions of the input C description.
But this allows only a low number of instructions to be scheduled a given control step. Adding
components to the circuit can reduce this bottleneck.