Está en la página 1de 49

Circuitos Digitales: 2019-2

Máquinas de Estados
Finitos

MsC. Luz Adanaqué

Junio 2020
Contenido

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

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

• Máquina de Estados Finitos


- Es un circuito secuencial síncrono que posee un número finito de estados que
ocurren en un orden prescrito

FSM
“Finite State Machine”

3
Máquina de Estados Finitos

• Funciona de manera síncrona (tiene reloj)

Entradas
FSM Salidas

Reloj (clk)

• Componentes:
- k estados: s1, s2, …, sk
- m entradas: I1, I2, …, Im
- n salidas: y1, y2, …, yn

- Reglas de transición de estados


s’ = h( s, I ) para cada estado s y entrada I
- Reglas de salida
y(s) o y(s,I) para cada estado s y entrada I

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

• ¿Qué tipos de máquinas son las siguientes?

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

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

8
Máquina de Moore

• Esquema del circuito

entradas

Circuito
combinacional Circuito
combinacional
Lógica del
próximo estado Lógica de la
salida

Estado Estado
siguiente actual

• La salida solo depende del estado actual


9
Máquina de Moore
Diagrama de Transición de Estados

• Muestra cómo la máquina va de un estado a otro

- Cada círculo representa un estado (con


su salida asociada)

- Cada arco (flecha) representa la


transición de un estado al otro para una
entrada determinada

• Ejemplo

Estados: S0, S1, S2

10
Máquina de Moore
Diagrama de Transición de Estados

Estados: S1, S2, S3

• Los arcos (flechas) que salen de un estado deben ser:


- Mutuamente excluyentes
• No pueden haber dos alternativas para una determinada entrada

- 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

• Equivalencia con el diagrama de transición de estados

Estado Estado Salida


0 reset actual Entrada siguiente actual

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

Nota: la salida actual solo depende del estado actual 12


Contenido

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

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

• Ejemplo 1: generador de paridad par usando flip-flops D


Usando un flip-flop D y compuertas lógicas, diseñar un circuito digital secuencial cuya
salida genere un bit de paridad par considerando como entrada una secuencia de bits.
Es decir, la salida del circuito será:
• 1 si hay un número impar de 1s en la entrada
• 0 si hay un número par de 1s en la entrada

- Paso 1: Diagrama (y tabla) de transición de estados

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

• Ejemplo 1: generador de paridad par usando flip-flops D

- Paso 2: Codificación de estados y salidas

Estado Estado Salida


Entrada
actual siguiente actual

s x s' y
0 0 0 0
Par = 0
Impar = 1
0 1 1 0
1 0 1 1
1 1 0 1

- Paso 3: Expresión Booleana del “estado siguiente” (entrada D al flip-flop)


• Para el flip-flop D, el valor de D es igual al estado siguiente
• El estado siguiente (entrada D) depende del estado actual (s)
y de la entrada (x)

D = s ' = sx + sx = s  x
Flip-flop D

16
Diseño con la Máquina de Moore

• Ejemplo 1: generador de paridad par usando flip-flops D

- Paso 4: Expresión Booleana de la salida


• En la máquina de Moore, la salida solamente depende del estado actual (no de las entradas)

y=s
- Paso 5: Implementación del circuito

s' = s x
𝑠′ D Q y y=s
x
Q

CLK

• Si se da el circuito anterior, ¿cómo se puede saber qué es lo que hace?


- Se puede hacer el proceso inverso al de diseño (“análisis”)

17
Diseño con la Máquina de Moore

• Ejemplo 2 generador de paridad par usando flip-flops JK

- El diagrama y la tabla de transición de estados (pasos 1 y 2) no varían


- La expresión de la salida (paso 4) no varía
- Lo que varía es la expresión Booleana del estado siguiente (paso 3)

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

- Implementación (paso 5): dibujar el circuito

Notar que J, K dependen del estado actual y de la entrada 18


Diseño con la Máquina de Moore

Ejercicio

Usando un flip-flop T y un flip-flop JK diseñar una máquina de Moore cuya


salida sea 1 solo cuando se detecta la secuencia 101 en su entrada. Con
cualquier otra combinación de entrada la salida permanecerá en 0.

19
Diseño con la Máquina de Moore

• Ejemplo 3: Semáforo con flip-flop D y JK


Se desea controlar el tráfico en la intersección de dos avenidas (A y B). Por cada avenida los
vehículos solamente pueden avanzar de frente (no pueden virar hacia la otra avenida).
Se dispone de los siguientes elementos:
- 2 sensores de tráfico (TA, TB): su salida es 1 si hay vehículos en la avenida correspondiente, y 0 si no los hay
- 2 semáforos (LA, LB): cada uno tiene entradas para mostrar rojo (R), ambar (Y) o verde (G)
- 1 reloj con periodo de 5s, y un reset para el estado inicial
Avenida B

Circuito
digital de
Avenida A control

20
Diseño con la Máquina de Moore

• Ejemplo 3: Semáforo con flip-flop D y JK


El comportamiento del circuito debe ser el siguiente:
• Cuando se inicia el sistema (reset), las luces del semáforo LA están en verde y del semáforo LB
en rojo.
• Los semáforos LA, LB cambian de estado (luz) solo si el sensor correspondiente (TA o TB) ya no
detecta vehículos en la respectiva avenida.
Implementar este sistema usando un flip-flop D (para el MSB del estado) y un flip-flop JK (para el
LSB del estado)
Avenida B

E0 E1

Avenida A

E3 E2

21
Diseño con la Máquina de Moore

• Ejemplo 3: Semáforo con flip-flop D y JK


- Paso 1: Diagrama y tabla de transición de estados

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

• Ejemplo 3: Semáforo con flip-flop D y JK


- Paso 2: Codificación de estados y salidas

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

Tabla de transición de estados codificada:


Estados Estados
Entradas Salidas actuales
actuales siguientes
s1 s0 TA TB s1' s0' LA1 LA0 LB1 LB
E0 0 X E1 G R 0 0 0 X 0 1 0 0 1 0
E0 1 X E0 G R 0 0 1 X 0 0 0 0 1 0
E1 X X E2 Y R 0 1 X X 1 0 0 1 1 0
E2 X 0 E3 R G 1 0 X 0 1 1 1 0 0 0
E2 X 1 E2 R G 1 0 X 1 1 0 1 0 0 0
E3 X X E0 R Y 1 1 X X 0 0 1 0 0 1

23
Diseño con la Máquina de Moore

• Ejemplo 3: Semáforo con flip-flop D y JK


- Paso 3: Expresión Booleana de los estados siguientes
• El bit MSB del estado (s1) usará un flip-flop D: entrada D1 al flip-flop
• El bit LSB del estado (s0) usará un flip-flop JK: entradas J0K0 al flop-flop
• Tabla:
D1 s1
Estados Estados
Entradas Entradas a los FF
actuales siguientes
s1 s0 TA TB s1' s0' D1 J0 K0
0 0 0 X 0 1 0 1 X
0 0 1 X 0 0 0 0 X
0 1 X X 1 0 1 X 1 J0 s0
1 0 X 0 1 1 1 1 X
1 0 X 1 1 0 1 0 X
K0
1 1 X X 0 0 0 X 1

• Los estados siguientes dependen del estado actual y de la entrada


24
Diseño con la Máquina de Moore

• Ejemplo 3: Semáforo con flip-flop D y JK


- Paso 3: Expresión Booleana de los estados siguientes
• Mapas de Karnaugh para D1, J0, K0 en función del estado actual y de la entrada

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

• Ejemplo 3: Semáforo con flip-flop D y JK


- Paso 4: Expresión Booleana de las salidas
• Mapa de Karnaugh para cada salida (en Moore, la salida depende solo del estado actual)
s0 s0 s0 s0
s1 0 1 s1 0 1 s1 0 1 s1 0 1
0 0 0 0 0 1 0 1 1 0 0 0
1 1 1 1 0 0 1 0 0 1 0 1

LA1 = s1 LA 0 = s1s0 LB1 = s1 LB 0 = s1s0


- Paso 5: Implementación del circuito

D1
LA1
s1
CLK
Circuito
digital de LB1
control
TA J1 LA0
s0
CLK
TB K1 LB0
1
26
Contenido

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

27
Máquina de Mealy

• Esquema del circuito

entradas entradas

salidas

Circuito Estado
combinacional actual Circuito
Estado
combinacional
siguiente
Lógica del
próximo Lógica de la
estado salida

• La salida depende de: 1) El estado actual


2) Las entradas externas
28
Máquina de Mealy
Diagrama de Transición de Estados

• Muestra cómo la máquina va de un estado a otro


- Cada círculo representa un estado
- Cada arco (flecha) representa la transición
para una entrada determinada. También se
indica la salida
- Notar que la salida depende de la entrada y
del estado

• Ejemplo

Estados: S0, S1

29
Máquina de Mealy
Tabla de Transición de Estados

• Equivalencia del diagrama de transición de estados con la tabla de transición


de estados (y salida)

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

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

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

• El procedimiento es, en general, similar al usado para la Máquina de Moore

32
Diseño con la Máquina de Mealy

• Ejemplo 1: generador de paridad par usando flip-flops D


- La entrada es una secuencia de bits
- La salida es:
• 1 si hay un número impar de 1s en la entrada
• 0 si hay un número par de 1s en la entrada 001011… 0/1

- Paso 1: Diagrama y tabla de transición de estados

0/0
Par
Estado Estado Salida
Entrada
actual siguiente actual

1/1 1/0 Par 0 Par 0


Par 1 Impar 1
Impar 0 Impar 1
Impar
Impar 1 Par 0

0/1

33
Diseño con la Máquina de Mealy

• Ejemplo 1: generador de paridad par usando flip-flops D

- Paso 2: Codificación de estados y salidas

Estado Estado Salida


Entrada
actual siguiente actual

s x s' y
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0

- Paso 3: Expresión Booleana del “estado siguiente” (entrada D al flip-flop)


• Para el flip-flop D, el valor de D es igual al estado siguiente
• El estado siguiente (entrada D) depende del estado actual (s) y de la entrada (x)

s ' = sx + sx = s  x

34
Diseño con la Máquina de Mealy

• Ejemplo 1: generador de paridad par usando flip-flops D

- Paso 4: Expresión Booleana de la salida


• En la máquina de Mealy, la salida depende tanto del estado actual (s) como de las entradas
(x)

y = s' = s x

- Paso 5: Implementación del circuito

estado
s' = s x
D Q actual y = s'
x 𝑠′ (s)
Q

CLK

35
Circuito
Circuito
combinacional
combinacional com

Lógica de la Lógica del


próximo L
salida
estado

36
Diseño con la Máquina de Mealy

• Ejemplo 2: Semáforo usando flip-flops D


El comportamiento del circuito debe ser el siguiente:
• Cuando se inicia el sistema (reset), las luces del semáforo LA están en verde y del semáforo LB
en rojo.
• Los semáforos LA, LB cambian de estado (luz) solo si el sensor correspondiente (TA o TB) ya no
detecta vehículos en la respectiva avenida.

TA / LA=G,LB=R

Reset / 𝑇ത𝐴 / LA=Y,LB=R


E0 E1 LA=G,LB=R
E0 E1

X / LA=G,LB=R X / LA=R,LB=G

E3 E2
E3 E2
TB / LA=R,LB=G
𝑇ത𝐵 / LA=R,LB=Y

Modelo de Moore Modelo de Mealy


37
Diseño con la Máquina de Mealy

• Ejemplo 2: Semáforo usando flip-flops D


- Paso 1: Diagrama y tabla de transición de estados

TA / LA=G,LB=R

Reset / 𝑇ത𝐴 / LA=Y,LB=R


LA=G,LB=R
E0 E1
E0 0 X E1 Y R
E0 1 X E0 G R
X / LA=G,LB=R X / LA=R,LB=G E1 X X E2 R G
E2 X 0 E3 R Y
E2 X 1 E2 R G
E3 E2
E3 X X E0 G R
TB / LA=R,LB=G
𝑇ത𝐵 / LA=R,LB=Y

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

Tabla de transición de estados codificada:

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

• Ejemplo 2: Semáforo usando flip-flops D


- Paso 3: Expresión Booleana de los estados siguientes (entradas D de los flip-flops)
• Para cada flip-flop D, el valor de D es igual al estado siguiente

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

• Ejemplo 2: Semáforo usando flip-flops D


- Paso 4: Expresión Booleana de las salidas
• En la máquina de Mealy, las salidas dependen del estado actual (s1s0) y de las entradas (TA, TB)
• Mapa de Karnaugh para cada salida

LA1 = s1'

TATB TATB TATB


s1s0 00 01 11 10 s1s0 00 01 11 10 s1s0 00 01 11 10
00 1 1 0 0 00 1 1 1 1 00 0 0 0 0
01 0 0 0 0 01 0 0 0 0 01 0 0 0 0
11 0 0 0 0 11 1 1 1 1 11 0 0 0 0
10 0 0 0 0 10 0 0 0 0 10 1 0 0 1

LA0 = s1 s0TA LB1 = s1 s0 + s1s0 LB 0 = s1 s0TB

41
Diseño con la Máquina de Mealy

• Ejemplo 2: Semáforo usando flip-flops D


- Paso 5: Implementación

LA1
TA

LA0
TA s0

LB1

TB
LB0

TB

42
Contenido

1. Máquina de Estados Finitos

2. Diagrama y tabla de transición de estados (Moore)

3. Diseño con la máquina de Moore

4. Transición de Estados con la Máquina de Mealy

5. Diseño con la máquina de Mealy

6. Análisis de circuitos secuenciales síncronos

43
Análisis de Circuitos Síncronos

• El comportamiento de un circuito se describe por:


- La tabla de transición de estados
- El diagrama de transición de estados

• Procedimiento para el análisis


1. Encontrar las ecuaciones de las salidas del circuito
2. Encontrar las ecuaciones de entradas a los flip-flops (ecuaciones para D, {J, K}, o T)
3. Realizar una tabla de transición de estados (para todas las combinaciones de
entradas y estados actuales) que muestre los estados siguientes y las salidas
4. Obtener un diagrama de transición de estados

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

Para determinar el estado


siguiente primero encontrar la J0, K0, T1
tabla de:
48
Referencias

• 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

• T.L. Floyd, Digital Fundamentals, 11th ed, Edinburgh Gate, England:


Pearson Education Limited, 2015 (Capítulo 9)

49

También podría gustarte