2.2. ELEMENTOS DE MEMORIA Y SISTEMAS SECUENCIALES SECUENCIALES Un circuito secuencial básicamente es un circuito combinacional que se le conectan elementos de memoria para formar un camino de realimentación. Los elementos de memoria son aquellos que son capaces de almacenar información binaria dentro de ellos. La información binaria almacenada en los elementos de memoria en un tiempo dado define el estado del circuito secuencial. Las entradas externas, conjuntamente con el presente estado de los elementos de memoria, determinan el valor binario de las terminales de salida, el siguiente estado de los elementos de memoria es también una función de las entradas externas y del estado presente. Así un circuito secuencia se especifica por medio de una secuencia de tiempo de las entradas, salidas y estados internos (Morris, 2000). Hay 2 tipos de circuitos secuenciales, su clasificación depende del tiempo de sus señales. Un circuitos secuencia sincrónico es un sistema cuyo comportamiento puede definirse a partir del conocimiento de sus señales en instantes discretos de tiempo. Un circuito secuencia asincrónico depende del orden en que cambien las señales de entrada y puedan ser afectadas en un instante de tiempo (Morris, 2000) Los circuitos secuenciales temporizados pertenecen a la clasificación de los sincrónicos y los elementos de memoria usados usados en estos circuitos circuitos se llaman Flip-Flop (FF), que se dará una breve descripción a continuación.
2.2.1 FLIP-FLOPS Los flip flop (FF) son elementos de memoria, los cuales pueden almacenar un bit, un circuito FF puede mantener un estado binario indefinidamente (siempre y cuando este energizado) hasta que se cambien la señal de entrada, la información binaria puede entrar en diferentes formas (Morris, 2000), este hecho determina los diferentes tipos los cuales se muestran en la tabla 2.2.1. NOMBRE
SÍMBOLO GRÁFICO
JK
M.C. Yolanda Leticia Trujillo Andrade
TABLA CARACTERÍSTICA
TABLA DE EXCITACIÓN
J 0 0 1 1
Q(t)
K 0 1 0 1
Q (t + 1) Q(t) 0 1 Q´(t)
0 0 1 1
Q(t+1)
J
0 1 0 1
0 1 X X
K X X 1 0
D 0 1
Q(t+1) 0 1
D
T 0 1
T
S 0 0 1 1
RS
Q (t + 1) Q(t) Q´(t) R 0 1 0 1
Q (t + 1) Q(t) 0 1 ?
Q(t)
Q(t+1)
0 0 1 1
0 1 0 1
Q(t)
Q(t+1)
T
0 0 1 0
0 1 0 1
0
Q(t) 0 0 1 1
D 0 1 0 1
1 1 0
Q(t+1)
S
R
0 1 0 1
0 1 0 X
X 0 1 0
Tabla 2.2.1. Tipos de flip flop El estado de un flip flop se modifica por un cambio momentáneo en sus entradas. Este cambio se denomina disparo (trigger). Básicamente se necesita un disparo de entrada definido por un cambio de nivel. Este nivel debe regresar a su nivel inicial antes de aplicar otro disparo. Los FF con reloj eran disparados por pulsos. La realimentación entre la circuitería combinacional y el elemento de memoria puede producir inestabilidad, haciendo que el FF cambie varias veces durante la duración de un pulso de reloj por lo que el intervalo de tiempo desde la aplicación del pulso hasta que ocurre la transición de la salida es un factor critico. La transición positiva se define como flanco positivo y la negativa como flanco negativo y se aplica a los pulsos negativos como se muestra en la figura 2.2.1.
Figura 2.2.1 Definición de la transición de un pulso de reloj. M.C. Yolanda Leticia Trujillo Andrade
Una manera de resolver este problema es hacer que los FF sean sensibles a la transición del pulso mas que a la duración. Hay dos maneras de hacerlo y que dan origen a dos tipos de flip flops: los f lip flops maestro esclavo y los flip flops disparados por flanco.
Flip-Flop maestro-esclavo Un flip flop maestro-esclavo se construye con dos FF, uno sirve de maestro y otro de esclavo(Fig 2.2.2). Durante la subida del pulso de reloj se habilita el maestro y se deshabilita el esclavo. La información de entrada es transmitida hacia el FF maestro. Cuando el pulso baja nuevamente a cero se deshabilita el maestro lo cual evita que lo afecten las entradas externas y se habilita el esclavo. Entonces el esclavo pasa al el mismo estado del maestro. El comportamiento del flip-flop maestro-esclavo que acaba de describirse hace que los cambios de estado coincidan con la transición del flanco negativo del pulso.
Fig. 2.2.2. Flip-Flop JK maestro esclavo
Flip-Flop disparado por flanco Otro tipo de FF que sincroniza el cambio de estado durante la transición del pulso de reloj es el flip flop disparado por flanco(Fig. 2.2.3). Cuando la entrada de reloj excede un nivel de umbral especifico ( threshold level), las entradas son aseguradas y el FF no se ve afectado por cambios adicionales en las entradas hasta tanto el pulso de reloj no llegue a cero y se presente otro pulso.
Fig. 2.2.3. Flip –Flop tipo D disparado por flanco positivo
M.C. Yolanda Leticia Trujillo Andrade
Algunos FF cambian de estado en la subida del pulso de reloj, y otros en el flanco de bajada. Los primeros se denominaran Flip flop disparados por flanco positivo y los segundos Flip flops disparados por flanco negativo. La distinción entre unos y otros se indicará con la presencia o ausencia de una negación en la entrada de reloj como se muestra en la figura 2.2.4.
Fig. 2.2.4 Flip-Flop JK disparado con flanco positivo y negativo
2.2.2 REGISTROS Un registro es un grupo de celdas de almacenamiento almacenamiento binario adecuadas adecuadas para mantener información binaria. Un grupo de flip-flop constituye un registro, ya que cada flip-flop es una celda binaria capaz de almacenar un bit de información. Un registro de n-bit tiene un grupo de n flip-flop y es capaz de almacenar cualquier información binaria que contenga n bits. Además de los flip-flop, un registro puede tener compuertas combinacionales que realicen ciertas tareas de procesamiento de datos. En su definición mas amplia, un registro consta de un grupo de flip-flop y compuertas que efectúan una transición. Los flip-flop mantienen la información binaria y las compuertas controlan cuando y como se transfiere información nueva al registro. Están disponibles varios registros en la forma de circuito integrado (chip). El registro mas sencillo consta de flip-flop solos sin ninguna compuerta externa. Un ejemplo de un registro construido construido un FF construido con cuatro flip-flop tipo D y una entrada común de pulsos de reloj se muestra en la figura 2.2.5. La entrada de pulsos de reloj, CP, habilita todos los flip-flop de modo que la información presente disponible en las cuatro entradas puede trasferirse en paralelo a la salida del registro de 4-bit. Las cuatro salidas pueden muestrearse para obtener la información almacenada en ese momento en el registro. M.C. Yolanda Leticia Trujillo Andrade
Fig. 2.2.5. Registro de 4 bits bits implementado con FF tipo D El registro es un dispositivo para almacenar información y guardarla por cierto tiempo. Esto se realiza aplicando un pulso de reloj. Si el registro estuviera conectado al reloj principal estaría cambiando constantemente en cada bajada. La información presentada presentada en una entrada de información D se transfiere a la salida Q cuando el pulso de habilitación CP es 1 y la salida Q sigue los datos de entrada en tanto la señal CP permanezca en 1. Cuando CP pasa a 0, la información que estaba presente en la entrada de información precisamente antes de la transición se retiene en la salida Q. En otras palabras, los flip-flop son sensitivos a la duración del pulso y el registro se habilita mientras CP=1. Hay varias mejoras que pueden realizarse a este diseño, alguna de ellas es adicionar señales asincrónicas de set y clear: Como se muestra en la figura 2.2.6. un voltaje bajo (0 voltios) en la señal de set, pondrá pondrá el registro en 1111(teniendo en la entrada 1111 ). Un voltaje bajo en la señal de clear pondrá el valor del registro en 0000.
Para simplificar los diagramas, a menudo no se colocarán estas señales, quedando entendido que existen.
M.C. Yolanda Leticia Trujillo Andrade
Fig. 2.2.6 Registro con SET y CLEAR Adicionalmente se incluirán arreglos de compuertas que permitirán la ejecución de diferentes operaciones de entrada y salida del registro.
Registros de desplazamiento (Shift Registers) Se denomina registro de desplazamiento aquel registro que es capaz de correr su información binaria ya sea a la derecha o a la izquierda. La configuración lógica de un registro de desplazamiento consta de una cadena de flip-flop conectados en cascada, con la salida de un flip-flop conectada a la entrada del siguiente flip-flop. Todos los flip-flop reciben un pulso común de reloj que causa el corrimiento de una etapa a la siguiente.
Entrada Serial-Salida Serial Puede construirse un registro de desplazamiento de cuatro bits utilizando cuatro flip-flops tipo D como se muestra en la figura 2.2.7. La operación del circuito es la siguiente: primero se limpia el registro, forzando las cuatro salidas a cero. Entonces se aplica el dato de entrada secuencialmente en la entrada D del primer flip-flop a la i zquierda (FF0).
Fig. 2.2.7 Registro de entrada serial y salida serial
M.C. Yolanda Leticia Trujillo Andrade
En cada pulso de reloj, se transmite un bit de izquierda a derecha. Si asumimos un dato que sea por ejemplo 1001. El bit menos significativo del dato debe ser desplazado a través del registro desde FF3 hasta el FF0. Para obtener el dato en la salida del registro esta debe ser extraída en forma serial. Puede hacerse de dos formas: 1. De manera destructiva, en la que el dato original se pierde al final del ciclo de lectura, y todos los flip-flops que componen el registro son puestos en cero. 2. De manera no destructiva, en la que se evita la perdida de la data. Para esto se realiza un arreglo de compuertas como se muestra en la figura 2.2.8., de manera que el dato que vaya saliendo vuelva a entrar al registro.
Fig. 2.2.8 Registro de desplazamiento de manera no destructiva
Entrada Serial-Salida Paralela Para este tipo de registro el dato se introduce en forma serial, de la misma manera como se describió anteriormente. La diferencia está en la forma de extraerla. Una vez almacenada, cada bit aparece en su salida correspondiente, y todos los bits están disponibles simultaneamente. En la fig. 2.2.9 se muestra un registro de desplazamiento de 4 bits con esta configuración.
Fig. 2.2.9. Registro de entrada serial y salida serial
M.C. Yolanda Leticia Trujillo Andrade
Entrada Paralela-Salida Serial En la fig. 2.2.10. se muestra un registro de desplazamiento desplazamiento con entrada entrada paralela y salida serial. El circuito utiliza flip-flops tipo D y un arreglo de compuertas NAND para la entrada de datos al registro (escritura).
Fig. 2.2.10. Registro de desplazamiento con entrada paralela y salida serial D3, D2, D1 y D0 son las entradas en paralelo, donde D3 es el bit mas significativo y D0 el menos significativo. Para escribir los datos, datos, la línea de control WRITE/SHIFT WRITE/SHIFT se coloca en BAJO(0 voltios) y el dato se introduce con un pulso de reloj. El dato se desplaza cuando la línea de control se coloca en ALTO (5 voltios) . El registro realiza un desplazamiento hacia la derecha cuando se aplica el pulso de reloj .
Entrada Paralela-Salida Paralela Para este tipo de registro, el dato aparece en las salidas paralelas, simultaneamente con la entrada. En la gig. 2.2.11. se muestra un registro de entrada paralela - salida paralela de 4 bits con flip-flops tipo D.
M.C. Yolanda Leticia Trujillo Andrade
Fig. 2.2.11. Registro de 4 bits de entrada paralela y salida paralela Las entradas paralelas se indican como D (D3, D2, D1, D0) y las salidas paralelas como Q (Q3, Q2, Q1, Q0). Una vez que se aplica el pulso de reloj, reloj, todo el dato aplicado en las entradas D, aparece simultáneamente en la correspondiente salida Q.
Registros de desplazamiento desplazamiento bidireccionales Los registros discutidos hasta ahora realizaban desplazamiento hacia la derecha. (Cada vez que se desplaza un bit hacia la derecha implica una división por dos del número binario). Si la operación es inversa, (desplazamiento hacia la izquierda). El efecto es que a cada desplazamiento de un bit hacia la izquierda se realiza una multiplicación por dos del número binario. Con un arreglo adecuado adecuado de compuertas se pueden realizar realizar ambas operaciones. A este tipo de registro se le denomina registro bidireccional, del cual se da un ejemplo en la fi g. 2.2.12.
Fig. 2.2.12. Registro de 4 bits con desplazamiento bidireccional bidireccional
M.C. Yolanda Leticia Trujillo Andrade
El arreglo de compuertas NAND selecciona la entrada de datos del flip-flop adyacente bien sea a la derecha o a la izquierda, izquierda, dependiendo de la línea de control LEFT/RIGHT
2.2.3. CONTADORES Un circuito secuencial que pasa por una secuencia preestablecida de estados después de la aplicación de pulsos se llama contador (Morris, 2000). Los pulsos de entrada, llamados pulsos de cuenta, pueden ser pulsos de reloj, o ellos pueden originarse en una fuente externa y pueden ocurrir en intervalos establecidos de tiempo o aleatoriamente. En un contador, la secuencia de estados puede seguir una cuenta binaria o cualquier otra secuencia de estados. Los contadores se encuentran en la mayoría de los equipos que contienen lógica digital. Ellos se usan para contar el número de ocurrencias de un evento y se usan para generar secuencias de tiempo para controlar las operaciones en un sistema digital. De las diferentes secuencias que un contador debe seguir, la secuencia binaria directa es la más simple y directa. Un contador contador que sigue la secuencia binaria se se llama contador binario. Un contador de n bits consiste en n flip-flops y puede contar en binario de 0 hasta 2n – 1. Por ejemplo, el diagrama de estados de un contador de 3 bits se muestra en la figura 2.2.13. Como se muestra los estados están indicados por los círculos, y las salidas de los flip-flops repiten la secuencia de cuenta binaria con un regreso a 000 después de 111.
Fig. 2.2.13. Diagrama de estados de un contador de 3 bits
M.C. Yolanda Leticia Trujillo Andrade
Las líneas dirigidas entre entre círculos no se marcan marcan con valores de entrada- salida como en otros diagramas de estado. Y las transiciones de estado en dos circuitos secuenciales secuenciales temporizados ocurren durante un pulso de reloj; los flip-flops permanecen en sus estados presentes si no ocurre ningún pulso. Por esta razón, el pulso de reloj variable CP no aparece explícitamente como una variable de entrada en un diagrama de estado. Desde este punto de vista, el diagrama de estado de un contador no tiene que mostrar valores de entrada-salida a lo largo de las líneas dirigidas. La única entrada al circuito es el pulso de cuenta, y las salidas se especifican directamente con los estados presentes de los flipflops. El siguiente estado del contador depende enteramente de su estado presente y la transición de estado ocurre cada vez que ocurre el pulso. Debido a esta propiedad, se especifica completamente un contador por medio de una lista de secuencia de cuenta, es decir, la secuencia de los estados binarios que suceden. La secuencia de cuenta de un contador binario de 3 estados se da en la Tabla 2.2.2. El siguiente número en la secuencia representa el siguiente estado alcanzado por el circuito después de la aplicación del pulso de cuenta. La secuencia de cuenta se repite una vez haya alcanzado el ultimo valor, de tal manera que el estado 000 es el estado siguiente después de 111. La secuencia de cuenta da toda la información necesaria para diseñar el circuito. No es necesario listar los estados siguientes en una columna separada porque se puede leer del número siguiente en la secuencia.
Secuencia de cuenta A2 0 0 0 0 1 1 1 1
A1 0 0 1 1 0 0 1 1
A0 0 1 0 1 0 1 0 1
Entradas del flip-flop TA2 0 0 0 1 0 0 0 1
TA1 0 1 0 1 0 1 0 1
TA0 1 1 1 1 1 1 1 1
Tabla 2.2.2 Tabla de excitación para un contador binario de tres bits
La tabla 2.2.2 es la tabla de excitación para el contador binario de 3 bits. Se les da designaciones de variables A 2, A1 y A0 a los tres flip-flops. Los contadores binarios se construyen más eficientemente con flip-flops
T
(o flip-flops
JK
con
J
y
K
unidas). La
excitación del flip-flop T y por inspección de la transición de estado de una cuenta dada (estado presente) a la siguiente bajo ella (estado siguiente). Como ilustración, considérese M.C. Yolanda Leticia Trujillo Andrade
las entradas del flip-flop para la fila 001. El estado presente aquí es 001 y el siguiente es 010, el cual es la siguiente cuenta en la secuencia. Comparando Comparando estas dos cuentas, se nota que A2 va de 0 a 0; y así lo hace TA2 con un 0 porque el flip-flop A2 debe permanecer sin cambiar cuando ocurre un pulso de reloj. A1 va de 0 a 1; y así TA1 se marca con un 1 porque el flip-flop debe ser complementado en el siguiente pulso de reloj. De manera similar A0 va de 1 a 0, indicando que esta puede complementarse, y así TA0 se marca con un 1(para esto se utiliza la tabla de excitación del FF tipo T ver tabla 2.2.1). La ultima columna con el estado presente 111 se compara con la primera cuenta 000 la cual es su estado siguiente. Al pasar de todos los unos a todos los ceros, se requiere que todos los tres flip-flops se complementen. Las funciones de entradas entradas de los flip-flops de las tablas de excitación se simplifican simplifican en los mapas de la Figura 2.2.14. Las funciones de Boole listadas bajo cada mapa especifican por parte de circuitos combinacional del contador. Incluyendo estas funciones con los tres flipflops se obtiene un diagrama lógico del contador de la manera mostrada en la figura 2.2.15.
A1 A2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A0 TAO=1 TA2=A1A0
TA1=A0
Figuran 2.2.14. Mapas para un contador binario de 3 bits Un contador con n flip-flops pude tener una secuencia binaria de menos de 2 n números. Un contador BDC cuenta la secuencia binaria desde 0000 hasta 1001 y regresa a 0000 para repetir la secuencia. Otros contadores pueden seguir una secuencia arbitraria, la cual puede no ser la secuencia binaria binaria directa .De todas las formas, el procedimiento de de diseño es el mismo. La secuencia de cuentas se lista y la tabla de excitación se obtiene comparando una cuenta presente con la siguiente cuenta listada bajo ella. Una secuencia de cuentas tabuladas siempre asume una cuenta repetida, de tal forma que el estado siguiente de la ultima entrada es la primera cuenta listada.
M.C. Yolanda Leticia Trujillo Andrade
Figura 2.2.15.Diagrama lógico de un contador binario de 3 bits
M.C. Yolanda Leticia Trujillo Andrade
Ejemplo: diséñese un contador que tenga una secuencia repetida de seis estados como la lista de la Tabla 2.2.3. SECUENCIA DE CUENTA
A 0 0 0 1 1 1
B 0 0 1 0 0 1
ENTRADAS DEL FF C JA KA JB KB 0 0 X 0 X 1 0 X 1 X 0 1 X X 1 0 X 0 0 X 1 X 0 1 X 0 X 1 X 1 TABLA 2.2.3 Tabla de excitación para el ejemplo
JC 1 X 0 1 X 0
KC X 1 X X 1 X
En esta secuencia, los flips-flops B y C repiten la cuenta binaria 00, 01, mientras que el flipflops A alterna entre los estados 0 y 1 cada tres cuentas. La secuencia de cuenta para A,B,C no es binaria directa y los dos estados 011 y 111 no se usan. Para este ejemplo se eligieron FF JK y las entradas del del FF resultan de la tabla de excitación excitación del FF elegido. Las Las entradas KB y KC tienen solamente 1 y X(condiciones no importa) en sus columnas, de tal manera que esas entradas entradas son 1. Las otras funciones de de entrada de los flips-flops pueden simplificar usando términos mínimos 3 y 7 como condiciones de no importa ( puede utilizar mapas de karnaugth para simplificar). Las funciones simplificadas. JA=B
KA=B
JB=C
KB=1
JC=B´
KC=1
El diagrama lógico o de estado del contador se muestra en la figura 2.2.16 6-13(a). Como hay dos estados sin usar, se analiza el circuito para determinar el efecto. El diagrama de estado así obtenido se dibuja en la figura 2.2.16 6-13(b). Si el circuito por algún motivo va a un estado invalido, el siguiente pulso de cuenta lo transfiere a unos estados validos y continúa contando correctamente.
Así, el contador se auto inicia. Un contador de este tipo es aquel que puede comenzar en cualquier estado y eventualmente alcanzar las secuencia de cuenta normal.
M.C. Yolanda Leticia Trujillo Andrade
111
000 001
110
010
101 100 (b) diagrama de estado del contador
circ uito lógico del ejemplo Figura 2.2.16 Diagrama de estados y circuito
M.C. Yolanda Leticia Trujillo Andrade
011
EJERCICIOS PROPUESTOS 1. Diseñe un contador con FF tipo D un contador que realice la secuencia de números pares entre 0 y 15 y que se autoreinicie. 2. Diseñe un contador BCD con FF JK.
M.C. Yolanda Leticia Trujillo Andrade