You are on page 1of 21

11/15/2004 EE 42 fall 2004 lecture 32 1

Lecture #32 Registers, counters etc.


Last lecture:
Digital circuits with feedback
Clocks
Flip-Flops
This Lecture:
Edge triggers
Registers
shift registers
counters
11/15/2004 EE 42 fall 2004 lecture 32 2
Edge triggering
The last lecture ended with how a flip flop
could be designed by using two latches
which cascaded in a master-slave
relationship.
Another way of creating an edge triggered
flip flop is to use logic with feedback, as in
the following slide.
11/15/2004 EE 42 fall 2004 lecture 32 3
Q
D
Clk=1
R
S
Q
negative edge-triggered D
flip-flop (D-FF)
4-5 gate delays
must respect setup and hold time
constraints to successfully
capture input
characteristic equation
Q(t+1) = D
holds D' when
clock goes low
holds D when
clock goes low
Edge-Triggered Flip-Flops
More efficient solution: only 6 gates
sensitive to inputs only near edge of clock signal (not while high)
11/15/2004 EE 42 fall 2004 lecture 32 4
positive edge-triggered FF
negative edge-triggered FF
D
CLK
Q
pos
Q
pos'
Q
neg
Q
neg'
100
Edge-Triggered Flip-Flops
(contd)
Positive edge-triggered
Inputs sampled on rising edge; outputs change after rising edge
Negative edge-triggered flip-flops
Inputs sampled on falling edge; outputs change after falling edge
11/15/2004 EE 42 fall 2004 lecture 32 5
Timing Methodologies
As we have seen, there are several different ways
of designing a sequential logic circuit. In general,
each circuit will stick with a set of rules which are
designed to achieve consistently accurate results.
A set of rules for interconnecting components and
clocks are adopted which will guarantee proper
operation of system when strictly followed.
Approach depends on building blocks used for
memory elements. Edge-triggered flip-flops are
found in programmable logic devices
Many custom integrated circuits focus on level-
sensitive latches
11/15/2004 EE 42 fall 2004 lecture 32 6
Basic rules for correct timing:
Inputs to flip-flops are stable and correct for
and interval around the time of sampling
(avoid asynchronous inputs wherever
possible)
No flip-flop changes state more than once per
clocking event


11/15/2004 EE 42 fall 2004 lecture 32 7
clock
data
changing stable
input
clock
T
su
T
h
clock
data
D Q D Q
Definition: Set up time/hold time
To ensure that the data signal is captured
accurately, the data must be stable for an
time t
su
(set up) before the edge, and kept
constant for a time t
h
(hold) after the edge.
11/15/2004 EE 42 fall 2004 lecture 32 8
behavior is the same unless input changes
while the clock is high
D Q
CLK
positive
edge-triggered
flip-flop
D Q
G
CLK
transparent
(level-sensitive)
latch
D

CLK

Q
edge

Q
latch
Comparison of Latches and
Flip-Flops
11/15/2004 EE 42 fall 2004 lecture 32 9
Type When inputs are sampled When output is valid
unclocked always propagation delay from input change
latch
level-sensitive clock high propagation delay from input change
latch (T
su
/T
h
around falling or clock edge (whichever is later)
edge of clock)
master-slave clock high propagation delay from falling edge
flip-flop (T
su
/T
h
around falling of clock
edge of clock)
negative clock hi-to-lo transition propagation delay from falling edge
edge-triggered (T
su
/T
h
around falling of clock
flip-flop edge of clock)
Comparison of Latches and
Flip-Flops (contd)
11/15/2004 EE 42 fall 2004 lecture 32 10
all measurements are made from the clocking event that is,
the rising edge of the clock
Typical Timing Specifications
Positive edge-triggered D flip-flop
Setup and hold times
Minimum clock width
Propagation delays
T
h

0.5 ns
T
w
1ns
T
su

0.8 ns
D
CLK
T
su

0.8 ns
T
h

0.5 ns
11/15/2004 EE 42 fall 2004 lecture 32 11
IN
Q0
Q1
CLK
100
Cascading Edge-triggered Flip-Flops
Shift register
New value goes into first stage
While previous value of first stage goes into second stage
The propagation time must be longer than the hold time
CLK
IN
Q0 Q1
D Q D Q OUT
11/15/2004 EE 42 fall 2004 lecture 32 12
timing constraints
guarantee proper
operation of
cascaded components
assumes infinitely fast
distribution of the clock
Cascading Edge-triggered Flip-
Flops (contd)
Why this works
Propagation delays exceed hold times
Clock width constraint exceeds setup time
This guarantees following stage will latch current value before it
changes to new value
T
su

4ns
T
p

3ns
T
h

2ns
In
Q0
Q1
CLK
T
su

4ns
T
p

3ns
T
h

2ns
11/15/2004 EE 42 fall 2004 lecture 32 13
original state: IN = 0, Q0 = 1, Q1 = 1
due to skew, next state becomes: Q0 = 0, Q1 = 0, and not Q0 = 0, Q1 = 1
CLK1 is a delayed
version of CLK0
In
Q0
Q1
CLK0
CLK1
100
Clock Skew
The problem
Correct behavior assumes next state of all storage elements
determined by all storage elements at the same time
This 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:
11/15/2004 EE 42 fall 2004 lecture 32 14

Summary of Latches and Flip-
Flops
Development of D-Flip-Flop
Level-sensitive used in custom integrated circuits
can be made with 4 gates
Edge-triggered used in programmable logic devices
Good choice for data storage register
Historically J-K Flip Flop was popular but now never used
Similar to R-S but with 1-1 being used to toggle output (complement state)
Can always be implemented using D-FF
Preset and clear inputs are highly desirable on flip-flops
Used at start-up or to reset system to a known state
11/15/2004 EE 42 fall 2004 lecture 32 15
Flip-Flop Features
Reset (set state to 0) R
Synchronous: D
new
= R' D
old
(when next clock edge arrives)
Asynchronous: doesn't wait for clock, quick but dangerous
Preset or set (set state to 1) S (or sometimes P)
Synchronous: D
new
= D
old
+ S (when next clock edge arrives)
Asynchronous: doesn't wait for clock, quick but dangerous
Both reset and preset
D
new
= R' D
old
+ S (set-dominant)
D
new
= R' D
old
+ R'S (reset-dominant)
Selective input capability (input enable/load) LD or EN
Multiplexer at input: D
new
= LD' Q + LD D
old
Load may/may not override reset/set (usually R/S have priority)
Complementary outputs Q and Q'
11/15/2004 EE 42 fall 2004 lecture 32 16
R S R S R S
D Q D Q D Q D Q
OUT1 OUT2 OUT3 OUT4
CLK
IN1 IN2 IN3 IN4
R S
"0"
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
11/15/2004 EE 42 fall 2004 lecture 32 17
D Q D Q D Q D Q
IN
OUT1 OUT2 OUT3 OUT4
CLK
Shift Register
Holds samples of input
Store last 4 input values in sequence
4-bit shift register:
11/15/2004 EE 42 fall 2004 lecture 32 18
parallel inputs
parallel outputs
serial transmission
Shift Register Application
Parallel-to-serial conversion for serial
transmission
11/15/2004 EE 42 fall 2004 lecture 32 19
D Q D Q D Q D Q
IN
OUT1 OUT2 OUT3 OUT4
CLK
OUT
Pattern Recognizer
Combinational function of input samples
In this case, recognizing the pattern 1001 on
the single input signal
11/15/2004 EE 42 fall 2004 lecture 32 20
D Q D Q D Q D Q
OUT1 OUT2 OUT3 OUT4
CLK
"1"
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
11/15/2004 EE 42 fall 2004 lecture 32 21
Sequential Logic Summary
Fundamental building block of circuits with state
R-S latch, R-S master/slave, D master/slave, edge-triggered D FF
Latch and flip-flop
Timing methodologies
Use of clocks
Cascaded FFs work because prop delays exceed hold times
Beware of clock skew
Asynchronous inputs and their dangers
Synchronizer failure: what it is and how to minimize its impact
Basic registers
Shift registers
Pattern detectors
Counters

You might also like