Circuitos Secuenciales

Objetivos

 

Resumen

Se realiza en este mdulo un intento de abarcar los aspectos ms relevantes de este tipo de circuito, que son de extraordinaria importancia en el funcionamiento del hardware omputacional

 

 

Introduccin

En la lgica combinacional los circuitos producen una respuesta instantnea, es decir, las salidas se pueden calcular a partir de la combinacin de los valores de las entradas en el mismo instante. La lgica combinacional no sirve para construir circuitos que con capacidad de memoria, es decir, funciones lgicas cuya salida en el instante presente depende de entradas en el pasado. Es entonces, cuando los circuitos secuenciales aparecen y cobran relevancia conceptos que no eran tan trascendentes para los circuitos combinacionales, algunos de estos conceptos son: instante presente, instante siguiente, estado, retroalimentacin, tiempo de propagacin, sincronizacin, memoria, secuencia, etc. Obsrvese que el principal concepto involucrado en todos los anteriores es el tiempo.

Los circuitos considerados hasta aqu, tienen la caracterstica de que su salida depende solamente de la combinacin presente de valores de las entradas, es decir, a una misma combinacin de entrada responden siempre con la misma salida. Debido a esto, estos circuitos se denominan combinacionales. Los circuitos combinacionales tienen muchas limitantes debido a que no son capaces de reconocer el orden en que se van presentando las combinaciones de entradas con respecto al tiempo, es decir, no pueden reconocer una secuencia de combinaciones, ya que no poseen una manera de almacenar informacin pasada, es decir no poseen memoria.

Un circuito cuya salida depende no solo de la combinacin de entrada, sino tambin de la historia de las entradas anteriores se denomina Circuito Secuencial. La historia de las entradas anteriores en un momento dado se encuentra resumida en el estado del circuito, el cual se expresa en un conjunto de variables de estado.

El circuito secuencial debe ser capaz de mantener su estado durante algn tiempo, para ello se hace necesario el uso de dispositivos de memoria. Los dispositivos de memoria utilizados en circuitos secuenciales pueden ser tan sencillos como un simple retardador (inclusive, se puede usar el retardo natural asociado a las compuertas lgicas) o tan complejos como un circuito completo de memoria denominado multivibrador biestable o Flip Flop.

Como puede verse entonces, en los circuitos secuenciales entra un factor que no se haba considerado en los combinacionales, dicho factor es el tiempo. De hecho, los circuitos secuenciales se clasifican de acuerdo a la manera como manejan el tiempo en circuitos secuenciales sncronos y circuitos secuenciales asncronos.

Sncrono y Asncrono

En un circuito secuencial asncrono los cambios de estado ocurren al ritmo natural marcado por los retardos asociados a las compuertas lgicas utilizadas en su implementacin, es decir, estos circuitos no usan elementos especiales de memoria, pues se sirven de los retardos propios (tiempos de propagacin) de las compuertas lgicas usados en ellos. Esta manera de operar puede ocasionar algunos problemas de funcionamiento, ya que estos retardos naturales no estn bajo el control del diseador y adems no son idnticos en cada compuerta lgica.

Los circuitos secuenciales sncronos slo permiten un cambio de estado en los instantes marcados por una seal de sincronismo de tipo oscilatorio denominada reloj. Con esto se pueden evitar los problemas que tienen los circuitos asncronos originados por cambios de estado no uniformes en todo el circuito.

Un circuito secuencial puede entenderse simplemente como un circuito combinacional en el cual las salidas dependen tanto de las entradas como de las salidas en instantes anteriores, esto implica una retroalimentacin de las salidas como se muestra en diagrama de la siguiente figura.

 

Modelo de Moore. Un modelo ms completo de lo que puede ser un circuito secuencial es el denominado Modelo de Moore, cuya estructura se presenta en la siguiente figura.

El modelo de Moore consiste en dos bloques (circuitos) de lgica combinacional mas un bloque de memoria

La lgica de estado siguiente que define la manera de generar las variables de estado a partir de las entradas

La Lgica de salida que define la manera en que se obtienen las salidas del circuito a partir de las variables de estado

Este modelo tiene la particularidad de que las salidas slo son funcin de las variables de estado, es decir, del estado presente. Por ello, cuando en un circuito, las salidas solo dependen de las variables de estado, se les llama Salidas tipo Moore.

 

Modelo de Mealy. En un modelo ms completo, las salidas en instantes anteriores estn expresadas por un conjunto de variables de estado, de manera que las salidas actuales dependen tanto de las entradas como de las variables de estado las cuales son guardadas en dispositivos de memoria.

Como puede verse, en el modelo de Mealy las salidas en el instante presente pueden depender tanto de las variables de estado (y por lo tanto del estado presente) como de las entradas. A este tipo de salidas se les llama Salidas tipo Mealy.

En general, un circuito secuencial puede ser una combinacin de los tres modelos presentados arriba, es decir, puede poseer salidas tanto tipo Mealy como Tipo Moore, o slo tipo Moore, o puede inclusive no tener dispositivos de memoria y funcionar solamente con la memoria asociada a los retardos naturales de las compuertas lgicas.

 

Multivibradores Biestables (Flip Flops).

Los circuitos secuenciales bsicos que funcionan tambin como unidades de memoria elementales se denominan multivibradores biestables (por tener dos estados estables alto y bajo-), tambin conocidos como Flip Flops.

Otros nombres usados para este tipo de circuitos son: MultiVibradores, Bsculas, Biestables

Los Flip-Flops son las unidades bsicas de todos los sistemas secuenciales. Existen cuatro tipos: el RS, el JK, el T y el D. Y los ltimos tres se implementan del primero.

Son capaces de permanecer en un estado determinado durante un tiempo indefinido. Esta caracterstica es ampliamente utilizada para memorizar informacin.

El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los biestables se dividen en:

  • Asncronos: Slo tienen entradas de control. El ms empleado es el biestable RS.
  • Sncronos: Adems de las entradas de control posee una entrada de sincronismo o de reloj. Si las entradas de control dependen de la de sincronismo se denominan sncronas y en caso contrario asncronas. Por lo general, las entradas de control asncronas prevalecen sobre las sncronas.

La entrada de sincronismo puede ser activada por nivel (paso de valor alto o bajo) o por flanco (de subida o de bajada). Dentro de los biestables sncronos activados por nivel estn los tipos RS y D, y dentro de los activos por flancos los tipos JK, T y D.

 

El Flip Flop SR (Set/ Reset), abreviadamente FF-SR

El FF-SR es un dispositivo con dos entradas (Set y Reset) y una variable de estado o salida (Q) capaz de guardar un bit de informacin y funciona como sigue:

Si la entrada Set pasa a 1 la salida Q pasa 1

Si la entrada Reset pasa a 1 la salida Q pasa a 0

Si ni Set ni Reset cambian la salida Q no cambia

Set y Reset no pueden cambiar simultneamente.

Diagrama de Bloques

Aunque en esta definicin se indica que el FF-SR posee dos entradas (S y R) y slo una salida (Q), es frecuente que su implementacin incluya tambin la salida Q

Tabla de Funcionamiento

La tabla de funcionamiento de este circuito es parecida a la de un combinacional pero en la cual se ha introducido la informacin "tiempo" que en el caso de circuitos secuenciales se vuelve esencial.

Entradas en tn Salida en tn+1
S R Q+
0 0 Q0
0 1 0
1 0 1
1 1 no vlida

En donde se ha utilizado la siguiente notacin:

tn = instante en el cual se aplican las entradas.

tn+1 = instante siguiente, cuando el circuito proporciona su salid

Q0 = salida Q en el instante tn

Q+ = salida en el instante tn+1

 

Diagrama de Estado Clsico

La misma informacin especificada por la tabla de funcionamiento puede ser representada de varias maneras diferentes, por ejemplo, el siguiente diagrama es una alternativa grfica que tiene la particularidad de enfatizar los estados del circuito, por ello se le llama diagrama de estado o de estado clsico.

Esto coincide con la tabla anterior. En efecto, el dibujo muestra que:

- Si el circuito est en estado A permanecer all an cuando cambie R, pero pasar al estado B si cambia S

- Si el circuito est en estado B permanecer all an cuando cambie S, pero pasar al estado A si cambia R

 

Tabla Caracterstica

Una forma ms de representar el funcionamiento del circuito es la Tabla Caracterstica, que pare al FF-RS sera:

Estado actual (en tn ) Entradas actuales (en tn ) Estado siguiente (en tn+1)
Q0 Nombre R S Q+ Nombre
0 A 0 0 0 A
0 A 0 1 0 A
0 A 1 0 1 B
0 A 1 1 no vlida -
1 B 0 0 1 B
1 B 0 1 0 A
1 B 1 0 1 B
1 B 1 1 no vlida -

 

Diagramas de tiempo

Los diagramas de tiempo son representaciones grficas de la evolucin de los valores que toman las variables de entrada y salida del circuito secuencial.

Para el ejemplo del FF-SR un diagrama de tiempos podra ser:

Este dibujo muestra el estado de Set, Reset, Q y Q en el tiempo. Por ejemplo, el primero en cambiar fue Reset, que pas de cero a uno, lo que provoc un cambio en Q, que pas a cero, mantenindose en ese estado an cuando Reset volvi a cero

Cuando posteriormente cambi Set, que pas de cero a uno, la salida Q cambi de cero a uno, mantenindose en ese estado an cuando Set regres a cero.

Se aprecia entonces que este circuito memoriza el cambio en una de sus entradas (Reset Set)

 

Diseo del Flip Flop Set/Reset.

Sabemos que la salida Q+ depende del estado anterior Q0 y de las entradas S y R. Es decir, el diseo lo plantearemos como si se tratara de un circuito combinacional, pero considerando Q0 como si fuera una entrada ms. Esta funcin la podemos plantear por medio de la siguiente tabla de estados, obtenida de la tabla de estado descrita anteriormente:

Entadas en tn Salida en tn+1
Q0 S R Q+
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 -
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 -

De donde podemos obtener la funcin lgica:

Q+ = Q0*S*R + Q0*S*R+ Q0*S*R

que se puede simplificar a:

Q+ = R*(S + Q0)

y por DeMorgan podemos escribir:

Entonces el circuito para el FF-RS ser:

En donde he destacado con lnea de color rojo la RETROALIMENTACION, propia de los circuitos secuenciales. Si usted arma este circuito en el simulador podr comprobar todo lo expuesto hasta aqu, haciendo Clic en la entrada S la salida Q pasa a 1 y PERMANECE en ese estado an cuando usted vuelve la entrada S a 0, es decir, MEMORIZA el cambio de la entrada S

La nica forma de volver la salida Q a 0 es hacer Clic en la entrada R, permaneciendo la salida Q en 0 an cuando usted retorne la entada R a 0

De ah el nombre de las entradas (Set = colocar, Fijar    Reset = reponer)

Si usted es observador(a) se dar cuenta que en este circuito estn disponibles tanto las salidas Q como Q. Si no logra darse cuenta de ello dibujar de nuevo el  mismo circuito, pero de una forma que le permita apreciarlo:

Este es exactamente el mismo circuito, pero ahora se aprecia que la retroalimentacin est presente en ambas compuertas. Cuidado con esto!, observe bien ambos dibujos hasta comprobar lo que acabo de decir, esa es la clave para entender el comportamiento de los circuitos secuenciales.

Una forma muy usada para representar a un circuito FF-RS es la siguiente:

Dado que este circuito memoriza , RETIENE, en su salida el cambio ocurrido en una de sus entradas se le llama tambin LATCH (cerrojo)

Tambin es importante sealar que para su uso suele agregrsele una entrada adicional de HABILITACION para controlar cuando el cerrojo podr realizar su trabajo y cuando estar "fuera de servicio":

 

Y se logra efectuando una modificacin muy simple al circuito original, tal como se muestra en la siguiente figura:

Cuando la entrada EN est en 0 el LATCH estar fuera de servicio pues las entradas S y R no surtirn efecto debido a que ambas compuertas AND tendrn una entrada 0 (el valor de la entrada EN)

Cuando la entrada EN est en 1 el LATCH funcionar como se describi, estar habilitado (ENABLED)

 

LATCH    D

Otro tipo de cerrojo muy usado es conocido como Latch-D, y es una variante del anterior:

Ahora no existen dos entradas (R yS) sino que  una sola entrada, la entrada D, de modo que la tabla de estados:

Entradas Salidas Situacin
D EN Q Q
- 0 Q Q Las salidas no cambian pues el latch est deshabilitado (EN vale 0)
0 1 0 1 Acta como Reset
1 1 1 0 Acta como Set

Quizs este funcionamiento quede ms claro con el siguiente diagrama de tiempos:

 

 

FLIP FLOP J-K

Este es otro tipo de Flip-Flop, muy usado, y puede lograrse a partir de un FF-RS como se muestra en la figura siguiente:

 

Si no se activa ninguna de las entradas, el biestable permanece en el estado que posea tras la ltima operacin. A diferencia del FF-RS, en el caso de activarse ambas entradas a la vez, la salida adquirir el estado contrario al que tena.

La funcin lgica del FF-JK que describe su comportamiento es:

Q+ = J*Q0 + K*Q0

Y su tabla de estados es:

J K Q Q+
0 0 0
0
0 0 1
1
0 1 X
0
1 0 X
1
1 1 0
1
1 1 1
0
X=no importa

Una forma ms compacta de la tabla  es:

J K Q+
0 0 Q0
0 1 0
1 0 1
1 1 Q0


El FF-JK se denomina as por Jack Kilby, el inventor de los circuitos integrados en 1958, por lo cual se le concedi el Premio Nobel

 

Flip Flop T

Este Flip Flop cambia de estado cada vez que la entrada cambia (T viene de la palabra ingles toggle=alternar, cambiar entre dos estados). Si la entrada T est a nivel bajo, el Flip Flop retiene el nivel previo. Puede obtenerse al unir las entradas de control de un Flip Flop JK, llamando T a esa entrada nica.

su tabla de estados es:

T Q Qsiguiente
0 0
0
0 1
1
1 0
1
1 1
0

La funcin lgica del Flip Flop T es:

Q_{siguiente} = T \oplus Q\,

 

 

Aplicaciones de los Flip-Flop

Todos estos tipos de Flip-Flops se emplean para construir mdulos funcionales que realizan tareas de mas alto nivel, algunas de las cuales describir a continuacin.

Contadores

Permiten llevar la cuenta del nmero de veces que se repite un suceso. Para ello memorizan la cuenta actual y la incrementan cada vez que el evento vuelve a ocurrir. Como elemento de memoria se usa algn tipo de Flip-Flop, tantos como sea precisos para memorizar la cantidad mxima que est previsto contar.

Hay dos formas de organizar el proceso de cuenta, asncrona y sncrona

En en el caso asncrono se procede en forma similar a como acta un contador mecnico, en el cual cada vez que el suceso a contar ocurre se produce un paso de avance en una rueda dentada, y cuando esa rueda completa una vuelta provoca un paso de avance en la rueda siguiente.

Aqu, cada vez que ocurre el suceso que se desea cambia un primer bit de 0 a 1, y cuando el suceso ocurre otra vez ese bit vuelve a cero, pero a la vez cambia de 0 a 1 un segundo bit, y as sucesivamente.

Como se observa en la figura se usan tres FF-JK pero como sus dos entradas J y K estn puestas permanentemente en 1 siempre que ocurra un cambio de 0 a 1 en su entrada CLK (la cual corresponde a una variable E que cambia peridicamente, comportndose como un reloj, pero que es en realidad el suceso a contar) la salida Q cambiar a un valor opuesto al que tena (como se explic en pginas anteriores)

En un estado inicial las salidas Q de los tres FF-JK estn en 0

En el primer FF-JK cuando la entrada CLK cambie de 0 a 1 la salida pasar de 0 a 1, manteniendo ese estado an cuando el reloj baje de 1 a 0. Pero este cambio de 0 a 1 en el primer Flip Flop acta como entrada CLK del segundo Flip-Flop por lo cual la salid de ste tambin cambiar de 0 a 1 un breve instante despus y, por ltimo, ese cambio se transmitir al tercer Flip Flop por su entrada CLK, con lo cual la salida de ste tambin cambiar de 0  a 1. Todo esto se aprecia en la siguiente figura

 

En la que se aprecian los "retardos" con que van ocurriendo los cambio en las salidas Qo, Q1 y Q2. Estos retardos no se pueden evitar (son parte de la naturaleza fsica de los circuitos) y son el gran y verdadero problema de los circuitos lgicos y computacionales.

Sin embargo, si de todos modos el circuito realiza lo deseado. En efecto,  si  mostramos la salida Q de cada Flip Flop tras cada cambio de 0 a 1 en el reloj tendramos

Q0 Q1 Q2

0

 0

 0

1

 1

 1

1

 1

 0

1

 0

 1

1

 0

 0

0

 1

 1

0

 1

 0

0

 0

 1

0

 0

 0

Que si se toman como valores binarios de tres bits corresponden a la secuencia de cifras binarias

000, 111, 110, 101, 100, 011, 010, 001, 000

Que, convertidas a decimal, forman la secuencia:

0, 7, 6, 5, 4, 3, 2, 1, 0

Hemos logrado un contador...lo nico malo es que cuenta al revs

Pero es fcil convertirlo en ascendente, basta con ingresar en la entrada CLK de cada Flip Flop un valor negado.

 

Ejemplo de diseo de un contador

Se desea un contador que slo pueda contar 0, 1, 2, 3 y 4. A un contador as se le denomina contador mdulo 5 pues, no importa cuantas veces ocurra el suceso el conteo ser 0, 1, 2, 3 4, lo cual corresponde al resto de dividir el conteo real por 5 (por ejemplo, si el suceso se ha repetido 7 veces, el contador habr entregado los conteos 1, 2, 3, 4, 0, 1, 2 siendo el ltimo valor entregado 2, que es el resto de dividir 7 por 5)

Est claro que los estados diferentes que podr tener el sistema secuencial buscado sern cinco. Adems, las transiciones entre estados estn tambin muy claras: del estado 0 slo se puede pasar al 1, del 1 al 2, del 2 al 3, del 3 al 4, y por ltimo de 4 al 0. No habiendo posibilidad de otras transiciones entre estados. La nica entrada del sistema es la seal a contar E.

Con esto en mente podemos construir la tabla siguiente:

Entrada E

Suceso a contar

Estado Actual Estado Siguiente Flip Flop 2 Flip Flop 1 Flip Flop 0
Q2 Q1 Q0 Q2+ Q1+ Qo+ J2 K2 J1 K1 J0 K0
pasa de 0 a 1 0 0 0 0 0 1 0 X 0 X 1 X
pasa de 0 a 1 0 0 1 0 1 0 0 X 1 X X 1
pasa de 0 a 1 0 1 0 0 1 1 0 X X 0 1 X
pasa de 0 a 1 0 1 1 1 0 0 1 X X 1 X 1
pasa de 0 a 1 1 0 0 0 0 0 X 1 0 X 0 X

A partir de esta tabla se pueden encontrar fcilmente las relaciones entre el estado actual o de partida, y las entradas de los Flip Flop:

Lo que en forma de circuito equivale a:

 

Registros de desplazamiento.

Los registros de desplazamiento estn constituidos por varias bsculas tipo D o JK conectadas en cascada y activas por el mismo reloj, de modo que a cada flanco activo del reloj el dato grabado en cada bscula se vuelca en la siguiente; dando la impresin de que los datos se van desplazando a lo largo del registro. En la figura se ilustra con un ejemplo lo dicho anteriormente.

Entre las aplicaciones ms usuales de los registros de desplazamiento destaca la de servir de elemento puente en la transmisin y recepcin de datos. As por ejemplo si se va a enviar un conjunto de datos codificados en grupos de ocho bites por una va de comunicaciones serie, al principio y al final de la lnea se pueden poner sendos registros de desplazamiento de salida y entrada serie respectivamente, de modo que a medida que van saliendo los datos del punto emisor, se vayan almacenando en el punto receptor.

 

Memorias

Un biestable es una memoria de un bit, un registro de desplazamiento de 8 bits es una memoria de un byte. Si un circuito integrado se organiza de modo que en l se puedan almacenar 1024 (210) palabras de 8 bits cada una, tendramos una memoria computacional de 1 kilobyte.

Si el circuito permite la escritura y lectura de cualquiera de las palabras del conjunto, decimos que se trata de una memoria de acceso aleatorio (RAM), mientras que si slo se puede leer su contenido, se trata de una memoria ROM.

Si un circuito de este tipo fuese de capacidad de un kilobyte aparentemente debera 16.384 pins (puntos de entrada y salida de datos), pues en total son 8192 bits y por cada uno deberan existir dos pins, uno para escribir y otro para leer. Pero esto es impensable, son demasiados puntos de coneccin.

Para enfrentar este problema se da una cierta organizacin los circuitos de memoria para que las operaciones de lectura y escritura puedan efectuarse sin requerir todos esos puntos de coneccin

Aparecen las ideas de Direccin, Bus de Direcciones, Bus de datos. Como son 1024 bytes se puede pensar que cada uno de llos tiene una numeracin correlativa 0, 1, 2, ...1023, es decir 1024 nmeros correlativos.

Esa numeracin correlativa direccin requiere tan solo 10 bits en este ejemplo (en binario, con 10 bits se pueden escribir 210 nmeros diferentes, es decir 1024 nmeros diferentes). En el dibujo esos 10 bits ingresan al circuito de memoria por kas entradas A0, A1,..,A9 (estas forman el Bus de Direcciones)

En el interior del mdulo de memoria un combinacional decodificar el binario formado por A0, A1 y activar una de 1024 lineas para acceder al byte correspondiente.

Cada uno de esos 1024 bytes, cuando es seleccionado, entrega ocho salidas que son comunicadas hacia afuera por tan slo 8 lineas D0, D1, ...,D7 (este es el Bus de Datos)