Professional Documents
Culture Documents
in out
CL CL CL
Latch
Flop
Latch
Flop
D Q D Q
Transparent D Q D Q
Opaque clk
clk
Edge-trigger D
D
Q
Q (latch)
(latch)
Q
Q (flop)
(flop)
Latch Design
Pass Transistor Latch
Pros
+ Tiny
+ Low clock load
D Q
Cons
Vt drop Used in 1970s
nonrestoring
backdriving
output noise sensitivity
dynamic
diffusion input
Latch Design
Transmission gate
+ No Vt drop
D Q
- Requires inverted clock
Latch Design
Inverting buffer
X
+ Restoring D Q
+ No backdriving
+ Fixes either
D Q
Output noise sensitivity
Or diffusion input
Inverted output
Latch Design
Tristate feedback
+ Static D
X
Q
Backdriving risk
because of leakage
Latch Design
Buffered input
+ Noninverting
Latch Design
Buffered output Q
X
+ No backdriving D
Datapath latch Q
+ smaller D
X
+ faster
- unbuffered input
Flip-Flop Design
X
D Q
Enable
Enable: ignore clock when en = 0
Mux: increase latch D-Q delay
Clock Gating: increase en setup time, skew
Symbol Multiplexer Design Clock Gating Design
en
D 1
Latch
Latch
Latch
D Q Q D Q
0
en en
en
D 1
Flop
Q
0
Flop
Flop
D Q D Q
en
en
Reset
Force output low when reset asserted
Synchronous vs. asynchronous
Symbol
Latch
Flop
D Q D Q
reset reset
Synchronous Reset
Q Q
reset reset
Q
D D
Q
Q
Asynchronous Reset
reset
reset
D
D
reset
reset
Set / Reset
Flip-flops
Flip-Flops
clk
Pulsed Latches
clk clk
Flop
Flop
Combinational Logic
1 2 1
Latch
Latch
Latch
Combinational Combinational
Logic Logic
Half-Cycle 1 Half-Cycle 1
Pulsed Latches
p tpw
p p
Latch
Latch
Combinational Logic
Timing Diagrams
Contamination and
Propagation Delays
tpd Logic Prop. Delay
A tpd
Combinational
A Y
tcd Logic Cont. Delay Logic
Y tcd
Flop
D Q D
D Q D tpdq
thold Latch/Flop Hold Time tcdq
Q
Max-Delay: Flip-Flops
t pd Tc tsetup t pcq
clk clk
Q1 D2
F1
F2
sequencing overhead Combinational Logic
Tc
tsetup
clk
tpcq
Q1 tpd
D2
Max Delay: Pulsed Latches
D1 Q1 D2 Q2
L1
L2
Combinational Logic
sequencing overhead
Tc
D1 tpdq
D2
tpcq Tc tpw
Q1 tpd tsetup
(b) tpw < tsetup
D2
Min-Delay: Flip-Flops
clk
F1
CL
clk
D2
F2
clk
Q1 tccq tcd
D2 thold
Min-Delay: Pulsed Latches
L1
CL
p
Hold time increased
D2
by pulse width
L2
p
tpw
thold
Q1 tccq tcd
D2
Time Borrowing
In a flop-based system:
Data launches on one rising edge
Must setup before next rising edge
If it arrives late, system fails
If it arrives early, time is wasted
Flops have hard edges
In a latch-based system
Data can pass through latch while transparent
Long cycle of logic can borrow time into next
As long as each loop completes in one cycle
Time Borrowing Example
1
2
1 2 1
Latch
Latch
Latch
Combinational
(a) Combinational Logic
Logic
Loops may borrow time internally but must complete within the cycle
How Much Borrowing?
1 2
D1 Q1 D2 Q2
L1
L2
Combinational Logic 1
2 tnonoverlap
Pulsed Latches Tc
tsetup
tborrow t pw tsetup Tc/2
Nominal Half-Cycle 1 Delay
tborrow
D2
Clock Skew
F1
F2
Combinational Logic
Tc
sequencing overhead
clk
Q1 tpdq tsetup
D2
clk
Q1
F1
CL
clk
D2
F2
tskew
clk
thold
Q1 tccq
D2 tcd
Skew: Latches
2-Phase Latches 1 2 1
2t
D1 Q1 Combinational D2 Q2 Combinational D3 Q3
L1
L2
L3
t pd Tc pdq
Logic 1 Logic 2
sequencing overhead 1
X
D Q
Summary
Flip-Flops:
Very easy to use, supported by all tools
Pulsed Latches:
Fast, some skew tol & borrow, hold time risk