Upload
gilbert-franklin
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
DIGITAL SYSTEMS
Sequential Logic DesignNovember 28, 2004
Rudolf Tracht and A.J. Han Vinck
Types of logic: combinational
memoryless
combinationalcurrent input Output
Output depends on input only
Types of logic: sequential Mealy machine
Output depends on current input and memory content
current input Outputmemoryless
combinational
memory
For binary logic with n memory elements we have 2n states
The memory elements contain all the information about the past, necessary to account for the system‘s future behavior
Combinational
logic
memory content changes every T seconds
Not present for Moore machine
clock
Clock ( active high )
change state
timeclock
clock edge
Example: Clock frequency = periods/second = 1 MHz (Herz) clock period 1Sec
clock period T
clock frequency 1/T
T
Sequential:
– input A, B– wait for clock edge– observe C
– Input A, B– wait for another clock edge– observe C again: may be different
B
A
Clock
C
stability
• 2 examples
Propagation delay
Q
Q‘
Bistable circuit
01
10
Q 1
Q‘1
Use the freedom to fix output
R
S
Q
T
S R Q T
1 1 last Q last T
0 1 01
1 0 10
0 0 11
from SR = 00 to SR = 11 gives unpredictable next state
„state“
00 01 11 Q = 0
00 10 11 Q = 1
Key idea!
1. avoid SR = 00 as input
2. force SR = 11 if output must be fixed ( use C = 0 )
D
C
R
S
D C R S
0 1 1 0
1 1 0 1
0 0 1 1
1 0 1 1
Result is a sequential device: D-latch
• Used to „freeze“ information depending on control C
D
C
Q
Q‘
C D Q Q‘ D‘+C‘ D+C‘
1 0 0 1 1 0
1 1 1 0 0 1
0 x last Q last Q‘ 1 1
D‘+C‘
D+C‘
data input
control
Ideal Timing for a D-latch
D
C
Q
Follows D
Stores D
C D Q
1 0 0
1 1 1
0 x last Q
Latch is not clock controlled:= asynchronous
sequential device: Flip-Flop
• Flip-flop – output changes at times determined by
clock
clock controlled:= synchronous
Edge-triggered D Flip Flop
D D Qclk C
D
C‘
D CLK Q
0 0
1 1
X 0 last Q
X 1 last Q
C
C‘
QM
master slave
latch latch
Ideal timingIdeal timingQM fixed
Q=QM Q fixed
take over
Cont‘d
• The edge of the clock is used to sample the "D" input & send it to „Q“ (positive edge triggering).
– At all other times the output Q is independent of the input D
– The input must be stable for a short time before the clock edge.
C
C‘
Q output fixed
QM output fixed
No change in D
Q = QM
C‘QM QCD
master slaveC‘
Edge-triggered D Flip Flop
D D Qclk C
D
C‘
D CLK Q
0 0
1 1
X 0 last Q
X 1 last Q
D
CLK
QM
Q
QM
master slave
latch latch
Ideal timingIdeal timing
Cont‘d
• There are also
– Negative-edge triggered D flip flops
– Edge triggered J-K flip flops
J-K flip flop
J
K
D
clk
Q
clk
Edge triggered D and J-K flip flop
D CLK Q Q‘
0 0 1
1 1 0
X 0 last Q last Q‘
X 1 last Q last Q‘
J K CLK Q Q‘
0 1 0 1
1 0 1 0
X X 0 last Q last Q‘
X X 1 last Q last Q‘
0 0 last Q last Q‘
1 1 last Q‘ last Q
D J-K
Application D flip-flop: Shift registers (delay line)
• Serial in, serial out
• Serial in serial out
• Clock
• At each clock tick a new bit is shifted in. (This works only because every element has a certain delay and thus the input is taken before it changes))
• After n ticks the bit appears at the output, is thus a delay by n clock ticks
D Q D Q QD
D-flip-flop
Shift registers cont‘d
• Serial in, parallel out
• Serial in
• Clock
• At each clock tick a new bit is shifted in• Performs a serial to parallel conversion
D Q D Q QD
D-FF D-FF D-FF
Parallel in Serial out
parallel in
clock
sel sel sel sel
Serial out
FF FF FF FF
Parallel-in, parallel-out (2)
D
clkQ
clk
Load/shift
Serial-in
Q
D
Dclk
1-in
2-inFor serial operation
application
• Sampled speech: 8k samples/sec of 8 bit each– converted into serial stream of 64 kbit/s
• Computer serial output bus (e.g. RS-232)
0 1
data
Example
• unit delay: schematic representation
x(t) u(t) = x(t-1)
• exclusive OR
• parallel-to-serial convertor P/S
X(t-1)
R = ½ encoder
u1(t)
u1(t)
• For every input bit we generate 2 output bits
x(t-1) x(t-2)x(t)
clock
State transition graph (1)
1/1011
1/01 0/010/10
10 011/00
1/11 0/1100
0/00
Trellis representation (2)
00 00 00 00
00 00 00 00 0011 11 11 11
01 01 01
10 10 10 1001 01 01
11 11 1110 10
Transition tables (3)
input
0 1
Old state output new state output new state
00 00 00 11 10
01 11 00 00 10
10 10 01 01 11
11 01 01 10 11
General finite state machine
Specified by:
inputs
states
transitions between states
outputs connected to transitions
Analyzed by:
state transition graphs (Markov chains)
state transition tables
State minimization
Q: can we model with fewer states?
are there states that do the same job?
Definition:
two states are equivalent if and only if, for any input of length k, k > 0, they give rise to the same output.
Algorithm for minimizing the state table
Let S be the set of |S| states
Step 1: divide S into groups of states with the same outputs given the inputs. If |S| groups remain, STOP
Step 2:
subdivide every group into subgroups that contain all states that have their transitions to the same groups created in the
previous step
If no group is further subdivided, STOP
otherwise go to step 2.
STOP: uniquely label every remaining group (equivalence class)
exampleinput
0 1 0 1
old new
state state output
1 2 3 0 1
2 1 5 1 0
3 5 8 0 1
4 5 7 1 1
5 6 2 1 0
6 5 1 0 1
7 4 7 1 1
8 2 6 0 1
Step 1:
Group together states with same outputs
(1,3,6,8) (2,4,5,7)
Step 2: form subgroups
(1,3,6,8) (2,5) (4,7)
(1,3,6,8) (2,5) (4) (7)
(1,3,6,8) (2,5) (4) (7)
STOP:
4 Representants: 1, 2, 4, 7
General realization
Combinational circuit that realizes
Output = f(input, old state)
new state = h(input, old state)
N input
s
M outputs
D
D
D
r digits
new stater digits
old state
Sequence delay operator transform
a = a0 a1,..., ak,0,0,0,… A(X) = a0+a1X +...+ak Xk
Y(X) = A(X)*G(X)
A(X)
Application: shift register response with binary input and binary output.
G(X) = 1 + X + X2 , where X is called the delay operator
A(X)
XA(X) X2A(X)clock
G(X) *A(X)
1 a0 a1 ,..., ak
X a0 a1 ,..., ak
X2 a0 a1 ,..., ak-1 ak
1 a0 + a1 X + a2 X2 ,..., ak Xk
X a0 X + a1 X2 ,..., ak Xk+1
X2 a0 X2 + a1 X3 ,..., ak Xk+2
+
+
Periodic sequences
• For a periodic sequence:
A(X) = ( a0+a1X +...+ak-1 Xk-1 ) (1 + Xk + X2k + X3k + ... )
= ( a0+a1X +...+ak-1 Xk-1 ) / (1 – Xk )
• Note 1: (1 – Xk ) (1 + Xk + X2k + X3k + ... ) = 1
• Note 2: When we do calculations modulo-2, the – and + sign have the same effect.
Feedback shift register
• A binary linear feedback shift register 2 delay elements or flip-flops (we do not draw
the
clock anymore)
output
• Homework: – what is in general the maximum period of the output– Calculate the output sequence
XOR or modulo 2 calculations
1 0
Design
• Step 0: proper problem description• Step 1: construct
– state transition diagram– state transition table
• Step 2: choose flip-flop type for state memory• Step 3: derive logic equations from table for
• Next state• Output
Example: parity checker
• Problem: determine parity of 8-bits serially
• State diagram:
8 bits serial in Parity = 0 if even # of ones
out
Parity = 1 if odd # of ones
Parity checker
out = 0out=0 out=1
in=0 in=1 in=0
in=1
tables
in
0 1 0 1
old state new state output
Even Even Odd 0 1
Odd Odd Even 1 0
in
0 1 0 1
old state new state output
0 0 1 0 1
1 1 0 1 0Output = new
state
Next = out in
in outOld
clock
CRC-Application
Two standard polynomials called CRC-16 and CRC-CCITT are
• F(X) = 1 +X2 + X15 + X16 CRC-16• F(X) = 1 + X5 + X12 + X16 CRC-CCITT
The CRC calculates
X16A(X) modulo F(X) = subtract F(X) as often as possible from X16A(X),
where A(X) = a0 + a1 X2 + ••• + ak-1 Xk-1
( and coefficient calculations done modulo-2)
How do we implement this?
CRC-encoding
The CRC encoder calculates
{ X16A(X) }modulo F(X) = subtract F(X) as often as possible from X16A(X),
where A(X) = a0 + a1 X2 + ••• + ak-1 Xk-1
( and coefficient calculations done modulo-2)
•We transmit:
– C(X) = [{X16A(X)} modulo F(X) + X16A(X)] = : [ CRC(X) +X16 A(X) ]
Note:Note: C(X) modulo F(X) = 0!
In communication context
• We receive: C(X) E (X)
• We calculate: R(X) = {C(X) E (X)} modulo F(X)
– If R(X) = 0 no error (= assumption!)
– If R(X) 0 error detected
Note: all polynomials are binary and coefficient operations modulo-2
Theorem:
For F(X) of the form 1 + ••• + Xn-k
any error event of length ( n-k ) gives R(X) 0
CRC cont‘d
• The following „clocked“ shift register can be used to implement CRC16:
F(X) = 1 +X2 + X15 + X16
Data in
13 flip-flops
Example: X16 modulo F(X) = 1 + X2 + X15
Question: When is the result A(X) mod F(X) equal to 0?
What does this mean?
Cont‘d
• Example: calculate ( 1 +X2 +X4 +X5 ) modulo ( 1 +X + X3 )
– In binary: ( 1 0 1 0 1 1 ) modulo ( 1 1 0 1 )
The operations in binary are as follows
1 0 1 0 1 1 1 +X2 +X4 +X5
0 0 1 1 0 1 X2 ( 1 +X + X3 )1 0 0 1 1 00 1 1 0 1 0 X ( 1 +X + X3 )
1 1 1 1 0 0 1 1 0 1 0 0 ( 1 +X + X3 ) RESULT: 0 0 1 0 0 0 X2
Homework: draw the corresponding shift register
proof
for an error event length ( n-k ), E (X) has the form X*g(X),
where g(X) has degree < (n-k)
and thus E (X) cannot be a multiple of F(X). OK
Non-systemantic CRC
Encode: C(X) = A(X) F(X)
Receive: R(X) = C(X) E(X)
If R(X) modulo F(X) = 0 ( no error detected ! )
Decode: A‘(X) = R(X) / F(X)
Otherwise declare error
F(X) = 1 +X2 + X15 + X16
A(X)
13 flip-flops
A(X) F(X)
Examples of Polynomial * and /
Assume all coefficient calculations modulo-2 and no clock drawn
A(X) * G(X)
G(X) = ?
A(X)
A(X)
A(X) / F(X)
F(X) = ? Homework: check this
Homework: calculate the responses to A(X) = 1+X 2 +X 3. Can we combine G(X) and F(X) ?