Determinar la respuesta de salida del circuito secuencial definido en la figura 8.2 con la secuencia de entrada x=011010.
Supongamos que el circuito está inicialmente en el estado A. En el instante 0, se aplica una entrada x = 0. Podemos partir del diagrama de estados o de la tabla de estados y leer que la salida es z = 1 y que el siguiente estado será B. Continuamos con los demás valores de la secuencia de entra y vemos que el circuito se comporta como sigue:
| Tiempo: |
|
|
|
|
|
|
|
| Estado actual: |
|
B | A | C | A | C | A |
| Entrada: | 0 | 1 | 1 | 0 | 1 | 0 | |
| Salida: | 1 | 1 | 0 | 0 | 0 | 0 | |
| Estado siguiente: | B | A | C | A | C | A |
y deja al circuito en el estado final A.
La figura ilustra la distribución real de tiempos para la secuencia de entrada dada. En este diagrama, suponemos que el estado cambia en la transición alta-baja del reloj. Observe que la salida z puede cambiar en cualquier momento en que cambie la entrada o el estado, pues z es función de ambos. Esto da lugar a dos cambios de salida inesperados, los cuales se muestran en el diagrama de tiempos. En el instante T0, z baja a 0 cuando el estado cambia a B, y luego regresa a 1 cuando la entrada x cambia a 1. Ocurre un evento similar en el instante T3. Por tanto, debemos tener cuidado de muestrear la salida de un circuito en el modelo de Mealy sólo cuando el circuito se haya estabilizado después de un cambio de entrada.
La tabla de estados también tiene otro formato. Podemos eliminar la salida de las entradas de estado siguiente de la tabla de estados, pues cada estado siguiente siempre tendrá el mismo dato de salida; se muestra una nueva columna de salidas. Es importante recordar que estas salidas pertenecen al estado actual y no al siguiente.
Podemos modificar la relación funcional de salida dada en las ecuaciones 1 y 3 para los circuitos de tipo Moore como sigue:
| Tiempo: |
|
|
|
|
|
|
|
| Estado actual: |
|
Y | W | X | X | Y | X |
| Entrada: | 0 | 1 | 1 | 0 | 1 | 0 | |
| Salida: | 0 | 0 | 0 | 1 | 1 | 0 | |
| Estado siguiente: | Y | W | X | X | Y | X |
La figura 5 ilustra la distribución real de tiempos para la secuencia de entrada dada. Como en el ejemplo anterior, todos los cambios de estado ocurren en la transición alta-baja del reloj.
En la figura 5 observamos que todos los cambios de salida de un circuito en el modelo de Moore se sincronizan con el reloj, puesto que la salida z sólo es función del estado, y, por tanto, sólo puede cambiar cuando el estado se modifica. En consecuencia, la salida permanece estable durante los cambios de entrada, a diferencia de las salidas del circuito con modelo de Mealy ya ilustradas en la figura 3. Por esta razón, las salidas de un circuito en el modelo de Moore exhiben por lo general un mejor comportamiento que las de un circuito e le modelo de Mealy; es decir, los cambios de entrada no originan glitches no deseados en las salidas.
La principal ventaja del uso de un modelo de Mealy e vez de un modelo de Moore para el diseño de un circuito secuencial es que, como las salidas de un modelo de Mealy son funciones de las entradas y del estado, el diseñador tiene mayor flexibilidad en el diseño de las funciones de salida y de transición de estado, por lo que serán necesarios menos estados que en un circuito en el modelo de Moore equivalente, donde las salidas sólo son funciones de las variables de estado.
En las siguientes secciones presentaremos ejemplos de circuitos en los modelos de Mealy y de Moore.
El análisis es el proceso de determinar la respuesta de salida de un circuito o modelo de circuito dado a una secuencia de entrada dada. Para esto, lo más conveniente es determinar primero el modelo; por ejemplo, la tabla de estados o el diagrama de estados, del circuito dado. Primero ilustraremos este proceso mediante una serie de ejemplos y después lo resumiremos en forma de un procedimiento paso por paso.
Diseñar un circuito secuencial síncrono con una entrada x y una salida z que reconozca la secuencia de entrada 01.
Podemos utilizar este circuito para reconocer una transición
de 0 a 1 en la entrada x. En otras palabras, el circuito debe originar
una secuencia de salida z = 01 si ocurre la secuencia de entrada
x = 01. Por ejemplo, si la secuencia de entrada es
entonces la secuencia de salida será
El primer paso del procedimiento de diseño es la construcción de un diagrama de estados que represente el comportamiento entrada/salida descrito. La figura 6 muestra la construcción de este diagrama. Primero suponemos que el circuito se encuentra en algún estado inicial A y que la primera entrada es 1. Como 1 no es el primer elemento de la cadena de entrada por reconocer, el circuito permanece en el estado A y devuelve una salida z = 0 , como en la figura 6a . Por otro lado, si el circuito se encuentra en el estado inicial A y la entrada es 0, como esta entrada es el primer símbolo de la cadena por reconocer, el circuito pasa a un nuevo estado B y devuelve 0 como salida, lo que se muestra en la figura 6b. Ahora supongamos que el circuito se encuentra en el estado B y que el símbolo de entrada es 0. Como éste no es el segundo símbolo en la secuencia 01, el circuito permanece en el estado B y devuelve una salida z=0. Por último, si el circuito se encuentra en el estado B y el siguiente símbolo de entrada es 1, el circuito pasa al estado A y devuelve una salida z= 1. Observe que este diagrama final, que aparece en la figura 6d, satisface la secuencia de entradas y salidas dada con anterioridad y, por tanto, reconoce la secuencia de entrada x=01. La tabla de estados correspondiente al diagrama de estados final aparece en la figura 7a. Supondremos que esta tabla de estados contiene el número mínimo de estados posibles para este circuito.
El siguiente paso del procedimiento de síntesis es determinar el número de flip-flops necesarios y la asignación de estados. La relación entre el número de estados (NS) y el número de flip-flops (NFF) está dada por la expresión
Por ejemplo, un circuito de cuatro estados necesita dos flip-flops, un circuito de diez estados necesita cuatro flip-flops, etcétera. Para el circuito descrito por la tabla de estados de la figura 7a, sólo necesitamos un flip-flop. Elegimos la asignación de estados de manera arbitraria, como A = 0 y B = 1, aunque podríamos elegirla de manera opuesta (A = 1, B = 0).
Una vez elegida la asignación de estados, podemos reescribir la tabla de estados de la figura 7a como la tabla de transición de la figura 7b. En ésta, yk denota el estado actual del circuito, que es la salida actual del flip-flop. El símbolo yk+1 denota el estado siguiente del circuito; es decir, la salida del flip-flop después de ocurrir una transición. Hemos esquematizado el mapa K para la salida por separado, sólo para simplificar el diagrama. Suponga que queremos realizar el circuito con flip-flops set-reset con reloj. El problema se convierte entonces en el problema de determinar las señales adecuadas en las líneas de entrada set y reset para efectuar las transiciones de la figura 7b. Utilizamos la tabla de entrada del flip-flop SR con reloj de la figura 2b para deducir los mapas de excitación de la figura 7c. Por ejemplo, consideremos la transición en la esquina superior izquierda de la tabla de transición de la figura 8.27b: yk = 0, x = 0 y yk+1 =1. Para efectuar un cambio de estado de yk = 0 a yk+1 = 1, las señales que deben aparecer en las líneas set y reset son S = 1 y R = 0. Por tanto, estas señales aparecen en las posiciones correspondientes en los mapas de excitación de la figura 7c. Ahora, consideremos la transición de estado de la esquina superior derecha de la tabla de transición: yk = 0, x = 1, y yk+1 = 0. Como no debe ocurrir un cambio de estado, la señal en la línea set debe ser S = 0, mientras que la señal en la línea reset no importa; es decir, R es una condición prescindible. El lector debe recordar que un flip-flop SR no cambia al estado set con S = 0 y R = 0 ó S = 0 y R = 1. Los demás bloques de los mapas de excitación se determinan de manera similar.
Ahora podemos utilizar los mapas de excitación para deducir las ecuaciones del circuito lógico de conmutación: