FSM Design
FSM Design
Status
Registers SSC generating sequences
Combinational Functional of control signals
Units (e.g., ALU) Instructs datapath what to
Busses do next
Control
State
Status Control
Inputs Outputs
Outputs
Inputs/outputs
Next
State
Present Value
State
Value
no change
Block Diagram N
Coin
Vending Open Gum
Sensor D
Machine Release
Reset SSC Mechanism
Clk
S7 S8
[open] [open]
Q0 Q0 Q0
Q1
D D1 Q1
D Q
CLK \ Q1
Q0 RQ
N
N
\reset D1 = Q1 + D + Q0 N
\ Q0 OPEN
Q0
\N
D0 = N Q0 + Q0 N + Q1 N + Q1 D
D0 Q0
D Q
Q1
N
CLK
R
Q \ Q0 OPEN = Q1 Q0
Q1 \reset 8 Gates
D
J K Q Q+ Q Q+ J K
0 0 0 0 0 0 0 X
0 0 1 1 0 1 1 X
0 1 0 0 1 0 X 1
0 1 1 0 1 1 X 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Q Q+ J K S R T D
0 0 0 X 0 X 0 0
0 1 1 X 1 0 1 1
1 0 X 1 0 1 1 0
1 1 X 0 X 0 0 1
Q0 Q0 N
Q1 Q0 Q1 Q1 Q0 Q1 Q0 J Q1
Q
00 01 11 10 00 01 11 10 D
DN DN CLK K RQ
\ Q1
\ Q0
00 0 X X 0 00 X 0 0 X N
OPEN
Q1
01 1 X X 1 01 X 1 0 X
N N D
J Q
Q0
CLK
11 X X X X 11 X X X X \ Q1
K Q
\ Q0
D D N R
10 0 X X 1 10 X 0 0 X
\reset 7 Gates
Q0 Q0
Combinational
Comb.
Logic for Z
Logic for
Next State Outputs
Outputs)
(FF Inputs)
State
Feedback Clock
Mealy (N D + Reset)/0
Reset
N D + Reset Moore
Machine Reset/0
0¢ 0¢ Machine
Reset/0 Reset [0]
N/0 N
5¢ 5¢
D/0 D
N D/0 ND [0]
N/0 N
10¢ 10¢
D/1 N D/0 [0] ND
N+D/1 N+D
15¢ 15¢
Reset/1 Reset
[1]
0 0/0
0
0
[0]
Same I/O behavior 0 1
0/0 1/0
0 1
1
Different # of states
[0]
1 1/1
2
[1] 1
X
Inputs
State Output
Register Register
Combinational
Comb.
Logic for Z
Logic for
Next State Outputs
Outputs)
(FF Inputs)
State
Feedback Clock Clock
A finite string recognizer has one input (X) and one output (Z).
The output is asserted whenever the input sequence …010…
has been observed, as long as the sequence 100 has never been
seen.
X: 11011010010…
Z: 00000001000…
1 0
S2 S5
/0 /0
0 0 0,1
S3 S6 Loops in State
Outputs 1 /1 /0
Reset
S0
/0
0 1
S1 S4
/0 /0
1 0
S2 S5
/0 /0
1 0 0 0,1
0
S3 S6 Loops in State
Outputs 1 /1 /0
1 0
S2 S5
/0 /0
1 0 0 0,1
0
S3 S6 Loops in State
Outputs 1 /1 /0
S2 1 S5
/0 /0
1 0 0 0,1
0
S3 S6 Loops in State
Outputs 1 /1 /0
0 000 001
0 001 010
1 010 110
1 110 111
1 111 101
0 101 110
0 110 111
S0 0,1
0 /000
S7 S1
/111 /001
1 0
0,1 1
1
S6 1 S2
/110 /010
0 0 1
1
S5 S3
/101 /011
0 S4 0
/100
Assume you have an interval timer that generates a short time pulse
(TS) and a long time pulse (TL) in response to a set (ST) signal. TS
is to be used for timing yellow lights and TL for green lights.
Farmroad
C
HL
FL
Highway
Highway
FL
HL C
Farmroad
TL + C
Reset
S0 S0: HG, FR
TL•C/ST TS/ST
S1: HY, FR
TS S1 S3 TS S2: FG, HR
TL • C
Note: This sequential circuit has both Mealy and Moore outputs!
"3 bit serial lock controls entry to locked room. Inputs are RESET,
ENTER, 2 position switch for bit of key data. Locks generates an
UNLOCK signal when key matches internal combination. ERROR
light illuminated if key does not match combination. Sequence is:
(1) Press RESET, (2) enter key bit, (3) Press ENTER, (4) repeat (2) &
(3) two more times."
Inputs: Outputs:
Reset Unlock
Enter Error
Key-In
L0, L1, L2
Enter=‘0’
Si
Enter=‘1’
Sj
KI /= Li
KI = Li
Check To error
next key sequence
Comp0
KI = L0 KI ≠ L0
Enter
Idle0 Idle0a Enter
Enter Enter
Comp1 Error1
KI ≠ L1
KI = L1
Enter
Enter Idle1 Idle1a
Enter Enter
Comp2 Error2
KI = L2 KI ≠ L2
Reset
Done Error3
Reset
[Unlock] [Error]
Reset
Reset