You are on page 1of 11

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

EJEMPLO COMPLETO DEL DISEO DE UNA MAQUINA DE ESTADOS

MAQUINAS DE ESTADO ALGORITMICAS

SISTEMAS DIGITALES II ELECTRNICA DIGITAL II


EJEMPLO COMPLETO DEL DISEO DE UNA MAQUINA DE ESTADOS Septiembre de 2001

1. Algoritmo verbal En el control de calidad del producto final de un proceso de fabricacin (por ejemplo ejes en una industria metalrgica, patas de mesa en una fbrica de muebles, barras de hierro en una fbrica de rejas, etc.) se necesita disear un sistema que permita eliminar automticamente las piezas que no cumplan con la longitud requerida.Las barras deben estar comprendidas entre una longitud L y L+L, y para seleccionar las mismas (ubicadas sobre una cinta transportadora) se disponen de tres detectores pticos X1, X2 y X3 que entregan un "1" lgico si hay una barra situada delante de ellos (Figura N 1).Despus del ltimo detector existe una trampa (accionada por un motor M), que debe abrirse cuando se detecta una barra con una longitud mayor que L+L o menor que L, y permanecer abierta hasta que la barra caiga. La distancia que separa a dos barras sometidas a verificacin es tal que n unca podr entrar una barra en la zona de deteccin mientras se est comprobando la anterior.Adems, el sistema debe contar las barras buenas, que cumplen con la longitud especificada.-

Figura N 1: Seleccin de barras

2. Diagrama en bloques Leemos detenidamente el enunciado del algoritmo verbal a fin de determinar claramente cules son las seales de entrada y cules las salidas del sistema, como as tambin sus caractersticas.-

Sistemas Digitales II

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 asincrnica, ya que a la hora de realizar la asignacin de estados deberemos tener en cuenta estas caractersticas. De la lectura observamos que todas las entradas son asincrnicas ya que no tienen ninguna vinculacin con el reloj que maneja el sistema. por lo que ser necesario la sincronizacin de las mismas a fin de evitar alguna condicin rnetaestable y para lograr una asignacin de estados, en pasos posteriores, ms simple. Tambin notamos que la salida ICONT corresponde a la activacin de un contador (dispositivo electrnico), de lo que resulta una salida sensible a pulsos y tendremos que realizar un anlisis de carreras de salida crtica.-

3. Diseo de la carta MEA El prximo paso es realizar la carta MEA de tal manera que cumpla con los requisitos del algoritmo verbal. En cierta forma, sta es la nica etapa en la cual debemos aplicar nuestro ingenio para superarla adecuadamente y de la forma ms sencilla posible.Del enunciado deducimos que las barras llegan con suficiente separacin como para que, cuando una barra se esta analizando, no pueda estar presente otra en los sensores. Por lo tanto podemos decir que cuando X1 est en 0, no llega ninguna barra nueva, y cuando est en 1 tenemos una barra nueva que analizar.Esto nos indica que, al inicio, la mquina debe esperar a que el sensor X1 se active para que comience a analizar una barra. Esto se logra en el estado A. En el estado B, la mquina espera que la barra alcance el sensor X2. Cuando esto ocurre (X2 = 1), en este momento debemos analizar el estado del sensor X1, si ste est en 0 indica que la barra es corta y se debe descartar.Si el sensor X1 esta en 1, la barra puede ser normal o larga. Para determinar esta condicin, la mquina debe esperar en un estado (estado C) hasta que se active el sensor X3. Cuando X3 = 1 analizamos el sensor X1. Si est en 1 debemos descartarla por ser larga, si est en 0 la barra es normal y debemos contarla como correcta.Cuando descartamos una barra, debemos mantener el motor activo hasta que el sensor X3 no detecte la presencia de barra alguna. Para ello existen dos condiciones, que la barra sea corta o larga. Si la barra es corta, el sensor X3 estar en 0, por lo que debemos esperar a que la barra llegue hasta este punto antes de activar el motor, este estado de espera es E. En el estado F se activa el motor hasta que X3 = 0, que nos indica que la barra descartada cay por la trampa.Una vez que terminamos de analizar una barra (normal o descartada), debemos esperar la llegada de otra en el estado inicial A.-

Sistemas Digitales II

x1
B

x2

x1
E C

x3

x3

x1
F

AM

ICONT x3

4. Asignacin de Estados Luego que realizamos la carta y verificamos que sta cumple con todas las especificaciones de nuestro algoritmo verbal, debemos realizar la asignacin de estados. Para ello contamos la cantidad de estados que posee la mquina. En este caso vemos que los estados son A, B, C, D, E y F, un total de seis (6) estados.De esta manera, la cantidad de variables de estados necesarias son tres (3), por lo que podemos asignar 23 estados, es decir una cantidad de 8 estados distintos. Como nuestra mquina posee 6 estados definidos, en consecuencia quedarn dos (2) estados no especificados.Una asignacin posible, por el criterio de costo mnimo, sera la siguiente:

Sistemas Digitales II

Q0 A Q2 F B E C Q1 Debemos tener en cuenta que la salida ICONT, presente en el estado D, es una salida crtica, por lo que tenemos que realizar anlisis de carrera de salida.El mapa que representa esta salida se llena colocando un uno en el estado donde la salida est presente, y un cero en los estados donde no est presente. De acuerdo a esto, el mapa presenta la siguiente forma: Q0 1 Q2 Q1 Si realizamos la lectura del mapa tendremos que la funcin de salida ICONT es: ICONT = Q . Q0 1 Teniendo en cuenta que la condicin necesaria para que exista una carrera de salida es que en una transicin de estados cambie ms de una variable, las transiciones entre estados adyacentes no pueden producir carrera de salida. Por esto, la nica transicin capaz de producir carrera de salida es la transicin desde el estado C al estado F. Como vemos, en sta cambian las tres variables de estado por lo que los posibles caminos (dado por la expresin 2n 2) son seis (6).En el caso de que la primer variable que cambie sea Qo, 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. En este caso, durante la transicin de estados, la funcin de salida ICONT posee un valor inicial 0 (estado C), luego pasa a 1 (estado D) y posteriormente llega a un 0 (estados A y F). Es evidente que tenemos un problema de carrera de salida, por lo que debemos realizar una nueva asignacin de estados libre de carreras.D -

Q0 1 Q2 Q1 Proponemos una asignacin de estados como la siguiente. El mapa de la salida ICONT, donde debemos realizar el anlisis, no cambi. 1

Sistemas Digitales II

Q0 A Q2 E B F C Q1 En este caso debemos realizar el anlisis para las transiciones de B a E, de C a F y de F a A. Estas transiciones se producen entre estados no adyacentes, por lo que cambian ms de una variable y tenemos posibilidad de carrera de salida. En la transicin de B a E vemos que partimos de un estado inicial donde la salida ICONT vale 0, pasamos por los estados intermedios donde la salida ICONT vale 0, estados A o F, y llegamos a un estado final donde la salida vale 0. En esta transicin no se produce carrera de salida.Q0 1 Q2 Q1 Lo mismo ocurre en las otras dos transiciones indicadas, por lo que hemos logrado realizar una asignacin libre de carreras de salida. 1 D -

5. Funciones de exitacin de los Flip Flops Una vez lograda una asignacin de estados libre de carreras de salida, debemos proceder a completar el diseo. En este caso realizaremos el diseo utilizando flip-flop tipo D, cuya tabla de excitacin es la siguiente: Transicin 00 01 10 11 00 01 10 10 D 0 1 0 1 Condicin de 01 Condicin de 11 Transiciones directas o incondicionales

Transiciones condicionales

Nos har falta la carta con la asignacin de estados, la cual se representa en la siguiente figura.Sistemas Digitales II

Variables: Q2 ; Q1 ; Q0

000

x1
B 001

x2

x1
E 100 C 011

x3

x3

x1
F 101

AM

010

ICONT x3

Como tenemos tres variables de estado, cada una de ellas ser generada por un flip-flop tipo D, por lo que debemos llenar tres mapas de excitacin, uno para cada variable.Para la variable Qo: En el estado A tenemos dos prximos estados: el mismo estado A y el estado B. Esto corresponde a una transicin de estado condicional, que no necesariamente implica una transicin condicional para todas las variables de estado.Tenemos que observar si la variable en estudio cambia de valor en algn caso. Lgicamente, la variable no cambia si la transicin es al mismo estado A, pero observando la carta vemos que en la transicin de A hacia B, la variable Qo cambia de 0 a 1 dependiendo de la entrada X Esta es una transicin 1.
Sistemas Digitales II

condicional de la variable y, de acuerdo a la tabla de excitacin del flip-flop D, debemos colocar la condicin de la entrada que lleva la variable a 1, sta se cumple si X1 est afirmada, y la expresamos en la casilla correspondiente al estado A.En el estado B tenemos tres posibles prximos estados, el mismo estado B, el C y el E. En el estado de partida la variable Qo vale 1; tratndose de una transicin condicional debemos utilizar la parte de la tabla de excitacin que corresponde a transiciones condicionales. Como la variable est en 1, de acuerdo a la tabla de exitacin debemos observar las opciones que existen para mantener la variable en 1. En esta carta vemos que existen dos posibilidades para hacer sto. Estas dos posibilidades quedarn relacionadas por una suma lgica. La primera es que X2 este negada y la otra es X2 directa y X1 directa. Esta segunda posibilidad se representa por el producto de las dos entradas X2.X1. Por lo tanto en la casilla correspondiente al estado B deberamos colocar X2 + X2.X1 que por lgebra de Boole se simplifica a X2+X1.De la misma manera se procede con el resto de los estados. Para el caso del estado D, tenemos una transicin incondicional al estado A por lo que debemos aplicar la parte de la tabla de excitacin correspondiente a transiciones directas o incondicionales.Q0 X1 Q2 X3 X2+X1 X3+X1 X3 Q1 Una vez llenado el mapa de la funcin de excitacin del flip-flop D que representar la variable Qo procedemos a leer el mapa, lo que arroja como resultado la siguiente funcin: Q0* = X1. Q2. Q1 + X1. Q2. Q0 + X2. Q2. Q1. Q0 + X3. Q1. Q0 + X3 . Q2 De la misma manera se procede con las otras dos variable de estado Q1 y Q2. Para la variable Q1 : Estando en el estado "A" la variable Q1 vale 0 y tenemos una transicin de estado condicional, pero en los dos estados que se alcanzan la variable vale lo mismo, en este caso 0, por lo que para la variable Q1 es una transicin directa o incondicional, y debemos utilizar la parte de la tabla de excitacin correspondiente a transiciones incondicionales.0 -

Q0 0 Q2 0 X2.X1 X3+X1 0 Q1 Q1* = X2 . X1. Q . Q1. Q0 + X3. Q1. Q0 + X1. Q1. Q0 2


Sistemas Digitales II

0 -

Para la variable Q2 : Q0 0 Q2 1 X2.X1 X3.X1 X3 Q1 0 -

Q2* = Q2. Q0 + X3. Q2 + X3. X1. Q1 . Q0 + X2. X1. Q2. Q1. Q0

6. Funciones de salida El diseo quedar completo cuando encontremos las funciones de salida. Al analizar carreras de salida encontramos la funcin correspondiente a la salida ICONT.ICONT = Q1. Q0 Falta solamente realizar la funcin AM. Para ello debemos llenar un mapa para esta funcin, colocando un uno en el estado o estados donde se encuentra presente esta salida, y un cero en los estados donde no est presente. Para este ejemplo tendremos el siguiente mapa:

Q0

Q2

Q1

Leemos el mapa y nos quedar la funcin:

AM = Q2 . Q 0

Con esto hemos concluido el diseo y solo faltar la implementacin.Es importante aclarar que el presente informe ha sido elaborado de tal manera de poder analizar la mayora de las alternativas que se presentan en la etapa de diseo de una Mquina de Estado Algortmica. En general, cualquier diseo admite ms de una carta MEA que satisface el algoritmo verbal al que representa, y este ejemplo en particular tiene otras cartas posibles para solucionarlo, incluso con menor cantidad de estados y la utilizacin de salidas tipo Mealy.-

7. Calculo de la Frecuencia Mxima del Reloj Para obtener la frecuencia mxima a la que podr funcionar el circuito se deber tener en cuenta una serie de tiempos que limitarn el periodo mnimo del reloj, de manera que la mquina de estados pueda operar en forma correcta. 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, en el momento que se presente el nuevo flanco.Sistemas Digitales II

Los tiempos que limitarn el periodo mnimo se pueden entender si se analiza un diagrama temporal, tanto de la seal del reloj como la de realimentacin, con ayuda de un diagrama en bloques.-

Entradas
Lgica de Pxmo. Estado Estado (Flip-Flop) Lgica de Salida

Reloj Realimentacin

tcomb

t setup

t ffpd

Se puede observar del diagrama en bloques que la realimentacin estar afectada por tres tiempos que son: 1. tffpd : es tiempo necesario para que se estabilice la seal a la salida del flip-flop desde el momento en que se presento el flanco activo del reloj. De esta manera, en un diagrama temporal se puede observar como:

Reloj Salida t ffpd (La zona sombre ada representa la seal cambiando, mientras que la zona no pintada representa un dato estable).2. tcomb : es el retardo mximo de tiempo de la lgica combinacional de excitacin. Este esta dado por el camino con mayor cantidad de compuertas que deba atravesar la seal realimentada. En el diagrama temporal y sumado al anterior se observa como:

Reloj Salida t ffpd

Salida de la Lg. Comb. t comb

3.

tsetup : es tiempo necesario antes del flanco activo del reloj que debe estar estable la seal a la entrada del flip -flop. De esta manera en el diagrama temporal se puede observar como:

Sistemas Digitales II

Reloj Salida t ffpd Salida de la log. Comb. t comb Entrada del flip -flop Comb.

tmargen

t setup

Finalmente, y como se observa en el ltimo diagrama, se le agreg un t margen que es un margen de tiempo adicional que se adiciona para no encontrarnos en la condicin lmite. Generalmente es un porcentaje de la suma de los tiempos anteriores. Del anlisis anterior se puede expresar el periodo mnimo del reloj como: Tmin = tffpd + t comb + t setup + t margen Fmax = 1/ Tmin

De esta manera, retomando el ejemplo vemos que: Si el retardo de propagacin mximo de cada compuerta es 5 ns, y de las ecuaciones de prximo estado (o el circuito esquemtico correspondiente) observamos que la cantidad de compuertas mxima que debe recorrer la seal son dos (una para los productos y otra para las sumas), entonces: t comb = 2 * 5ns = 10ns y de los parmetros mximos 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,2727 MHz

Sistemas Digitales II

10

You might also like