sistemas empotrados automatas de estados finitos€¦ · máquinas de estados finitas 2 funciones...

29
Máquinas de estados finitas 1 FUNDAMENTOS LÓGICOS ALGEBRA BOOLEANA Grupo de correo [email protected]

Upload: others

Post on 10-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 1

FUNDAMENTOS LÓGICOS

ALGEBRA BOOLEANA

Grupo de [email protected]

Page 2: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 2

Funciones básicas: AND, OR y NOT

y a=y a b= ⋅y a b= +

a b y0 0 00 1 11 0 11 1 1

a y0 11 0

b

a

ya b

y

Notación

AND OR NOT¬∨∧

yi +

Page 3: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 3

Teoremas

a a=

NOT

1

00 0

a a aa a

a aa

⋅ =⋅ =

⋅ =⋅ =

AND

1 10

1

a a aaa a

a a

+ =+ =+ =

+ =

OR

Leyes de Morgan

a b a b

a b a b

+ = ⋅

⋅ = +

a b b aa b b a

+ = +⋅ = ⋅

Conmutatividad

( ) ( )( ) ( )

a b c a b ca b c a b c

+ + = + +⋅ ⋅ = ⋅ ⋅

Distributividad

( ) ( ) ( )( ) ( ) ( )

a b c a b a ca b c a b a c

⋅ + = ⋅ + ⋅+ ⋅ = + ⋅ +

Asociatividad

Page 4: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 4

Funciones derivadas

NOR y a b= + NAND y a b= ⋅

Demostrar Demostrar

XNOR y a b a b a b= ⊕ = ⋅ + ⋅XOR y a b a b a b= ⊕ = ⋅ + ⋅

Page 5: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 5

XOR y a b a b a b= ⊕ = ⋅ + ⋅Formas canónicas

SUMAS DE PRODUCTOS (SP)

Términos por cada ‘1’ de la salida

PRODUCTOS DE SUMAS (PS)

Términos por cada ‘0’ de la salida

Se niega la función resultante y se simplifica aplicando Morgan

: ( ) ( )SP y a b a b= ⋅ + ⋅

: ( ) ( )

( ) ( )

( ) ( )

( ) ( )

PS y a b a b

y a b a b

y a b a b

y a b a b

= ⋅ + ⋅ ⇒

⇒ = ⋅ + ⋅ ⇒

⇒ = ⋅ ⋅ ⋅ ⇒

⇒ = + ⋅ +

Page 6: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 6

EJERCICIO

a b c y0 0 0 10 0 1 10 1 0 10 1 1 11 0 0 01 0 1 11 1 0 11 1 1 0

SP? PS?

Page 7: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 7

SIMPLIFICACIÓN (Karnaugh) : ( ) ( ) ( ) ( ) ( )

( ) ( ) ( )

SP y a b c a b c a b c a b c a b c

a b c a b c a b c

= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ +

+ ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅1- Desarrollo de Sumas de Prod (SP)

2- Construir Tabla de Karnaugh (SP)

3- Agrupar casillas a ‘1’ adyacentesen potencias de 2 (1,2,4,8,…)

4- Simplificar expresión SP eliminando las variables que cambien de valor en las agrupaciones

a b c y0 0 0 00 0 1 10 1 0 10 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

1

1 1

1

1

a b⋅

a b⋅

a b⋅

a b⋅

c c

( )y c a b= + ⋅

Page 8: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 8

EJERCICIO: Función lógica (SP) y simplificación

a b c d y

0 0 0 0 0

0 0 0 1 1

0 0 1 0 0

0 0 1 1 1

0 1 0 0 0

0 1 0 1 1

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 1

1 0 1 0 0

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 0

1 1 1 1 1

: ( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

SP y a b c d a b c d a b c d

a b c d a b c d a b c d

a b c d a b c d a b c d

= ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ +

+ ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ +

+ ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅

1 1

1 1 1

1 1

1 1

a b⋅

a b⋅

a b⋅

a b⋅

c d⋅ c d⋅ c d⋅ c d⋅

( )y d a b c= + ⋅ ⋅

Page 9: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 9

CONTROL DE UN CARRITO

PON

A B

Entradas Salidas

PON Izq

SA Dcha

SB

Dcha

Izqda

Reposo Dcha Izqda

AON SP ⋅ BS

AS

B ONS P+

ONP

PON alterna la dirección del movimiento

Page 10: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 10

MÁQUINAS DE ESTADOS FINITAS

Page 11: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 11

INTRODUCCIÓN Evento discreto: ocurrencia de una característica en la evolución de una

señal (flanco de subida, paso por un cierto nivel, pulso, llegada de un dato, …).

SistemasContinuos

o AnalógicosT

IEM

PO

Sistemas deEventos Discretos

Asíncronos

Sistemas deTiempo Discretoo Muestreados

Sistemas deEventos Discretos

Síncronos

CONTINUO DISCRETO

CO

NTI

NU

OD

ISC

RET

O

ESTADO

Eventos discretos

Page 12: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 12

INTRODUCCIÓN Sistemas de eventos discretos: sistemas dinámicos que cambian de

estado ante la ocurrencia de eventos discretos. Generalmente el estado sólo puede adquirir un conjunto discreto de valores y puede ser representado de forma simbólica en vez de numérica.

Ejemplo:

• Tiempo contínuo (sistemas asíncronos)

El estado del sistema puede cambiar en cualquier instante ante la llegada de un evento. Ej.: accionamiento del interruptor.

• Tiempo discreto (sistemas síncronos)

El estado del sistema sólo cambia cada T sg en función del estado y entradas presentes en esos instantes de tiempo.

– Evento interno: señal de reloj de la CPU (e.g. PLC)

encendida

apagada

accionamiento interruptor

accionamiento interruptor

Page 13: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 13

MÁQUINA DE MEALY Modelo de MEALY

Máquina de MEALY: Una máquina secuencial de tipo MEALY es una 5-tupla M=(Q,I,O,δ,β) donde:

Q ≠ Ø es un conjunto finito de estadosI ≠ Ø es un conjunto finito de entradas (símbolos de …)O ≠ Ø es un conjunto finito de salidas (símbolos de …)δ: QxI → Q es la función de transición de estadoβ: QxI → O es la función de salida

I O

δCOMBINACIONAL

( ) ( , )

( , )T T T T

T T T

Q I Q

O I Q

δ

β+∆ =

=

Page 14: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 14

MÁQUINA DE MOORE Modelo MOORE

Máquina de MOORE: Una máquina secuencial de tipo MOORE es una 5-tupla M=(Q,I,O,δ,λ) donde:

Q ≠ Ø es un conjunto finito de estadosI ≠ Ø es un conjunto finito de entradas (símbolos de …)O ≠ Ø es un conjunto finito de salidas (símbolos de …)δ: QxI → Q es la función de transición de estadoλ: Q → O es la función de salida

I Oλδ Q

COMBINACIONAL

Page 15: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 15

MODELADO Ejemplo: Sumador binario serie de 1 bit

• Dos entradas binarias x1 y x2

• Una salida binaria y

Modelo MEALY

• Q = {q0,q1} donde

q0 → estado de no acarreo

q1 → estado de acarreo

• Función de transición de estado:

δ(q0,11) = q1 δ(q0,00/01/10) = q0

δ(q1,00) = q0 δ(q1,10/01/11) = q1

• Función de salida:

β(q0,00/11) = 0 β(q0,01/10) = 1

β(q1,00/11) = 1 β(q1,01/10) = 0

…y

x1

2x

1

1 1

1 1

0

1

0

1

0

1

0

10

1+

Page 16: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 16

MODELADO Modelo MOORE

• Q = {q00,q01,q10,q11} donde

q00 → estado de no acarreo con salida y=0

q01 → estado de no acarreo con salida y=1

q10 → estado de acarreo con salida y=0

q11 → estado de acarreo con salida y=1

• Función de transición de estado:

δ(q00/q01 ,00) = q00 δ(q00/q01 ,11) = q10

δ(q10/q11 ,00) = q01 δ(q10/q11 ,11) = q11

δ(q00/q01 ,01/10) = q01 δ(q10/q11,01/10) = q10

• Función de salida:

λ(q00/q10) = 0 λ(q01/q11) = 1

…y

x1

2x

1

1 1

1 1

0

1

0

1

0

1

0

10

1+

Page 17: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 17

MODELADO Tabla de transición

• Representación tabular de las funciones de transición de estado y salida

Modelo MEALY Modelo MOORE

00 01 11 10 00 01 11 10 Oq0 q0,0 q0,1 q1,0 q0,1 q00 q00 q01 q10 q01 0q1 q0,1 q1,0 q1,1 q1,0 q01 q00 q01 q10 q01 1

q10 q01 q10 q11 q10 0q11 q01 q10 q11 q10 1

T Tq +∆

Tq

T Tq +∆

Tq

SUMADOR EN SERIE DE 1 BIT

Diseño: La salida se computa a partirdel estado actual y las entradas

Page 18: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 18

MODELADO Diagrama de transición

• Grafo cuyos nodos representan estados y los arcos cambios de estado.

Modelo MEALY

Modelo MOORE

q0 q1

00/0 11/1

11/0

00/101,10/001,10/1

SUMADOR EN SERIE DE 1 BIT

00 11 10,01

00

01,10 11

00 11

01,1

0

00 1101,10

q00 /0 q10/0

q11/1q

01 /1

Page 19: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 19

REDUCCIÓN DE AUTOMATAS Autómatas completamente especificados

• Una vez construido un modelo:

¿Es posible reducir el número de estados?

– ↓ coste de implementación/ejecución

– ↑ manejabilidad del modelo

• Dos estados equivalentes son INDISTINGUIBLES

• El comportamiento del autómata a partir de cualquiera de los dos estados es el mismo.

RELACION DE EQUIVALENCIA

Estados equivalentes: Dado un autómata de estados finitos A=(Q,I,O,δ,λ), dos estados qi, qj ∈ Q se dicen equivalentes ⇔ δ(qi,e) = δ(qj,e) ∀e ∈ I y λ(qi) =λ(qj). (MEALY β(qi,e) = β(qj,e) ∀e ∈ I)

Page 20: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 20

REDUCCIÓN DE AUTÓMATAS Reconocedor de cadenas 101

• I: x={0,1}

• O: y={0,1}

Rec.(101)x y

...111011011 ...001001000

NADA 1 10 101

0/0 1/0 1/0

1/0 0/0 1/1

0/00/0

Estados: NADA ningún símbolo reconocido

1 subcadena 1 reconocida

10 subcadena 10 reconocida

101 cadena 101 reconocida

…10101 una sola secuencia

Cadena no encontrada Cadena

encontrada

Mealy/Moore?

Análisiscomputacional

Page 21: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 21

REDUCCIÓN DE AUTÓMATAS Identificación de estados equivalentes

NADA 1 10 101

0/0 1/0

1/0 0/0 1/1

0/0

1/0

0/0

1/1

Conversión a Máquina de Moore

NADA/0 1/0 10/0 101/1

0 1 1

1 0 1

0

0

x=0 x=1Qn Qn/0 Q1/0Q1 Q10/0 Q1/0Q10 Qn/0 Q101/1Q101 Qn/0 Q1/0

x=0 x=1 yQn Qn Q1 0Q1 Q10 Q1 0Q10 Qn Q101 0Q101 Qn Q1 1

Control secuencialMáquinas Síncronas

No hay estados equivalentes

Page 22: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 22

REDUCCIÓN DE AUTÓMATAS Autómatas incompletamente especificados

• Ejemplo: Detector de coches en sentido contrario

Especificar un sistema que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que la longitud del vehículo y la separación entre vehículos.

e1

e2

q1 q2 q3 q4

q5 q6 q7

¿MEALY o MOORE?

Page 23: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 23

REDUCCIÓN DE AUTÓMATAS

Transitiva?

Estados compatibles: Dado un autómata de estados finitos A=(Q,I,O,δ,λ) incompletamente especificado, se dice que dos estados qi, qj ∈ Q son compatibles qi ~ qj ⇔

(1) δ(qi,e) = δ(qj,e) ∀e ∈ I en el dominio de especificación

(2) λ(qi) = λ(qj) en el dominio de especificación

Condiciones de retención del

estado?

00 01 11 10 Sq1 q1 q5 X q2 1q2 X X q3 q2 1q3 X q4 q3 X 1q4 q1 q4 X X 1q5 X q5 q6 X 0q6 X X q6 q7 0q7 q1 X X q7 0

Page 24: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 24Algoritmo

REDUCCIÓN DE AUTÓMATAS

GRAFO DE COMPATIBILIDAD

Algoritmo para reducción

1)Construir el grafo de compatibilidad binaria

2)Encontrar el mayor subgrafocompleto S en el grafo (estadoscompatibles)

3)Borrar S y volver al paso 2 hasta que todos los vérticesestén agrupados

q1

q7

q2

q6

q5

q4

q3

C2C1

C3Análisis de complejidad

Page 25: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 25

REDUCCIÓN DE AUTÓMATASReducción de estados

q1 -> C1 (sistema en reposo)

q2,q3,q4 -> C2 (coche en sentido permitido)

q5,q6,q7 -> C3 (coche en sentido contrario)

00 01 11 10 SC1 C1 C3 X C2 1C2 C1 C2 C2 C2 1C3 C1 C3 C3 C3 0

C1/1C3/0 C2/1

00,11 01,11,10

10

01

00

00

01,11,10

Mealy/Moore?

Page 26: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 26

IMPLEMENTACIÓN Ejemplo: Detector sentido contrario

void main (void) {//...C1:

Genera (NO_ALARMA) ;Entrada = Leer_Entrada () ;if (Entrada == I01) goto C3 ;if (Entrada == I10) goto C2 ;goto C1 ;

C2:Genera (NO_ALARMA) ;Entrada = Leer_Entrada () ;if (Entrada == I00) goto C1 ;goto C2 ;

C3:Genera (ALARMA) ;Entrada = Leer_Entrada () ;if (Entrada == I00) goto C1 ;goto C3 ;

//...return ;

}

C1/1C3/0 C2/1

00,11 01,11,10

10

01

00

00

01,11,10

CÓDIGO NO ESTRUCTURADO

Difícil puesta a punto y mantenimiento

Tipo de Entradas? Tipo de Salidas?

Page 27: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 27

IMPLEMENTACIÓN Ciclo de tratamiento

Ej.: Detección sentido contrario

MOORE

Entradassíncronas

Salidas asíncronas

void main (void) {

while (1){Entrada = Leer_Entrada () ;Estado = Sig_Estado ;switch (Estado){case C1 : Genera (NO_ALARMA) ;

switch (Entrada) {case I01 : Sig_Estado = C3 ; break ;case I10 : Sig_Estado = C2 ; break ;default : ;}

break ;case C2 : Genera (NO_ALARMA) ;

if (Entrada == I00) Sig_Estado = C3 ;break ;

case C3 : Genera (ALARMA) ;if (Entrada == I00) Sig_Estado = C1 ; break ;

}}return ;

}

¿Salidassíncronas?

Page 28: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 28

IMPLEMENTACIÓN Ej: Reconocedor de cadenas

void main (void) {

while (1) {[Espera_Sincronismo ();]Entrada = Leer_Bit ();switch (Estado){case NADA : if (Entrada==0) {Salida=0; Estado=NADA;}

else if (Entrada==1) {Salida=0; Estado=E1;}break ;

case E1 : if (Entrada==0) {Salida=0; Estado=E10;}else if (Entrada==1) {Salida=0; Estado=E1;}break ;

case E10 : if (Entrada==0) {Salida=0; Estado=NADA;}else if (Entrada==1) {Salida=1; Estado=E101;}break ;

case E101 : if (Entrada==0) {Salida=0; Estado=NADA;}else if (Entrada==1) {Salida=0; Estado=E1;}break ;

}Genera (Salida) ;

}return ;

}

NADA 1 10

0/0 1/0

1/0 0/0

1/10/0

SalidasSíncronas

EntradaSíncrona

Retención

Page 29: SISTEMAS EMPOTRADOS AUTOMATAS DE ESTADOS FINITOS€¦ · Máquinas de estados finitas 2 Funciones básicas: AND, OR y NOT ya= +b y =ab⋅ ya= a b y 0 0 0 0 1 1 1 0 1 1 1 1 a y 0 1

Máquinas de estados finitas 29

IMPLEMENTACIÓN Reconocedor de cadenas con entrada de validación

NADA/0 1/0 10/0 101/1

0 1 1

1 0 1

0

0

void main (void) {

while (1) {Espera_Sincronismo () ;Entrada = Leer_Bit () ;switch (Estado){case NADA : ......

}Genera (Salida) ;

}return ;

}

0

1

Salida