Professional Documents
Culture Documents
Simplificacin de MEFs
Minimizacin de estados
Estados equivalentes:
mismo output.
para todas las combinaciones de inputs, estados
transicionan a los mismos o equivalentes estados.
Algoritmo
1.
Poner todos los estados en un conjunto (P0)
2.
Inicialmente dividir conjunto basado en comportamiento
del output (P1)
3.
Sucesivamente dividir subconjuntos resultantes basado en
prximas transiciones de estados (P2, P3,...)
4.
Repetir (3) hasta que no se requieran ms divisiones
Estados que quedan en mismo conjunto son
equivalentes.
Actividad
0/0
0/0
S1
S0
Input
Sequence
Reset
0
1
00
01
10
11
Present State
Next State
X=0
X=1
X=0
X=1
S0
S1
S2
S3
S4
S5
S6
S1
S3
S5
S0
S0
S0
S0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
S2
S4
S6
S0
S0
S0
S0
Output
1/0
1/0 0/0
S2
1/0
S3
S4
S5
S6
1/0 1/0 1/0 1/0
0/0 0/1 0/0 0/1
12: Simplificacin de Mquinas
Sincrnicas
Actividad (cont)
Input
Sequence
Reset
0
1
00
01
10
11
Present State
Next State
X=0
X=1
X=0
X=1
S0
S1
S2
S3
S4
S5
S6
S1
S3
S5
S0
S0
S0
S0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
S2
S4
S6
S0
S0
S0
S0
Output
P0: ( S0 S1 S2 S3 S4 S5 S6 )
P1: ( S0 S1 S2 S3 S5 ) ( S4 S6 )
P2: ( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 )
S1 es equivalente a S2
P3: ( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 )
S3 es equivalente a S5
S4 es equivalente a S6
MEF Minimizada
Detector de secuencia de 010 o 110 minimizada
0/0
0/0
S1
S0
Input
Sequence
Reset
0+1
X0
X1
Output
X=0
X=1
S0
S1'
S3'
S4'
S1'
S3'
S0
S0
0
0
0
1
S1'
S4'
S0
S0
0
0
0
0
S0
1/0
1/0 0/0
S2
X/0
1/0
S3
S4
S5
S6
1/0 1/0 1/0 1/0
0/0 0/1 0/0 0/1
Original
Present State
Next State
X=0
X=1
0/0
S1
1/0
S4
S3
X/0
0/1
1/0
MEF Minimizada
Otra solucin para el detector de secuencia de 010
2
1/0
-/0
S0
S1
0/0
1/0
S3
0/1
10
00
01
11
00
S2
[1]
10
S4
[1]
S3
[0]
10
01
11
10
10
00
11
00 01
01
01
11
S1
[0]
11
S5
[0]
01
00
present
state
S0
S1
S2
S3
S4
S5
00
S0
S0
S1
S1
S0
S1
next
01
S1
S3
S3
S0
S1
S4
state
10 11
S2 S3
S1 S4
S2 S4
S4 S5
S2 S5
S0 S5
output
1
0
1
0
1
0
11
MEF Minimizada
present
S1
S0-S1
S2 S1-S3
S2-S2
S3-S4
S3
S0-S0
S4 S1-S1
S2-S2
S3-S5
S5
S0
S0-S1
S3-S0
S1-S4
S4-S5
S0-S1
S3-S4
S1-S0
S4-S5
S1
next state
output
state
00
01
10
11
S0
S0
S1
S2
S3
S1
S0
S3
S1
S4
S2
S1
S3
S2
S4
S3
S1
S0
S4
S5
S4
S0
S1
S2
S5
S5
S1
S4
S0
S5
output
11
S3'
S0'
S0'
S3'
1
0
1
0
S1-S0
S3-S1
S2-S2
S4-S5
S2
S1-S1
S0-S4
S4-S0
S5-S5
S3
present
state
S0'
S1
S2
S3'
S4
next state
00
01
10
S0'
S1
S2
S0'
S3'
S1
S1
S3'
S2
S1
S0'
S0'
estado output
S0
0
S1 es compatible con S0 y S2
S1
1
pero S0 y S2 son incompatibles
S2
1
10
X
01
[1]
X
11
[0]
X
X
0
0
0
1
1
1
Q1
0
0
1
0
0
1
1
Q0
0
1
1
0
1
1
0
Q1+
0
0
0
0
0
0
0
1
1
1
1
1
0
0
Q0+
11
Otra implementacin
Solucin ad hoc" - no es mnima pero es poco
costosa y rpida
X
X
10
[0]
00
[0]
X
X
11
[0]
X
01
[1]
12
12-Simplificacin de Mquinas
Sincrnicas
12.1 Simplificacin de Mquinas
Sincrnicas
12.2 Asignacin de estados
13
Asignacin de estados
Problema: Asignar cdigos de bits para asignar a
14
resultados
15
Simple
fcil de codificar
fcil de depurar
16
17
random
mnimo cambio
18
19
Q+ O
c
j
c
k
c=i*a + i*b
i/j
i/k
c
Q
a
b
Q
a
a
Q+ O
b
j
c
l
i/j
b=i *a
c=k*a
k/l
c
Q
a
c
Q+ O
b
j
d
j
j=i *a+ i *c
b=i*a
d=i*c
i/j
i/j
20
Prioridad alta:
{S3, S4}
Prioridad mediana: {S3, S4}
Prioridad baja:
0/0: {S0, S1, S3}
1/0: {S0, S1, S3, S4}
21
0
1
1
1
0
0
0
1
0
1
HG
HG
HG
HY
HY
FG
FG
FG
FY
FY
HG
HG
HY
HY
FG
FG
FY
FY
FY
HG
ST
0
0
1
0
1
0
1
1
0
1
Outputs
H1H0
00
00
00
01
01
10
10
10
10
10
F1F0
10
10
10
10
10
00
00
00
01
01
22
HY
FG
FY
HG
HY
FG
FY
00
01
10
11
10
00
01
11
00
01
11
10
10
00
11
01
00
10
01
11
10
01
00
11
00
10
11
01
10
01
11
00
00
11
01
10
10
11
00
01
00
11
10
01
10
11
01
00
01
00
10
11
11
00
01
10
01
00
11
10
11
00
10
01
01
10
00
11
11
01
00
10
01
10
11
00
11
01
10
00
01
11
00
10
11
10
00
01
01
11
10
00
11
10
01
00
12: Simplificacin de Mquinas
Sincrnicas
23
24
0
1
1
1
0
0
TS
0
1
0
1
Estado Actual
Q3Q2Q1Q0
0001
0001
0001
0010
0010
0100
0100
0100
1000
1000
Estado Prximo
P3P2P1P0
0001
0001
0010
0010
0100
0100
1000
1000
1000
0001
ST
0
0
1
0
1
0
1
1
0
1
H1H0
00
00
00
01
01
10
10
10
10
10
Outputs
F1F0
10
10
10
10
10
00
00
00
01
01
25
26
0
1
1
1
0
0
0
1
0
1
HG
HG
HG
HY
HY
FG
FG
FG
FY
FY
HG
HG
HY
HY
FG
FG
FY
FY
FY
HG
ST
0
0
1
0
1
0
1
1
0
1
Outputs
H1H0
00
00
00
01
01
10
10
10
10
10
F1F0
10
10
10
10
10
00
00
00
01
01
27
Porque usar bits para los prximos estados cuando se pueden usar los bits
de outputs previos? (e.g. El estado HG puede ocurrir con solo dos patrones
de outputs previos: 00010 y 11001)
El estado actual ahora se representa con los outputs anteriores y los outputs
actuales con los inputs determinan el prximo estado (como siempre)
Inputs
Estado Actual: Outputs previos
Outputs
C
TL TS
ST H1 H0 F1 F0
ST
H1H0
F1F0
0
0
HY: 10010 + 00110
0
01
10
1
HY: 10010 + 00110
1
01
10
1
0
0
FY: 11000 + 01001
0
10
01
1
FY: 11000 + 01001
1
10
01
Sabemos que estamos en el estado HG si es que los
HG = ST H1 H0 F1 F0 + ST H1 H0 F1 F0
outputs previos son 00010 o 11001. No necesitamos los bits
HY = ST H1 H0 F1 F0 + ST H1 H0 F1 F0
de estados y solo hay que implementar 5 funciones
FG = ST H1 H0 F1 F0 + ST H1 H0 F1 F0
(una para cada output) en vez de 7 (2 para bits de estado)
HY = ST H1 H0 F1 F0 + ST H1 H0 F1 F0
12: Simplificacin de Mquinas
28
Sincrnicas
29
Codificacin 1-hot
fcil para mquinas de estados pequeas
genera ecuaciones pequeas con una complejidad fcil de
estimar
comn en FPGAs y otras lgicas programables
30
Asignacin de estados
muchas heursticas
codificacin de outputs es atractivo (especialmente
para implementaciones PAL o FPGA)
31