EIE 446 - SISTEMAS DIGITALES Tema 10: Registros de desplazamiento OBJETIVOS DE LA UNIDAD Identificar las formas bsicas 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 especfica.
Realizar un contador en anillo a partir de un registro de desplazamiento.
Aplicaciones de los registros de desplazamiento. Funciones bsicas 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 bsicos de datos se muestran a continuacin. Data in Data in Data in Data in Data in Data out Data out Data out Data out Data out Serial in/shift right/serial out Serial in/shift left/serial out Parallel in/serial out Parallel in/parallel out Serial in/parallel out Rotate right Rotate left Registros de desplazamiento con entrada y salida serie Los registros de desplazamiento estn 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 travs de los biestables. C FF0 CLK C FF1 C FF2 C FF4 D 0 D 1 D 2 D 4 Serial data output Serial data input C FF3 D 3 Q 4 Q 0 Q 1 Q 2 Q 3 1 1 1 1 1 1 CLK CLK CLK CLK CLK Una aplicacin bsica Un aplicacin de los registros de desplazamiento es la conversin de datos seriales a forma paralela. Por ejemplo, asumamos que el nmero binario 1011 se carga secuencialmente, un bit a cada pulso de reloj. C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 1 C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 0 1 C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 1 0 1 C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 1 1 0 1 C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 1 X 1 0 1 C FF0 CLK C FF1 C FF2 D 0 D 1 D 2 Serial data input C FF3 D 3 Q 0 Q 1 Q 2 Q 3 1 X 1 0 1 CLK CLK CLK CLK Despus de 4 pulsos de reloj, los datos estn disponibles en la salida paralela. 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 alimentacin del C.I. puede ir desde +2.0 y +6.0 V. (1) (2) (9) (8) S C C C C R S S S S C C C C S S S (3) (4) (5) (6) (10) (11) (12) (13) R R R R R R R CLK Q 0 Q 1 Q 2 Q 3 CLR Q 4 Q 5 Q 6 Q 7 Serial inputs A B Una de las dos entradas de datos seriales se podra utilizar como seal de habilitacin para el ingreso al registro de la otra. Si no se necesita una entrada de habilitacin, una de ellas puede conectarse a +Vcc. El 74HC164A tiene una entrada asincrnica de limpieza Clear. Los datos ingresan en los flancos de subida de la seal de reloj. Diagramas de Tiempo del 74HC164A A la derecha se muestra las formas de onda caractersticas del 74HC164A. Observe que B acta como seal de habilitacin activa en ALTO para el ingreso de los datos en A.
Recuerde que en CMOS las entradas no usadas deberan siempre estar conectadas a un nivel lgico; las salidas no usadas pueden quedar abiertas. CLK Q 0 Q 1 Q 2 Q 3 CLR Q 4 Q 5 Q 6 Q 7 Serial inputs A B Outputs 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 continuacin se muestra un diagrama lgico para este tipo de registros. C D G 2 C D G 5 C D G 3 G 6 C D G 4 G 7 G 1 FF0 FF1 FF2 FF3 D 0 D 1 D 2 D 3 Q 0 Q 1 Q 2 Q 3 SHIFT/LOAD CLK Serial data out 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 smbolo lgico se muestra abajo. C SRG 8 (1) (10) (15) (2) (11) (12) (13) (14) (3) (4) (5) (6) (9) (7) D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 Q 7 Q 7 SH/LD CLK SER CLK INH Las lneas de reloj (CLK) y reloj de inhibicin (CLK INH) se conectan a una puerta OR comn, de manera que cualquiera de estas entradas se pueda usar como un reloj de habilitacin activo en BAJO y la otra, como seal de reloj de entrada. Los datos se cargan asincrnicamente cuando SH/LD est en BAJO y se mueven a travs del registro sincrnicamente cuando SH/LD est en ALTO y a la vez ocurre un pulso de reloj de subida. El registro de desplazamiento 74HC165 A continuacin se muestra una simulacin realizada en Multisim con el 74HC165. El generador de palabras se utiliza como fuente de datos para el patrn que se muestra en los leds verdes. MSB Pattern is loaded when J1 is LOW Q 7 is labeled Q H in Multisim El registro de desplazamiento 74HC165 Aqu se muestra un grfico para observar el patrn. El MSB es ALTO y est representado en la salida Q7 tan pronto como LOAD es BAJO. Load Q 7 Clk MSB Registro de desplazamiento bidireccional CLK RIGHT/LEFT Serial data in Q 0 Q 1 Q 2 Q 3 Shift right Shift left Un registro de desplazamiento bidireccional puede mover los datos en cualquier direccin mediante una entrada de control RIGHT/LEFT. La siguiente simulacin 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. 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. (1) (15) (14) (13) (12) (3) (4) (5) (6) (9) (10) (2) (7) (11) C SRG 4 D 0 D 1 D 2 D 3 CLK SL SER Q 0 Q 1 Q 2 Q 3 SR SER S 1 S 0 CLR La siguiente diapositiva muestra un ejemplo de diagrama de tiempo Registro de desplazamiento universal Parallel data inputs Shift right Mode control inputs Parallel outputs Clear Load Shift left Inhibit Clear CLR S 1 SR SER SL SER D 0 D 1 D 2 D 3 Q 0 Q 1 Q 2 Q 3 S 0 CLK Serial data inputs Contadores basados en registros de desplazamiento C Q 0 FF0 CLK C Q 1 FF1 C FF2 C Q 3 FF3 D 0 D 1 D 2 D 3 Q 2 Q 3 Q 3 C Q 0 FF0 CLK C Q 1 FF1 C FF2 C Q 3 FF3 J 0 J 1 J 2 J 3 Q 2 Q 0 Q 1 K 0 K 1 K 2 K 3 Q 2 Q 3 Q Q 3 3 Los registros de desplazamiento pueden formar contadores al hacer re- circular un patrn de 0s y 1s. Dos contadores basados en registros de desplazamiento importantes son el contador Johnson y el contador en anillo. El contador Johnson se puede realizar con una serie de flip-flops D o con una serie de flip- flops J-K. Aqu Q 3 y Q 3 se realimentan a las entradas J y K. Contador Johnson C Q 0 FF0 J 0 Q 0 K 0 C Q 1 F F 1 J 1 Q 1 K 1 C FF2 J 2 Q 2 K 2 Q 2 C Q 3 F F 3 J 3 K 3 Q 3 Q Q 3 3 trenza Otra vista que ilustra el layout del contador Johnson. Contador Johnson El contador Johnson es til cuando se necesita una secuencia que cambia solo un bit a un tiempo pero tiene un nmero limitado de estados (2n, donde n = nmero de etapas). Las primeras cinco cuentas para un contador Johnson de 4 bits que est inicialmente en cero es: CLK Q 0 Q 1 Q 2 Q 3 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 2 3 4 5 6 7 Cuales son los tres estados que faltan? Contador en Anillo El contador en anillo tambin 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 flip- flops tipo D. Observe la realimentacin. Al igual que el contador Johnson, tambin se puede implementar con flip-flops J-K. C Q 0 FF0 CLK C Q 1 FF1 C FF2 C Q 3 FF3 D 0 D 1 D 2 D 3 Q 2 Q 3 C Q 0 FF0 CLK C Q 1 FF1 C FF2 C Q 3 FF3 J 0 J 1 J 2 J 3 Q 2 Q 0 Q 1 K 0 K 1 K 2 K 3 Q 2 Q 3 Q Q 3 3 Contador en Anillo Esta nueva vista tambin ilustra el contador en anillo (el reloj no est dibujado). EL nombre se deriva de esta caracterstica de conexin. C Q 0 FF0 J 0 Q 0 K 0 C Q 1 F F 1 J 1 Q 1 K 1 C FF2 J 2 Q 2 K 2 Q 2 C Q 3 F F 3 J 3 K 3 Q 3 Q Q 3 3 La desventaja de este contador es que debe ser precargado con el patrn deseado (usualmente un nico 0 o 1) y siempre tiene ms pocos estados que el contador Johnson (n, donde n = nmero de flip-flops). Contador en Anillo Un patrn comn en un contador en anillo es que se puede cargar con un nico 1 o 0. Esto se ilustra a continuacin para un contador en anillo de 8 bits. 1 2 3 4 7 8 9 10 5 6 CLK Q 0 Q 1 Q 3 Q 4 Q 2 Q 5 Q 6 Q 7 Aplicaciones de los registros de desplazamiento Los registros de desplazamiento se pueden utilizar para retardar una seal digital en una cantidad predeterminada. Q 7 Q 7 A B Data out CLK 40 MHz Data in CLK Data in Data out t d C SRG 8 Un registro de desplazamiento de 8-bit entrada/salida serial tiene un reloj de 40 MHz. Cual es el retardo total a travs del registro? El retardo para cada reloj es 1/40 MHz = 25 ns El retardo total es 8 x 25 ns = 200 ns 25 ns = 200 ns Aplicaciones de los registros de desplazamiento Estudiar del libro la aplicacin de registros de desplazamiento UART (Transmisor Receptor Asncrono Universal) y el codificador de teclado. Palabras claves de la UNIDAD
Registro
Etapa
Mover
Cargar
Bidireccional Uno o ms flip-flops usados para almacenar o mover datos. Un elemento de almacenamiento en un registro. 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. 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. BIBLIOGRAFA Libro base: Fundamentos de Sistemas Digitales. Autor: Tomas L. Floyd. Libro complemento: Principios de Diseo Digital. Autor: Daniel D. Gaski.