Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Máquinas de Estado
Máquinas de Estado
Máquinas de Estados
Finitos
Junio 2020
Contenido
2
Máquina de Estados Finitos
• Estado:
- Es una condición que puede ser mantenida en el tiempo
- Es una variable binaria almacenada en la “memoria” del circuito
• Memoria:
- Está dada por los flip-flops
- Con k flip-flops se puede tener hasta 2k estados
FSM
“Finite State Machine”
3
Máquina de Estados Finitos
Entradas
FSM Salidas
Reloj (clk)
• Componentes:
- k estados: s1, s2, …, sk
- m entradas: I1, I2, …, Im
- n salidas: y1, y2, …, yn
4
Máquina de Estados Finitos
Tipos
• Máquina de Moore
- Las salidas dependen solamente del estado (interno) actual
estado estado
Lógica siguiente actual Lógica Las salidas cambian
entradas salidas
para los
M para las de manera síncrona
estados salidas con los estados
• Máquina de Mealy
- Las salidas dependen del estado (interno) actual y de las entradas
estado
Las entradas pueden
estado
entradas
Lógica siguiente actual Lógica causar salidas
para los para las salidas
M inmediatas
estados salidas
(asíncronas)
M: memoria 5
Máquina de Estados Finitos
Tipos
out
A
D Q
Q
B
D Q
Q
clock
out
A
D Q D Q
Q Q
B
D Q D Q
Q Q
clock
6
Máquina de Estados Finitos
Comparación de los Tipos
• Máquinas de Moore:
- Las salidas cambian síncronamente: más seguras de usar (+)
- Pueden requerir lógica adicional para convertir los estados en salidas (-)
• Máquinas de Mealy
- Típicamente tienen menos estados (+)
- Reaccionan más rápido a las entradas: no esperan al reloj (+)
- Las salidas asíncronas pueden ser “peligrosas” (-)
• Problema cuando dos máquinas están interconectadas
7
Contenido
8
Máquina de Moore
entradas
Circuito
combinacional Circuito
combinacional
Lógica del
próximo estado Lógica de la
salida
Estado Estado
siguiente actual
• Ejemplo
10
Máquina de Moore
Diagrama de Transición de Estados
- Colectivamente exhaustivos
• Cada estado debe especificar qué pasa para cada combinación posible de entradas
• “Nada pasa” significa que el arco regresa al mismo estado
11
Máquina de Moore
Tabla de Transición de Estados
1 1 – – A 0
B/0 D/1 0 A 0 B 0
0 0 A 1 C 0
0 0 B 0 B 0
reset
A/0 1 0 0 B 1 D 0
1 0 C 0 E 0
1 0 C 1 C 0
E/1 0 D 0 E 1
C/0
0 0 D 1 C 1
0 E 0 B 1
1
0 E 1 D 1
13
Diseño con la Máquina de Moore
• Procedimiento general:
- Paso 0: Identificación de entradas y salidas del sistema
- Paso 1: Diagrama y tabla de transición de estados
- Paso 2: Codificación de estados y salidas
- Paso 3: Expresión Booleana de los estados siguientes (entradas D, {J, K} o T de los
flip-flops)
- Paso 4: Expresión Booleana de las salidas
- Paso 5: Implementación del circuito
14
Diseño con la Máquina de Moore
0
Par Estado Estado Salida
Entrada
0 actual siguiente actual
Par 0 Par 0
1 1 Par 1 Impar 0
Impar 0 Impar 1
Impar Impar 1 Par 1
1
0
15
Diseño con la Máquina de Moore
s x s' y
0 0 0 0
Par = 0
Impar = 1
0 1 1 0
1 0 1 1
1 1 0 1
D = s ' = sx + sx = s x
Flip-flop D
16
Diseño con la Máquina de Moore
y=s
- Paso 5: Implementación del circuito
s' = s x
𝑠′ D Q y y=s
x
Q
CLK
17
Diseño con la Máquina de Moore
Estado Estado
Entrada Valores de JK
actual siguiente
s x s' J K
0 0 0 0 X
0 1 1 1 X
1 0 1 X 0
1 1 0 X 1
J=x K=x
Ejercicio
19
Diseño con la Máquina de Moore
Circuito
digital de
Avenida A control
20
Diseño con la Máquina de Moore
E0 E1
Avenida A
E3 E2
21
Diseño con la Máquina de Moore
E0 E1
E0 0 X E1 G R
E0 1 X E0 G R
E1 X X E2 Y R
E2 X 0 E3 R G
E3 E2
E2 X 1 E2 R G
E3 X X E0 R Y
22
Diseño con la Máquina de Moore
Estado s1 s0
Salida LA1 LA0
E0 0 0
Codificación de Codificación de G (green) 0 0 Para LB será
E1 0 1
los 4 estados las 3 salidas Y (yellow) 0 1 similar
(2 bits) E2 1 0 (2 bits) R (red) 1 0
E3 1 1
23
Diseño con la Máquina de Moore
TATB
s1s0 00 01 11 10
00 0 0 0 0
01 1 1 1 1 D1 = s1s0 + s1s0
11 0 0 0 0 = s1 s0
10 1 1 1 1
Para D1
TATB TATB
s1s0 00 01 11 10 s1s0 00 01 11 10
00 1 1 0 0 00 X X X X
01 X X X X 01 1 1 1 1
J 0 = s1TA + s1TB K0 = 1
11 X X X X 11 X X X X
10 1 0 0 1 10 1 1 1 1
Para J0 Para K0
25
Diseño con la Máquina de Moore
D1
LA1
s1
CLK
Circuito
digital de LB1
control
TA J1 LA0
s0
CLK
TB K1 LB0
1
26
Contenido
27
Máquina de Mealy
entradas entradas
salidas
Circuito Estado
combinacional actual Circuito
Estado
combinacional
siguiente
Lógica del
próximo Lógica de la
estado salida
• Ejemplo
Estados: S0, S1
29
Máquina de Mealy
Tabla de Transición de Estados
0/0
Estado Estado Salida
reset actual Entrada siguiente actual
B
0/0 1 – – A 0
0 A 0 B 0
reset/0 0 A 1 C 0
A 0/1 1/1
0 B 0 B 0
0 B 1 C 1
1/0
0 C 0 B 1
C 0 C 1 C 0
1/0
30
Contenido
31
Diseño con la Máquina de Mealy
• Procedimiento:
- Paso 0: Identificación de entradas y salidas del sistema
- Paso 1: Diagrama y tabla de transición de estados
- Paso 2: Codificación de estados y salidas
- Paso 3: Expresión Booleana de los estados siguientes (entradas D, {J, K} o T de los
flip-flops)
- Paso 4: Expresión Booleana de las salidas
- Paso 5: Implementación del circuito
32
Diseño con la Máquina de Mealy
0/0
Par
Estado Estado Salida
Entrada
actual siguiente actual
0/1
33
Diseño con la Máquina de Mealy
s x s' y
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0
s ' = sx + sx = s x
34
Diseño con la Máquina de Mealy
y = s' = s x
estado
s' = s x
D Q actual y = s'
x 𝑠′ (s)
Q
CLK
35
Circuito
Circuito
combinacional
combinacional com
36
Diseño con la Máquina de Mealy
TA / LA=G,LB=R
X / LA=G,LB=R X / LA=R,LB=G
E3 E2
E3 E2
TB / LA=R,LB=G
𝑇ത𝐵 / LA=R,LB=Y
TA / LA=G,LB=R
38
Diseño con la Máquina de Mealy
Nota:
- Las salidas LA1, LA0
• Ejemplo 2: Semáforo usando flip-flops D corresponden a LA
- Las salidas LB1, LB0
corresponden a LB
- Paso 2: Codificación de estados y salidas
Estado s1 s0
Salida LA1 LA0
Codificación E0 0 0
Codificación de G (green) 0 0
de los 4 E1 0 1 Para LB será
las 3 salidas
estados Y (yellow) 0 1 similar
E2 1 0 (2 bits)
(2 bits: s1s0) R (red) 1 0
E3 1 1
Estado Estado
Entradas Salidas actuale
actual siguiente
s1 s0 TA TB s1' s0’ LA1 LA0 LB1
E0 0 X E1 Y R 0 0 0 X 0 1 0 1 1
E0 1 X E0 G R 0 0 1 X 0 0 0 0 1
E1 X X E2 R G 0 1 X X 1 0 1 0 0
E2 X 0 E3 R Y 1 0 X 0 1 1 1 0 0
E2 X 1 E2 R G 1 0 X 1 1 0 1 0 0
E3 X X E0 G R 1 1 X X 0 0 0 0 1
39
Diseño con la Máquina de Mealy
D1 s1 D0 s0
• Mapas de Karnaugh:
TATB TATB
s1s0 00 01 11 10 s1s0 00 01 11 10
00 0 0 0 0 00 1 1 0 0
01 1 1 1 1 D1 = s1s0 + s1s0 01 0 0 0 0
D0 = s1s0 TA + s1s0 TB
11 0 0 0 0 = s1 s0 11 0 0 0 0
10 1 1 1 1 10 1 0 0 1
Para D1 Para D0
• Cada entrada D depende de los estados actuales (s1s0) y de las entradas (TA, TB)
40
Diseño con la Máquina de Mealy
LA1 = s1'
41
Diseño con la Máquina de Mealy
LA1
TA
LA0
TA s0
LB1
TB
LB0
TB
42
Contenido
43
Análisis de Circuitos Síncronos
44
Análisis de Circuitos Síncronos
• Ejemplo 1
Analizar el comportamiento del siguiente circuito digital
x1 s
x2
Solución:
- Ecuaciones de salida del circuito: Z = s (Modelo de Moore)
- Ecuaciones de entrada a los flip-flops
D = s x1 x2
- Tabla de transición de estados y diagrama
45
Análisis de Circuitos Síncronos
• Ejemplo 1
- Tabla de transición de estados y diagrama de transición de estados
• En un flip flop D, el estado siguiente es igual a la entrada D = s’
Estado Estado
Entradas Salida
Actual Siguiente
s x1 x2 s’ Z
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
00, 00,
0 1 1 0 0
11 11
1 0 0 1 1
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
46
Análisis de Circuitos Síncronos
• Ejemplo 2
Analizar el comportamiento del siguiente circuito digital con salida Z
A
B Q0
Q1
Z
Solución:
- Ecuaciones de salida del circuito: Z = Q1 (Modelo de Moore)
- Ecuaciones de entrada a los flip-flops
J 0 = AB T = A B Q0 Q1
K 0 = AB
47
Análisis de Circuitos Síncronos
• Ejemplo 2
- Tabla de transición de estados - Diagrama de transición de estados
(Modelo de Moore)
Estado actual Entradas Estado siguiente Salida
• D.M. Harris, S. L. Harris, Digital Design and Computer Architecture , 2nd ed,
Whaltham, USA: Elsevier, 2013 (Capítulo 3)
• S. Ward and C. Terman (the staff and students of M.I.T. 6.004), Computation
Structures: http://computationstructures.org/notes/fsms/notes.html
49