05 Seq
05 Seq
05 Seq
Sequential Circuits
Simple circuits with feedback
Latches
Edge-triggered flip-flops
Timing Methodologies
Cascading flip-flops for proper operation
Clock skew
Asynchronous Inputs
Metastability and synchronization
Basic Registers
Shift registers
CS 150 - Fall 2000 - Sequential Logic - 1
Sequential Circuits
Circuits with Feedback
Outputs = f(inputs, past inputs, past outputs)
Basis for building "memory" into logic circuits
Door combination lock is an example of a sequential circuit
State is memory
State is an "output" and an "input" to combinational logic
Combination storage elements are also memory
new
equal
reset
value
C1
C2
multiplexer
C3
mux
control
comb. logic
state
comparator
equal
open/closed
CS 150 - Fall 2000 - Sequential Logic - 2
clock
X1
X2
Xn
switching
network
Z1
Z2
Zn
"0"
"remember"
"data"
"load"
"stored value"
Q'
R
S
S'
R'
CS 150 - Fall 2000 - Sequential Logic - 5
Q'
Timing Behavior
Reset
Hold
Q'
Set
Reset
Set
R
S
Q
\Q
CS 150 - Fall 2000 - Sequential Logic - 6
100
Race
S
0
0
1
1
R
0
1
0
1
Q
hold
0
1
unstable
Q Q'
1 0
Q Q'
0 0
Q Q'
1 1
SR=01
Q Q'
0 1
SR=01
Q Q'
1 0
SR=10
SR=11
State Diagram
States: possible
values
Transitions: changes
based on inputs
SR=11
SR=01
possible oscillation
between states 00 and 11
Q Q'
0 0
SR=11
SR=00
SR=11
SR=00
SR=10
Q Q'
1 1
SR=00
SR=10
SR=00
SR=01
SR=01
Q Q'
0 1
SR=01
Q Q'
1 0
SR=10
SR=11
SR=11
Q Q'
0 0
SR=11
SR=00
SR=00
CS 150 - Fall 2000 - Sequential Logic - 9
SR=00
SR=10
Q(t)
Q(t+)
S
Q'
S
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Q(t)
0
1
0
1
0
1
0
1
Q(t+)
0
hold
1
0
reset
0
1
set
1
X not allowed
X
Q(t)
R
characteristic equation
Q(t+) = S + R Q(t)
R'
enable'
Q'
S'
100
S'
R'
enable'
Q
Q'
CS 150 - Fall 2000 - Sequential Logic - 11
Reset
Clocks
Used to keep time
Wait long enough for inputs (R' and S') to settle
Then allow to have effect on value stored
period
Clocks (contd)
Controlling an R-S latch with a clock
Can't let R and S change while clock is active (allowing R and
S to pass)
Only have half of clock period for signal changes to propagate
Signals must be stable for the other half of clock period
R'
clock'
S'
Q'
S
stable changing stable changing stable
R' and S'
clock
Cascading Latches
Connect output of one latch to input of another
How to stop changes from racing through chain?
Need to control flow of data from one latch to the next
Advance from one latch per clock period
Worry about logic between latches (arrows) that is too fast
Q'
Q'
clock
Master-Slave Structure
Break flow by alternating clocks (like an air-lock)
Use positive clock to latch inputs into one R-S latch
Use negative clock to change outputs with another R-S latch
master stage
Q'
P'
CLK
CS 150 - Fall 2000 - Sequential Logic - 15
Q'
master stage
Set
S
R
CLK
P
P'
Q
Q'
Reset
1s
catch
Q'
CLK
Master
Outputs
Slave
Outputs
CS 150 - Fall 2000 - Sequential Logic - 16
P'
P
Q'
D Flip-Flop
Make S and R complements of each other
Eliminates 1s catching problem
Can't just hold previous value (must have new value ready
every clock period)
Value of D just before clock goes low is what is stored in flipflop
Can make R-S flip-flop by adding logic to make D = S + R' Q
slave stage
master stage
Q'
P'
CLK
Q'
Q'
10 gates
CS 150 - Fall 2000 - Sequential Logic - 17
Edge-Triggered Flip-Flops
More efficient solution: only 6 gates
sensitive to inputs only near edge of clock signal (not while high)
D
negative edge-triggered D
flip-flop (D-FF)
0
R
Clk=1
Q
0
holds D when
clock goes low
D
characteristic equation
Q(t+1) = D
D
R
D
R
Clk=0
Clk=0
S
S
D
D
when clock goes high-to-low
data is latched
new D
new D old D
D
when clock is low
data is held
positive edge-triggered FF
Qpos'
Qneg
negative edge-triggered FF
Qneg'
Timing Methodologies
Rules for interconnecting components and clocks
Guarantee proper operation of system when strictly followed
data
D Q
input
clock
clock
stable changing
data
clock
CS 150 - Fall 2000 - Sequential Logic - 22
D Q
D
CLK
Qedge
D Q
G
Qlatch
CLK
transparent
(level-sensitive)
latch
unclocked
latch
always
level-sensitive
latch
clock high
(Tsu/Th around falling
edge of clock)
master-slave
flip-flop
clock high
(Tsu/Th around falling
edge of clock)
negative
clock hi-to-lo transition propagation delay from falling edge
edge-triggered (Tsu/Th around falling
of clock
flip-flop
edge of clock)
CLK
Tsu Th
20ns 5ns
Tsu
20ns
Th
5ns
Tw 25ns
Tplh
25ns
13ns
Tphl
40ns
25ns
all measurements are made from the clocking event that is,
the rising edge of the clock
CS 150 - Fall 2000 - Sequential Logic - 25
D Q
Q0
D Q
Q1
OUT
CLK
100
IN
Q0
Q1
CLK
Tsu
4ns
Tsu
4ns
Tp
3ns
Q1
Tp
3ns
timing constraints
guarantee proper
operation of
cascaded components
CLK
Th
2ns
Th
2ns
CS 150 - Fall 2000 - Sequential Logic - 27
Clock Skew
The problem
Correct behavior assumes next state of all storage elements
determined by all storage elements at the same time
tThis is difficult in high-performance systems because time
for clock to arrive at flip-flop is comparable to delays
through logic
Effect of skew on cascaded flip-flops:
100
In
CLK1 is a delayed
version of CLK0
Q0
Q1
CLK0
CLK1
original state: IN = 0, Q0 = 1, Q1 = 1
due to skew, next state becomes: Q0 = 0, Q1 = 0, and not Q0 = 0, Q1 = 1
CS 150 - Fall 2000 - Sequential Logic - 28
Asynchronous circuits
Inputs, state, and outputs sampled or changed independently
of a common reference signal (glitches/hazards a major
concern)
E.g., R-S latch
Synchronization Failure
Occurs when FF input changes close to clock edge
FF may enter a metastable state neither a logic 0 nor 1
May stay in this state an indefinite amount of time
Is not likely in practice but has some probability
logic 1
logic 0
logic 1
logic 0
oscilloscope traces demonstrating
synchronizer failure and eventual
decay to steady state
asynchronous
input
synchronized
input
Q
Clk
synchronous system
D Q
Synchronizer
Q0
Async
Input
D Q
D Q
Clock
Clock
D Q
Q1
Clock
Q0
D Q
Q1
Clock
In
In is asynchronous and
fans out to D0 and D1
Q0
Q1
CLK
Flip-Flop Features
Reset (set state to 0) R
(set-dominant)
(reset-dominant)
Registers
Collections of flip-flops with similar controls and logic
Stored values somehow related (e.g., form binary value)
Share clock, reset, and set lines
Similar logic at each stage
Examples
Shift registers
Counters
OUT1
OUT2
OUT3
OUT4
"0"
R S
R S
R S
R S
D Q
D Q
D Q
D Q
CLK
IN1
IN2
IN3
IN4
Shift Register
Holds samples of input
Store last 4 input values in sequence
4-bit shift register:
OUT1
IN
D Q
D Q
OUT2
D Q
CLK
OUT3
D Q
OUT4
left_in
left_out
clear
s0
s1
right_out
right_in
clock
input
s1
0
1
0
1
function
hold state
shift right
shift left
load new input
to N+1th
cell
Q
D
clear
1
0
0
0
0
s0
0
0
1
1
s1
0
1
0
1
new value
0
output
output value of FF to left (shift right)
output value of FF to right (shift left)
input
CLK
CLEAR
s0 and s1
0 1 2 3
control mux
Q[N-1]
(left)
Input[N]
Q[N+1]
(right)
parallel inputs
serial transmission
Pattern Recognizer
Combinational function of input samples
In this case, recognizing the pattern 1001 on the single input
signal
OUT
OUT1
IN
D Q
D Q
OUT2
D Q
OUT3
D Q
CLK
OUT4
Counters
Sequences through a fixed set of patterns
In this case, 1000, 0100, 0010, 0001
If one of the patterns is its initial state (by loading or
set/reset)
OUT1
IN
D Q
D Q
OUT2
D Q
OUT3
OUT4
D Q
CLK
D Q
D Q
OUT2
D Q
CLK
CS 150 - Fall 2000 - Sequential Logic - 42
OUT3
D Q
OUT4
Binary Counter
Logic between registers (not just multiplexer)
XOR decides when bit should be toggled
Always for low-order bit, only when first bit is true for
second bit, and so on
OUT1
D Q
OUT2
D Q
OUT3
D Q
CLK
"1"
OUT4
D Q
EN
(2) RCO goes high
D
C
RCO
B
QD
A
QC
LOAD QB
QA
CLK
CLR
Offset Counters
Starting offset counters
use of synchronous load
e.g., 0110, 0111, 1000, 1001, 1010,
1011, 1100, 1101, 1111, 0110, . . .
"1"
"0"
"1"
"1"
"0"
"0"
EN
RCO
QD
D
QC
C
QB
B
QA
A
LOAD
CLK
CLR
"1"
"0"
"0"
"0"
"0"
EN
D
C
B
A
LOAD
CLK
CLR
RCO
QD
QC
QB
QA
Timing methodologies
Use of clocks
Cascaded FFs work because prop delays exceed hold times
Beware of clock skew
Basic registers
Shift registers
Pattern detectors
Counters
CS 150 - Fall