Вы находитесь на странице: 1из 5

MAQUINAS DE ESTADO (FSM)

0. Introduccin
1. FSM Mealy y Moore
2. Sntesis FSM:
Codificacin estados
Tabla de estados
Tabla de excitacin

INTRODUCCIN
n

Latches

Combinacional

output

input

state

FFs
rst

clk

Combinacional

output

Las mquinas de estado finito (FSM) son un circuito secuencial


(asncrono o sncrono):
input

state

rst

FSM pueden ser clasificados tambin como Mealy o Moore


FSM Mealy: la salida depende del estado y la entrada
FSM Moore: la salida depende slo del estado

0001

0010

1110

1111

Diagrama de
estados de un
contador
ascendente de 4-bits

Los registros y contadores son un caso particular de FSM


sncronos de tipo Moore
0
0
0
0
0
0000

state

F
S
FFs
rst

i0

F(i0,S0)

F
S
FFs

S0

clk

FSM Mealy
input

rst
(asynch)
clk
input
state
output

state

rst

i0

i2
S0/
/F(S0)

F(S1)

S1

i2

state/output
state/output
state/F(state)
state/F(state)

i0

F(i2,S1)

i2

i0/F(i0,S1)

S0

i1/F(i1,S0)

output=F(input,state)
i2/F(i2,S0)
i0/F(i0,S0)

F(i1,S1)

S1

input/output
input/output
input/F(input,state)
input/F(input,state)

i1

i1

output=F(state)

F(i1,S0)

F(S0)

S0

clk

FSM Moore
input

rst
(asynch)
clk
input
state
output

i2/F(i2,S2)

S2

S2/
/F(S2)

F(i1,S0)

i2

i1

i1

i2

i2/F(i2,S1) i0/F(i0,S2)

i1
S1/
/F(S1)

S0
F(S0)

i1

i1/F(i1,S2)

S0

i0

F(i0,S0)

i0

i1

i0

S1

i1/F(i1,S1)

i0

SINTESIS DE FSM

FF1
J K
0 X
0 X
1 X
0 X
X 1
X 0
X 0
X 0

State table
state input output
0
1
S0 S1
0
S2 S1
1
S2 S3
1
S0 S3
0
S0
S1
S2
S3

State Codification
(gray codification)

J
K
clk

state Q[1:0]
S0
0 0
S1
0 1
S2
1 1
S3
1 0

FF0
J K
0 X
1 X
X 0
X 0
0 X
0 X
X 0
X 1

JK-FF

A partir del diagrama de estados:


Codificacin de estados
Binario: nLATCH/FF log2nSTATES
Gray: nLATCH/FF log2nSTATES
one-hot: nLATCH/FF = nSTATES
Tabla de estados
Tabla de excitacin de los FFs/Latches
Funciones lgicas de:
Las salidas
Las entradas de los FFs/Latches
Circuito

SINTESIS DE FSM

S1/1

State diagram
1
1

S3/0

S2/1

Ejemplo de FSM Moore Sncrona

0
S0/0
0
1
Excitation table
(JK FFs)
state input output state+
Q[1:0]
Q+[1:0]++
00
0
0
00
00
1
0
01
01
0
1
11
01
1
1
01
10
0
0
00
10
1
0
10
11
0
1
11
11
1
1
10

input output
0
1
00 01
0
11 01
1
11 10
1
00 10
0

State table
state
Q[1:0]
00
01
11
10

0X

X1

1X
Q

X0

0
0

T-FF

00

input

00
X

FF1
K

01
0
0

0
1

11
10

output

KFF1=input*Q[0]

FF0

FF1

TFF0=input*(Q[1]Q[0])

input

TFF1=input*(Q[1]Q[0]) input

Ejemplo: Cambio de tipo de FF


T
clk

00

01
0

Input

11
1

FF1
T

10

01

input

11

FF0
T

10

Q[1:0]

input

00
X

FF0
J

01
X
0

X
0

11
10

FF1

Q
Q
FF0

Q
Q
C

JFF0=input*Q[1]

clk

J
K

J
K

rst

FF1

FF0

01

00

input

11
X

FF0
K

10

output

FF0
T
0
1
0
0
0
0
0
1

clk
rst

output

KFF0=input*Q[1]

state input output state+


FF1
Q[1:0]
Q+[1:0]++ T
00
0
0
00
0
00
1
0
01
0
01
0
1
11
1
01
1
1
01
0
10
0
0
00
1
10
1
0
10
0
11
0
1
11
0
11
1
1
10
0

Excitation table
(T FFs)

Q[1:0]

SINTESIS DE FSM
0
0

input

00
1

FF1
J

01
X
X

X
X

11
10

output=Q[0]

input
J
K

J
K

rst

Q[1:0]

SINTESIS DE FSM

clk

JFF1=input*Q[0]

Q[1:0]
Q[1:0]
Q[1:0]

00

input
0
1
0001 0010
0100 0010
0100 1000
0001 1000

01

00

Input

11
1

state
Q[3:0]
0001
0010
0100
1000

FF2
D

10

Input

DFF2=input*(Q[2]+Q[1])
FF0
D

01

11

00

10

DFF0=input*(Q[3]+Q[0])

output
0
1
1
0

output=Q[3]+Q[1]

input

Excitation table
(D FFs)

clk
rst

FF0

FF3

FF2

FF1

D PQ

D
C

output

state input output state+


FF3 FF2 FF1 FF0
Q[3:0]
Q+[3:0]++ D
D
D
D
0001
0
0
0001
0
0
0
1
0001
1
0
0010
0
0
1
0
0010
0
1
0100
0
1
0
0
0010
1
1
0010
0
0
1
0
0100
0
0
0100
0
1
0
0
0100
1
0
1000
1
0
0
0
1000
0
1
0001
0
0
0
1
1000
1
1
1000
1
0
0
0

SINTESIS DE FSM

01

State table

Ejemplo: Cambio de codificacin

1
0
0
0

State Codification
(one-hot codification)

00

Input

state Q[3:0]
S0
0 0 0
S1
0 0 1
S2
0 1 0
S3
1 0 0

FF3
D

01
X
1

X
0

11
10

11

Input

DFF3=input*(Q[3]+Q[2])
FF1
D

10

DFF1=input*(Q[1]+Q[0])

Q[2]/Q[1]
Q[3]/Q[0]

Q[3]/Q[2]
Q[1]/Q[0]

Вам также может понравиться