UNIVERSIDAD CATOLICA ANDRES BELLO FACULTAD DE INGENIERIA ESCUELA DE TELECOMUNICACIONES LABORATORIO DE ELECTRONICA DIGITAL PRACTICA No 3 CIRCUITOS SECUENCIALES 1.- Introducción: Un circuito combinacional es aquel sistema lógico cuya salida depende en todo momento de los valores binarios que adopten las variables de entrada. Un circuito secuencial es aquel cuya salida, es cualquier momento, depende no solo de la entrada al circuito en ese instante determinado, sino también de la evolución(historia) que haya experimentado anteriormente; es decir, de la secuencia de entradas a que estuvo sometido. CIRCUITOS SECUENCIALES Un circuito cuya salida depende no solo de la combinación de entrada, sino también 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 algún tiempo, para ello se hace necesario el uso de d e 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 lógicas) o tan complejos como un circuito completo de memoria denominado multivibrador biestable o Flip Flop. Flop. Como puede verse entonces, en los circuitos secuenciales entra un factor que no se había 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 síncronos y circuitos secuenciales asíncronos. En un circuito secuencial asíncrono, los cambios de estado ocurren al ritmo natural marcado por los retardos asociados a las compuertas lógicas utilizadas en su implementación, es decir, estos circuitos no usan elementos especiales de memoria, pues se sirven de los retardos propios (tiempos de propagación) de las compuertas lógicas usados en ellos. Esta manera de operar puede ocasionar algunos problemas de funcionamiento, ya que estos retardos naturales no están bajo el control del diseñador y además no son idénticos en cada compuerta lógica. Los circuitos secuenciales síncronos, sólo permiten un cambio de estado en los instantes marcados por una señal de sincronismo de tipo oscilatorio denominada reloj. Con esto se pueden evitar los problemas que tienen los circuitos asíncronos 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 retroalimentación de las salidas como se muestra en diagrama de la siguiente figura.
1
Figura 1 Latch Un latch es un circuito electrónico usado para almacenar información en sistemas lógicos asíncronos. Estos circuitos tienen dos estados estables (biestable) y es normalmente clasificado en una categoría separada de los flip-flops. Los latches son similares a los flipflops por que ambos son circuitos biestables. La diferencia principal entre los latches y flip-flops es en el método empleado para cambiar el estado de su salida. Los lathes son circuitos asíncronos y los flip-flops circuitos síncronos. Latch S-R
Figura 2 Flip-flop Los flip-flops son circuitos biestables síncronos, también son conocidos como multivibradores biestables. En estos circuitos el termino síncronos significa que el estado de la salida cambia en un instante especifico de la señal de entrada denominada reloj (CLK), por lo tanto los cambios en la salida ocurren en sincronización con el reloj. En los flip-flops su salida se realimenta a una de sus entradas, de modo que su estado siguiente depende del estado actual de sus entradas y el estado de las salidas. Así, al analizar un flip-flop, tomamos en cuenta sus entradas y su salida actual, o el estado (generalmente etiquetado Q(t)), para determinar su estado siguiente (etiquetado generalmente Q(t+1)).
2
3
Clases de Flip-flop
Estudiaremos tres tipos de flip-flop: Flip-flop del SR, Flip-flop de D, y Flip-flop de JK. Flip-flop de T Se definen como sigue: Flip-flop SR
Figura 3 Detector de transición de pulso
Figura 4 Flip-flop de D
Figura 5
4
Flip-flop de JK
Figura 6 Flip-flop T Un biestable T (toggle) síncrono es un circuito secuencial elemental con una entrada de datos (T), otra de sincronización (reloj) y una salida (Q), donde el valor del estado coincide con el de la salida, siendo su comportamiento el descrito en la figura 7.
Figura 7. Especificación del funcionamiento de un biestable T La descripción del funcionamiento del biestable es la siguiente: si la entrada toma el valor T=1, el estado se actualizará cambiando de valor, es decir, si el valor actual de la variable + de estado es Q=0, el valor siguiente será Q =1, y viceversa. En caso contrario, es decir, si la + entrada toma el valor "0", la variable de estado no cambia de valor al actualizarse (Q =Q).
Figura 8. Diagramas de estado, expresión algebraica de la función de transición de estados y tabla de excitación de un biestable T.
5
Reloj
En la señal de reloj podemos distinguir las siguientes características
Figura 9 Flip-flops activo con flanco de subida
Figura 10 Flip-flops activo con flanco de bajada
Figura 11
Sistemas secuenciales síncronos y asíncronos
Una primera clasificación de los sistemas secuenciales en función de su comportamiento temporal nos llevará a dos grandes grupos o tipos: los sistemas síncronos y los asíncronos. Un sistema secuencial es asíncrono cuando su funcionamiento temporal es libre, es decir, cuando la variación de entradas, estados y salidas no está sometida a ninguna restricción externa. Las únicas restricciones temporales existentes en un sistema asíncrono son de origen interno (e inevitable) y son debidas a los retardos de los elementos físicos que lo componen. 6
El segundo grupo lo consituyen los sistemas síncronos, los cuales incluyen un control temporal de tipo restrictivo (sincronización) en su funcionamiento: el estado y la salida del sistema pueden cambiar únicamente cuando lo permite una señal externa de referencia llamada reloj (CLOCK). La forma ideal de la señal de reloj es un tren periódico de impulsos, que indican los instantes de tiempo en los que es posible el cambio de estado y de salida.
Figura 12. Evolución temporal de las señales en un sistema síncrono con la entrada variando de forma libre (a) o sincronizada con el reloj del sistema (b)
Es evidente que, a priori, un sistema secuencial asíncrono es más rápido que uno síncrono; esto es así porque en el sistema síncrono los cambios siempre tienen que esperar a producirse en los instantes en que esto está permitido, con las consiguientes demoras. A su vez el comportamiento de un sistema asíncrono es muy sensible al retardo de sus componentes, problema que se agrava notablemente cuando aumenta su tamaño o su complejidad, razón que hace que los sistemas asíncronos sean muy poco utilizados en la práctica. En este texto centraremos nuestra atención casi exclusivamente en los sistemas secuenciales síncronos. En la figura 12.a se muestra un ejemplo de evolución temporal de un sistema síncrono gobernado por un reloj ideal. De acuerdo con esta señal, el estado y la salida cambian únicamente en los instantes de tiempo coincidentes con los impulsos. Con ello se consigue que, como máximo, haya un cambio por cada período de reloj. Se ha supuesto que los retardos del sistema son prácticamente inapreciables. Consideremos a efectos de exploración de posibilidades el caso particular de un sistema síncrono donde también la entrada cambiase sólo en los instantes fijados por el 7
reloj. Un ejemplo de cronograma del comportamiento de este tipo de sistema sería el de la figura 12.b, donde el valor de cada una de las señales se mantiene constante como mínimo el tiempo que transcurre entre dos impulsos consecutivos del reloj (es decir, un período de reloj). En estas condiciones es muy sencillo hacer una interpretación del comportamiento del sistema, no en función de la variable continua "t" (tiempo) sino de la variable discreta "i" (instante de cambio, i=0,1,2,3,..), tal como se muestra en la figura 13.
Figura 13. Discretización del tiempo en un sistema síncrono
En estas condiciones es posible realizar una especificación del funcionamiento de este tipo de sistema donde entradas, salidas y estados se interpretan como secuencias discretas de valores (ver figura 14). Nótese que en este tipo de sistema se trata de un caso opuesto al de un sistema asíncrono en cuanto a dependencia del factor tiempo, y que es viable prescindir de éste como variable continua: en cada período de reloj (i) el sistema recibe una entrada x(i) y se mantiene en un estado s(i), que determinan unívocamente tanto la salida en este mismo período z(i) como el valor siguiente (en el siguiente período de reloj) del estado s(i+1). En otras palabras, el comportamiento de este tipo de sistema síncrono es más cercano al de los sistemas considerados al principio de este capítulo, en los que se prescindía de los aspectos temporales
Figura 14. Especificación ideal de un sistema secuencial síncrono
8
Método sistemático de síntesis de circuitos secuenciales síncronos Permite obtener un circuito síncrono que, mediante biestables y una red combinacional, implementa la especificación propuesta. El método consta de tres fases: I) obtención de una especificación normalizada, II) traducción de la especificación a nivel binario (variables lógicas), y III) obtención y optimización de las funciones de entrada a los biestables y de salida del sistema. A continuación se indican con detalle los pasos concretos a seguir: 1) Identificar las entradas, las salidas y los estados del sistema. Dicha identificación debe hacerse a partir de una primera especificación del funcionamiento del sistema. Con frecuencia suele ocurrir que la especificación inicial sea verbal o, en general, no normalizada, por lo que identificar los datos con los que tiene que trabajar el sistema no es siempre inmediato. 2) Construir la tabla de verdad de las funciones de salida y de transición de estados (o su equivalente en forma de diagrama de estados). Una vez completado este paso se dispone de una especificación normalizada (basada en el estado) del sistema. Si se desea realizar un diseño compacto, es conveniente aplicar el método de minimización del número de estados. 3) Codificar las variables del sistema. Es decir, si no lo están ya, traducir a variables lógicas los conjuntos de entradas, salidas y estados. En ausencia de restricciones concretas es recomendable codificar utilizando el menor número posible de bits (recuérdese que para codificar N informaciones son necesarios como mínimo n bits, n cumpliéndose que 2 •N). Con esto la especificación del sistema estará hecha a nivel binario. 4) Escoger el tipo de biestables a utilizar. Es evidente que la implementación circuital será distinta en función del tipo de biestables utilizados. 5) Construir la tabla de verdad de las funciones de entrada a los biestables. Se trata de seguir el mismo procedimiento que en el caso de análisis pero en sentido contrario: a partir de la tabla de verdad de la función transición de estados q+(x,q) y de la tabla de excitaciones de los biestables, obtener los valores f(q, x) que es necesario introducir en las entradas de éstos. 6) Una vez obtenida la tabla de verdad de las funciones de entrada a los biestables, es interesante escribir sus expresiones algebraicas y, eventualmente, simplificarlas. Lo mismo suele hacerse con las funciones de salida. En ambos casos son aplicables los métodos de simplificación presentados en capítulos anteriores. 7) Finalmente, y de acuerdo con las expresiones obtenidas en el paso anterior, construir el esquema lógico resultante.
9
2.- Parte experimental:
2.1 Realizar un biestable JK a partir de un D. Para ello basta con fijarnos en la ecuación característica del biestable JK, y dado que en un biestable D el estado futuro es igual a + la entrada, obtenemos una posible implementación: Q = D= JQ + QK 2.2 Proponga una realización para un biestable D partiendo de un biestable JK. 2.3 Obtenga una especificación del funcionamiento del circuito secuencial de la figura 15.
Figura 15 2.4 Un determinado sistema secuencial ha sido implementado mediante el circuito de la figura 16. Halle la especificación de dicho sistema en forma de diagrama de estados y, si es posible, una implementación más sencilla hecha con biestables D y puertas lógicas.
Figura 16
Tarea 3.- Aplicaciones: Circuitos Secuenciales
Partiendo de sus conocimientos y de la información suministrada sobre circuitos secuenciales debe diseñar y probar en el protoboard un circuito que cumpla con la siguiente descripción: 10
Se desea diseñar un circuito para contar el número de personas en el interior de un recinto con una sola puerta dotada de dos células fotoeléctricas separadas una distancia suficiente, cada una de las cuales genera un pulso al pasar cada persona. Por la puerta sólo puede pasar una persona cada vez, y es el orden en que cambian las células fotoeléctricas el que indica si la persona entra o sale. Prever el caso en que una persona se devuelva antes de completar su acción de entrar o salir. Suponer que el máximo número de personas es 9. El diseño lo debe hacer mediante la técnica de circuitos secuenciales. Defina las señales y condiciones de funcionamiento que considere necesarias. Muestre el diagrama de estados.
11