Post on 27-Dec-2015
Nombre del curso: “Sistemas Digitales”
Nombre del docente: Héctor Vargas
EIE 446 - SISTEMAS DIGITALES
Tema 10: Registros de desplazamiento
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 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 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.
C
FF0
CLK
C
FF1
C
FF2
C
FF4
D0 D1 D2 D4
Serialdataoutput
Serial
datainput
C
FF3
D3 Q4Q0 Q1 Q2 Q3
1 1 1 1 1 1
CLK CLK CLK CLK CLK
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.
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
1
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
0 1
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
1 0 1
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
1 1 0 1
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
1X 1 0 1
C
FF0
CLK
C
FF1
C
FF2
D0 D1 D2
Serialdatainput
C
FF3
D3Q0 Q1 Q2 Q3
1X 1 0 1
CLK CLK CLK CLK
Después de 4 pulsos de reloj, los datos están 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 alimentación 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
Q0 Q1 Q2 Q3
CLR
Q4 Q5 Q6 Q7
Serial
inputs
A
B
● 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.
CLK
Q0
Q1
Q2
Q3
CLR
Q4
Q5
Q6
Q7
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 continuación se muestra un
diagrama lógico para este tipo de registros.
C
D
G2
C
D
G5
C
D
G3G6
C
D
G4G7G1
FF0 FF1 FF2 FF3
D0 D1 D2 D3
Q0 Q1 Q2 Q3
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 símbolo lógico se muestra abajo.
C
SRG 8(1)
(10)
(15)
(2)
(11) (12) (13) (14) (3) (4) (5) (6)(9)
(7)
D0 D1 D2 D3 D4 D5 D6 D7
Q7
Q7
SH/LD
CLK
SER
CLK INH
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
Pattern is loaded
when J1 is LOW
Q7 is labeled
QH in Multisim
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.
Load
Q7
Clk
MSB
Registro de desplazamiento bidireccional
CLK
RIGHT/LEFT
Serial data in
Q0
Q1
Q2
Q3
Shift right Shift left
● 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.
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
D0 D1 D2 D3
CLK
SL SER
Q0 Q1 Q2 Q3
SR SER
S1
S0
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
S1
SR SER
SL SER
D0
D1
D2
D3
Q0
Q1
Q2
Q3
S0
CLK
Serial
data
inputs
Contadores basados en registros de desplazamiento
C
Q0
FF0
CLK
C
Q1
FF1
C
FF2
C
Q3
FF3
D0 D1 D2 D3Q2
Q3 Q3
C
Q0
FF0
CLK
C
Q1
FF1
C
FF2
C
Q3
FF3
J 0 J 1 J 2 J 3Q2
Q0 Q1K0 K1 K2 K3Q2 Q3
Q
Q
3
3
● Los registros de desplazamiento pueden formar contadores al hacer re-
circular un patrón 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í Q3 y Q3 se
realimentan a las entradas
J y K.
Contador Johnson
C
Q0
FF0
J 0
Q0K0
C
Q1
FF
1
J1
Q1
K1
C
FF2
J2Q2
K2Q2
C
Q3
FF
3
J3
K3
Q3
33
“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 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 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 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 flip-
flops tipo D. Observe la
realimentación.
Al igual que el contador
Johnson, también se puede
implementar con flip-flops J-K.
C
Q0
FF0
CLK
C
Q1
FF1
C
FF2
C
Q3
FF3
D0 D1 D2 D3Q2
Q3
C
Q0
FF0
CLK
C
Q1
FF1
C
FF2
C
Q3
FF3
J 0 J 1 J 2 J 3Q2
Q0 Q1K0 K1 K2 K3Q2 Q3
Q
Q
3
3
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.
C
Q0
FF0
J 0
Q0K0
C
Q1
FF
1
J1
Q1
K1
C
FF2
J2Q2
K2Q2
C
Q3
FF
3
J3
K3
Q3
33
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).
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.
1 2 3 4 7 8 9 105 6CLK
Q0
Q1
Q3
Q4
Q2
Q5
Q6
Q7
Aplicaciones de los registros de desplazamiento
● Los registros de desplazamiento se pueden utilizar para retardar una señal
digital en una cantidad predeterminada.
Q7
Q7
A
BData out
CLK40 MHz
Data in
CLK
Data in
Data out
td
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
través 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 aplicación de registros de desplazamiento UART
(Transmisor Receptor Asíncrono Universal) y el codificador de teclado.
Palabras claves de la UNIDAD
Registro
Etapa
Mover
Cargar
Bidireccional
Uno o más 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.
BIBLIOGRAFÍA
Libro base: “Fundamentos de Sistemas Digitales”. Autor: Tomas L. Floyd.
Libro complemento: “Principios de Diseño Digital”. Autor: Daniel D. Gaski.