Beruflich Dokumente
Kultur Dokumente
Registered Datapath
D
F
F
D
F
F
LOGIC
tpd
InA
LOGIC
Tpd/2
LOGIC
D
F
F
Tpd/2
InC
Latency
Number of clock cycles between input value and output
value
Adding pipeline stages always increases latency
InD
OutB
3
BR 1/99
Pipeline Example
8-bit
add
CO
32
CI
byte1
8-bit
add
D
F
F
CO
CI
8-bit
add
B
32
D
F
F
CO
32
32
CO
16
16
16
16
8-bit
add
byte0
CO
CI
8-bit
add
CO
Sum
16
byte1
D
F
F
A
Can I use pipelining to
speed this up?
D
F
F
16
16
byte3
16
CI
8-bit
add
D
F
F
D
F
F
16
(high 16 bits)
byte2
CI
8-bit
add
F
32
byte0
32
D
F
F
OutA
D
F
F
OutC
Definitions
BR 1/99
OutB
BR 1/99
Latency = 2 clks
InB
InD
OutA
InA
InC
InB
byte2
CO
16
16
16
CI
8-bit
add
D
F
F
byte3
CO
BR 1/99
BR 1/99
Latency Tolerance
Latency tolerance is dependent upon each
application
Frequent flushing of a pipeline (discarding partial
results within the pipeline and restarting the
pipeline with a new value) wastes time and makes
an application latency intolerant.
Flushing of a pipeline introduces clock cycles in
which the results coming out of the pipeline are
ignored -- these are wasted clock cycles.
High Latency tolerance means that you can have
many pipeline stages, whatever the number you
need to meet the clock rate specification.
BR 1/99
Two Applications
SAT
ADDER
R
E
G
R
E
G
D
MULT
F
2/1
Mux
1-F
B* (1-F)
BR 1/99
R
E
G
MULT
R
E
G
R
E
G
MSB
of 1-F
2/1
Mux
SAT
ADDER
MULT
1-F
B* (1-F)
R
E
G
2/1
Mux
MSB
of 1-F
BR 1/99
10
Correct the latency mismatch by adding DFFs in other path as well. May
have to break delay paths in other places or add additional pipeline stages
to LPM_mult to meet clock frequency target. Control lines (like MUX
control line), must be pipelined also.
A*F
A
R
E
G
11
D
F
F
D
MULT
F
2/1
Mux
MSB
of F
SAT
ADDER
1 clk latency
0 clk latency
R
E
G
D
F
F
R
E
G
R
E
G
D
MULT
F
2/1
Mux
1-F
B* (1-F)
BR 1/99
MSB
of 1-F
R
E
G
1 clk latency
0 clk latency
12