EIE 446 - SISTEMAS DIGITALES Tema 10: Registros de desplazamiento Nombre del curso: “Sistemas Digitales” Nombre del docente: Héctor Vargas OBJETIVOS DE LA UNIDAD ● Identificar las formas básicas de movimiento de datos en los registros de desplazamiento. ● Explicar como funcionan los registros de desplazamiento con: entrada y salida serie, entrada serie y salida paralelo, entrada paralelo y salida serie, entrada y salida paralelo. ● Describir como funciona un registro de desplazamiento bidireccional. ● Determinar la secuencia de un contador Johnson. Configurar un contador en anillo para generar una secuencia específica. ● Realizar un contador en anillo a partir de un registro de desplazamiento. ● Aplicaciones de los registros de desplazamiento. Funciones básicas de los registros de desplazamiento ● Un registro de desplazamiento es un arreglo de flip-flops con aplicaciones importantes en almacenamiento y movimiento de datos. Algunos movimientos básicos de datos se muestran a continuación. Data in Data in Data out Data out Serial in/shift right/serial out Data in Serial in/shift left/serial out Data out Parallel in/serial out Data in Data in Data out Serial in/parallel out Data out Parallel in/parallel out Rotate right Rotate left Registros de desplazamiento con entrada y salida serie ● Los registros de desplazamiento están disponibles en la forma de circuitos integrados o bien, pueden ser construidos mediante flip-flops como muestra la figura con un registro de datos seriales de entrada y salida de 5 bits. ● Cada pulso de reloj moverá un bit de entrada al siguiente flip-flop. El ejemplo muestra como se mueve el bit “1” a través de los biestables. FF0 Serial data input 1 D0 C CLK CLK FF1 Q0 1 D1 C FF2 Q1 1 D2 C FF3 Q2 1 D3 C FF4 Q3 1 D4 C Q4 1 Serial data output Una aplicación básica ● Un aplicación de los registros de desplazamiento es la conversión de datos seriales a forma paralela. ● Por ejemplo, asumamos que el número binario 1011 se carga secuencialmente, un bit a cada pulso de reloj. Después de 4 pulsos de reloj, los datos están disponibles en la salida paralela. FF0 Serial data input 1 X 0 D00 D C C CLK CLK FF1 Q00 Q 1 0 D11 D C C FF2 FF2 Q11 Q 0 11 D22 D C C Q22 Q FF3 FF3 10 D33 D C C Q33 Q 11 El registro de desplazamiento 74HC164A ● El 74HC164A es un registro de desplazamiento de la familia CMOS para 8 bits de entrada serial y salida paralela. El voltaje de alimentación del C.I. puede ir desde +2.0 y +6.0 V. CLR CLK Serial inputs (9) (8) (1) A B (2) R R C R C S C S (3) Q0 R C S (4) Q1 R C S (5) Q2 R C Q3 (10) Q4 R C S S (6) R C S (11) Q5 S (12) Q6 (13) Q7 ● Una de las dos entradas de datos seriales se podría utilizar como señal de habilitación para el ingreso al registro de la otra. Si no se necesita una entrada de habilitación, una de ellas puede conectarse a +Vcc. ● El 74HC164A tiene una entrada asincrónica de limpieza “Clear”. Los datos ingresan en los flancos de subida de la señal de reloj. Diagramas de Tiempo del 74HC164A ● A la derecha se muestra las formas de onda características del 74HC164A. Observe que B actúa como señal de habilitación activa en ALTO para el ingreso de los datos en A. ● Recuerde que en CMOS las entradas no usadas deberían siempre estar conectadas a un nivel lógico; las salidas no usadas pueden quedar abiertas. CLR A Serial inputs B CLK Q0 Q1 Q2 Outputs Q3 Q4 Q5 Q6 Q7 Clear Clear Registros de entrada paralela y salida serial ● Los registros de desplazamiento se pueden utilizar para convertir datos de un formato paralelo a una salida serial. A continuación se muestra un diagrama lógico para este tipo de registros. D0 D1 D3 D2 SHIFT/LOAD G1 G5 D CLK Q0 G2 G6 D Q1 G7 G3 D Q2 G4 Serial Q3 data out D C C C C FF0 FF1 FF2 FF3 El registro de desplazamiento 74HC165 ● El registro 74HC165 es un registro de desplazamiento CMOS de 8 bits de entrada paralela y una salida serie. El símbolo lógico se muestra abajo. D0 D1 D2 D3 D4 D5 D6 D7 (11) (12) (13) (14) (3) (4) (5) (6) (1) SH/LD (10) SER (15) CLK INH (2) CLK SRG 8 C (9) Q7 (7) Q7 Las líneas de reloj (CLK) y reloj de inhibición (CLK INH) se conectan a una puerta OR común, de manera que cualquiera de estas entradas se pueda usar como un reloj de habilitación activo en BAJO y la otra, como señal de reloj de entrada. Los datos se cargan asincrónicamente cuando SH/LD está en BAJO y se mueven a través del registro sincrónicamente cuando SH/LD está en ALTO y a la vez ocurre un pulso de reloj de subida. El registro de desplazamiento 74HC165 ● A continuación se muestra una simulación realizada en Multisim con el 74HC165. El generador de palabras se utiliza como fuente de datos para el patrón que se muestra en los leds verdes. MSB Q7 is labeled QH in Multisim Pattern is loaded when J1 is LOW El registro de desplazamiento 74HC165 ● Aquí se muestra un gráfico para observar el patrón. El MSB es ALTO y está representado en la salida Q7 tan pronto como LOAD es BAJO. MSB Q7 Load Clk Registro de desplazamiento bidireccional ● Un registro de desplazamiento bidireccional puede mover los datos en cualquier dirección mediante una entrada de control RIGHT/LEFT. ● La siguiente simulación muestra como trabaja un registro de desplazamiento bidireccional. Observe que el nivel ALTO de los datos seriales de entrada se mueven primero desde Q3 hacia Q0. CLK RIGHT/LEFT Serial data in Q0 Q1 Q2 Q3 Shift left Shift right Registro de desplazamiento universal ● Un registro de desplazamiento universal tiene capacidad de entradas y salidas paralelas y/o seriales. El 74HC194 es un ejemplo de registro de desplazamiento bidireccional universal de 4 bits. D0 D1 (3) CLR S0 S1 SR SER SL SER CLK (1) (4) D2 D3 (5) (6) (13) (12) SRG 4 (9) (10) (2) (7) (11) C (15) Q0 (14) Q1 Q2 Q3 La siguiente diapositiva muestra un ejemplo de diagrama de tiempo… Registro de desplazamiento universal CLK Mode control inputs S0 S1 CLR Serial data inputs SR SER SL SER D0 Parallel data inputs D1 D2 D3 Q0 Parallel outputs Q1 Q2 Q3 Shift right Clear Load Shift left Inhibit Clear Contadores basados en registros de desplazamiento ● Los registros de desplazamiento pueden formar contadores al hacer recircular un patrón de 0s y 1s. Dos contadores basados en registros de desplazamiento importantes son el contador Johnson y el contador en anillo. FF0 El contador Johnson se puede realizar con una serie de flip-flops D D0 FF1 Q0 C D1 FF2 D2 Q1 C FF3 D3 Q2 C Q3 C Q3 Q3 CLK … o con una serie de flipflops J-K. Aquí Q3 y Q3 se realimentan a las entradas J y K. FF0 J0 FF1 Q0 C K0 CLK J1 FF2 Q1 C Q0 K1 J2 FF3 Q2 C Q1 K2 J3 Q3 Q3 C Q2 K3 Q3 Q3 Contador Johnson Otra vista que ilustra el layout del contador Johnson. FF0 J0 “trenza” Q0 C Q3 Q2 C J 2 2 FF Q2 Q3 Q3 K3 K2 C FF1 Q1 J3 J1 Q1 C K1 FF3 Q0 Q3 K0 Contador Johnson ● El contador Johnson es útil cuando se necesita una secuencia que cambia solo un bit a un tiempo pero tiene un número limitado de estados (2n, donde n = número de etapas). Las primeras cinco cuentas para un contador Johnson de 4 bits que está inicialmente en cero es: CLK Q0 Q1 Q2 Q3 0 1 2 3 4 5 6 Cuales son los tres estados que faltan? 7 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 Contador en Anillo ● El contador en anillo también se puede implementar con flip-flops tipo D o JK. A la derecha se muestra un contador en anillo de 4 bits construido de una serie de flipflops tipo D. Observe la realimentación. FF0 D0 FF1 Q0 D1 C FF2 Q1 D2 C FF3 Q2 D3 C Q3 Q3 C CLK FF0 Al igual que el contador Johnson, también se puede implementar con flip-flops J-K. J0 FF1 Q0 C K0 CLK J 1 FF2 Q1 C Q0 K1 J 2 FF3 Q2 C Q1 K2 J 3 Q3 Q3 C Q2 K3 Q3 Q3 Contador en Anillo ● Esta nueva vista también ilustra el contador en anillo (el reloj no está dibujado). EL nombre se deriva de esta característica de conexión. FF0 La desventaja de este contador es que debe ser precargado con el patrón deseado (usualmente un único 0 o 1) y siempre tiene más pocos estados que el contador Johnson (n, donde n = número de flip-flops). J0 Q0 C Q3 Q2 C J 2 2 FF Q2 Q3 Q3 K3 K2 C FF1 Q1 J3 J1 Q1 C K1 FF3 Q0 Q3 K0 Contador en Anillo ● Un patrón común en un contador en anillo es que se puede cargar con un único 1 o 0. Esto se ilustra a continuación para un contador en anillo de 8 bits. CLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 1 2 3 4 5 6 7 8 9 10 Aplicaciones de los registros de desplazamiento ● Los registros de desplazamiento se pueden utilizar para retardar una señal digital en una cantidad predeterminada. Un registro de desplazamiento de 8-bit entrada/salida serial tiene un reloj de 40 MHz. Cual es el retardo total a través del registro? A B Data in El retardo para cada reloj es 1/40 MHz = 25 ns CLK 40 MHz SRG 8 C 25 ns El retardo total es 8 x 25 ns = 200 ns CLK Data in Data out td = 200 ns Q7 Q7 Data out Aplicaciones de los registros de desplazamiento ● Estudiar del libro la aplicación de registros de desplazamiento UART (Transmisor Receptor Asíncrono Universal) y el codificador de teclado. Palabras claves de la UNIDAD Registro Uno o más flip-flops usados para almacenar o mover datos. Etapa Un elemento de almacenamiento en un registro. Mover Mover datos binarios desde una etapa a otra dentro de un registro u otro dispositivo de almacenamiento o mover datos binarios hacia dentro o fuera de un dispositivo. Cargar Bidireccional Ingresar datos a un registro de desplazamiento. Que tiene dos direcciones. En un registro de desplazamiento bidireccional, los datos almacenados se pueden mover de derecha a izquierda. BIBLIOGRAFÍA Libro base: “Fundamentos de Sistemas Digitales”. Autor: Tomas L. Floyd. Libro complemento: “Principios de Diseño Digital”. Autor: Daniel D. Gaski.