MÁQUINAS DE ESTADO FINITAS

Slides:



Advertisements
Presentaciones similares
Bases de la programación de un PLC
Advertisements

DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
CIRCUITOS SECUENCIALES E.U.I.T. Informática de Gijón
Autómatas Finitos.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
Modelos de Circuitos Secuenciales: Mealy y Moore
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Circuitos digitales secuenciales I: Resumen del contenido
Análisis Análisis y Síntesis Métodos de análisis: Tabla de verdad.
Sistemas Secuenciales
 SON FUNCIONES LÓGICAS  REPRESENTADAS POR TABLAS DE VERDAD  SIMPLIFICABLES POR LÓGICA BOOLEANA  SIMPLIFICABLES POR KARNAUGH  APLICACIONES: funciones.
Análisis sintáctico LR: SLR (LR simple)
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
ANALISIS SINTACTICO Parte I
Capítulo 1 “Elementos de Programación”
INTRODUCCIÓN AL DISEÑO SECUENCIAL: CONTADORES Y REGISTROS
CIRCUITOS DIGITALES II: Análisis de Sistemas Secuenciales
SISTEMAS DIGITALES SECUENCIALES
Análisis de Sistemas Secuenciales
Capítulo 2 – Estructuras de Control
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Autómatas Finitos Es un diagrama de transiciones que permite identificar cadenas que pertenecen a un lenguaje. Puede ser determinista o no determinista.
Lenguajes regulares Teoría del Autómata.
EXPRESIONES Y SENTENCIAS
Unidad aritmético-lógica
Estructuras de Control.
Tecnologías de las computadoras
Realizado por Carolina Rubio
Análisis Léxico Área Software de Base.
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Organización del Computador 1
Sistemas Secuenciales Electrónica Digital
Teoría de lenguajes y compiladores
Reglas Básicas del Álgebra de Boole
Contenido Los puntos 9.7 y 9.8 no se dan 9.1. Revisión del concepto de máquina secuencial. Taxonomía Temporización en los circuitos lógicos síncronos.
¿QUE ES EL DIAGRAMA DE ESTADO ?
Simulación de un AFD Conversión de un AFND a un AFD.
Flip-Flop Integrantes: Hesbon Esaù Torres Jaime
Diseño de Sistemas Secuenciales Síncronos
Desarrollador Profesional de Juegos Programación III Unidad I Excepciones Tipos.
Máquinas de estado con VHDL
Circuitos Combinacionales I
Circuitos secuenciales 2
DIAGRAMA DE FLUJO.
Cetina Luna Luis Antonio Irma Lizette Espinosa Negrete Omar Alberto Herrera Caamal Rigoberto Lizarraga Hernandez.
NUEVOS SISTEMAS DE FRENADO DE LOS AUTOMOVILES
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
Compuertas Lógicas.  La lógica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lógico. La manipulación de información.
CODIGOS Y SIMBOLOGIA QUE RIGEN LA INSTRUMENTACION Y CONTROL
LENGUAJES GRÁMATICAS Y AUTÓMATAS
Programación SISTEMAS NUMERICOS PROGRAMACION I INFO 012.
[ Arquitectura de Computadores ] SISTEMAS DIGITALES Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Tema 3. Secuencias y transformada z
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
Copyright © 2011, 2007, 2004, 2001, 1998 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved Introducción al Diseño Lógico.
CIRCUITOS COMBINACIONALES Y SECUENCIALES. SON FUNCIONES LÓGICAS REPRESENTADAS POR TABLAS DE VERDAD SIMPLIFICABLES POR LÓGICA BOOLEANA SIMPLIFICABLES.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Organización del Computador 1 Lógica Digital 2 Circuitos y memorias.
Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.
PPTCES011CB32-A16V1 Clase Movimiento II: movimientos con velocidad constante.
LENGUAJES FORMALES, AUTOMATAS Y MAQUINAS DE ESTADOS FINITOS
5. Análisis y diseño de sistemas secuenciales (I)
Diseño Secuencial El cambio es la única cosa en el universo que no cambia. Helmuth Wilhem Científico alemán.
Tema 2. Sistemas Secuenciales básicos
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA
MÁQUINAS DE ESTADO FINITAS Pablo San Segundo (C-206)
Transcripción de la presentación:

MÁQUINAS DE ESTADO FINITAS Pablo San Segundo (C-206) pablo.sansegundo@upm.es

Sistemas secuenciales Secuencial = combinacional + memorias (biestables) Tipos Síncrono: cambio de estado en cada ciclo de reloj. Asíncrono: cambio de estado nada mas detectarse variaciones en las entradas o en las memorias internas. Modelo formal: Máquina de estados Mealy: las salidas depende de las entradas y del valor de las memorias Moore: las salidas sólo depende del valor de las memorias

Máquina 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 estados I  Ø 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 COMBINACIONAL

Máquina de 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 estados I  Ø 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 COMBINACIONAL

Objetivos Nociones de Máquinas de Moore y Mealy Modelado Conversiones entre máquinas Modelado Diagramas de estado Tablas de transición Simplificación Estados equivalentes Aplicación sobre el diagrama de estados Aplicación sobre las tablas de transición Diseño de sistemas secuenciales síncronos Elección de estados (preferentemente con semántica de salida) Ecuaciones de transición de estados Activación Retención Casos prácticos

Ejemplo: Sumador binario bit a bit (1/4) Entradas Dos entradas binarias x1 y x2 Una salida binaria y Estados- Maquina 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 EJERCICIO Tablas de verdad para d y b

Ejemplo: Sumador binario de 1 bit (2/4) m={q0,q1} x1 x2 mt mt+Dt y 1 CUESTIÓN ¿Interpretación semántica?

Ejemplo: Sumador binario bit a bit (3/4) Evento de ACTIVACIÓN del estado q1 Diagrama de transición de estados Eventos de RETENCIÓN del estado q0 CUESTIÓN Demuestre que es una máquina de Mealy

Ejemplo: Sumador binario bit a bit (4/4) Diseño-Máquina 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 estados (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 Indique otra posible conversión de Mealy a Moore CUESTIÓN

Representación-Diagrama de estados (1/2) Grafo cuyos nodos representan estados y los arcos cambios (transiciones) entre estados fruto de eventos MEALY CUESTIÓN I ¿MEALY o MOORE? CUESTIÓN II ¿Secuencial o combinacional? MOORE SUMADOR EN SERIE DE 1 BIT

Representación-Tabla de transición (2/2) Tabla de transición de estados 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 O q0 q0,0 q0,1 q1,0 q0,1 q00 q00 q01 q10 q01 0 q1 q0,1 q1,0 q1,1 q1,0 q01 q00 q01 q10 q01 1 q10 q01 q10 q11 q10 0 q11 q01 q10 q11 q10 1 SUMADOR EN SERIE DE 1 BIT La salida se computa a partir del estado actual (Qt) y las entradas CUESTIÓN Razone si pueden existir problemas de implementación de la máquina para este caso

Simplificación- estados equivalentes (1/3) ESTADOS EQUIVALENTES (intuición) Dos estados son equivalentes cuando para una misma secuencia de entradas la máquina evoluciona de la misma manera: pasa por los mismos estados y presenta la misma salida en todo momento

Simplificación-ejemplo (2/3) Reconocedor de cadenas 101 I: x={0,1} O: y={0,1} …10101 una sola secuencia CUESTIÓN II ¿Combinacional? Cadena {101} NO encontrada Cadena {101} encontrada Estados: NADA ningún símbolo reconocido 1 subcadena 1 reconocida 10 subcadena 10 reconocida 101 cadena 101 reconocida CUESTIÓN I ¿Mealy o Moore?

Simplificación-ejemplo (3/3) Identificación de estados equivalentes EJERCICIO Tabla de transición 0/0 1/0 1/0 NADA 1/0 0/0 1/1 101 1 10 Q\X x=0 x=1 Qn Qn/0 Q1/0 Q1 Q10/0 Q10 Q101/1 Q101 0/0 1/1 0/0 Control secuencial con máquinas síncronas Conversión a Máquina de Moore NADA/0 1/0 10/0 101/1 1 Q\X x=0 x=1 y Qn Q1 Q10 Q101 1 No hay estados equivalentes

Ejercicio: Control de un carrito (1/7) LEY DE CONTROL Un ciclo completo de ida y vuelta tras cada pulsación de PON Entradas Salidas PON Izq A Dcha B Dcha Izqda A B PON Tanteo con máquina de Moore: Un estado por cada combinación de salidas posibles con sentido: Reposo (R) Derecha (D) Izquierda (I)

Ecuaciones de transición (2/7) Pon A B E={Pon, A, B} Q={R, D, I} O= {Do, Io} Qt\ 000 001 010 011 100 101 110 111 O R x 0,0 D 1,0 I 0,1 Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Ecuaciones de activación de estado DI, RD, IR Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Ecuaciones de retención de estado RR, DD, II

Ecuaciones de activación (3/7) Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación del estado Derecha Activación del estado Izquierda Activación del estado Reposo Reposo Dcha Izqda

Ecuaciones de retención (4/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Retención del estado de reposo Usando solo entradas y reposo(t)-el formalismo Usando entradas, reposo(t) y derecha(t+1), programación PLCs ¿Retención de D, I?

Ecuaciones de transición finales (5/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Retención Trans. Derecha Trans. Izquierda Trans. Reposo

Modificación de especificaciones (6/7) Sucesivas pulsaciones de Pon alternan la dirección del movimiento del carrito (si no está en los extremos) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Retención

Nuevas ecuaciones de transición (7/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Retención Trans. Derecha Trans. Izquierda Trans. Reposo

Ejercicio: Control de tráfico en un sentido-A q1 q2 q3 q4 q5 q6 q7 Diseñe una máquina de estados que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que 1) la longitud del vehículo y 2) la separación entre vehículos

Solución Qt\ 00 01 10 11 O NO SI SC x 1 (e1,e2) salida C1: “no vehículo” C2: “correcto” C3: “incorrecto” EJERCICIO Ecuaciones de salida

Ejercicio: Control de tráfico en un sentido-B q1 q2 q3 q4 q5 q6 q7 Diseñe una máquina de estados que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia mayor que la longitud del vehículo y menor que la separación entre vehículos

Tabla de transición (I) “correcto” “incorrecto” “no vehículo” (e1,e2) “vehículo entre sensores no ok” “vehículo entre sensores ok” Qt\ 00 01 10 11 O NO SI SC x 1 VEC VEI I CUESTIÓN I ¿Es correcta la tabla? CUESTIÓN II Indique si existe un problema con el diseño

Tabla de transición (II) Qt\(e1,e2) 00 01 10 11 O NO SI-01 SC-10 x 1 SC-00 SC-01 SI-00 SI-10 “correcto-10” “correcto-00” “no vehículo” “correcto-01” CUESTIÓN I Complete la tabla CUESTIÓN II ¿Se puede simplificar algún estado? EJERCICIO Ecuaciones de activación y retención para la máquina simplificada

Ejercicio: Control de un cilindro (1/3) Realizar un automatismo para el control de un cilindro de doble efecto con una electroválvula 5/2 biestable. Se dispone de un interruptor de inicio (I) y otro de parada (P), junto con dos sensores de posición S1 y S2, que detectan la compresión y expansión del cilindro respectivamente. Al activar I se realizarán ciclos completos de expansión/compresión del cilindro hasta activar P, momento en que el cilindro volverá al reposo. En reposo siempre estará comprimido el cilindro. La parada siempre será preferente. I P

Diseño de máquina de estado (2/3) Qt 0000 0001 … A1 A2 R E C Entradas: {I, P, S1, S2} Salidas: {A1 y A2} Estados { Reposo (R), Expandiendo (E), Comprimiendo (C) } conf. inicial del reposo EJERCICIO I Ecuaciones de salidas Indica parada preferente EJERCICIO II Ecuaciones en lenguaje de contactos (KOP)

Lenguaje KOP (3/3) Ec. activación Ec. retención

Tabla de transición (II)-Solución Qt\(e1,e2) 00 01 10 11 O NO SI-01 SC-10 x 1 SC-00 SC-01 SI-00 SI-10 “correcto-10” “correcto-00” “no vehículo” “correcto-01” “incorrecto-01” “incorrecto-00” “incorrecto-10” Qt\(e1,e2) 00 01 10 11 O NO SI-01/00 SC-10/00 x 1 SC-01 SI-01 SI-10

Entorno S5-Bloque OB1

Entorno S5-Simulador

Simplificación (1/3) 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) ESTADOS EQUIVALENTES (informal) Dos estados son equivalentes cuando para una misma secuencia de entradas la máquina evoluciona de la misma manera: pasa por los mismos estados y presenta la misma salida en todo momento

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 e1 y 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?

REDUCCIÓN DE AUTÓMATAS 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 Transitiva? Condiciones de retención del estado? 00 01 11 10 S q1 q1 q5 X q2 1 q2 X X q3 q2 1 q3 X q4 q3 X 1 q4 q1 q4 X X 1 q5 X q5 q6 X 0 q6 X X q6 q7 0 q7 q1 X X q7 0

Simplificación de máquinas 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)

REDUCCIÓN DE AUTÓMATAS 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 S C1 C1 C3 X C2 1 C2 C1 C2 C2 C2 1 C3 C1 C3 C3 C3 0 Mealy/Moore?

SINCRONISMO vs ASINCRONISMO void main (void) { //... C1: Genera (NO_ALARMA) ; Entrada = Leer_Entrada () ; if (Entrada == I01) goto C3 ; if (Entrada == I10) goto C2 ; goto C1 ; C2: if (Entrada == I00) goto C1 ; goto C2 ; C3: Genera (ALARMA) ; goto C3 ; return ; } Tipo de Entradas? Tipo de Salidas? CÓDIGO NO ESTRUCTURADO Difícil puesta a punto y mantenimiento

SINCRONISMO vs ASINCRONISMO 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;} case E10 : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=1; Estado=E101;} case E101 : if (Entrada==0) {Salida=0; Estado=NADA;} } Genera (Salida) ; return ; Entrada Síncrona Retención del estado Salidas Síncronas

SINCRONISMO vs ASINCRONISMO Reconocedor de cadenas con entrada de validación NADA/0 1/0 10/0 101/1 1 void main (void) { while (1) Espera_Sincronismo () ; Entrada = Leer_Bit () ; switch (Estado) case NADA : ... ... } Genera (Salida) ; return ;

Introducción Álgebra booleana Máquinas de estados Representación Tablas de verdad Puertas lógicas Axiomas Simplificación Ejemplos Máquinas de estados Mealy Moore Tablas de transición Diagramas de estados Simplificación (Reducción) Sincronismo

REPASO: S.E.D. SISTEMAS DE EVENTOS DISCRETOS Sistemas Continuos o Analógicos TIEMPO Sistemas de Eventos Discretos Asíncronos Tiempo Discreto o Muestreados Síncronos CONTINUO DISCRETO ESTADO