Sequential Logic
Sequential Logic
Sequential Logic
Martha A. Kim
Columbia University
1 / 22
State-Holding Elements
Latches
D Flip-Flop
Resets (Sync and Async)
The Synchronous Digital Logic Paradigm
Sequential Circuits
Shift Registers
Counters
Timing in Synchronous Circuits
2 / 22
Bistable Elements
Q
Q
Q
Q
3 / 22
RS Latch
R
Q
R Q
S Q
Q
0
0
1
1
0
1
0
1
4 / 22
RS Latch
0
Q
R Q
S Q
0
0
1
1
0
1
0
1
Set (Q = 1)
4 / 22
RS Latch
1
Q
R Q
S Q
0
0
1
1
0
1
0
1
1
0
0
1
Set (Q = 1)
Reset (Q = 0)
4 / 22
RS Latch
(0 + Q) = Q
0
Q
R Q
S Q
(0 + Q) = Q
0
0
1
1
0
1
0
1
Q
1
0
Q
0
1
4 / 22
RS Latch
1
Q
R Q
S Q
0
0
1
1
0
1
0
1
Q
1
0
0
Q
0
1
0
4 / 22
R S Latch
S
Q
S Q
R Q
Q
0
0
1
1
0
1
0
1
1
0
1
Q
1
1
0
Q
5 / 22
D Latch
D
Q
D Q
C
C Q
Q
0
1
1
X
0
1
Q
0
1
Q
1
0
6 / 22
D Q
C
D Q
C
D Q
C
7 / 22
8 / 22
8 / 22
8 / 22
8 / 22
8 / 22
8 / 22
8 / 22
9 / 22
9 / 22
9 / 22
9 / 22
9 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
D0
CS
opaque
10 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
D0
CS
opaque
10 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
opaque
D0
CS
opaque
transparent
10 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
opaque
D0
CS
opaque
transparent
10 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
opaque
transparent
transparent
opaque
D0
CS
opaque
10 / 22
Positive-Edge-Triggered D Flip-Flop
Master
D
CM
D Q
C
Slave
D
CS
D Q
C
D Q
C
D
CM
transparent
opaque
transparent
opaque
transparent
opaque
transparent
D0
CS
opaque
10 / 22
D Q
D Q
D Q
CLK
CLK
R
Y
G
11 / 22
D Q
D Q
D Q
CLK
CLK
R
Y
G
11 / 22
D Q
D Q
D Q
CLK
CLK
R
Y
G
11 / 22
D Q
D Q
D Q
CLK
CLK
R
Y
G
11 / 22
D Q
D Q
D Q
CLK
CLK
R
Y
G
11 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
RESET
D Q
D Q
D Q
CLK
CLK
RESET
R
Y
G
12 / 22
0
1
D Q
E
C
D
D Q
0
1
0
1
1
X
X
X
0
1
X
X
Q
0
1
Q
Q
E
C
13 / 22
Asynchronous Preset/Clear
PRE
D Q
CLR
CLK
D
PRE
CLR
Q
14 / 22
PRE
D Q
CLK
CLR
PRE
D Q
CLR
PRE
D Q
CLR
15 / 22
Gates and D
flip-flops only
Each flip-flop
driven by the
same clock
Every cyclic
path contains
at least one
flip-flop
OUTPUTS
INPUTS
STATE
CL
CLOCK
NEXT STATE
16 / 22
CLK
Q1
Q2
Q3
0
1
1
0
1
0
0
0
1
0
Q0 Q1 Q2 Q3
X
0
1
1
0
1
0
0
0
1
X
X
0
1
1
0
1
0
0
0
X
X
X
0
1
1
0
1
0
0
X
X
X
X
0
1
1
0
1
0
17 / 22
D1
D2
3
2
1
0
Q0
3
2
1
0
Q1
3
2
1
0
Q2
3
2
1
0
D3
R
S1
Q3
S1
S0
Q3
Q2
Q1
Q0
0
0
1
1
0
1
0
1
R
D3
Q3
Q2
Q3
D2
Q2
Q1
Q2
D1
Q1
Q0
Q1
D0
Q0
L
S1
S0
Operation
0
0
1
1
0
1
0
1
Shift right
Load
Hold
Shift left
CLK
S0
18 / 22
01
10
11
19 / 22
Flip-Flop Timing
Setup Time: Time before
the clock edge after which
the data may not change
tsu
CLK
D
Q
20 / 22
Flip-Flop Timing
Setup Time: Time before
the clock edge after which
the data may not change
tsu
th
CLK
D
Q
20 / 22
Flip-Flop Timing
Setup Time: Time before
the clock edge after which
the data may not change
tsu
th
CLK
D
Q
Minimum Propagation
Delay: Time from
clock edge to when Q
might start changing
tp(min)
20 / 22
Flip-Flop Timing
Setup Time: Time before
the clock edge after which
the data may not change
tsu
th
CLK
D
Q
Minimum Propagation
Delay: Time from
clock edge to when Q
might start changing
tp(min)
tp(max)
Maximum
Propagation Delay:
Time from clock edge
to when Q
guaranteed stable
20 / 22
CL
CLK
tc
CLK
Q
D
CL
CLK
tp(min,CL)
CLK
Q
D
CL
CLK
tp(max,FF)
CLK
Q
D
Q
CLK1
CL
D
CLK2
CLK
tp(min,CL)
Q
CLK1
CL
CLK2
CLK
tp(max,CL)