Diseo de circuitos secuenciales sncronos Los pasos para poder disear un circuito secuencial sncrono a partir de una descripcin dada son los utilizados en la seccin anterior, pero utilizados en sentido contrario Construir una tabla estados/salidas que corresponda a la descripcin del problema Minimizar (en caso que sea necesario) el numero de estados en la tabla estados/salidas Elegir un conjunto de variables de estado y asignarles combinaciones de variables de estado a los estados representados en el problema Sustituir las combinaciones de las variables de estado en la tabla de estados/salidas para crear una tabla de transicin/salida que nos muestre la combinacin de variables de estado del siguiente estado y la salida para cada combinacin estado/salida
Diseo de circuitos secuenciales sncronos (cont.) Elegir un tipo de flip flop para la memoria de estado del circuito Construir una tabla de excitacin que muestre los valores de excitacin requeridos para obtener el siguiente estado deseado para cada combinacin estado/entrada Derivar las ecuaciones de excitacin de la tabla de excitacin Obtener las ecuaciones de salida de la tabla de transicin/salida Dibujar el diagrama lgico que muestre los elementos de almacenamiento de las variables de estado y que generen la excitacin necesaria y las ecuaciones de salida
Diseo de tablas de estado Disear una maquina de estados sncrona que tiene dos entradas, A y B, y una salida Z que es 1 si A tiene el mismo valor en los dos tics de reloj previos B es 1 desde la ultima vez que la primera condicin fue cierta Cualquier otra situacin es cero Diseo de tablas de estado (cont.) En ocasiones es til dibujar un diagrama de tiempos para indicar el comportamiento esperado de la maquina para una secuencia de entradas dada Diseo de tablas de estado (cont.) El primer paso en el diseo de la tabla de estados es construir un modelo De la descripcin del problema, podemos determinar que se trata de una maquina de Moore, la salida depende exclusivamente del estado actual, esto es, lo que pas en los periodos de reloj previos Crearemos una tabla con una columna para el estado siguiente del sistema, generado por cada posible combinacin de entradas y, una columna para indicar la salida del sistema El orden en el que aparecen las entradas, no afectan en esta parte del proceso Diseo de tablas de estado (cont.) Dado que la descripcin del problema no especifica que pasa cuando la maquina inicia su operacin por primera vez, asumiremos que cuando el sistema es arrancado, la maquina se encuentra en un estado inicial, llamado Inicio en este ejemplo Escribiremos la palabra Inicio en el primer rengln Colocaremos el valor de la salida para este primer rengln, que ser cero dado que no hay entradas antes de este paso AB S 00 01 11 10 Z Inicio 0 Diseo de tablas de estado (cont.) El siguiente paso es colocar los valores de los estados siguientes para el rengln correspondiente a Inicio La salida Z no podr ser 1 hasta al menos dos valores en A, de tal manera que proporcionaremos dos estados al sistema A0 y A1, que recordaran el valor de A en los tics de reloj previos Para esos dos estados Z es cero, debido a que aun no se cumple con la condicin para un 1 en la salida El significado del estado A0 es, A es igual a cero en el tic previo, A diferente de cero un tic antes y B diferente de 1 en algn momento desde que dos previas entradas A hayan sido iguales El significado del estado A1 es, A es igual a 1 en el tic previo, A diferente de 1 un tic antes y B diferente de 0 en algn momento desde que dos previas entradas A hayan sido iguales
AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 0 1 en A A1 0 Diseo de tablas de estado (cont.) En el estado A0, se sabe que la entrada A fue cero en el tic previo, por lo que, si es cero de nuevo se generara un nuevo estado, OK, con Z=1 Si A = 1, entonces no tendremos dos entradas iguales en un consecutivas, as que el sistema se cambia al estado A1 para recordar que solo A = 1 En el estado A1, se sabe que la entrada A fue 1 en el tic previo, por lo que, si es uno de nuevo, se generara un nuevo estado, OK, con Z=1 Si A = 0, entonces no tendremos dos entradas iguales consecutivas, as que el sistema se cambia al estado A0 para recordar que A = 0
AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 OK OK A1 A1 0 1 en A A1 A0 A0 OK OK 0 Dos valores iguales en A OK 1 Diseo de tablas de estado (cont.) Al estar en el estado OK, la descripcin del sistema indica que se quedara en ese estado siempre y cuando B = 1, independientemente del valor de A Si B = 0, entonces debemos buscar dos unos o dos ceros en A (el mismo rengln) para que Z = 1, de lo contrario, el siguiente estado seria A0 o A1 AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 OK OK A1 A1 0 1 en A A1 A0 A0 OK OK 0 Dos valores iguales en A OK ? OK OK ? 1 Diseo de tablas de estado (cont.) La definicin inicial del estado OK es demasiado general, no recuerda lo suficiente para indicarnos cual seria el siguiente estado La solucin seria generar dos estados a partir del estado OK, OK0 y OK1 que recuerden la entrada A previa AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 OK0 OK0 A1 A1 0 1 en A A1 A0 A0 OK1 OK1 0 Dos valores iguales en A = 0 OK0 1 Dos valores iguales en A = 1 OK1 1 Diseo de tablas de estado (cont.) Los siguientes estados para OK0 y OK1, quedaran segn las tablas siguientes AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 OK0 OK0 A1 A1 0 1 en A A1 A0 A0 OK1 OK1 0 Dos valores iguales en A = 0 OK0 OK0 OK0 OK1 A1 1 Dos valores iguales en A = 1 OK1 A0 OK0 OK1 OK1 1 Diseo de tablas de estado (cont.) Con el diseo previo, si A = 0 en el estado previo OK0, el siguiente estado seria OK0 y no se necesitara crear un nuevo estado para recordar 3 ceros en la combinacin del rengln, ya que la descripcin del sistema no requiere que se haga Minimizacion de Tablas de Estados La tabla solucion del problema anterior es una tabla de estados minima, dado que contiene la menor cantidad de estados posibles La solucion anterior no es unica, el problema pudo ser resuelto desde distintas perspectivas AB Significado S 00 01 11 10 Z Estado Inicial Inicio A0 A0 A1 A1 0 0 en A A0 OK00 OK00 A1 A1 0 1 en A A1 A0 A0 OK11 OK11 0 Dos valores iguales en A = 0 OK00 OK00 OK00 OKA1 A1 1 Dos valores iguales en A = 1 OK11 A0 OKA0 OK11 OK11 1 OK, A=0 OKA0 OK00 OK00 OKA1 A1 1 OK, A=1 OKA1 A0 OKA0 OK11 OK11 1 Minimizacion de Tablas de Estados (cont.) La idea basica en los procedimientos formales de minimizacion es identificar estados equivalentes en situaciones donde dos estados parecen serlo con el simple hecho de observar solamente las salidas actuales y futuras de la maquina Dos estados S1 y S2 son equivalentes si dos condiciones son verdaderas S1 y S2 deben producir los mismos valores en las salidas de la maquina de estados Minimizacion de Tablas de Estados (cont.) En una maquina de Mealy lo anterior debe ser cierto para todas las combinaciones de entrada Para cada combinacion de entrada, S1 y S2 deben tener el mismo estado siguiente o estados siguientes equivalentes De la tabla anterior, OK00 y OKA0 son equivalentes debido a que producen la misma salida y los estados siguientes son identicos Uno de los estados puede ser eliminado de la tabla Minimizacion de Tablas de Estados (cont.) La minimizacion de estados es necesaria? Por lo general, los diseadores no utilizan procedimientos formales de minimizacion de estados Si la definicion de estados se lleva a cabo cuidadosamente es muy probable que la cantidad de ellos sea mnimo o cercana al mnimo Existen situaciones donde es conveniente aumentar el numero de estados con el fin de simplificar el diseo Puede mejorarse la simplificacion de estados durante la fase de asignacion de estados Asignacion de Estados El paso siguiente en el diseo de circuitos secuenciales es determinar la cantidad de variables binarias requeridas para representar los estados en la tabla de estados y asignar una combinacion especifica a cada estado definido A la combinacion de variables asignada a un estado en particular la llamaremos estado codificado
El numero total de estados en una maquina con n flip flops es 2 n El numero total de flip flops necesarios para codificar s estados es , el entero mas pequeo mayor o igual a log 2 s La tabla de estados del ejemplo anterior tiene 5 estados, asi que se requieren de 3 flip flops 3 flip flops proporcionan un total de 8 estados asi que tenemos 3 estados que no se utilizan Asignacion de Estados (cont.)
s 2 log Asignacion de Estados (cont.) La manera mas sencilla de asignar s estados codificados a 2 n posibles estados es utilizando los primeros s enteros binarios en conteo Nombre La mas sencilla Q1-Q3 Inicio 000 A0 001 A1 010 OK0 011 OK1 100 Asignacion de Estados (cont.)
Esta asignacion no necesariamente generan las ecuaciones de excitacin y de salida mas sencillas y por lo tanto la logica del circuito tiende en ocasiones a ser mas compleja Como elegir la mejor asignacion de estados en un problema?
Asignacion de Estados (cont.)
La unica forma de encontrar la mejor asignacion de estados es intentando todas las asignaciones!!
Intentar con todos las asignaciones de estados posibles es demasiado trabajo Asignacion de Estados (cont.) Siguiendo algunos tips se puede lograr una asignacion de estados razonable Elija un estado codificado inicial en el que la maquina pueda ser forzada a un reset (tipicamente 0000, 11..11) Minimice el numero de variables de estado que cambian en cada transicion Maximice el numero de variables de estado que NO cambian en un grupo de estados relacionados entre si (un grupo de estados donde la mayoria de las transiciones se quedan en el grupo) Asignacion de Estados (cont.) Explote las simetrias en la especificacion del problema y simetrias correspondientes en la tabla de estados. Esto es, suponga que un estado o grupo de estados significan casi lo mismo que otro. Cuando haya establecido la asignacion del primero, puede establecer una asignacion similar para el segundo con un bit de diferencia Si existen estados que no se utilizan, elija la mejor de las combinaciones variable-estados disponibles para cubrir los objetivos en los estados previos. No limites la codificacion de estados a los primeros numeros binarios Asignacion de Estados (cont.) Descomponer el conjunto de variables de estado en bits individuales donde cada bit tiene un significado bien definido con respecto a los efectos de la entrada o al comportamiento de la salida de la maquina Considera utilizar mas que un mnimo numero de variables de estado para hacer posible la asignacion del paso anterior
Asignacion de Estados (cont.) Suponiendo la descomposicion de las variables El estado inicial es 000 dado que es muy facil forzarlo, al aplicar una seal de RESET en las entradas CLR de cada flip flop Para hacer el resto de las asignaciones se toma en cuenta el hecho de que solo quedan 4 estados por asignar ademas del inicial que no volvera a suceder una vez que la maquina se haya puesto a funcionar Asignacion de Estados (cont.) La variable Q1 puede utilizarse para indicar si la maquina se encuentra o no en el estado inicial Las variables Q2 y Q3 pueden utilizarse para distinguir los 4 estados faltantes Los estados no iniciales aparecen en orden de conteo binario de manera arbitraria Q3 indica el valor previo de A Q2 indica que las condiciones para generar una salida de 1 quedaron satisfechas en el estado actual Nombre Descomposicin Q1-Q3 Inicio 000 A0 100 A1 101 OK0 110 OK1 111 Asignacion de Estados (cont.) Otro manera de asignar los estados es utilizar un bit (una variable) por estado Este tipo de asignacion utiliza mas variables de estado y por lo tanto mayor cantidad de flip flops Tiene la ventaja de generar ecuaciones de excitacin pequeas ya que cada flip flop debe ponerse en 1 en solo un estado por transicion Este tipo de asignacion es ideal para maquinas con s estados que requieran tener un conjunto de 1s de un total de s salidas codificadas para indicar el estado actual Nombre Un solo 1 Q1-Q5 Inicio 00001 A0 00010 A1 00100 OK0 01000 OK1 10000 Asignacion de Estados (cont.) Otra forma de asignar estados se basa en el anterior Utiliza una combinacion que no contiene 1s para el estado inicial Es mas facil inicializar los flip flops en ese estado Es un estado que la maquina no volvera a tener dado que ya arranco Nombre Casi un solo 1 Q1-Q4 Inicio 0000 A0 0001 A1 0010 OK0 0100 OK1 1000 Asignacion de Estados (cont.) Cuando el numero de estados disponibles con n flip flops es mayor al numero de estados requeridos s, tenemos estados ilegales o inutiles y se pueden disponer de ellos desde dos perspectivas Riesgo mnimo. Se asume que es posible que la maquina se pueda encontrar de alguna manera en un estado ilegal. Por lo que todas las combinaciones ilegales se identifican con el fin de que, para cualquier combinacion de entradas, los estados siguientes deben ser el inicial o algun otro estado seguro Costo mnimo. Se asume que la maquina nunca estara en un estado ilegal, por lo que en las tablas de excitacin y transicion los estados siguientes generados a partir de los ilegales se marcan como no importa. Esto simplifica en ocasiones la logica de excitacion
Sntesis. Flip Flop D Los estados codificados se sustituyen por estados etiquetados en una tabla de estados para obtener la tabla de transicion La tabla de transicion muestra el siguiente estado codificado para cada combinacion de estado codificado actual y entradas Segun la asignacion de estados por descomposicion AB Q1Q2Q3 00 01 11 10 Z 000 100 100 101 101 0 100 110 110 101 101 0 101 100 100 111 111 0 110 110 110 111 101 1 111 100 110 111 111 1 Sntesis. Flip Flop D (cont.) El siguiente paso es construir la tabla de excitacin que muestra, para cada combinacion de estados codificados y entradas, los valores de entrada de los flip flops necesarios para excitarlos y hacer que la maquina vaya al siguiente estado codificado deseado La estructura y contenido de esta tabla depende del tipo de Flip Flop a utilizar Por lo general se utilizan Flip Flops D dado que son mas facil utilizarlos y por que se encuentran en el mercado con mayor facilidad Sntesis. Flip Flop D (cont.) De todos los Flip Flops el D es el que tiene la ecuacion caracteristica mas sencilla, Q*=D Cada Flip Flop D en una maquina de estados tiene una sola entrada de excitacin, D La tabla de excitacin debe mostrar el valor necesario en la entrada de cada Flip Flop D para cada combinacion de estados codificados-entradas Dado que D = Q*, la tabla de excitacin sera identica a la tabla de transicion AB Q1Q2Q3 00 01 11 10 Z 000 100 100 101 101 0 100 110 110 101 101 0 101 100 100 111 111 0 110 110 110 111 101 1 111 100 110 111 111 1 Sntesis. Flip Flop D (cont.) En nuesto caso, la tabla de excitacin se puede ver como una tabla de verdad para obtener 3 funciones logicas, D1, D2, D2 de 5 variables (A, B, Q1, Q2, Q3) Es posible trasladar la informacion de una tabla de excitacin a un mapa de Karnaugh, conocido como mapa de excitacin y asi, poder encontrar la expresion booleana minima para cada funcion Considerando los estados ilegales en funcion del riesgo mnimo Sntesis. Flip Flop D (cont.) Las expresiones minimas para generar las entradas de excitacin de cada Flip Flop son D1 = Q1 + Q2 Q3 D2 = Q1 Q3 A + Q1 Q3 A + Q1 Q2 B D3 = Q1 A + Q2 Q3 A La ecuacion de salida se obtiene directamente de la tabla anterior La salida del sistema es una funcion del estado actual Z = Q1 Q2 Q3 + Q1 Q2 Q3 Z = Q1 Q2 Sntesis. Flip Flop D (cont.) Ejercicio Obtenga la solucin del problema utilizando la metodologa del costo mnimo en los estados ilegales