Professional Documents
Culture Documents
Sequential Circuits
Boonchuay Supmonchai
Integrated Design Application Research (IDAR) Laboratory
August 20, 2004; Revised - July 4, 2005
B.Supmonchai
Sequential Logic
Inputs Outputs
COMBINATIONAL
LOGIC
CLOCK
Storage Mechanisms
Dynamic storage
store state on parasitic capacitors
only hold state for short periods of time (milliseconds)
require periodic refresh
usually simpler, so higher speed and lower power
Flipflops (edge-triggered)
edge sensitive circuits that sample the inputs on a clock
transition
positive edge-triggered: 0 1
negative edge-triggered: 1 0
built using latches (e.g., master-slave flipflops)
Review: SR Latch
S S R Q !Q Action
!Q
0 0 Q !Q memory
1 0 1 0 set
0 1 0 1 reset
Q
R 1 1 0 0 disallowed
D Q
Q
clock
clock transparent mode
In our course
clock All latches mean
clocked latches
hold mode
2102-545 Digital ICs Sequential Logic 9
B.Supmonchai
D Q D Q
Clk Clk
Clk Clk
D D
Q Q
In D Q Out In D Q Out
G G
Clk Clk
Clk Clk
In In
Out Out
Latch-Based Design
N latch is transparent P latch is transparent
when f = 0 when f = 1
f
N P
Latch
Logic Latch
Logic
Timing Metrics
clock
clock
In data
stable
tc-q time
Timing Definitions
Setup time, tsetup is the time that the data inputs
(D) must be valid before the clock transition
0 to 1 transition for a positive edge-triggered device
1 to 0 transition for a negative edge-triggered device
T (clock period)
CLOCK
CLK
CLK
Q D D
CLK
CLK
D
CLK
can implement as NMOS-only
feedback feedback
1 0
Q Q
D 0 D 1
clk clk
D
clk
clk
!clk
clk load is two transistors (and two
for !clk) = clock load of 4
Having to generate both clk and !clk feedback
(nonoverlapping clocks) (hold mode)
D Q
input sampled
(transparent mode)
!clk
clk
B
B B
clk
MS ET Implementation
Master Slave
I2 T2 I3 I5 T4 I6 Q
QM
I1 T1 I4 T3
D 20 Transistors*
8 clock loads
clk * Ignore clk buffer
MS ET Timing Properties
Assume propagation delays are tpd_inv and tpd_tx, that the
contamination delay is 0, and that the inverter delay to
derive !clk is 0
Set-up time - time before rising edge of clk that D must
be valid
tsu = 3 * tpd_inv + tpd_tx
2 QM
Volts
1.5
tsetup = 0.21 ns
1 D clk
0.5
I2 out
0
-0.5
0 0.2 0.4 0.6 0.8 1
Time (ns)
works correctly
2102-545 Digital ICs Sequential Logic 26
B.Supmonchai
2 I2 out
Volts
1.5
tsetup = 0.20 ns
1 D clk
0.5
0 QM
-0.5
0 0.2 0.4 0.6 0.8 1
Time (ns)
2.5
2
1.5
Clk D Q
Volts
1
tc-q (LH) tc-q (HL)
0.5
0
-0.5
0 0.5 1 1.5 2 2.5
Time (ns)
Reduced Load MS ET FF
Clock load per register is important since it directly
impacts the power dissipation of the clock network.
Can reduce the clock load (at the cost of robustness) by
making the circuit ratioed
12 Transistors
clk !clk
I3 4 clock loads
I1
T QM T
D Q
1 2
I2 I4
!clk clk reverse conduction
Non-Ideal Clocks
Clk and !clk are never perfect inversions of one another
We must generate !clk and route both signals
Variations can exist in the wires used to route the two clock
signals and load capacitances may vary
Non-ideal clocks create skew resulting in clock overlap
1-1 Overlap 0-0 Overlap
clk clk
!clk !clk
B
P2 P4
!clk clk
Pseudostatic Two-Phase ET FF
X clk2 Q
clk1
A I1 I2 P3 I3 I4 !Q
D P1
B
P2 P4
clk
B
clk2
clk
clk1
clk2
2102-545 Digital ICs Sequential Logic 33
B.Supmonchai
Power PC Flipflop
clk !clk
1D Q 01
01 10 10
!clk clk
16 Transistors
8 clock loads
master transparent
slave hold clk master hold
slave transparent
!clk
M2 M4
S
Q Q
!Q
clk M6 M8 clk
Q
R M1 M3
S M5 M7 R
Sizing Issues
(W/L)2 and 4 = 1.5m/0.25 m
2 (W/L)1 and 3 = 0.5m/0.25 m
1.5
!Q (Volts)
1
so (W/L)5 and 6 > 3
0.5
0
2 2.5 3 3.5 4
(W/L)5 and 6
Transient Response
3
!Q S
2 W=0.5 m
!Q (Volts)
W=0.6 m
W=0.7 m
1
W=0.8 m
W=0.9 m
W=1 m
0
0 0.4 0.8 1.2 1.6 2
Time (ns)
M1 M3 6 Transistors
2 Clock loads
CLK
CLK
Q
D Q
CLK
D
CLK
CLK
Dynamic ET Flipflop
master slave
!clk clk 8 Transistors
4 Clock loads
QM
D T1 I1 T2 I2 Q
C C
1 2
clk !clk
tsu = tpd_tx
master transparent thold = zero
slave hold tc-q = 2 tpd_inv + tpd_tx
clk
C C
1 2
clk !clk
Dynamic Two-Phase ET FF
clk1 clk2
QM
D T1 I1 T2 I2 Q
C C
1 2
!clk1 !clk2
master transparent
slave hold
clk1
tnon_overlap
clk2
master hold
slave transparent
M2 M6
8 Transistors
4 Clock loads
on off
clk M4 !clk M8
QM
D off on Q
on off
!clk M3 C1 clk M7 C2
off on
M1 M5 Insensitive to clock
overlap as long as the
rise and fall times of
master transparent
the clock edges are
slave hold
clk sufficiently small
0 M4 0 M8
QM
D Q
M3 C1 M7 C2
M1 M5
clk clk
!clk !clk
M4 M8
QM
D Q
1 M3 C1 1 M7 C2
M1 M5
clk clk
!clk !clk
2.5 QM(3)
Q(3)
2
1.5
Q(0.1)
1
clk(0.1 ns)
0.5
clk(3 ns)
0
-0.5
0 2 4 6 8
Time (nsec)
Q
In clk clk In
Q clk clk
PUN A B
Q Q
In clk clk clk clk
A
PDN
B
A AND B
TSPC ET FF
Master Slave
clk on clk on on on Q
D QM
off off clk off clk off
12 Transistors
master transparent 4 Clock loads
slave hold
master hold
clk slave transparent
Virtually all constraints removed - no clocks to overlap, no race
2102-545 Digital ICs Sequential Logic 54
B.Supmonchai
Notes on TSPC ET FF
Warning! - similar to C2MOS, TSPC flipflops
malfunction when the slope of the clock is not
sufficiently steep.
Slow clock cause both the NMOS and PMOS
clocked transistors to be ON simultaneously,
resulting in undefined values of the states and race
conditions.
Clock slopes thus must be carefully engineered. If
necessary, local buffers must be introduced to ensure
the quality of the clock signal
Simplified TSPC ET FF
I1 I2 I3
off
M3 clk on
M6 M9
Y1D
Q D
clk on X !D
D off M2 M5
clk off
on M8
M1 clk Moff
4 M7
on
9 Transistors*
4 Clock loads
I1 sample (transparent) *(11 if Q is needed)
I2 precharged
I3 hold
I1 hold
clk I2 evaluate
I3 sample (transparent)
Notes on TSPC ET FF
On the positive edge of the clock, note that the node X
transitions to a low if D is high. Therefore, the input
must be kept stable until the value on node X before the
rising edge of the clock propagates to Y
Hold time of the register (less than 1 inverter delay since it
takes 1 inverter delay for the input to affect node X).
3 clk
!Qmod
Transistor sizing
!Qorig
2
Original width
M4, M5 = 0.5m
1 M7, M8 = 2m
Q A
In clk In clk
Q
A
Split-Output TSPC ET FF
8 Transistors*
2 Clock loads
*(10 if Q is needed)
clk A
D clk QM
Q
Which edge-triggered?
Pulse-Triggered Flipflops
Another approach to design an edge-triggered
flipflop is to use pulse-triggered.
L1 L2 L
Data Data
D Q D Q D Q
Clk
Clk Clk Clk
Clk
Pulsed FF (AMD-K6)
Pulse registers - a short pulse (glitch clock) is generated
locally from the rising (or falling) edge of the system
clock and is used as the clock input to the flipflop
0/Vdd ON/OFF
OFF
clk 0 1
P1ON X Vdd P3 Q 1/0
M3OFF M6OFF
ON ON
1/0
D M2ON/ P2 M5
1 OFF
1 0 1
M1ON M4
ON !clkd
0 OFF
Notes on Pulsed FF
Race conditions are avoided by keeping the transparent
mode time very short (during the pulse only)
Reduce clock load but substantially increase complexity
in verification
The transparency period determines the hold time.
The window must be wide enough for the input data to
propagate to Q.
The set-up time can be NEGATIVE (if the transparency
window is longer than the delay from input to output).
This is attractive, as data can arrive at the register even after
the clock goes high, meaning that time can be borrowed from
the previous cycle.
2102-545 Digital ICs Sequential Logic 63
B.Supmonchai
M3 M6 M8
Y 1 1
0 M10
clk 0 1
Schmitt Trigger
Non-Bistable Sequential Circuits
Vou t V OH
In Out
2 important properties
V OL
Hysteresis
Fast Transition Time
at the output VM VM+ Vi n
VIN VOUT
VM+
VM-
t0 t t0 + tp t
M1 M3 Low-to-High
reff = kM1/(kM2 + kM4)
High-to-Low
reff = (kM1 + kM3)/kM2
Adapting the ratio between PMOS and NMOS, depending upon the
direction of the transition results in a shift in switching threshold
2102-545 Digital ICs Sequential Logic 71
B.Supmonchai
2.0 2.0
Vout(V)
Vout(V)
0.0 0.0
0.0 0.5 1.0 1.5 2.0 2.5 0.0 0.5 1.0 1.5 2.0 2.5
Vin (V) Vin (V)
M4
How does the gate operate?
M6
M3
VIN VOUT
M2
M5
X
M1
Period: T = 2 x tp x N
M2
In
M1
Iref Iref
Vcontr M3
M5 Current starved inverter
4
2102-545 Digital ICs Sequential Logic 75
L
Vcontr M3
M5 Current starv
B.Supmonchai
4 large variations of tp
as the drive current
is exponentially
tpHL
2
tpH
dependent on the
propagati
drive voltage
0.0
0.5 1.5 2.5 of control
Delay sensitive to
V co ntr (V)
Vctrl (V)
noise and variation
in Vctrl
- Vo2 Vo1 + v3
in1
v1
+ - in2
v2
v4
Vctrl
2.0
1.5
1.0
0.5
0.0
2 0.5
0.5 1.5 2.5 3.5
time (ns)