You are on page 1of 36

Unidad 3

Diseo de circuitos secuenciales


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

You might also like