0% found this document useful (0 votes)
65 views50 pages

05 FSM Notes

Here are the state table entries for the serial adder finite state machine: 0 0 S0 0 S0 0 1 S0 1 S1 1 0 S0 1 S1 1 1 S0 0 S1 0 0 S1 1 S0 0 1 S1 0 S0 1 0 S1 0 S1 1 1 S1 1 S1 (2) Write down all input and state combinations 28 Serial Adder: State Table 11/0 00/0 S0

Uploaded by

鲁李
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views50 pages

05 FSM Notes

Here are the state table entries for the serial adder finite state machine: 0 0 S0 0 S0 0 1 S0 1 S1 1 0 S0 1 S1 1 1 S0 0 S1 0 0 S1 1 S0 0 1 S1 0 S0 1 0 S1 0 S1 1 1 S1 1 S1 (2) Write down all input and state combinations 28 Serial Adder: State Table 11/0 00/0 S0

Uploaded by

鲁李
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

Finite State Machines

Hakim Weatherspoon
CS 3410
Computer Science
Cornell University

[Weatherspoon, Bala, Bracy, McKee, and Sirer]


Stateful Components
Combinationial logic
• Output computed directly from inputs
• System has no internal state
• Nothing depends on the past!

Inputs Combinational
circuit Outputs
N M
Need:
• To record data
• To build stateful circuits
• A state-holding device

Sequential Logic & Finite State Machines

2
Goals for Today
• Finite State Machines (FSM)
• How do we design logic circuits with state?
• Types of FSMs: Mealy and Moore Machines
• Examples: Serial Adder and a Digital Door Lock

3
Next Goal
• How do we design logic circuits with state?

4
Finite State Machines

5
Finite State Machines
An electronic machine which has
• external inputs
• externally visible outputs
• internal state

Output and next state depend on


• inputs
• current state

6
Abstract Model of FSM
Machine is
M = (S, I, O, δ )
S: Finite set of states
I: Finite set of inputs
O: Finite set of outputs
δ: State transition function

Next state depends on present input and


present state

7
Automata Model
Finite State Machine
Current

Registers
State Comb.
Output
Logic
Input Next State

• inputs from external world


• outputs to external world
• internal state
• combinational logic

8
FSM Example
down/on
input/output up/off down/on
A B
state start
state

Legend up/off up/off


up/off
C D
down/off
Input: up or down down/off
Output: on or off
States: A, B, C, or D

9
FSM Example
1/1
i0i1i2…/o0o1o2… 0/0 1/1
00 01
S1S0 S1S0

Legend 0/0 0/0


0/1
10 11
1/0
Input: 0=up or 1=down 1/0
Output: 1=on or 0=off
States: 00=A, 01=B, 10=C, or 11=D

10
Mealy Machine
General Case: Mealy Machine
Current

Registers
State Comb.
Output
Logic
Input Next State

Outputs and next state depend on both


current state and input

11
Moore Machine
Special Case: Moore Machine
Current

Registers
Comb. Output
State Logic

Comb.
Input Logic Next State

Outputs depend only on current state

12
Moore Machine FSM Example
down
input up down
A B
state start
off on
out out

Legend up up
up
C D
off off
down
Input: up or down down
Output: on or off
States: A, B, C, or D

13
Mealy Machine FSM Example
down/on
input/output up/off down/on
A B
state start
state

Legend up/off up/off


up/off
C D
down/off
Input: up or down down/off
Output: on or off
States: A, B, C, or D

14
Activity#2: Create a Logic Circuit for a Serial Adder

Add two infinite input bit streams


• streams are sent with least-significant-bit (lsb) first

…10110 Sum: output


…00101
…01111

15
Activity#2: Create a Logic Circuit for a Serial Adder

Add two infinite input bit streams


• streams are sent with least-significant-bit (lsb) first

Carry-out
1
…10110 Sum: output
…00101
…01111

16
Activity#2: Create a Logic Circuit for a Serial Adder

Add two infinite input bit streams


• streams are sent with least-significant-bit (lsb) first

Carry-in
1
…10110 Sum: output
…00101
…01111

17
Activity#2: Create a Logic Circuit for a Serial Adder

Add two infinite input bit streams


• streams are sent with least-significant-bit (lsb) first

Carry-out
11
…10110 Sum: output
…00101
…01111

18
iClicker Question
Add two infinite input bit streams
• streams are sent with least-significant-bit (lsb) first

…10110
…00101
…01111
How many states are needed to represent FSM
a) 0
b) 1
c) 2
d) 3
e) 4 19
Strategy for Building an FSM
(1) Draw a state diagram (e.g. Mealy Machine)
(2) Write output and next-state tables
(3) Encode states, inputs, and outputs as bits
(4) Determine logic equations for next state
and outputs
(5) Draw the Circuit

20
FSM: State Diagram

…10110
…00101
…01111

2 states ___ and ___


Inputs: ___ and ___
Output: ___
21
FSM: State Diagram

a…10110
…00101 z
b …01111

Two states: S0 (no carry in), S1 (carry in)


Inputs: a and b
Output: z
• z is the sum of inputs a, b, and carry-in (one bit at a time)
• A carry-out is the next carry-in state. 22
FSM: State Diagram
__/_

__/_ S0 S1 __/_
__/_

__/_ __/_ __/_ __/_


a…10110
…00101 z
b …01111

Two states: S0 (no carry in), S1 (carry in)


Inputs: a and b
Output: z
• z is the sum of inputs a, b, and carry-in (one bit at a time)
• A carry-out is the next carry-in state.
• Arcs labeled with input bits a and b, and output z 23
FSM: State Diagram
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0


a…10110
…00101 z
b …01111

Two states: S0 (no carry in), S1 (carry in)


Inputs: a and b
Output: z
• z is the sum of inputs a, b, and carry-in (one bit at a time)
• A carry-out is the next carry-in state.
• Arcs labeled with input bits a and b, and output z 24
iClicker Question
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0

Is this a Moore or Mealy Machine?


a) Moore
b) Mealy
c) Cannot be determined

25
iClicker Question
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0

Is this a Moore or Mealy Machine?


a) Moore
b) Mealy
c) Cannot be determined

26
Serial Adder: State Table
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0


a b Current z Next
state state

(2) Write down all input and


state combinations

27
Serial Adder: State Table
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0


a b Current z Next
state state
0 0 S0 0 S0
(2) Write down all input and
0 1 S0 1 S0
1 0 S0 1 S0
state combinations
1 1 S0 0 S1
0 0 S1 1 S0
0 1 S1 0 S1
1 0 S1 0 S1
1 1 S1 1 S1 28
Serial Adder: State Assignment
11/0

00/0 S0 S1 11/1
00/1

10/1 01/1 10/0 01/0

a b s z s'
0 0 0 0 0 (3) Encode states, inputs, and
0 1 0 1 0
outputs as bits
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
Two states, so 1-bit is sufficient
0 1 1 0 1
• A single flip-flop will encode the
1 0 1 0 1
state
1 1 1 1 1 29
Serial Adder: Circuit
Next Current
Output
State State
z
s' s
D Q
a
b Next State
Input s'

a b s z s'
0 0 0 0 0 (4) Determine logic equations for
0 1 0 1 0 next state and outputs
1 0 0 1 0
1 1 0 0 1 Combinational Logic Equations
0 0 1 1 0
0 1 1 0 1
z = a�b�s + abs + abs + abs
� + abs
s’ = ab�s + a� bs + abs
1 0 1 0 1
1 1 1 1 1 30
Serial Adder: Circuit
Next Current
Output
State State
z
s' s Comb.
D Q
Logic
a
b Next State
Input s'

a b s z s'
0 0 0 0 0 (4) Determine logic equations
0 1 0 1 0 for next state and outputs
1 0 0 1 0
1 1 0 0 1 Combinational Logic
0 0 1 1 0 Equations
z = a�bs̅ + abs + abs + abs
0 1 1 0 1 � + abs
s’ = abs̅ + a�bs + abs
1 0 1 0 1
1 1 1 1 1 31
Sequential Logic Circuits
Next Current
Output
State State
z
s' s Comb.
D Q
Logic
a
b Next State
Input s'

z = a�bs̅ + abs + abs + abs


� + abs
s’ = abs̅ + a�bs + abs
Strategy:
(1) Draw a state diagram (e.g. Mealy Machine)
(2) Write output and next-state tables
(3) Encode states, inputs, and outputs as bits
(4) Determine logic equations for next state and outputs
32
Which statement(s) is true
(A) In a Moore Machine output depends on
both current state and input
(B) In a Mealy Machine output depends on
both current state and input
(C) In a Mealy Machine output depends on
next state and input
(D) All the above are true
(E) None are true

33
Which statement(s) is true
(A) In a Moore Machine output depends on
both current state and input
(B) In a Mealy Machine output depends on
both current state and input
(C) In a Mealy Machine output depends on
next state and input
(D) All the above are true
(E) None are true

34
Mealy Machine
General Case: Mealy Machine
Current

Registers
State Comb.
Output
Logic
Input Next State

Outputs and next state depend on both


current state and input

35
Moore Machine
Special Case: Moore Machine
Current

Registers
Comb. Output
State Logic

Comb.
Input Logic Next State

Outputs depend only on current state

36
Example: Digital Door Lock
Digital Door Lock
Inputs:
• keycodes from keypad
• clock
Outputs:
• “unlock” signal
• display how many keys pressed so
far

37
Door Lock: Inputs
Assumptions:
• signals are synchronized to
clock
• Password is B-A-B
K A B Meaning
K 0 0 0 Ø (no key)
A 1 1 0 ‘A’ pressed
B 1 0 1 ‘B’ pressed

38
Door Lock: Outputs
Assumptions:
• High pulse on U unlocks door

4 LED 8
D3D2D1D0 dec
U

Strategy:
(1) Draw a state diagram (e.g. Moore Machine)
(2) Write output and next-state tables
(3) Encode states, inputs, and outputs as bits
(4) Determine logic equations for next state and outputs
39
Door Lock: Simplified State Diagram

(1) Draw a state diagram (e.g. Moore Machine) 40


Door Lock: Simplified State Diagram
Ø Ø
G1 “A” G2 “B” G3
”1” ”2” ”3”, U

“B” else else any

Idle
”0”

Ø else any
B1 else B2 else B3
”1” ”2” ”3”

Ø Ø
(1) Draw a state diagram (e.g. Moore Machine) 41
Door Lock: Simplified State Diagram
Ø Ø
G1 “A” G2 “B” G3
”1” ”2” ”3”, U

“B” else else any

Idle
”0”
else
Ø else
B1 else B2
”1” ”2”

Ø Ø
(1) Draw a state diagram (e.g. Moore Machine) 42
Door Lock: Simplified State Diagram
Ø Ø
G1 “A” G2 “B” G3
”1” ”2” ”3”, U

“B” else else any


Cur.
Output
State
Idle Idle “0”
”0”
G1 “1”
else
Ø else G2 “2”
B1 B2
G3 “3”, U
else
”1” ”2” B1 “1”
B2 “2”
Ø Ø
(2) Write output and next-state tables 43
Door Lock: Simplified State Diagram
Cur.
Ø Ø State
Input Next State

G1 “A” G2Idle “B” Ø G3 Idle


”1” ”2”Idle ”3”, U
“B” G1
Idle “A” B1
“B” else else any G1
G1 Ø
G1 “A” G2
G1 “B” B2
Idle
”0” G2 Ø G2
else G2 “B” G3
Ø else G2 “A” Idle
B1 else B2 G3 any Idle
”1” ”2” B1 Ø B1
B1 K B2
Ø ØB2 Ø B2
(2) Write output and next-stateB2 tables K Idle
44
State Table Encoding
S
Cur.
2 SState
1 S0 D3 DOutput
2 D1 D0 U S2Cur.
S1 S0 K Input
A B S’2 S’State
Next 1 S’0
0 Idle
0 0 0 0 “0”
0 0 0 0State
0 0 0 0 0 0 0 0
Idle Ø Idle
0 G1 0 1 0 0 “1”
0 1 0 0 0 0 1 0 1 0 0 1
Idle “B” G1
0 G2 1 0 0 0 “2”
1 0 0 0 0 0 1 1 0 1 0 0
Idle “A” B1
0 G3 1 1 0 0“3”,
1 U1 1 0 0 1 0 0 0 0 0 1
G1 Ø G1
1 B1 0 0 0 0 “1”
0 1 0 0 0 1 1 1 0 0 1 0
G1 “A” G2
1 B2 0 1 0 0 “2”
1 0 0 0 0 1 1 0 1 1 0 1
G1 “B” B2
0 1 0 0 0 0 0 1 0
State 4 SMeaning
2 S8
1 S0 G2 Ø B2
D3D2D1D0K A B dec 0 1 0 1 0 1 0 1 1
Idle
0U 0 0 0Ø (no
0 key)
0 G2
0 1 0 1
“B”
1 0 0 0 0
G3
G1 G2 “A” Idle
1 1 0 0‘A’ pressed
0 1
K
0 1 1 x
G3
x
any
x 0 0 0
Idle
G2 1 0 0 0 0 0 1 0 0
1 0 1 0‘B’ pressed
1 0
A B1 Ø B1
1 0 0 1 x x 1 0 1
G3 0 1B 1 B1 K B2
1 0 1 0 0 0 1 0 1
B1 1 0 0 B2
1 0 1 1
Ø
x x 0 0 0
B2
(3) Encode
B2 states,
1 0 inputs,
1 B2
and outputs K
as bits Idle
45
Door Lock: Implementation
4

dec
D3-0
3bit S2-0
Reg U

clk
S2-0
K S’2-0 S2 S1 S0 D3 D2 D1 D0 U
A 0 0 0 0 0 0 0 0
B 0 0 1 0 0 0 1 0
0 1 0 0 0 1 0 0
U = S�2S1S0 0 1 1 0 0 1 1 1

D0 = S2S1S0 + S�2S1S0 + S2 S1S0 1 0 0 0 0 0 1 0

D1 = S�2S1S0 + S�2S1S0 + S�2S1S0


1 0 1 0 0 1 0 0

(4) Determine logic equations for next state and outputs 46


Door Lock: Implementation
S2 S1 S0 K A B S’2 S’1 S’0
4

dec
D03-0 0 0 0 0 0 0 0 0
3bit S2-0 0 0 0 1 0 1 0 0 1
Reg U
0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 0 0 1
clk
0 0 1 1 1 0 0 1 0
S2-0 0 0 1 1 0 1 1 0 1
K 0S’2-0
1 0 0 0 0 0 1 0
A 0 1 0 1 0 1 0 1 1
B 0 1 0 1 1 0 0 0 0
0 1 1 x x x 0 0 0
1 0 0 0 0 0 1 0 0
1 0 0 1 x x 1 0 1
1 0 1 0 0 0 1 0 1
S0’ = ? 1 0 1 1 x x 0 0 0
S1’ = ?
S2’ = S2S1S0KAB �B + S2S1S2KAB + S�2S1S0K + S2 S�1S0 KAB
� + S2S1S0KA 47
Door Lock: Implementation
4

dec
D3-0
3bit S2-0
Reg U

clk
S2-0
K S’2-0
A
B
Strategy:
(1) Draw a state diagram (e.g. Moore Machine)
(2) Write output and next-state tables
(3) Encode states, inputs, and outputs as bits
(4) Determine logic equations for next state and outputs48
Door Lock: Implementation
Current

Registers
Comb. Output
State Logic

Comb.
Input Logic Next State

Strategy:
(1) Draw a state diagram (e.g. Moore Machine)
(2) Write output and next-state tables
(3) Encode states, inputs, and outputs as bits
(4) Determine logic equations for next state and outputs49
Summary
We can now build interesting devices with
sensors
• Using combinational logic

We can also store data values


• Stateful circuit elements (D Flip Flops, Registers, …)
• State Machines or Ad-Hoc Circuits

50

You might also like