FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRONICA Y AUTOMATICA CATEDRAS: SISTEMAS DIGITALES II ELECTRONICA DIGITAL II

EJEMPLO COMPLETO DEL DISEÑO DE UNA MAQUINA DE ESTADOS

MAQUINAS DE ESTADO ALGORITMICAS

Las barras deben estar comprendidas entre una longitud “L” y “L+∆L”. X2 y X3 que entregan un "1" lógico si hay una barra situada delante de ellos (Figura Nº 1). Algoritmo verbal En el control de calidad del producto final de un proceso de fabricación (por ejemplo ejes en una industria metalúrgica.- Figura Nº 1: Selección de barras 2. barras de hierro en una fábrica de rejas.- Sistemas Digitales II 1 . y para seleccionar las mismas (ubicadas sobre una cinta transportadora) se disponen de tres detectores ópticos X1. que cumplen con la longitud especificada.) se necesita diseñar un sistema que permita eliminar automáticamente las piezas que no cumplan con la longitud requerida.Además. el sistema debe contar las barras “buenas”. que debe abrirse cuando se detecta una barra con una longitud mayor que “L+∆L” o menor que “L”. La distancia que separa a dos barras sometidas a verificación es tal que n unca podrá entrar una barra en la zona de detección mientras se esté comprobando la anterior.SISTEMAS DIGITALES II – ELECTRÓNICA DIGITAL II EJEMPLO COMPLETO DEL DISEÑO DE UNA MAQUINA DE ESTADOS Septiembre de 2001 1. Diagrama en bloques Leemos detenidamente el enunciado del algoritmo verbal a fin de determinar claramente cuáles son las señales de entrada y cuáles las salidas del sistema. como así también sus características.Después del último detector existe una trampa (accionada por un motor M). etc. y permanecer abierta hasta que la barra caiga. patas de mesa en una fábrica de muebles.

Para ello existen dos condiciones. la máquina espera que la barra alcance el sensor X2.Esto nos indica que. Cuando esto ocurre (X2 = 1). el sensor X3 estará en “0”.X1 X2 X3 ICONT AM Figura Nº 2: Diagrama en bloques Es importante determinar si algunas de las salidas son sensibles a pulsos y si alguna de las entradas es asincrónica. más simple. Cuando X3 = 1 analizamos el sensor X1. En el estado “F” se activa el motor hasta que X3 = 0. Si está en “1” debemos descartarla por ser larga.Una vez que terminamos de analizar una barra (normal o descartada). Si la barra es corta. por lo que debemos esperar a que la barra llegue hasta este punto antes de activar el motor. De la lectura observamos que todas las entradas son asincrónicas ya que no tienen ninguna vinculación con el reloj que maneja el sistema. Diseño de la carta MEA El próximo paso es realizar la carta MEA de tal manera que cumpla con los requisitos del algoritmo verbal. cuando una barra se esta analizando. ésta es la única etapa en la cual debemos aplicar nuestro “ingenio” para superarla adecuadamente y de la forma más sencilla posible. Por lo tanto podemos decir que cuando X1 está en “0”. no llega ninguna barra nueva. en pasos posteriores. También notamos que la salida ICONT corresponde a la activación de un contador (dispositivo electrónico). debemos mantener el motor activo hasta que el sensor X3 no detecte la presencia de barra alguna. ya que a la hora de realizar la asignación de estados deberemos tener en cuenta estas características.Si el sensor X1 esta en “1”.Cuando descartamos una barra. En cierta forma.- Sistemas Digitales II 2 . si está en “0” la barra es normal y debemos contarla como correcta. la máquina debe esperar en un estado (estado “C”) hasta que se active el sensor X3. la barra puede ser normal o larga. que la barra sea corta o larga. la máquina debe esperar a que el sensor X1 se active para que comience a analizar una barra. que nos indica que la barra descartada cayó por la trampa. este estado de espera es “E”.- 3. debemos esperar la llegada de otra en el estado inicial “A”. si éste está en “0” indica que la barra es corta y se debe descartar. Esto se logra en el estado “A”. no pueda estar presente otra en los sensores. al inicio.Del enunciado deducimos que las barras llegan con suficiente separación como para que. En el estado “B”. en este momento debemos analizar el estado del sensor X1. de lo que resulta una salida sensible a pulsos y tendremos que realizar un análisis de carreras de salida crítica. y cuando esté en “1” tenemos una barra nueva que analizar. por lo que será necesario la sincronización de las mismas a fin de evitar alguna condición rnetaestable y para lograr una asignación de estados. Para determinar esta condición.

Para ello contamos la cantidad de estados que posee la máquina. En este caso vemos que los estados son A. sería la siguiente: Sistemas Digitales II 3 . Como nuestra máquina posee 6 estados definidos.De esta manera. la cantidad de variables de estados necesarias son tres (3). por lo que podemos asignar 23 estados. un total de seis (6) estados. por el criterio de costo mínimo. debemos realizar la asignación de estados. D. en consecuencia quedarán dos (2) estados no especificados.A x1 B x2 x1 E C x3 x3 x1 F AM D ICONT x3 4. C. B.Una asignación posible. es decir una cantidad de 8 estados distintos. E y F. Asignación de Estados Luego que realizamos la carta y verificamos que ésta cumple con todas las especificaciones de nuestro algoritmo verbal.

presente en el estado “D”. luego pasa a “1” (estado “D”) y posteriormente llega a un “0” (estados “A” y “F”). En este caso. 1 Sistemas Digitales II 4 . en ésta cambian las tres variables de estado por lo que los posibles caminos (dado por la expresión 2n – 2) son seis (6). donde debemos realizar el análisis.En el caso de que la primer variable que cambie sea “Qo”. Como vemos. De acuerdo a esto. el mapa presenta la siguiente forma: Q0 1 Q2 Q1 Si realizamos la lectura del mapa tendremos que la función de salida ICONT es: ICONT = Q 1 . Q0’ Teniendo en cuenta que la condición necesaria para que exista una carrera de salida es que en una transición de estados cambie más de una variable. es una salida crítica.D - Q0 1 Q2 Q1 Proponemos una asignación de estados como la siguiente. no cambió. la única transición capaz de producir carrera de salida es la transición desde el estado “C” al estado “F”. la función de salida ICONT posee un valor inicial “0” (estado “C”).Q0 A Q2 F B E C Q1 Debemos tener en cuenta que la salida ICONT. El mapa de la salida ICONT. durante la transición de estados.El mapa que representa esta salida se llena colocando un uno en el estado donde la salida está presente. Por esto. por lo que debemos realizar una nueva asignación de estados libre de carreras. y un cero en los estados donde no está presente. estando en el estado “C” pasaremos transitoriamente por el estado “D” y luego podemos pasar por el estado no asignado o por el estado “A” para definitivamente llegar al estado “F”. por lo que tenemos que realizar análisis de carrera de salida. las transiciones entre estados adyacentes no pueden producir carrera de salida. Es evidente que tenemos un problema de carrera de salida.

por lo que cambian más de una variable y tenemos posibilidad de carrera de salida. En este caso realizaremos el diseño utilizando flip-flop tipo D.Q0 A Q2 E B F C Q1 En este caso debemos realizar el análisis para las transiciones de “B” a “E”. por lo que hemos logrado realizar una asignación libre de carreras de salida. y llegamos a un estado final donde la salida vale “0”. cuya tabla de excitación es la siguiente: Transición 0–0 0–1 1–0 1–1 0–0 0–1 1–0 1–0 D 0 1 0 1 Condición de 0–1 Condición de 1–1 Transiciones directas o incondicionales Transiciones condicionales Nos hará falta la carta con la asignación de estados. pasamos por los estados intermedios donde la salida ICONT vale “0”.Sistemas Digitales II 5 . de “C” a “F” y de “F” a “A”. la cual se representa en la siguiente figura. 1 D - 5. debemos proceder a completar el diseño. Estas transiciones se producen entre estados no adyacentes. Funciones de exitación de los Flip – Flops Una vez lograda una asignación de estados libre de carreras de salida. En esta transición no se produce carrera de salida. estados “A” o “F”.Q0 1 Q2 Q1 Lo mismo ocurre en las otras dos transiciones indicadas. En la transición de “B” a “E” vemos que partimos de un estado inicial donde la salida ICONT vale “0”.

Esto corresponde a una transición de estado condicional. por lo que debemos llenar tres mapas de excitación. Lógicamente.Para la variable Qo: En el estado “A” tenemos dos próximos estados: el mismo estado “A” y el estado “B”. la variable no cambia si la transición es al mismo estado “A”. uno para cada variable. Q0 A 000 x1 B 001 x2 x1 E 100 C 011 x3 x3 x1 F 101 AM D 010 ICONT x3 Como tenemos tres variables de estado. Esta es una transición Sistemas Digitales II 6 . que no necesariamente implica una transición condicional para todas las variables de estado. cada una de ellas será generada por un flip-flop tipo D.Tenemos que observar si la variable en estudio cambia de valor en algún caso.Variables: Q2 . Q1 . la variable Qo cambia de “0” a “1” dependiendo de la entrada X 1. pero observando la carta vemos que en la transición de “A” hacia “B”.

Q0 + X2’. Q2 De la misma manera se procede con las otras dos variable de estado Q1 y Q2. En esta carta vemos que existen dos posibilidades para hacer ésto. Q0 Sistemas Digitales II 0 - 7 . Por lo tanto en la casilla correspondiente al estado “B” deberíamos colocar X2’ + X2. Q1. Para la variable Q1 : Estando en el estado "A" la variable Q1 vale “0” y tenemos una transición de estado condicional. en este caso “0”.De la misma manera se procede con el resto de los estados. ésta se cumple si X1 está afirmada. Q1’. Q1’. de acuerdo a la tabla de excitación del flip-flop D. pero en los dos estados que se alcanzan la variable vale lo mismo. lo que arroja como resultado la siguiente función: Q0* = X1. Q2’.Q0 X1 Q2 X3 X2’+X1 X3’+X1 X3 Q1 Una vez llenado el mapa de la función de excitación del flip-flop D que representará la variable Qo procedemos a leer el mapa. Como la variable está en “1”. y la expresamos en la casilla correspondiente al estado “A”. X1. debemos colocar la condición de la entrada que lleva la variable a “1”. Estas dos posibilidades quedarán relacionadas por una suma lógica. Para el caso del estado “D”.X1. Q2’. Q1’ + X1.En el estado “B” tenemos tres posibles próximos estados. Q1. La primera es que X2 este negada y la otra es X2 directa y X1 directa. Q0 + X3 .0 - Q0 0 Q2 0 X2. por lo que para la variable Q1 es una transición directa o incondicional. tenemos una transición incondicional al estado “A” por lo que debemos aplicar la parte de la tabla de excitación correspondiente a transiciones directas o incondicionales. Q1. el mismo estado “B”. tratándose de una transición condicional debemos utilizar la parte de la tabla de excitación que corresponde a transiciones condicionales. el “C” y el “E”. Q0 + X3’.condicional de la variable y. Q2’.X1 X3’+X1’ 0 Q1 Q1* = X2 . Q0 + X3’.X1 que por álgebra de Boole se simplifica a X2’+X1. Esta segunda posibilidad se representa por el producto de las dos entradas X2. y debemos utilizar la parte de la tabla de excitación correspondiente a transiciones incondicionales. Q 2’. Q0 + X1’. En el estado de partida la variable Qo vale “1”. de acuerdo a la tabla de exitación debemos observar las opciones que existen para mantener la variable en “1”.

Sistemas Digitales II 8 .X1’ X3. En general. X1. en el momento que se presente el nuevo flanco. colocando un uno en el estado o estados donde se encuentra presente esta salida. y este ejemplo en particular tiene otras cartas posibles para solucionarlo. X1’. Para este ejemplo tendremos el siguiente mapa: Q0 Q2 1 Q1 - Leemos el mapa y nos quedará la función: AM = Q2 . Al analizar carreras de salida encontramos la función correspondiente a la salida ICONT. Q1 . Calculo de la Frecuencia Máxima del Reloj Para obtener la frecuencia máxima a la que podrá funcionar el circuito se deberá tener en cuenta una serie de tiempos que limitarán el periodo mínimo del reloj. Q0’ + X3.- 7. de manera que la máquina de estados pueda operar en forma correcta. Q2 + X3.Es importante aclarar que el presente informe ha sido elaborado de tal manera de poder analizar la mayoría de las alternativas que se presentan en la etapa de diseño de una Máquina de Estado Algorítmica. Q0 6. Q2’. Funciones de salida El diseño quedará completo cuando encontremos las funciones de salida. y un cero en los estados donde no esté presente.Para la variable Q2 : Q0 0 Q2 1 X2. Q0 + X2. Q 0 Con esto hemos concluido el diseño y solo faltará la implementación. Para ello debemos llenar un mapa para esta función.ICONT = Q1. cualquier diseño admite más de una carta MEA que satisface el algoritmo verbal al que representa. Esto se lleva a cabo para asegurar que en la entrada del flip-flop se encuentre estable el dato que fue realimentado como consecuencia del anterior flanco activo del reloj. Q0’ Falta solamente realizar la función AM. Q1’. incluso con menor cantidad de estados y la utilización de salidas tipo Mealy.X1 X3 Q1 0 - Q2* = Q2.

Comb. tsetup : es tiempo necesario antes del flanco activo del reloj que debe estar estable la señal a la entrada del flip -flop.Los tiempos que limitarán el periodo mínimo se pueden entender si se analiza un diagrama temporal. en un diagrama temporal se puede observar como: Reloj Salida t ffpd (La zona sombre ada representa la señal cambiando. con ayuda de un diagrama en bloques. Estado Estado (Flip-Flop) Lógica de Salida Reloj Realimentación tcomb t setup t ffpd Se puede observar del diagrama en bloques que la realimentación estará afectada por tres tiempos que son: 1. mientras que la zona no pintada representa un dato estable).2.- Entradas Lógica de Pxmo. De esta manera en el diagrama temporal se puede observar como: Sistemas Digitales II 9 . Este esta dado por el camino con mayor cantidad de compuertas que deba atravesar la señal realimentada. tcomb : es el retardo máximo de tiempo de la lógica combinacional de excitación. De esta manera. t comb 3. En el diagrama temporal y sumado al anterior se observa como: Reloj Salida t ffpd Salida de la Lóg. tanto de la señal del reloj como la de realimentación. tffpd : es tiempo necesario para que se estabilice la señal a la salida del flip-flop desde el momento en que se presento el flanco activo del reloj.

2727 MHz Sistemas Digitales II 10 . Generalmente es un porcentaje de la suma de los tiempos anteriores. se le agregó un t margen que es un margen de tiempo adicional que se adiciona para no encontrarnos en la condición límite. tmargen t setup Finalmente. y como se observa en el último diagrama. y de las ecuaciones de próximo estado (o el circuito esquemático correspondiente) observamos que la cantidad de compuertas máxima que debe recorrer la señal son dos (una para los productos y otra para las sumas). entonces: t comb = 2 * 5ns = 10ns y de los parámetros máximos del fabricante para un flip-flop D: tffpd = 350 ns tsetup = 40 ns Considerando el 10% de suma de los tiempos anteriores como margen: tmargen = 40ns Entonces: Tmin = tffpd + t comb + t setup + tmargen = 440ns Fmax = 2. t comb Entrada del flip -flop Comb. Del análisis anterior se puede expresar el periodo mínimo del reloj como: Tmin = tffpd + t comb + t setup + t margen Fmax = 1/ Tmin De esta manera. Comb.Reloj Salida t ffpd Salida de la log. retomando el ejemplo vemos que: Si el retardo de propagación máximo de cada compuerta es 5 ns.