Final Exam Review • Combinational Logic Building Blocks: – Decoders, Encoders, Multiplexers, Demultiplexers
– Implementing functions using decoders, multiplexers. • Combinational Arithmetic Circuits: – Adders, Subtractors, Multipliers, Comparators, shifters.
• Sequential Logic Circuits: – Latches, Flip-Flips.
• Clocked Synchronous State Machines: – State Machine Analysis – State Machine Design • Registers & Counters. EECC341 - Shaaban #1 Final Review Winter 2001 2-20-2002
Binary n-to-2n Decoders • A binary decoder has n inputs and 2n outputs. • Only the output corresponding to the input value is equal to 1.
n inputs
:
n to 2n decoder
:
2n outputs
EECC341 - Shaaban #2 Final Review Winter 2001 2-20-2002
3-to-8 Binary Decoder Truth Table: F0 = x'y'z' x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z F0 F1 F2 F3 F4 F 5 F6 F7 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1
F1 = x'y'z F2 = x'yz' F3 = x'yz F4 = xy'z' F5 = xy'z F6 = xyz'
F0
F7 = xyz
F1 X Y Z
3-to-8 Decoder
F2 F3 F4 F5 F6
x
y
z
F7
EECC341 - Shaaban #3 Final Review Winter 2001 2-20-2002
Implementing Functions Using Decoders • Any n-variable logic function, in canonical sum-of-minterms form can be implemented using a single n-to-2n decoder to generate the minterms, and an OR gate to form the sum. – The output lines of the decoder corresponding to the minterms of the function are used as inputs to the or gate. • Any combinational circuit with n inputs and m outputs can be implemented with an n-to-2n decoder with m OR gates. • Suitable when a circuit has many outputs, and each output function is expressed with few minterms.
EECC341 - Shaaban #4 Final Review Winter 2001 2-20-2002
Implementing Functions Using Decoders • Example: Full adder S(x, y, z) = Σ (1,2,4,7) C(x, y, z) = Σ (3,5,6,7)
3-to-8 0 Decoder 1 x
S2
y
S1
z
S0
2 3 4 5 6 7
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
C 0 0 0 1 0 1 1 1
S 0 1 1 0 1 0 0 1
S
C
EECC341 - Shaaban #5 Final Review Winter 2001 2-20-2002
Encoders • If the a decoder's output code has fewer bits than the input code, the device is usually called an encoder. e.g. 2n-to-n, priority encoders. • The simplest encoder is a 2n-to-n binary encoder, where it has only one of 2n inputs = 1 and the output is the n-bit binary number corresponding to the active input. • For an 8-to-3 binay encoder with inputs I0-I7 the logic expressions of the outputs Y0-Y2 are: Y0 = I1 + I3 + I5 + I7 Y1= I2 + I3 + I6 + I7 Y2 = I4 + I5 + I6 +I7
2n inputs
. . .
Binary encoder
. . .
n outputs
EECC341 - Shaaban #6 Final Review Winter 2001 2-20-2002
8-to-3 Binary Encoder At any one time, only one input line has a value of 1.
Inputs
I0 1 0 0 0 0 0 0 0
I1 0 1 0 0 0 0 0 0
I2 0 0 1 0 0 0 0 0
I3 0 0 0 1 0 0 0 0
I4 0 0 0 0 1 0 0 0
Outputs
I5 0 0 0 0 0 1 0 0
I6 0 0 0 0 0 0 1 0
I7 0 0 0 0 0 0 0 1
y2 0 0 0 0 1 1 1 1
y1 0 0 1 1 0 0 1 1
y0 0 1 0 1 0 1 0 1
I0 I1
Y2 = I4 + I5 + I6 + I7
I2 I3
y1 = I2 + I 3 + I6 + I 7
I4 I5 I6 I7
Y0 = I1 + I3 + I5 + I7
EECC341 - Shaaban #7 Final Review Winter 2001 2-20-2002
Multiplexers • A multiplexer (MUX) is a digital switches which connects data from one of n sources to the output. • A number of select inputs determine which data source is connected to the output. Enable
1Y
D0
Multiplexer EN s bits Select
2Y
SEL Data output
b bits D0 b bits D1 n Data Sources
. . b bits
Y
D1 . . .
. . . bY
Dn-1
Dn-1
SEL
EN
EECC341 - Shaaban #8 Final Review Winter 2001 2-20-2002
4-to-1 MUX Truth table for a 4-to-1 multiplexer: I0 d0 d0 d0 d0
I1 d1 d1 d1 d1
I2 d2 d2 d2 d2
I3 d3 d3 d3 d3
S1 0 0 1 1
S0 0 1 0 1
Y d0 d1 d2 d3
Inputs I0 I1 I2 I3
S1 0 0 1 1
S0 0 1 0 1
Y I0 I1 I2 I3
Inputs 0 4:1 1 MUX Y 2 3 S1 S 0
I0 I1 Output
I2
mux
Y
I3 S1 S 0
select
select
EECC341 - Shaaban #9 Final Review Winter 2001 2-20-2002
4-to-1 MUX Circuit I0
I0
I1
I1 Y
I2
Y
I2 I3
I3 0 1 2 3 2-to-4 Decoder
S1 S0
S1
S0
EECC341 - Shaaban #10 Final Review Winter 2001 2-20-2002
Larger Multiplexers • Larger multiplexers can be constructed from smaller ones. • An 8-to-1 multiplexer can be constructed from smaller multiplexers as shown:
I0 I1 I2 I3
4:1 MUX S1 S 0
I4 I5 I6 I7
4:1 MUX
2:1 MUX
S2
Y
S2 0 0 0 0 1 1 1 1
S1 0 0 1 1 0 0 1 1
S0 0 1 0 1 0 1 0 1
Y I0 I1 I2 I3 I4 I5 I6 I7
S1 S 0
EECC341 - Shaaban #11 Final Review Winter 2001 2-20-2002
Larger Multiplexers • A 16-to-1 multiplexer can be constructed from five 4-to-1 multiplexers:
EECC341 - Shaaban #12 Final Review Winter 2001 2-20-2002
Demultiplexers • Digital switches to connect data from one input source to one of n outputs. • Usually implemented by using n-to-2 n binary decoders where the decoder’s enable line is used for data input of the demultiplexer.
Demux
b bits
Select Data Input
One of n Data Sources selected
Select lines
b bits . . b bits
One of n outputs
s bits
2X4 Decoder
Input data (1bit)
One of four 1-bit outputs
Enable
1-bit 4-output demultiplexer using a 2x4 binary decoder.
EECC341 - Shaaban #13 Final Review Winter 2001 2-20-2002
1-to-4 Demultiplexer Outputs Y0 = D.S1 '.S0' Y1 = D.S1 '.S0 Data D
demux
Y2 = D.S1 .S0' Y3 = D.S1 .S0
S1 So 0 0 0 1 1 0 1 1
Y0 D 0 0 0
Y1 0 D 0 0
Y2 0 0 D 0
Y3 0 0 0 D
S1 S 0 select
Y0 = D.S1 '.S0' S1
2x4 Decoder
S0
Y1 = D.S1 '.S0 Y2 = D.S1 .S0'
E
Y3 = D.S1 .S0
D
EECC341 - Shaaban #14 Final Review Winter 2001 2-20-2002
Implementing n-variable Functions Using 2n-to-1 Multiplexers • Any n-variable logic function, in canonical sum-ofminterms form can be implemented using a single 2n-to-1 multiplexer:
– The n input variables are connected to the mux select lines. – For each mux data input line Ii ( 0 ≤ i ≤ 2n - 1): • Connect 1 to mux input line I i if i is a minterm of the function. • Otherwise, connect 0 to mux input line Ii (because i is not a minterm of the function thus the selected input should be 0). EECC341 - Shaaban #15 Final Review Winter 2001 2-20-2002
Example: 3-variable Function Using 8-to-1 mux • Implement the function an 8-to-1 mux.
F(X,Y,Z) = Σ(1,3,5,6) using
– Connect the input variables X, Y, Z to mux select lines. – Mux data input lines 1, 3, 5, 6 that correspond to function minterms are connected to 1. – The remaining mux data input lines 0, 2, 4, 7 are connected to 0. Mux Data Input Lines
0 1 0 1 0 1 1 0
0 1 2 3 mux 4 5 6 7
X Y Z
F
Mux Select Lines
EECC341 - Shaaban #16 Final Review Winter 2001 2-20-2002
Implementing n-variable Functions Using 2 n-1-to-1 Multiplexers •
Any n-variable logic function can be implemented using a smaller 2 n-1-to-1 multiplexer and a single inverter (e.g 4-to-1 mux to implement 3 variable functions) as follows: – Express function in canonical sum-of-minterms form. – Choose n-1 variables as inputs to mux select lines. – Construct the truth table for the function, but grouping inputs by selection line values (i.e select lines as most significant inputs). – Determine multiplexer input line i values by comparing the remaining input variable and the function F for the corresponding selection lines value i: • Four possible mux input line i values: – Connect to 0 if the function is 0 for both values of remaining variable. – Connect to 1 if the function is 1 for both values of remaining variable. – Connect to remaining variable if function is equal to the remaining variable. – Connect to the inverted remaining variable if the function is equal to the remaining variable inverted.
EECC341 - Shaaban #17 Final Review Winter 2001 2-20-2002
Example: 3-variable Function Using 4-to-1 mux • Implement the function F(X,Y,Z) = Σ(0,1,3,6) using a single 4-to-1 mux and an inverter. – We choose the two most significant inputs X, Y as mux select lines. – Construct truth table: Select Lines Select Lines Value i
0 1 2 3 •
X
Y
Z
F
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 1 0 1 0 0 1 0
Mux Data Input Lines
Mux Input i
1
1
0 1
Z Z
0
2
mux
F
3
0 X Y
Z’
Mux Select Lines
We Determine multiplexer input line i values by comparing the remaining input variable Z and the function F for the corresponding selection lines value i: – – – –
when XY=00 the function F=1 (for both Z=0, Z=1) thus mux input0 = 1 when XY=01 the function F=Z thus mux input1 = Z when XY=10 the function F=0 (for both Z=0, Z=1) thus mux input2 = 0 when XY=11 the function F=Z’ thus mux input3 = Z’
EECC341 - Shaaban #18 Final Review Winter 2001 2-20-2002
Combinational Arithmetic Circuits • Addition: – – – –
Half Adder (HA). Full Adder (FA). Carry Ripple Adders. Carry Look-Ahead Adders.
• Subtraction: – – – –
Half Subtractor. Full Subtractor. Borrow Ripple Subtractors. Subtraction using adders.
• Multiplication: – Combinational Array Multipliers. EECC341 - Shaaban #19 Final Review Winter 2001 2-20-2002
Full Adder •
Adding two single-bit binary values, X, Y with a carry input bit C-in produces a sum bit S and a carry out C-out bit.
Sum S
X XY
00
C-in
01
0
Full Adder Truth Table
1
Inputs
X 0 0 0 0 1 1 1 1
Y 0 0 1 1 0 0 1 1
1
Outputs
C-in 0 1 0 1 0 1 0 1
S 0 1 1 0 1 0 0 1
2
0
C-out 0 0 0 1 0 1 1 1
S(X,Y, C-in) = Σ (1,2,4,7) C-out(x, y, C-in) = Σ (3,5,6,7)
11 6
1
3
1
10
7
4
1
5
1
C-in
Y
S = X’Y’(C-in) + XY’(C-in)’ + XY’(C-in)’ + XY(C-in) S = X ⊕ Y ⊕ (C-in)
Carry C-out
X
XY
00
C-in
01
0
2
1
3
11 6
0 1
1
7
1 1
10 4 5
1
C-in
Y
C-out = XY + X(C-in) + Y(C-in)
EECC341 - Shaaban #20 Final Review Winter 2001 2-20-2002
Full Adder Circuit Using AND-OR X’ Y’
X X’
X
C-in X’ Y C-in’
Y Y’
Y
X
X’YC-in’
Sum S
X Y
C-in C-in’
C-in
X’Y’C-in
Y
C-in’ X Y C-in’
X
XY’C-in’
XYC-in
XY
Y
C-out
Full Adder
C-in
X
XC-in
C-out
C-in Y
S
C-in
YC-in
EECC341 - Shaaban #21 Final Review Winter 2001 2-20-2002
n-bit Carry Ripple Adders •
•
An n-bit adder used to add two n-bit binary numbers can built by connecting in series n full adders. – Each full adder represents a bit position j (from 0 to n-1). – Each carry out C-out from a full adder at position j is connected to the carry in C-in of the full adder at the higher position j+1. The output of a full adder at position j is given by: Sj = Xj ⊕ Yj ⊕ Cj Cj+1 = X j . Yj + Xj . C j + Y . C j
•
In the expression of the sum Cj must be generated by the full adder at the lower position j-1.
•
The propagation delay in each full adder to produce the carry is equal to two gate delays = 2 ∆
•
Since the generation of the sum requires the propagation of the carry from the lowest position to the highest position , the total propagation delay of the adder is approximately: Total Propagation delay
= 2 n∆ ∆
EECC341 - Shaaban #22 Final Review Winter 2001 2-20-2002
4-bit Carry Ripple Adder Inputs to be added
Adds two 4-bit numbers: X = X3 X2 X1 X0 Y = Y3 Y2 Y1 Y0 producing the sum S = S3 S2 S1 S0 , C-out = C4 from the most significant position j=3
X3X2X1X0
C4
C-out
= 2 n∆ ∆ = 8∆ ∆
Total Propagation delay
Y3Y2Y1Y0
4-bit Adder
C0 =0
C-in
S3 S2 S1 S0
or 8 gate delays
Sum Output
Data inputs to be added X3
C4
C-out
Y3
Full C3 C-in Adder S3
X2
C-out
Y2
Full C2 C-in Adder
X1
C-out
S2
Y1
X0
Full C-in Adder S1
C1
C-out
Y0
Full C-in Adder
C0 =0
S0
Sum output
EECC341 - Shaaban #23 Final Review Winter 2001 2-20-2002
Larger Adders • Example: 16-bit adder using 4, 4-bit adders • Adds two 16-bit inputs X (bits X0 to X15), Y (bits Y0 to Y15) producing a 16-bit Sum S (bits S0 to S15) and a carry out C16 from most significant position. Data inputs to be added X (X0 to X15) , Y (Y0-Y15) X3X2X1X0
C16
C-out
Y3Y2Y1Y 0
X3X2X1X0
Y3Y2Y1Y 0
4-bit 4-bit C12 C8 C-in C-in C-out Adder Adder
S3 S2 S1 S0
S3 S2 S1 S0
X3X2X1X0
C-out
Y3Y2Y1Y 0
4-bit C-in Adder
X3X2X1X0
C4
S3 S2 S1 S0
C-out
Y3Y2Y1Y 0
4-bit C-in Adder
C0 =0
S3 S2 S1 S0
Sum output S (S0 to S15)
Propagation delay for 16-bit adder = 4 x propagation delay of 4-bit adder = 4 x 2 n∆ ∆ = 4 x 8∆ ∆ = 32 ∆ or
32 gate delays
EECC341 - Shaaban #24 Final Review Winter 2001 2-20-2002
Carry Look-Ahead Adders
•
The disadvantage of the ripple carry adder is that the propagation delay of adder (2 n∆ ∆) increases as the size of the adder, n is increased due to the carry ripple through all the full adders.
•
Carry look-ahead adders use a different method to create the needed carry bits for each full adder with a lower constant delay equal to three gate delays.
•
The carry out C-out from the full adder at position i or C j+1 is given by:
C-out = C i+1 = Xi . Y i + (Xi + Yi) . Ci •
By defining: – G i = Xi . Y i as the carry generate function for position i (one gate delay) (If G i =1 C i+1 will be generated regardless of the value C i) – Pi = Xi + Yi as the carry propagate function for position i (If Pi = 1 C i will be propagated to C i+1)
•
By using the carry generate function G i and carry propagate function Pi , then C i+1 can be written as:
C-out = C i+1 = •
(one gate delay)
G i + Pi . C i
To eliminate carry ripple the term Ci is recursively expanded and by multiplying out, we obtain a 2-level AND-OR expression for each C i+1
EECC341 - Shaaban #25 Final Review Winter 2001 2-20-2002
Carry Look-Ahead Adders • For a 4-bit carry look-ahead adder the expanded expressions for all carry bits are given by: C1 = G0 + P0.C0 C2 = G1 + P1.C1 = G1 + P1.G0 + P 1.P0.C0 C3 = G2 + P2.G1 + P 2.P1.G0 + P 2.P1.P0.C0 C4 = G3 + P3.G2 + P 3.P2.G1 + P 3 . P2.P1.G0 + P 3.P2.P1.P0.C 0 where
G i = Xi . Yi
P i = Xi + Yi
• The additional circuits needed to realize the expressions are usually referred to as the carry look-ahead logic. • Using carry-ahead logic all carry bits are available after three gate delays regardless of the size of the adder. EECC341 - Shaaban #26 Final Review Winter 2001 2-20-2002
Carry Look-Ahead Circuit
Ci = Gi-1 + Pi-1. Gi-2 + …. + Pi-1.P i-2. …P1 . G0
+
P i-1.P i-2. …P0 . C0
EECC341 - Shaaban #27 Final Review Winter 2001 2-20-2002
Binary Arithmetic Operations Subtraction • Two binary numbers are subtracted by subtracting each pair of bits together with borrowing, where needed. • Subtraction Example:
X 229 Y - 46 183
-
0 0 1 0 1
1 1 0 0
1 1 1 1
1 0 0 1
1 0 1 0
1 1 1 1
0 0 1 1
0 Borrow 1 0 1
EECC341 - Shaaban #28 Final Review Winter 2001 2-20-2002
Full Subtractor •
Subtracting two single-bit binary values, Y, B-in from a single-bit value X produces a difference bit D and a borrow out B-out bit. This is called full subtraction.
Difference D XY
X 0 0 0 0 1 1 1 1
Y 0 0 1 1 0 0 1 1
D 0 1 1 0 1 0 0 1
B-out 0 1 1 1 0 0 0 1
S(X,Y, C-in) = Σ (1,2,4,7) C-out(x, y, C-in) = Σ (1,2,3,7)
01
0
2
0 1
1
Outputs
B-in 0 1 0 1 0 1 0 1
00
B-in
Full Subtractor Truth Table Inputs
X
11 6
1
3
1
10
7
4
1
5
1
B-in
Y
S = X’Y’(B-in) + XY’(B-in)’ + XY’(B-in)’ + XY(B-in) S = X ⊕ Y ⊕ (C-in)
Borrow B-out
X
XY
00
B-in 0
01 2
0 1
1
1
3
1 1
11 6 7
10 4
1
5
B-in
Y
B-out = X’Y + X’(B-in) + Y(B-in)
EECC341 - Shaaban #29 Final Review Winter 2001 2-20-2002
Full Subtractor Circuit Using AND-OR X’ Y’
X X’
X
B-in X’ Y B-in’
Y Y’
Y
X
X’YB-in’
Difference D
X Y
B-in B-in’
B-in
X’Y’B-in
Y
B-in’ X Y B-in’
X’
XY’B-in’
XYB-in
X’Y
Y
B-out
Full Subtractor
B-in
X’
X’B-in
B-out
B-in Y
D
B-in
YB-in
EECC341 - Shaaban #30 Final Review Winter 2001 2-20-2002
n-bit Subtractors An n-bit subtracor used to subtract an n-bit number Y from another n-bit number X (i.e X-Y) can be built in one of two ways: • By using n full subtractors and connecting them in series, creating a borrow ripple subtractor: – Each borrow out B-out from a full subtractor at position j is connected to the borrow in B-in of the full subtracor at the higher position j+1.
• By using an n-bit adder and n inverters: – Find two’s complement of Y by: • Inverting all the bits of Y using the n inverters. • Adding 1 by setting the carry in of the least significant position to 1 – The original subtraction (X - Y) now becomes an addition of X to two’s complement of Y using the n-bit adder. EECC341 - Shaaban #31 Final Review Winter 2001 2-20-2002
4-bit Borrow Ripple Subtractor Inputs X3X2X1X0
Subtracts two 4-bit numbers: Y = Y3 Y2 Y1 Y0 from B4 X = X3 X2 X1 X0 Y = Y3 Y2 Y1 Y0 producing the difference D = D3 D2 D1 D0 , B-out = B4 from the most significant position j=3
B-out
Y3Y2Y1Y0
4-bit B-in Subtractor
B0 =0
D3 D2 D1 D0
Difference Output D
Data inputs to be subtracted X3
B4
B-out Full
Y3
B-in
X2 B3
B-out Full
Y2
B-in
Subtractor
Subtractor
D3
D2
X1 B2
B-out Full
Y1
B-in
Subtractor
D1 Difference output D
X0 B1
B-out Full
Y0
B-in
B0 =0
Subtractor
D0
EECC341 - Shaaban #32 Final Review Winter 2001 2-20-2002
4-bit Subtractor Using 4-bit Adder Inputs to be subtracted Y3 X3 X2 X1
C4
C-out
Y2
Y1
Y0
X0
4-bit Adder S3
S2
S1
S0
D3
D2 D1
D0
C-in
C0 = 1
Difference Output
EECC341 - Shaaban #33 Final Review Winter 2001 2-20-2002
Binary Multiplication •
Multiplication is achieved by adding a list of shifted multiplicands according to the digits of the multiplier. • Ex. (unsigned) X3 X2 X1 X0 11 1011 multiplicand (4 bits) x Y3 Y2 Y1 Y0 X 13 X 1101 multiplier (4 bits) __________________________ -------------------------X3.Y0 X2.Y0 X1.Y0 X0.Y0 33 101 1 X3.Y1 X2.Y1 X1.Y1 X0.Y1 11 0000 X3.Y2 X2.Y2 X1.Y2 X0.Y2 X3.Y3 X2.Y3 X1.Y3 X0.Y3 ______ 1011 143 1011 P7 P6 P5 P4 P3 P2 P1 P0 --------------------10001111 Product (8 bits)
_______________________________________________________________________________________________________________________________________________
• An n-bit X n-bit multiplier can be realized in combinational circuitry by using an array of n-1 n-bit adders where is adder is shifted by one position. • For each adder one input is the multiplied by 0 or 1 (using AND gates) depending on the multiplier bit, the other input is n partial product bits.
EECC341 - Shaaban #34 Final Review Winter 2001 2-20-2002
4x4 Array Multiplier
EECC341 - Shaaban #35 Final Review Winter 2001 2-20-2002
Combinational Comparators • Comparing two binary inputs A, B each n bits for equality (i.e A = B) is a common operation in computers. • A single output combinational circuit to accomplish this can be constructed using n 2-input XNOR gates for bit-wise comparison plus one n-input AND gate. The output = 1 if A = B • This can also be done by subtraction (A - B) and checking for a zero result using a single n-input NOR gate. • Example: 1-bit comparator: A, B 1-bit each. – The 1-bit comparison requires a single XNOR gate
Truth table:
Output
A 0 0 1 1
(A ⊕ B)’ 1 0 0 1
B 0 1 0 1
A B
(A ⊕ B)’ Output
1-bit comparator EECC341 - Shaaban #36 Final Review Winter 2001 2-20-2002
Example: 4-bit Comparator Compares A = A3 A2 A1 A0 with B = B3 B2 B1 B0 Output = 1 if A = B A3 B3
A2 B2
Comparator Output
A1 B1
A0 B0
EECC341 - Shaaban #37 Final Review Winter 2001 2-20-2002
Combinational Shift Circuits • An n-bit shift circuit (shifter) has a single n-bit data input A, and a single n-bit output R and a number of control inputs to determine the shift amount (0 to n-1). • Possible shift operations include: – Shift left or right: • Arithmetic right shift (the sign bit is shifted in), • logic shift (0 is shifted in) • Rotate left or right. • Example: Original data input A = 11011 • Shift left by one : 10110 • Logic shift right by one: 01101 • Arithmetic shift right by one: 11101 • Rotate left by one: 10111 • Combinational shift circuits are usually constructed using a number of levels of multiplexeres.
EECC341 - Shaaban #38 Final Review Winter 2001 2-20-2002
Example: Combinational 8-Bit Right Shifter Basic Building Block 2-to-1 Mux
A
B
1
0
S2 S1 S0 shift amount from 0 to 7
Mux select S
Three levels of Muxes used D A7 Connect to: 0 for logic right shift or to A7 for arithmetic right shift or to A0 - A6 for rotate right
{
A6
A5
A4
A3
A2
A1
S2 S1 S0
A0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
R7
R6
R5
R4
R3
R2
R1
•
Propagation delay: 2 gate delays per level x 3 levels = 6 gate delays
•
How many Mux levels for 32-bit shifter? Propagation delay?
R0
EECC341 - Shaaban #39 Final Review Winter 2001 2-20-2002
Sequential Logic Circuits Combinational outputs
Memory outputs
Combinational logic
Memory elements
Inputs
Sequential circuit = Combinational logic + Memory Elements Current State of A sequential Circuit: Value stored in memory elements (value of state variables). State transition: A change in the stored values in memory elements thus changing the sequential circuit from one state to another state.
EECC341 - Shaaban #40 Final Review Winter 2001 2-20-2002
Sequential Circuit Buliding Blocks:
Generic Memory Elements •
A Memory Element: A logic device that can remember a single-bit value indefinitely, or change its value on command from its inputs. command
Memory element
Q
Memory Element Output: stored single-bit value
•
•
•
The output Q of the memory element represents the value stored in the memory element. This is also called the state variable of the memory elements. A memory element can be in one of two possible states: – Q = 0 (the memory element has 0 stored), also said be in state 0. – Q =1 (the memory element has 1 stored), also said to be in state 1. The commands to the memory element formed by its input(s) may include: – Set: Store 1 (Q=1) in the memory element. – Reset: Store 0 (Q=0) in the memory element. – Flip: Change stored value from 0 to 1 or from 1 to 0. – Hold value: Memory value does not change. Memory Element state transition: A change in the stored value from 0 to 1, or from 1 to 0 such as that caused by a flip command.
EECC341 - Shaaban #41 Final Review Winter 2001 2-20-2002
Sequential Circuit Memory Elements: Latches, Flip-Flops • Latches and flip-flops are the basic single-bit memory elements used to build sequential circuit with one or two inputs/outputs, designed using individual logic gates and feedback loops. • Latches:
– The output of a latch depends on its current inputs and on its previous inputs and its change of state can happen at any time when its inputs change. •
Flip-Flops:
– The output of a flip-flop also depends on current and previous input but the change in output (change of state or state transition) occurs at specific times determined by a clock input. EECC341 - Shaaban #42 Final Review Winter 2001 2-20-2002
Sequential Circuit Memory Elements: Latches, Flip-Flops
• Latches: – S-R Latch – S-R Latch With Enable – D-Latch • Flip-Flops: – Edge-Triggered D Flip-Flop – Master/Slave S-R Flip-Flop – Master/Slave J-K Flip-Flop – Edge-Triggered J-K Flip-Flop – T Flip-Flop With Enable EECC341 - Shaaban #43 Final Review Winter 2001 2-20-2002
S-R Latch • An S-R (set-reset) latch can be built using two NORgates forming a feedback loop. • The output of the S-R latch depends on current as well as previous inputs or state, and its state (value stored) can change as soon as its inputs change. R
Function Table
Q
QN
S
S 0 0 1 1
R 0 1 0 1
Q last Q 0 1 0
QN Last QN 1 0 0
Circuit
EECC341 - Shaaban #44 Final Review Winter 2001 2-20-2002
S-R Latch With Enable • Since the S-R latch is responsive to its inputs at all times an enable line C is used to disable or enable state transitions. • Behaves similar to a regular S-R latch when enable C=1 S
Circuit
Q Enable C
QN R
Function Table
S C
R
Q Q
S 0 0 1 1 x
R 0 1 0 1 x
C 1 1 1 1 0
Q last Q 0 1 0 last Q
QN last QN 1 0 0 last QN
Logic Symbol
EECC341 - Shaaban #45 Final Review Winter 2001 2-20-2002
D-Latch • Similar to S-R latch with an enable line, but both S, R are generated from one input D (data) and an inverter. • Stores the value of its input D when enable C =1. Function Table
D
C 1 1 0
D 0 1 x
Q 0 1 Last Q
QN 1 0 Last QN
Q C D
Q
C
Q
QN Logic Symbol Circuit
EECC341 - Shaaban #46 Final Review Winter 2001 2-20-2002
Edge-Triggered D Flip-Flop • Uses a pair of D latches and inverters. • Similar in behavior to a D latch except that output and state changes happen at the rising or falling edge of an input clock. • A D Flip-Flop triggered on the rising edge of the clock is given by: Master Latch D
D
Q
C
Q
Slave Latch QM
D
D
Q
Q
C
Q
QN
Q CLK Q
Logic Symbol
CLK
Function Table
Clock Circuit
D CLK Q 0 0 1 1 x 0 Last Q x x Last Q
QN 1 0 Last QN Last QN
EECC341 - Shaaban #47 Final Review Winter 2001 2-20-2002
Master/Slave S-R Flip-Flop • S-R latches are substituted for the D latches in the negative-edge triggered D flip flop Master Latch S
S C
R
R
CLK
Q Q
Slave Latch QM
Circuit
S C
R
Q
Q
Q
QN
Function Table
S C
R
Q Q
S x 0 0 1 1
R x 0 1 0 1
C 0
Q last Q last Q 0 1 undef.
QN last QN last QN 1 0 undef.
Logic Symbol
EECC341 - Shaaban #48 Final Review Winter 2001 2-20-2002
Master/Slave J-K Flip-Flop • Solves the problem when both S=R=1 • When J=K=1 the last state is inverted. Master Latch J
S C
K
R
Q Q
Slave Latch QM
S C
R
Circuit
Q
Q
Q
QN
CLK Function Table
S C
R
Q Q
Logic Symbol
J K x x 0 0 0 1 1 0 1 1
C 0
Q QN last Q last QN last Q last QN 0 1 1 0 last QN last Q
EECC341 - Shaaban #49 Final Review Winter 2001 2-20-2002
Edge Triggered J-K Flip-Flop • Created from an edge-triggered D flip-flop Circuit
J D
K
Q
Q
QN
CLK Q
CLK Function Table
J K x x x x 0 0 0 1 1 0 1 1
C 0 1
Q last Q last Q last Q 0 1 last QN
QN last QN last QN last QN 1 0 last Q
Logic Symbol
j k
Q CLK Q
EECC341 - Shaaban #50 Final Review Winter 2001 2-20-2002
T Flip-Flop With Enable • Changes state on every clock cycle (rising edge of T).
D
En
Q
CLK Q
T
Q
Circuit
QN
OR Function Table
EN T
j k
Q CLK Q
Q QN
T En x 0 1
Q QN last Q last QN last QN last Q
EECC341 - Shaaban #51 Final Review Winter 2001 2-20-2002
Clocked Synchronous State-Machines • Such machines have the characteristics: – Sequential circuits designed using flip-flops. – All flip-flops use a common clock (clocked synchronous). – A machine using n flip-flops (state memory) has n state variables (the outputs of the flip-flops) and 2n states. – In general, the next state and output of the machine both depend on the current state of the machine and on the current input: Next state = F(current state, input) output = G(current state, input) This type of state machine is called Mealy Machine – In some cases the next output depends only on the current state and not directly on the current input –
Next state = F(current state, input) output = G(current state) Such machines are called Moore machines.
EECC341 - Shaaban #52 Final Review Winter 2001 2-20-2002
Clocked Synchronous State-Machine Model (Mealy machine)
inputs
Next-state Logic
excitation
State Memory
current state
F
Output Logic
outputs
G clock
State memory: Usually edge-triggered D or JK flip-flops
clock
Moore Machine
EECC341 - Shaaban #53 Final Review Winter 2001 2-20-2002
Latch/Flip-Flop Characteristic Equations Device S-R latch D latch Edge-triggered D flip-flop Master/Slave S-R flip-flop Master/Slave J-K flip flop Edge Triggered J-K flip-flop T flip-flop T flip-flop with enable
Characteristic Equations Q* = S+R’.Q Q* = D Q* = D Q* = S+R’.Q Q* = J.Q’ + K’.Q Q* = J.Q’ + K’.Q Q* = Q’ Q* = EN.Q’ + EN’.Q
EECC341 - Shaaban #54 Final Review Winter 2001 2-20-2002
Clocked Synchronous State-machine Analysis Given the circuit diagram of a state machine: 1
Analyze the combinational logic to determine flip-flop input (excitation) equations: Di = Fi (Q, inputs) – The input to each flip-flop is based upon current state and circuit inputs.
2
Substitute excitation equations into flip-flop characteristic equations, giving transition equations: Qi* = Hi( Di )
3
From the circuit, find output equations: Z = G (Q, inputs) – The outputs are based upon the current state and possibly the inputs.
4
Construct a state transition/output table from the transition and output equations: – Similar to truth table. – Present state on the left side. – Outputs and next state for each input value on the right side. – Provide meaningful names for the states in state table, if possible.
5
Draw the state diagram which is the graphical representation of state table.
EECC341 - Shaaban #55 Final Review Winter 2001 2-20-2002
Basic Format:
State Diagram
State
Moore 0
Format: Arc = input X Node = state/output Q
Output
1
A 0
Input
B 1
Mealy
0, 1
1/1
0/0
A
B 0 / 1, 1 / 0
Format: Arc = input X / mealy output Y Node = state
EECC341 - Shaaban #56 Final Review Winter 2001 2-20-2002
State Machine Analysis Example Analyze the state machine: 1
Input (or excitation) equations: D0 = Q1’. X
x
D
Q
Q1
Q'
Q1'
D1 = Q1 . x + Q0 . x
2
Characteristic equations: Q0* = D0 Q1* = D1
D
CP
Q
Q0
Q'
Q0'
Find State equations: Q0* = Q1’. x Q1* = Q1 . x + Q0 . x
y
3
Output equation: y = (Q0 + Q1) . x'
This is a Mealy Machine since output = G(current state, input)
EECC341 - Shaaban #57 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 4 From the state equations and output equation, construct the state transition/output table:
Q0* = Q1’. x Q1* = Q1 . x + Q0 . x Output equation: y = (Q0 + Q1) . x'
Input
x
State equations:
Q1 Q0
0
1
0
0
00,0
01,0
0
1
00,1
11,0
1
0
00,1
10,0
1
1
00,1
10,0
Current State
Q1* Q0* , y
Next State when x =0 Output for current state when x =0
Next State when x =1
Output for current state when x =1
EECC341 - Shaaban #58 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 5
Draw the state diagram of the state machine.
state transition/output table
0/0
x Q1 Q0
state diagram
0/1
0
1
0
0
00,0
01,0
0
1
00,1
11,0
1
0
00,1
10,0
1
1
00,1
10,0
Q1* Q0* , y
00 1/0
0/1
01
1/0 10
0/1 1/0
1/0 11
Arc = input x / output y Node = state
EECC341 - Shaaban #59 Final Review Winter 2001 2-20-2002
Clocked State-machine Analysis: State Naming • State Naming:
– Optionally name the states and substitute state names S for state-variable combinations in transition/output table and in state diagram. – Example: For a circuit with two flip-flops: Q1 Q0 State Name 0 0 A 0 1 B 1 0 C 1 1 D EECC341 - Shaaban #60 Final Review Winter 2001 2-20-2002
Clocked State-machine Analysis Example: Transition/Output Table Using State Names For the last example naming The States: Transition/output Table:
Q1 Q0 0 0 0 1 1 0 1 1
State Name A B C D
Transition/output Table using state names:
x Q1 Q0
x
0
1
S
0
1
A
0
0
00,0
01,0
A
A,0
B,0
B
0
1
00,1
11,0
B
A,1
D,0
C
1
0
00,1
10,0
C
A,1
C,0
D
1
1
00,1
10,0
D
A,1
C,0
Q1* Q0* , y
S* , y
EECC341 - Shaaban #61 Final Review Winter 2001 2-20-2002
Clocked State-machine Analysis Example: State Diagram Using State Naming Q1 Q0 0 0 0 1 1 0 1 1
Naming The States:
State Diagram without state naming:
0/0 0/1 00 1/0
0/1
01
0/1 1/0
State Name A B C D
State Diagram with state naming:
1/0
0/0
10 1/0 11
0/1
A 1/0
0/1
B
0/1 1/0
1/0 C 1/0
D
Arc = input x / output y Node = state
EECC341 - Shaaban #62 Final Review Winter 2001 2-20-2002
Clocked State-machine Analysis:
State Machine Timing Diagram •
• •
•
The timing diagram for a state machine graphically shows the state machine response in terms of state variables and output signals vs. time for given time-varying input signals and a given initial state. State machine timing diagrams can be generated using transition/output tables or state diagrams. Timing diagrams can be used to account for both combinational and flip-flop propagation delays. Example: For the state machine in the previous example show the timing diagram for the following input, assuming an initial state A and ignoring propagation delays: Cycle: 0
1
2
3
4
5
6
7
1
Clock 0 Time 1
Input X 0
EECC341 - Shaaban #63 Final Review Winter 2001 2-20-2002
State Machine Timing Diagram Example Cycle: 0
1
2
3
4
5
6
7
1
Clock 0 Time 1
Input X 0 1
Q1 0 1
Q0
A
B
D
C
A
A
B
A
0
Output Y
EECC341 - Shaaban #64 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 2 Analyze the state machine: X D0
Y Q2’
D
Q
Z1
Q0
CLK Q
D1 Q0
D
Q
Q1
CLK Q
D2 Q1
D
Q
CLK Q
Q2
Z2
Q2’
CLK
Input Logic F
State Memory
Output Logic G
EECC341 - Shaaban #65 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 2 Excitation Equations D0 = X . Y’.Q2 D1 = X . Q0 D2 = Y’ + Q1
1
2
Characteristic Equations Q0* = D0 Q1* = D1 Q2* = D2
State or Transition Equations Q0* = D0 = X . Y’ . Q2’ Q1* = D1 = X . Q0 Q2* = D2 = Y’ + Q1
3
Output Equations Z1 = X . Q0 + Q1’ Z2= (Q1 . Q2)’
EECC341 - Shaaban #66 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 2 4 From the state equations and output equation, construct the state transition/output table: state name A B C D E F G H
XY Q2 0 0 0 0 1 1 1 1
Q1 Q0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1
00 01 100, 11 000, 11 100, 11 000, 11 100, 01 100, 01 100, 01 100, 01 100, 11 000, 11 100, 11 000, 11 100, 00 100, 00 100, 00 100, 00
11 000, 11 010, 11 100, 01 110, 11 000, 11 010, 11 100, 00 110, 10
10 101, 11 111, 11 101, 01 111, 11 100, 11 110, 11 100, 00 110,10
Q2* Q1* Q0*, Z1 Z2 (Next State, Outputs) Transition Equations Q0* = D0 = X . Y’ . Q2’ Q1* = D1 = X . Q0 Q2* = D2 = Y’ + Q1
Output Equations Z1 = X . Q0 + Q1’ Z2= (Q1 . Q2)’
EECC341 - Shaaban #67 Final Review Winter 2001 2-20-2002
State-machine Analysis Example 2: Transition/Output Table Using State Names XY S A B C D E F G H
00 E, 11 E, 11 E, 01 E, 01 E, 11 E, 11 E, 00 E, 00
01 11 A, 11 A, 11 A, 11 C, 11 E, 01 E, 01 E, 01 G, 11 A, 11 A, 11 A, 11 C, 11 E, 00 E, 00 E, 00 G, 10 S*, Z1 Z2
10 F, 11 H, 11 F, 01 H, 11 E, 11 G, 11 E, 00 G,10
EECC341 - Shaaban #68 Final Review Winter 2001 2-20-2002
State-machine Analysis Example 2: State Diagram (incomplete) Y (11)
(11) X’ Y
B
X’ Y’ (11)
X Y’ (11)
A XY’ (11)
X Y (11)
X’Y’ (11)
C X’+Y (01)
XY’ (01)
H XY (11)
G
XY’ (11)
D X’ (01)
E
F Arc: input expression (outputs) = expression (Z1 /Z2)
EECC341 - Shaaban #69 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 3 Analyze the state machine: X J1 Y
J
Q
K
Q
Q1
Z
K1 J2 K2
Q2 J
Q
K
Q
CLK
EECC341 - Shaaban #70 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 3 Excitation Equations J1 = X K1 = X·Y J2 = X’ K2 = 0
1 2
Characteristic Equations Q*= J·Q’ + K’·Q Q1*= J1·Q1’ + K1’·Q1 Q2* = J2·Q2’ + K2’·Q2
Transition Equations Q1* = X·Q1’ + (X·Y)’ ·Q1 = X·Q1’ + X’·Q1 + Y’·Q1 Q2* = X’·Q2’ + 0’·Q2 = X’·Q2’ + Q2
3 Output Equation
Z = X·Q1 + Q2
EECC341 - Shaaban #71 Final Review Winter 2001 2-20-2002
State Machine Analysis Example 3 4 From the state equations and output equation, construct the state transition/output table: XY S
Q1 Q2
00
01
11
10
A
0
0
01,0
01,0
10,0
10,0
B
0
1
01,1
01,1
11,1
11,1
C
1
0
11,0
11,0
00,1
10,1
D
1
1
11,1
11,1
01,1
11,1
Q1* Q2*, Z Transition Equations Q1* = X·Q1’ + X’·Q1 + Y’·Q1 Q2* = X’·Q2’ + Q2
Output Equation
Z = X·Q1 + Q2
EECC341 - Shaaban #72 Final Review Winter 2001 2-20-2002
State-machine Analysis Example 3: Transition/Output Table Using State Names XY S
00
01
11
10
A
B,0
B,0
C,0
C,0
B
B,1
B,1
D,1
D,1
C
D,0
D,0
A,1
C,1
D
D,1
D,1 S*, Z
B,1
D,1
EECC341 - Shaaban #73 Final Review Winter 2001 2-20-2002
State-machine Analysis Example 3: State Diagram Arc Format: inputs xy output z
00,01 0 A 10,11 1
11 1 00,01,10 1
B
D
00,01 0
11 1
00,01 1
10,11 0 C
10 1
EECC341 - Shaaban #74 Final Review Winter 2001 2-20-2002
State Machine Design Procedure 1. Build state/output table (or state diagram) from word description using state names. 2. Minimize number of states (optional). 3. State Assignment: Choose state variables and assign bit combinations to named states. 4. Build transition/output table from state/output table (or state diagram) by substituting state variable combinations instead of state names. 5. Choose flip-flop type (D, J-K, etc.) 6. Build excitation table for flip-flop inputs from transition table. 7. Derive excitation equations from excitation table. 8. Derive output equations from transition/output table. 9. Draw logic diagram with excitation logic, output logic, and state memory elements. EECC341 - Shaaban #75 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector • Word description (110 input sequence detector): – Design a state machine with input A and output Y. – Y should be 1 whenever the sequence 1 1 0 has been detected on A on the last 3 consecutive rising clock edges (or ticks). – Otherwise, Y = 0 – Note: this is a Moore machine, that is the output, Y, depends only on inputs at previous clocks rising edges , not on the current input.
• Timing diagram interpretation of word description (only rising clock edges are shown): A
0
1
1
0
0
1
1
1
0
1
1
1
CLK Y
EECC341 - Shaaban #76 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step1: Choosing States • Possible states (What does the state machine need to remember?): – – – – –
Initial No1s First1 Two1s ALL
: : : : :
power up, no clocks yet first 1 not found first 1 found at least 2 consecutive 1s found found 1 1 0
Y=0 Y=0 Y=0 Y=0 Y=1
• Are all the states needed? – Notice: Initial is equivalent to NO1s – We can drop the state Initial and replace it with state No1s
EECC341 - Shaaban #77 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step 1: State/Output Table and Diagram Reset 0
State Table
1 NO1s
A S
0
1
Y
No1s
No1s
First1
0
First1
No1s
Two1s
0
Two1s
ALL
Two1s
0
ALL
No1s
First1
1
S*
State Diagram
0
First1 0
0
1 0
1
ALL
Two1s
1
0
1
0
Format: Arc: input A Node: state/output Y
EECC341 - Shaaban #78 Final Review Winter 2001 2-20-2002
Step3: State Assignment Considerations • Why does the choice of state assignment matter? – Has a big effect on the complexity of excitation and output equations and thus on the amount of combinational logic needed. • How to find the best state assignment? – The only known way is to try all assignments and determine the resulting equations. • N = 2: (22)! = 4! = 24 assignments for 2 state bits • N = 3: (23)! = 8! = 40,320 assignments for three state bits. • N = 4: (24)! = 16! = 20,922,789,888,000 assignments for 4 state bits!!! THIS IS NOT PRACTICAL APPROACH! ∴ Use heuristic guidelines for pretty good assignments. This is still an active area of research! • There is no effective way to guarantee a “best” assignment. The heuristic methods sometimes perform poorly!
EECC341 - Shaaban #79 Final Review Winter 2001 2-20-2002
State Assignment Strategies • Simplest Assignment: – Straight binary, not best; purely arbitrary assignment. • One Hot Assignment: – Redundant encoding, each flip-flop is assigned a state. – Uses the same number of bits as there are states (not useful in large designs). – Simple to assign; simple next state logic (no state decoding required) – Output logic is simple! One OR gate per Moore output! • Almost One Hot Assignment: – Almost same as One Hot, but one less state bit. – Use all 0’s to represent a state (usually INIT). – Must now decode state 0 if it is needed. • Decomposed Assignment: – Use the “structure” of the state table to simplify next-state and output logic. – An “art” which requires much practice.
EECC341 - Shaaban
#80 Final Review Winter 2001 2-20-2002
Example: State Assignment Strategies Alternative Assignments AB Q1..Q4 Q1..Q5 Q1Q2Q3 Q1Q2Q3 S 00 01 11 10 Z 0000 00001 000 000 INIT A0 A0 A1 A1 0 0001 00010 100 001 A0 OK0 OK0 A1 A1 0 0010 00100 101 010 A1 A0 A0 OK1 OK1 0 0100 01000 110 011 OK0 OK0 OK0 OK1 A1 1 1000 10000 111 100 OK1 A0 OK0 OK1 OK1 1 Almost One Hot
One Hot
Decomposed Simplest
– Example decomposition: • • • •
Initial State = all 0’s for easy RESET INIT state is different, so use Q 1 = 1 for non-INIT states; thus D1=1 Z = 1 in only 2 states, so use Q 2 =1 for states when Z = 1; thus Z = Q2 Use Q3 = 1 for state transitions caused by A having the value of 1 (all destination states cause by A = 1, i.e. states A1 and OK1); thus D3=A
THUS, simpler next state and output logic!
EECC341 - Shaaban #81 Final Review Winter 2001 2-20-2002
State Assignment Heuristic Guidelines Starting from the highest priority to the lowest: • Choose initial coded state that’s easy to produce at reset: (all 0’s or 1’s) – This simplifies the initialization circuitry. • Freely use any of the 2n state codes for best assignment (i.e.. with s states, don’t just use the first s integers 0,1,…,s-1) • Define specific bits or fields that have meaning with respect to input or output variables (decomposed codes). • Consider using more than minimum number of state variables to allow for decomposed codes. • Minimize number of state variables that change at each transition • Simplify output logic.
EECC341 - Shaaban #82 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step 3: State Assignment • Choose state variable assignments: – Initial state all 0s – Q2 = last A, so Q2* = A – minimize number of transitions A Q1 Q2
S
0
1
Y
0
0
No1s
No1s
First1
0
0
1
First1
No1s
Two1s
0
1
1
Two1s
ALL
Two1s
0
1
0
ALL
No1s
First1
1
S*
EECC341 - Shaaban #83 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step 4: Transition/Output Table • Step 4: Build transition/output table from state/output table by substituting state variable combinations instead of state names. A Q1 Q2
0
1
Y
0
0
00
01
0
0
1
00
11
0
1
1
10
11
0
1
0
00
01
1
Q1* Q2* =D1 D2
Step 6
• Step 5: Choose D Flip-Flops , so Q*= D • Step 6: Excitation table: – Same as Transition/output table with Q1*=D1, Q2*=D2
EECC341 - Shaaban #84 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Steps 7, 8 : Excitation/Output Equations • Step 7: Excitation equations: D1, D2 = F (A, Q1, Q2) Q1•Q2
Q1 Q2 A
D1 :
00
01
11
10
0
0
0
1
0
1
0
1
1
0
Q1 Q2 A
D2 :
00
01
11
10
0
0
0
0
0
1
1
1
1
1
Q2•A
D1 = Q1•Q2 + Q2•A
D2 = A (as planned!)
• Step 8: Output equation: Y = G (Q1, Q2) Y = Q1•Q2’ (directly read from transition table) EECC341 - Shaaban #85 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step 9: Logic Diagram 1
D1
D CLK
A
>
D2
D CLK
>
P
Q
C
Q
P
C Q
CLK RESET_L
Q
Q1
Y
1 Q2
P = Preset C = Clear Both active low
RESET_L reset to initial state (active low)
EECC341 - Shaaban #86 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector • Word description (110/101 input sequence detector): – Design a state machine with input A and output Y. – Y = 1 when either sequence 1 1 0 or 1 0 1 has been detected on input A on the last 3 consecutive rising clock edges (or ticks). – Otherwise Y = 0 – Note: Correct sequences may overlap and still be accepted.
• Timing diagram interpretation of word description (only rising clock edges are shown): A
0
1
0
1
0
1
1
0
1
0
0
0
CLK y
EECC341 - Shaaban #87 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Step1: Choosing States • Possible states (What does the state machine need to remember?): – – – – – – A
Idle Got1 Got10 Got101 Got11 Got110 0
Initial state, no starting 1 yet A = 1 on last tick Sequence A = 10 on last two ticks Sequence A = 101 on last three ticks Sequence A = 11 on last two ticks Sequence A = 110 on last three ticks
1
Idle
0
1
Got10
Idle
CLK y
: : : : : :
Got1
0
1
Got10 Got101
1
0
Got11 Got101
1
Y=0 Y=0 Y=0 Y=1 Y=0 Y=1 0
0
Got101 Got110
0
IDLE
Got10
EECC341 - Shaaban #88 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Step 1: State/Output Table A S
0
1
Y
IDLE
IDLE
Got1
0
Got1
Got10
Got11
0
Got10
IDLE
Got101
0
Got101
Got10
Got11
1
Got11
Got110
Got11
0
Got110
IDLE
Got101
1
S*
EECC341 - Shaaban #89 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Step 1: State Diagram Reset 0
1 IDLE
Got1
0
0 0
0
0
Got110
Got10
1
1
0
1
0
0
1
1 Got11
Got101
0
1
Format: Arc: input A Node: state/output Y
1
EECC341 - Shaaban #90 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Steps 3: State Assignment • Step 3: Choose state variable assignments : – – – –
Initial state all 0s Q1 = Y Q3 = last A, so Q3* = A minimum number Q1 Q2 Q3 of transitions 0 0 0
From Step 1: A S
0
1
Y
IDLE
IDLE
Got1
0
0
0
1
Got1
Got10
Got11
0
0
1
0
Got10
IDLE
Got101
0
1
1
1
Got101
Got10
Got11
1
0
1
1
Got11
Got110
Got11
0
1
1
0
Got110
IDLE
Got101
1
S*
EECC341 - Shaaban #91 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector • Step 4: Transition/output table • Step 5: Choose D Flip-flops Q1 Q2 Q3 • Step 6: Excitation table 0 0 0 – Same as Transition table 0 0 1
Unused states?
A 0
1
Y
000
001
0
010
011
0
0
1
0
000
111
0
1
1
1
010
011
1
0
1
1
110
011
0
1
1
0
000
111
1
1
0
0
ddd
ddd
d
1
0
1
ddd
ddd Q1*Q2* Q3* =D1 D2 D3
d
EECC341 - Shaaban #92 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Steps 7: Excitation Equations Q1 Q2
• Step 7: Excitation equations – D1, D2, D3 = F (A, Q1, Q2, Q3) D1 = Q1’•Q2•Q3•A’ + Q2•Q3’•A
Q3 A
00
D3 = A (as planned!)
10
Q1 Q2
10
d 1
01 11
D2 :
11
00
D1 :
D2 = Q2•A + Q3
Q3 A
01
1
d d
1
d
Q1 Q2
00
01
11
10
d
00 01
1
1
d
Q3 A
D3 :
00
01
11
10
d
00 01
1
1
1
d
1
1
1
d
11
1
1
1
d
11
10
1
1
1
d
10
d
EECC341 - Shaaban #93 Final Review Winter 2001 2-20-2002
State Machine Design Example 2: 110/101 Detector
Step 8: Output Equations • Step 8: Output equation
– Y = Q1 (as planned!)
• Step 9: Logic diagram – (3) D-Flip-flops + (3) 2-input gates + (1) 3-input AND gate + (1) 4-input AND gate
– Draw the diagram.
D1 = Q1’•Q2•Q3•A’ + Q2•Q3’•A D2 = Q2•A + Q3 D3 = A
EECC341 - Shaaban #94 Final Review Winter 2001 2-20-2002
State Machine Design Using J-K Flip-Flops • State machine design step 6 (building excitation table for flip-flop inputs from transition table): – When using D flip-flops, since the next state Q* = D, the excitation table is the same as the transition table with Q* replaced with D. – In the case of J-K flip-flops, the next state is given by: Q* = J . Q’ + K’. Q – In this case we cannot rearrange the characteristic equation to find separate equations for J, K. – Instead an application (or excitation) table for J-K flip-flops is used to obtain the corresponding values of J, K for a given Q to Q* transition:
Q
Q*
J
K
0 0 1 1
0 1 0 1
0 1 d d
d d 1 0
J-K Flip-Flop Excitation Table
EECC341 - Shaaban #95 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector (Repeated Using J-K Flip-Flops)
• Word description (110 input sequence detector): – Design a state machine with input A and output Y. – Y should be 1 whenever the sequence 1 1 0 has been detected on A on the last 3 consecutive rising clock edges (or ticks). – Otherwise, Y = 0
• Timing diagram interpretation of word description (only rising clock edges are shown): A
0
1
1
0
0
1
1
1
0
1
1
1
CLK Y
EECC341 - Shaaban #96 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector
Step 1: State/Output Table and Diagram Reset 0
State Table
1 NO1s
A S
0
1
Y
No1s
No1s
First1
0
First1
No1s
Two1s
0
Two1s
ALL
Two1s
0
ALL
No1s
First1
1
S*
State Diagram
0
First1 0
0
1 0
1
ALL
Two1s
1
0
1
0
Format: Arc: input A Node: state/output Y
EECC341 - Shaaban #97 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector Using J-K Flip-flops •
Steps 1-4: No change.
Transition Table (step 4):
A Q1 Q2
0
1
Y
0
0
00
01
0
0
1
00
11
0
1
1
10
11
0
Q1 Q2
1
0
00
01
1
0
Q1* Q2* • •
Step 5: Choose J-K Flip-Flops Step 6: Excitation table: Use J-K Flip-Flop Excitation Table.
Q
Q*
J
K
0 0 1 1
0 1 0 1
0 1 d d
d d 1 0
J-K Flip-Flop Excitation Table
Excitation table (Step 6):
A
0
1
Y
0
0d, 0d
0d, 1d
0
0
1
0d, d1
1d, d0
0
1
1
d0, d1
d0, d0
0
1
0
d1, 0d
d1, 1d
1
J1 K1, J2 K2
EECC341 - Shaaban #98 Final Review Winter 2001 2-20-2002
State Machine Design Example 1: 110 Detector Using J-K FF Steps 7, 8 : Excitation/Output Equations • Step 7: Excitation equations: J1, K1, J2, K2 = F (A, Q1, Q2) Q1 Q2 A 0
J1 :
1
Q1 Q2
00
01
11
10
0
0
d
d
0
1
d
d
A
10
0
0
d
d
0
1
1
d
d
1
00
01
11
10
0
d
1
1
d
1
d
0
0
d
Q1 Q2
00
01
11
10
0
d
d
0
1
1
d
d
0
1
A
K2 :
K1 = Q2’ •
11
J2 = A
Q1 Q2
K1 :
01
J2 :
J1 = Q2•A A
00
K2 = A’
Step 8: Output equation: Y = G (Q1, Q2) Y = Q1•Q2’ (directly read from transition table)
EECC341 - Shaaban #99 Final Review Winter 2001 2-20-2002
Registers & Counters • Registers. • Shift Registers: – – – – –
Serial in, serial out shift register Serial in, parallel out shift register Parallel in, serial out shift register Parallel in, parallel out shift register Shift Register Applications
• Counters: – Ripple Counters – Synchronous Counters – Counter Applications EECC341 - Shaaban #100 Final Review Winter 2001 2-20-2002
Registers • An n-bit register is a collection of n D flip-flops with a common clock used to store n related bits. 74LS175 1D
Q
D CLR
2D
Q
D CLR
3D
CLK
Q
Q
D CLR
4D
Q
Q
Q
D CLR
Q
1Q /1Q 2Q /2Q
Example: 74LS175 4-bit register 74LS175 CLK CLR
3Q
1D
/3Q
2D
4Q /4Q
3D 4D
1Q 1Q 2Q 2Q 3Q 3Q 4Q 4Q
/CLR
EECC341 - Shaaban #101 Final Review Winter 2001 2-20-2002
Shift Registers • Multi-bit register that moves stored data bits left/right ( 1 bit position per clock cycle) – Shift Left is towards MSB Q3 Q2 Q1 Q0 0
1
1
Q3 Q2 Q1 Q0
1
LSI
1
1
1
LSI
– Shift Right (or Shift Up) is towards MSB Q3 Q2 Q1 Q0 RSI
0
1
1
1
Q3 Q2 Q1 Q0 RSI
0
1
1
EECC341 - Shaaban #102 Final Review Winter 2001 2-20-2002
Serial In, Serial Out Shift Register SERIN CLOCK
D
Q
SRG n > SI
CLK
D
For a n-bit SRG: Serial Out = Serial In delayed by n clock period
Q
CLK
• • •
D
SO
4-bit shift register example: serin: 1 0 1 1 0 0 1 1 1 0 serout: - - - - 1 0 1 1 0 0 clock: Q
SEROUT
CLK
EECC341 - Shaaban #103 Final Review Winter 2001 2-20-2002
Serial In, Parallel Out Shift register SRG n SERIN CLOCK
D
Q
1Q
Q
2Q
CLK
D CLK
CLK
1Q 2Q • • • nQ
(SO)
Serial to Parallel Converter
• • •
D
> SI
Q
nQ
4-bit shift register example: serin: 1 0 1 1 0 0 1 1 1 0 1Q: - 101100111 2Q: - - 10110011 3Q: - - - 1011001 4Q: - - - - 101100 clock:
EECC341 - Shaaban #104 Final Review Winter 2001 2-20-2002
Parallel In, Serial Out Shift Register CLOCK LOAD/SHIFT
SERIN 1D
1Q
S
D
L
CLK
2Q
S 2D
Load/Shift=1 Di Qi Load/Shift=0 Qi Qi+1
ND
D
L
Parallel to Serial Converter
L
Q
CLK
• • • S
Q
• • • NQ D
Q
SEROUT
CLK
EECC341 - Shaaban #105 Final Review Winter 2001 2-20-2002
Parallel In, Parallel Out Shift Register CLOCK LOAD/SHIFT
SERIN 1D
S
D
L
L
Q
2Q
Q
NQ
CLK
• • • S
ND
D
L
General Purpose: Makes any kind of (left) shift register
1Q
CLK
S 2D
Q
• • • D CLK
EECC341 - Shaaban #106 Final Review Winter 2001 2-20-2002
Shift Register Applications Example:
8-Bit Serial Adder CTL CLK
x7
x6
x5
7
6
5
y7
y6
y5
7
6
5
x0 ...
Sequential Implementation of: Z[7..0] = X[7..0] + Y[7..0]
0
> y0 ...
0
> D
Q
Cin
A FA Cout
CLK CLR
B S
7
6
5
z7
z6
z5
...
0
>
CLEAR_C V
...
z0
EECC341 - Shaaban #107 Final Review Winter 2001 2-20-2002
Counters • Clocked sequential circuit with single-cycle state diagram – Modulo-m counter = divide-by-m counter S1
Sm
S2
S3
– Most Common:
n-bit binary counter, where m = 2n Ù n flip-flops, counts 0 … 2n-1 EECC341 - Shaaban #108 Final Review Winter 2001 2-20-2002
4-bit Ripple Counter Q CLK
Q0
1 bit divide-by-2
T Q Q
Q1
T
2 bit divide-by-4 Uses Minimal Logic
Q Q
Q2
T
3 bit divide-by-8
Q Q T
Q3
4 bit divide-by-16
Q
EECC341 - Shaaban #109 Final Review Winter 2001 2-20-2002
Ripple Counter Problem n • TCQ for MSB change for n-bit ripple counter => minimum clk period
CLK
1∆
Q0
2∆
Q1
3∆
Q2 7
Should be 0
1
2
EECC341 - Shaaban #110 Final Review Winter 2001 2-20-2002
Synchronous Counters • All clock inputs connected to common CLK signal – All flip-flop outputs change simultaneously tCQ after CLK – Faster than ripple counters – More complex logic – Most frequently used type of counter
EECC341 - Shaaban #111 Final Review Winter 2001 2-20-2002
Synchronous Serial Counter CNTEN
• Flip-flops enabled when all lower flip-flops = 1. • Enable propagates serially — limits speed • Requires (n-1) ∆ t < TCLK • All outputs change simultaneously tCQ after CLK
EN
CLK
Q
Q0
Q
Q1
Q
Q2
Q
Q3
>T ∆t
EN >T
∆t
EN >T
∆t
EN >T
EECC341 - Shaaban #112 Final Review Winter 2001 2-20-2002
Synchronous Parallel Counter
• • • •
CNTEN
EN
CLK
>T
Single-level enable logic per flip-flop Fastest and most complex type of counter Requires ∆ t < TCLK All outputs change simultaneously tCQ after CLK
EN
Q
Q0
Q
Q1
Q
Q2
Q
Q3
>T EN >T EN >T
EECC341 - Shaaban #113 Final Review Winter 2001 2-20-2002