Registro de desplazamiento bidireccional

Anuncio
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.
Descargar