Sequential Circuit Analysis
Sequential Circuit Analysis
Objectives
This
sequential circuits.
Demonstrate by example how to analyze synchronous sequential
circuits by deriving their behavior from a structural description.
Demonstrate how to represent the behavior of a synchronous
sequential circuit with Verilog.
Reading assignment
Section
3.4
Sections 4.4, 4,5, and 4.6
Elec 326
Topics
Elec 326
Elec 326
Combinational
Logic
Network
Output
Signals
FF
Current
State
Signals
Next
State
Signals
FF
CLK
Elec 326
Elec 326
Combinational
Logic
Network
Output
Signals
FF
Current
State
Signals
Next
State
Signals
FF
CLK
Elec 326
Mealy Model
Elec 326
Moore Model
5
Logic diagram
Excitation Equations
Output equations
Behavioral
Q0
Q1
CK
J0 = X' + Q1'
J1 = Q0
K0 = 1
K1 = X + Q0
Y = XQ0'Q1 + X'Q0Q1
Elec 326
Q* = JQ' + K'Q
The resulting transition equations are:
Q0* = J0Q0' + K0'Q0 = (X'+ Q1')Q0' + 0Q0
= X'Q0' + Q0'Q1'
Q1* = J1Q1' + K1'Q1 = Q0Q1' + (X+ Q0)'Q1
= Q0Q1' + X'Q0'Q1
Elec 326
X=0 X=1
00
01
10
11
01 01
10 10
11 00
00 00
Q1* Q0*
X=0 X=1
0
0
0
1
0
0
1
0
Y
0
1
0
1
X=0
X=1
X=0
X=1
0
0
0
1
0
0
1
0
01
01
10
10
11
00
00
00
Q1* Q0*
1
2
3
0
1
2
0
0
Q*
Transition Table
0
0
0
1
0
0
1
0
Y
State Table
State Diagram
Elec 326
Example #2
D2 =
D1 =
D0 =
Y =
Elec 326
X Q2 Q0
Q2
Q1
X Q2 Q0
10
Q2 Q1 Q0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
X=0
X=1
X=0
X=1
000
100
001
101
110
010
111
011
100
000
101
001
010
110
011
111
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
11
110 = G, 111 = H
Q2 Q1 Q0
0
0
0
0
1
1
1
1
Transition Table:
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
X=0
X=1
X=0
X=1
000
100
001
101
110
010
111
011
100
000
101
001
010
110
011
111
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
State Table:
X=0
X=1
X=0
X=1
A
B
C
D
E
F
G
H
A
E
B
F
G
C
H
D
E
A
F
B
C
G
D
H
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
Q*
Elec 326
12
Y
Sequential Circuit Analysis
State Table:
X=0
X=1
X=0
X=1
A
B
C
D
E
F
G
H
A
E
B
F
G
C
H
D
E
A
F
B
C
G
D
H
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
Q*
State Diagram:
Elec 326
13
Q0
MAX
Q1
CLK
Elec 326
14
EN=0
0
1
2
3
Q*
EN=1
1
2
3
0
Elec 326
15
State Table:
Q
0
1
2
3
EN=0
0
1
2
3
Q*
EN=1
1
2
3
0
EN/0
0
State Diagram:
EN=0 EN=1
0
0
0
0
0
0
0
1
MAX
EN/0
EN/0
1
EN/0
EN/1
EN/0
Elec 326
EN=0 EN=1
0
0
0
0
0
0
0
1
MAX
16
EN/0
2
EN/0
Example #4
Logic Diagram
J
Q0
K
Q1
K
X
CLK
Elec 326
17
= J0Q0' + K0'Q0
= (XQ1'Q0')Q0' + (XQ1)'Q0
= XQ1'Q0' + X'Q0 + Q1'Q0
Q1*
= J1Q1' + K1'Q1
= (XQ0)Q1' + (XQ1Q0')'Q1
= (XQ0Q1' + (X' + Q1' + Q0)Q1
= XQ0Q1' + X'Q1 + Q0Q1
X=0
00
01
10
11
Q1* Q0*
Elec 326
18
X=1
01
1 1
00
10
0
0
1
1
Z
Sequential Circuit Analysis
Q
A
B
C
D
X=0
A
B
C
D
X=1
B
D
A
C
Q*
0
0
1
1
Z
Elec 326
19
D Q
Q
Q1
D Q
Q2
Ck
First try
module bexample (D, Ck, Q1, Q2);
input D, Ck;
output Q1, Q2;
reg Q1, Q2;
always @(posedge Ck)
begin
Q1 = D;
Q2 = Q1;
end
D
Ck
D Q
Q1
D Q
Q2
endmodule
Elec 326
20
10
Only when the always block terminates are the variables updated
Elec 326
21
D Q
Q
Q1
D Q
Q2
Ck
endmodule
Elec 326
22
11
Elec 326
23
Elec 326
24
12
Another Example
module simple (Clock, Resetn, w, z);
input Clock, Resetn, w;
output z;
reg [2:1] y, Y;
parameter [2:1] A = 2'b00, B = 2'b01, C = 2'b10;
always @(w or y) // Define the next state combinational logic
case (y)
A: if (w) Y = B;
else Y = A;
B: if (w) Y = C;
else Y = A;
C: if (w) Y = C;
else Y = A;
default: Y = 2'bxx;
endcase
always @(negedge Resetn or posedge Clock) // Define the flip-flops
if (Resetn == 0) y <= A;
else y <= Y;
assign z = (y == C); // Define output logic
endmodule
Elec 326
25
26
13
5. Review
Sequential circuit models:
Canonical form
Mealy vs. Moore models
Verilog models
Elec 326
27
14