Scheduling, Binding and Pipelining
Scheduling, Binding and Pipelining
Dr DC Hendry
1 Scheduling
Basic Scheduling
a*x[n] + b*x[n-1]
Here is a design using the minimum of clock cycles (basically two multipliers):
Scheduling, Binding and Pipelining
a b
ax
+ y[n]
*
*
bx
x[n] x[n1]
cycle{
ax = a x[n];
bx = b x[n 1];
y ax + bx;
}
1. Note how the designer has had to take account of the delays needed for
correct operation of the algorithm.
2. Registers x[n] and x[n-1] updated every clock cycle.
3. Area for the design is dominated by the area of the multiplier (but how
does the designer know this?).
4. Nevertheless provides a useful solution, one clock per computation.
a*x[n] + b*x[n-1]
a b
+ y
*
pr
x input
stream
Assume that at the start of the calculation x contains the value of x[n-1].
cycle1 {
y b x[n 1];
x x[n];
cycle2 ;
}
cycle2 {
y y + a x[n];
cycle1 ;
}
1. The first design uses two multipliers, so the hardware cost is greater. A
single clock cycle only is needed for each output value.
2. The second design uses a single multiplier, so reducing hardware cost.
Two clock cycles are required however to generate an output value.
3. Both designs require the designer to break down the overall calculation
into clock cycles, and to track the location of required values.
4. The second design, that with a single multiplier, requires additional mul-
tiplexors (not great area cost), that increase power dissipation.
Behavioural Synthesis
2 Pipelining
Pipelining
Multi-cycle Units
Pipelined Units
Pipelined Adder
NonPipelined Pipelined
Pipelined Multipliers
1. For a general block of combinational logic the synthesis tool can be used
to pipeline that block.
2. A technique known as register balancing is applied.
3. Consider the following circuit:
5 nS 2 nS 9 nS
1. If we move the unit with 2 nS delay to before the center register, then the
clock period is reduced from 11 nS to 9 nS.
2. and the circuit becomes:
5 nS 2 nS 9 nS
3. Such balancing can be done with two, three or more stages in most syn-
thesis tools.
2. Now request the synthesis tool to move the tail registers into the logic
block to balance the logic. This may mean adding additional flip-flops to
the design.