Professional Documents
Culture Documents
ASM Charts
Algorithmic State Machine (ASM) Chart is a high-level
flowchart-like notation to specify the hardware
algorithms in digital systems.
CS1104-14
ASM Charts
state
binary
code
one or more
operations
CS1104-14
deciding
factors
CS1104-14
deciding
factors
conditional
operations
CS1104-14
T0
Initial state
A is a register; Ai
stands for ith bit of
the A register.
A = A4A3A2A1
T1
A 0
F 0
A A+ 1
A2
E 0
E 1
A3
T2
1
F 1
CS1104-14
Register Operations
Registers are present in the data processor for
CS1104-14
Register Operations
Register Operations
Examples of register operations:
A B
A 0
A A 1
CS1104-14
Register Operations
CS1104-14
1
T1
A 0
F 0
A A+ 1
3 ASM blocks
A2
E 0
E 1
A3
T2
1
F 1
CS1104-14
10
clock cycle
decision boxes are dependent on the status of the previous
clock cycle (that is, they do not depend on operations of
current block)
CS1104-14
11
clock
10
11
12 13
states
T0
T0
T1
T1
T1
T1
T1
T1
T1
T2
T0
T0
input
S=0
S=1
A=2
A=3
A=4
register
values
Operations
T0
S=0
A=0
F=0
A=1
A=7
F=1
E=0
A0
F0
A=5 A=6
E=0
AA+1
E0
AA+1
E0
E=1
E=1
AA+1
E1
AA+1
E1
E=0
E=0
E=1
AA+1
E0
AA+1
E0
F1
AA+1
E1
A = A4A3A2A1
CS1104-14
12
clock
states
T0
T0
T1
T1
T1
T1
input
S=0
S=1
A=1
A=2
A=3
E=0
E=0
E=1
register
values
S=0
A=0
F=0
1
T1
A 0
F 0
A0
F0
Operations
A A+ 1
A2
E 0
T2
0
1
F 1
A = A4A3A2A1
CS1104-14
clock
10
11
12 13
states
T1
T1
T1
T2
T0
T0
T0
input
E 1
A3
AA+1
AA+1
E0
E1
AA+1
AA+1
E0
E1
register
values
A=4
A=5 A=6
A=7
E=1
E=0
E=1
F=1
E=0
AA+1
F1
E0
AA+1
AA+1
E0
E1
Operations
13
CS1104-14
14
CS1104-14
15
T2
A 0
F 0
Present
state
G1 G0
A A+ 1
A2
E 0
E 1
A3
T2
1
F 1
CS1104-14
T0 = 00
T1 = 01
T2 = 11
T1
1
T1
T0
Initial state
0
0
0
0
0
1
0
0
1
1
1
1
Next
state
inputs
outputs
A2 A3 G1+ G0+ T0 T1 T2
0
1
X
X
X
X
X
X
0
1
1
X
X
X
X
0
1
X
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
16
Guidelines:
always use high-level units
simplest architecture possible.
CS1104-14
17
Deduce:
One 4-bit register A (e.g.: 4-bit synchronous counter with
clear/increment).
Two flip-flops needed for E and F (e.g.: JK flip-flops).
CS1104-14
18
state/output functions.
2. Decoder + D flip-flops
suitable for moderately large controllers.
procedure: use decoder to obtain individual states; from the
CS1104-14
19
CS1104-14
20
5. PLA/ROM
highly regular approach.
ROM approach uses a very simple table lookup technique
CS1104-14
21
Implementing Controller:
With JK Flip-flops
State table
Present
state
G1 G0
0
0
0
0
0
1
0
1
0
1
1
1
obtained from
ASM chart:
inputs
S
0
1
X
X
X
X
A2
X
X
0
1
1
X
A3
X
X
X
0
1
X
Next
state
G1+ G0+
0
0
0
1
0
1
0
1
1
1
0
0
outputs
T0
1
1
0
0
0
0
T1
0
0
1
1
1
0
T2
0
0
0
0
0
1
G1 G0
0 0
0 0
0 1
0 1
0 1
1 1
CS1104-14
inputs
S A2
0 X
1 X
X 0
X 1
X 1
X X
Next
state
Flip-flop
inputs
22
Implementing Controller:
Decoder + D Flip-flops
G1
D Q
D Q
G0
2x4
decoder
T0
T1
unused
T2
clock
CS1104-14
23
Implementing Controller:
Decoder + D Flip-flops
Given the
state table:
Present
state
G1 G0
0
0
0
0
0
1
0
0
1
1
1
1
Next
state
inputs
outputs
A2 A3 G1+ G0+ T0 T1 T2
0
1
X
X
X
X
X
X
0
1
1
X
X
X
X
0
1
X
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
We can directly determine the inputs of the D flipflops for G1 and G0.
DG1 = T1.A2.A3
DG0 = T0.S + T1
CS1104-14
24
Implementing Controller:
Decoder + D Flip-flops
Flip-flop input functions:
DG1 = T1.A2.A3
DG0 = T0.S + T1
Circuit:
A2
A3
G1
D Q
D Q
G0
2x4
decoder
T0
T1
unused
T2
clock
CS1104-14
25
Implementing Controller:
One Flip-flop per State
D Q
T0
D Q
T1
:
:
clock
CS1104-14
26
Implementing Controller:
One Flip-flop per State
CS1104-14
27
Implementing Controller:
One Flip-flop per State
State table:
Present
state
State diagram:
Next
state
inputs
S A2 A3
T0
T0
T1
T1
T1
T2
0
1
X
X
X
X
X
X
0
1
1
X
X
X
X
0
1
X
S=0
A2=0
S=1
T0
T1
T1
T1
T2
T0
T0
T1
T2
A2=1,
A3=0
A2=1,
A3=1
28
Implementing Controller:
One Flip-flop per State
A2
A3
DT0 = T2 + S'.T0
DT1 = S.T0 + (A2.A3)'.T1
DT2 = A2.A3.T1
CS1104-14
D Q
T0
D Q
T1
D Q
T2
clock
clear
Implementing Controller: One
Flip-flop per State
29
Implementing Controller:
One Flip-flop per State
Q'
A2
A3
T0
D Q
T1
D Q
T2
clock
clear
Implementing Controller: One
Flip-flop per State
30
Implementing Controller:Multiplexers
Purpose of multiplexer is to produce an input to its
corresponding flip-flop equals to the value of the next
state.
CS1104-14
Implementing Controller:
Multiplexers
31
Implementing Controller:Multiplexers
Example 1: Given
the state table.
Reformat the
state table.
CS1104-14
Present
state
G1 G0
0
0
0
0
0
1
0
1
0
1
1
1
Present
state
inputs
S
0
1
X
X
X
X
Next
state
G1 G0 G1
0 0
0
0 0
0
0 1
0
0 1
0
0 1
1
1 1
0
Next
state
A2 A3 G1+ G0+
X X
0
0
X X
0
1
0 X
0
1
1 0
0
1
1 1
1
1
X X
0
0
G0+
Input
conditions
0
1
1
1
1
0
S'
S
A2'
A2. A3'
A2. A3
1
Implementing Controller:
Multiplexers
Multiplexer
inputs
MUX1
MUX0
?
32
Implementing Controller:Multiplexers
Obtain multiplexer inputs:
Present
state
Next
state
G1 G0 G1
0 0
0
0 0
0
0 1
0
0 1
0
0 1
1
1 1
0
CS1104-14
G0
0
1
1
1
1
0
Input
conditions
S'
S
A2'
A2. A3'
A2. A3
1
Multiplexer
inputs
MUX1
MUX0
A2. A3
Implementing Controller:
Multiplexers
33
Implementing Controller:Multiplexers
Present
state
Draw circuit:
G1 G0
0 0
0 1
1 1
T0
T1
T2
A2
A3
0
0
0
1 MUX1
2
3
S1 S0
D Q
S1 S0
0
1 MUX0
2
3
D Q
MUX0
S
1
0
G0
T0
T1
T2
clock
Determine next
state of register
CS1104-14
MUX1
0
A2. A3
0
G1
2x4
decoder
S
1
Multiplexer
inputs
Hold present
state
Implementing Controller:
Multiplexers
34
Implementing Controller:Multiplexers
Present
state
Example 2:
T0
T1
0
T3
0
0
0
w
1 01
11
y
1
CS1104-14
G1 G0 G1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
00
T2
1
1
Next
state
Present
state
10
y
0
T0
T1
T2
T3
G0
0
1
0
1
0
0
1
1
0
1
Input
conditions
w'
w
x
x'
y'
y.z'
y.z
y'.z
y
y'.z'
Multiplexer
inputs
G1 G0
MUX1
MUX0
0
0
0
w
0
1
x+x'=1
x'
1
0 y.z' + y.z
y.z
=y
1
1
y + y'.z'
y'.z +
= y + z' y'.z' = y'
Implementing Controller:
Multiplexers
35
Implementing Controller:Multiplexers
Present
state
T0
T1
T2
T3
y
z'
0
1
y
G1 G0
0 0
0 1
1 0
1 1
Multiplexer
inputs
MUX1
0
1
y
y + z'
0
1 MUX1
2
3
S1 S0
D Q
MUX0
w
x'
y.z
y'
G1
2x4
decoder
y
z
CS1104-14
w
x'
y'
S1 S0
0
1 MUX0
2
3
D Q
G0
T0
T1
T2
T3
clock
Implementing Controller:
Multiplexers
36
PLA/ROM
Present
state
Commands to
architecture
Next
state
Implementing Controller:
PLA/ROM
37
End of segment