Los registros de desplazamiento estn formados por un conjunto de flip-flops, y son muy
importantes en las aplicaciones que precisan almacenar y transferir datos dentro de un sistema
digital. La diferencia bsica entre un registro y un contador es que un registro no tiene una
secuencia de estados especfica, excepto en ciertas aplicaciones muy especializadas. En general, un
registro se utiliza nicamente para almacenar y desplazar datos (1s y 0s), que introduce en l una
fuente externa y, normalmente, no posee ninguna secuencia caracterstica interna de estados.
Un registro es un circuito digital con dos funciones bsicas: almacenamiento de datos y movimiento
de datos. La capacidad de almacenamiento de un registro le convierte en un tipo importante de
dispositivo de memoria. La Figura 9.1 ilustra el concepto de almacenamiento de un 1 o un 0 en un
flip-flop D. Como se muestra, se aplica un 1 a la entrada de datos y un impulso de reloj que hace
que se almacene el 1, pasando el flip-flop a estado SET. Cuando se elimina el 1 de la entrada, el
flip-flop permanece en dicho estado SET, quedando almacenado el 1. Como se ilustra en la Figura
9.1, el procedimiento que se utiliza para almacenar un 0 es similar y pone en estado RESET al flipflop.
La capacidad de almacenamiento de un registro es el nmero total de bits (1s y 0s) de un dato
digital que puede contener. Cada etapa (flip-flop) de un registro de desplazamiento representa un bit
de su capacidad de almacenamiento; por tanto, el nmero de etapas de un registro determina su
capacidad de almacenamiento.
La capacidad de desplazamiento de un registro permite el movimiento de los datos de una etapa a
otra dentro del registro, o la entrada o salida del mismo, en funcin de los impulsos de reloj que se
apliquen.
Existen varios tipos de registros de desplazamiento de los que hablaremos mas adelante.
a) Desplazamiento con entrada y salida en serie
Los registros de desplazamiento con entrada y salida serie aceptan datos en serie, es decir,
un bit cada vez por una nica lnea. La informacin almacenada es entregada a la salida tambin en
forma serie.
A continuacin un ejemplo:
La Figura 9.4 ilustra la introduccin en el registro de cuatro bits, 1010, comenzando por el bit ms a
la derecha. Inicialmente, el registro se borra (CLEAR). Se aplica un 0 en la lnea de entrada de
datos, lo que hace D = 0 en el flip-flop FF0. Cuando se aplica el primer impulso de reloj, FF0 pasa
al estado RESET, almacenado el 0.
A continuacin se aplica a la entrada de datos el segundo bit que, en este caso, es 1, lo que hace que
D = 1 en FF0 y D = 0 en FF1 debido a que la entrada D de FF1 est conectada a la salida Q 0 .
Cuando se produce el segundo impulso de reloj, el 1 de la entrada de datos de FF0 se desplaza,
pasando este flip-flop al estado SET, y el 0 que haba en FF0 se desplaza a FF1.
El tercer bit, un 0, se introduce por la lnea de entrada de datos y se aplica un impulso de reloj. El 0
entra en FF0, el 1 almacenando en ste se desplaza a FF1 y el 0 almacenado en FF1 se desplaza a
FF2.
El ltimo bit, que es un 1, se aplica a la entrada de datos y se aplica el siguiente impulso de reloj.
Ahora el 1 entra en FF0, el 0 almacenado en ste se desplaza a FF1, el 1 almacenado en FF1 se
desplaza a FF2, y el0 almacenado en FF2 se desplaza a FF3. Esto completa la introduccin en serie
de los cuatro bits en el registro de desplazamiento, donde pueden quedar almacenados el tiempo que
se desee, siempre que los flip-flops estn alimentados con la tensin continua necesaria.
Si se desea extraer los datos del registro, los bits deben desplazarse en serie hasta la salida Q 3 ,
como se ilustra en la Figura 9.5. Despus del cuarto impulso de reloj CLK4, el bit ms a la derecha,
0, est en la salida Q 3 . Si se aplica un quinto impulso de reloj, CLK5, el segundo bit aparecer en
la salida Q 3 . El impulso de reloj CLK6 desplaza el tercer bit a la salida y el sptimo impulso de
reloj (CLK7) desplaza el cuarto bit a la salida. Observe que, mientras que los cuatro bits iniciales se
desplazan a la salida, se pueden introducir otros bits de datos. En la figura se muestra cmo se ha
desplazado una serie de ceros.
b) Registros en desplazamiento con entrada en serie y salida en paralelo
En este tipo de registro los bits de datos se introducen en serie (empezando por el bit situado
ms a la derecha), del mismo modo que se ha visto en la Seccin 9.2. La diferencia est en la forma
en que dichos bits se extraen del registro; en un registro con salida paralelo, se dispone de la salida
de cada etapa. Una vez que los datos se han almacenado, cada bit se presenta en su respectiva lnea
de salida, estando disponibles todos los bits simultneamente, en lugar de bit a bit como en el caso
de la salida serie.
c) Registros en desplazamiento con entrada en paralelo y salida en serie
En un registro con entradas de datos paralelo, los bits se introducen simultneamente en sus
respectivas etapas a travs de lneas paralelo, en lugar de bit a bit a travs una nica lnea como
ocurre con las entradas de datos serie. La salida serie se hace del mismo modo que se ha descrito en
la Seccin serie/serie, una vez que todos los datos estn almacenados en el registro.
La Figura 9.12 ilustra un registro de desplazamiento de 4 bits con entrada paralelo -salida
serie y su smbolo lgico tpico. Observe que tiene cuatro lneas de entrada de datos D 0 , D 1 , D 2
y D 3 y una entrada SHIFT / LOAD (desplazamiento/carga), que permite cargar en paralelo los
cuatro bits de datos en el registro. Cuando SHIFT / LOAD est a nivel BAJO, las puertas G 1 a G 3
se activan, permitiendo que cada bit sea aplicado a la entrada D de su respectivo flip-flop. Cuando
se aplica un impulso de reloj, los flip- flops con D = 1 pasan al estado SET, y los flip-flops con D =
0 pasan al estado RESET, almacenndose de este modo los cuatro bits simultneamente.
Cuando la entrada SHIFT / LOAD est a nivel ALTO, las puertas G 1 a G 4 se inhiben y las puertas
G 5 a G 7 se activan, permitiendo que los bits de datos se desplacen hacia la derecha, pasando de
una etapa a la siguiente. Las puertas OR permiten el desplazamiento normal o la introduccin de
datos en paralelo, dependiendo de qu puertas AND se hayan activado segn el nivel de la entrada
SHIFT / LOAD . Observe que FF0 dispone de una sola puerta AND para desactivar la entrada
paralelo, D 0 . No precisa una implementacin AND/OR ya que no hay entrada de datos en serie.
d) Registros en desplazamiento con entrada y salida en paralelo
Anteriormente se ha descrito la entrada en paralelo de datos y la salida en paralelo de datos
tambin se ha visto anteriormente. El registro de entrada y salida paralelo aplica ambos mtodos.
Inmediatamente despus de introducir simultneamente todos los bits de datos, stos aparecen en
paralelo en las salidas paralelo.
e) Registros de desplazamiento bidireccionales
Un registro de desplazamiento bidireccional es aqul en el que los datos se pueden desplazar
a izquierda o a derecha. Se puede implementar utilizando puertas lgicas que permitan la
transferencia de un bit de datos de una etapa a la siguiente de la izquierda o de la derecha,
dependiendo del nivel de una lnea de control.
En la Figura 9.19 se muestra un registro de desplazamiento bidireccional. Un nivel ALTO en la
entrada de control RIGHT / LEFT (derecha/izquierda) permite a los bits de datos que estn dentro
del registro desplazarse hacia la derecha, y un nivel BAJO hace que se desplacen hacia la izquierda.
Un examen de la lgica de puertas har evidente este funcionamiento. Cuando la entrada de control
RIGHT / LEFT est a nivel ALTO, las puertas G 1 a G 4 se activan, y el estado de la salida Q de
cada flip-flop pasa a la entrada D del siguiente flip-flop. Cuando se produce un impulso de reloj, los
bits de datos se desplazan una posicin a la derecha.
Cuando esta entrada de control RIGHT / LEFT est a nivel BAJO, las puertas G 5 a G 8 se activan,
y la salida Q de cada flip-flop pasa a la entrada D del flip-flop precedente. Cuando se genera un
impulso de reloj, los bits de datos se desplazan una posicin hacia la izquierda.
Contadores basados en registros de desplazamiento
Un contador basado en un registro de desplazamiento es bsicamente un registro de desplazamiento
con la salida serie realimentada a la entrada serie, de modo que se generen secuencias especiales. A
menudo estos dispositivos se clasifican como contadores porque disponen de una secuencia de
estados especfica. En esta seccin, se presentan dos de los tipos ms comunes de esta clase de
contadores, el contador Johnson y el contador en anillo.
a) El contador Johnson
En un contador Johnson, el complemento de la salida del ltimo flip-flop se conecta a la
entrada D del primer flip-flop (tambin se puede implementar con otros tipos de flip-flop). Esta
realimentacin permite generar una secuencia de estados caracterstica, tal y como muestran las
Tablas 9.1 para un dispositivo de 4 bits. Observe que la secuencia de 4 bits tiene un total de ocho
estados, o patrones de bits. En general, un contador Johnson generar un mdulo de 2n, donde n es
el nmero de etapas del contador.
En la Figura 9.23 se muestra la implementacin de los contadores Johnson de 4. La implementacin
de un contador Johnson es muy sencilla e independiente del nmero de etapas. La salida Q de cada
etapa se conecta a la entrada D de la etapa siguiente (suponiendo que se utilizan flip-flops D). La
nica excepcin es que la salida Q de la ltima etapa se conecta a la entrada D de la primera etapa.
Como indican las secuencias de la Tabla 9.1, el contador se llenar de 1s de izquierda a derecha, y
luego se llenar de nuevo de 0s.
En la Figura 9.24 se muestra, el diagrama de tiempo del contador de 4 bits.
b) El contador de anillo
El contador en anillo utiliza un flip-flop para cada estado de su secuencia. Tiene la ventaja
de que no se requieren puertas de decodificacin. En el caso de un contador en anillo de 10 bits, hay
una nica salida para cada dgito decimal.
En la Figura 9.26 se muestra un diagrama lgico para un contador en anillo de 10 bits. En la Tabla
9.3 se facilita la secuencia de este mismo contador. Inicialmente, se presenta un 1 en el primer flipflop, y se borran los restantes flip-flops. Observe que las conexiones entre etapas son iguales a las
del contador Johnson, excepto que en este caso es la salida Q de la ltima etapa, en lugar de Q , la
que se realimenta. Las diez salidas del contador indican directamente el valor decimal de la cuenta
de los impulsos de reloj. Por ejemplo, un 1 en Q 0 representa un cero, un 1 en Q 1 indica uno, un 1
en Q 2 corresponde a dos en decimal, un 1 en Q 3 corresponde a tres, y as sucesivamente. Debera
verificar usted mismo que slo un 1 se mantiene en el contador y que ste simplemente se desplaza
alrededor del anillo, avanzando una etapa con cada impulso de reloj.
Ejercicios
Retardo de tiempo
Determinar el retardo de tiempo entre la entrada serie y cada salida del registro de la Figura 9.29.
Realizar un diagrama de tiempos para ilustrarlo.
Desarrollo
El perodo de reloj es 2 s. Luego el retardo de tiempo puede incrementarse o decrementarse de dos
en dos s, desde un mnimo de 2 s hasta un mximo de 16 s, como ilustra.