Registro de desplazamiento de 8 bits
Descripción general
- Propósito: El registro de desplazamiento de 8 bits es un circuito digital secuencial que almacena y desplaza 8 bits de datos binarios hacia la izquierda o la derecha, permitiendo la conversión de datos serie a paralelo y paralelo a serie, almacenamiento temporal y manipulación de bits.
- Símbolo: Típicamente representado como un bloque rectangular con una entrada serie (SI), entradas de datos paralelas (D0-D7), entradas de control (CLK, LOAD, SCLR), salidas paralelas (Q0-Q7) y una salida serie (SO).
- Rol en DigiSim.io: Sirve como bloque de construcción esencial para transmisión de datos, interfaces de comunicación y operaciones digitales secuenciales donde los datos necesitan ser desplazados, almacenados o convertidos entre formatos serie y paralelo.

Descripción funcional
Comportamiento lógico
El registro de desplazamiento de 8 bits realiza tres operaciones principales: carga paralela (captura de 8 bits simultáneamente), desplazamiento serie (movimiento de bits a través del registro) y salida (proporcionando acceso a los datos almacenados en formato paralelo o serie). Su operación se controla mediante señales de reloj, carga y borrado.
Tabla de verdad (Registro de desplazamiento universal de 8 bits):
| CLK | DIR | S/L | SI | D7..D0 | Q7..Q0 (Siguiente) | Notas |
|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d7..d0 | d7..d0 | Carga paralela |
| ↑ | 0 | 0 | si | X | si, Q7, Q6, Q5, Q4, Q3, Q2, Q1 | Desplazamiento derecha |
| ↑ | 1 | 0 | si | X | Q6, Q5, Q4, Q3, Q2, Q1, Q0, si | Desplazamiento izquierda |
| ↓ | X | X | X | X | Q7..Q0 (Sin cambio) | Sin cambio |
Nota: ↑ representa un flanco de subida del reloj, ↓ flanco de bajada, X no importa, si entrada serie, d7..d0 entradas de datos paralelas. Qn es el estado actual.
Entradas y salidas
Entradas (12 en total):
- SI (Entrada serie): Entrada de 1 bit para la introducción de datos en serie.
- CLK (Reloj): Entrada de 1 bit; las operaciones ocurren en el flanco de subida.
- DIR (Dirección): Entrada de 1 bit; controla la dirección de desplazamiento (0 = Derecha, 1 = Izquierda) cuando S/L es 0.
- S/L (Desplazamiento/Carga): Entrada de 1 bit; control de modo (0 = Desplazamiento, 1 = Carga paralela).
- D0, D1, D2, D3, D4, D5, D6, D7: Ocho entradas de datos paralelas de 1 bit para cargar datos simultáneamente cuando S/L es 1.
Salidas (9 en total):
- Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7: Ocho salidas paralelas de 1 bit que representan los bits almacenados actualmente en el registro.
- SO (Salida serie): Salida de 1 bit. El comportamiento depende de la dirección de desplazamiento:
- Durante desplazamiento a la derecha (DIR=0): SO típicamente refleja Q0.
- Durante desplazamiento a la izquierda (DIR=1): SO típicamente refleja Q7.
Parámetros configurables
- Flanco de reloj: Si las operaciones se activan en el flanco de subida o bajada del reloj.
- Dirección de desplazamiento: Desplazamiento a la derecha, a la izquierda o bidireccional (en algunas implementaciones).
- Tipo de borrado: Funcionalidad de borrado síncrono (con reloj) o asíncrono.
- Lógica de señales de control: Si las señales de control son activas en alto o en bajo.
- Configuración de E/S serie: Qué extremo del registro sirve como entrada y salida serie.
- Parámetros de temporización: Tiempo de establecimiento, tiempo de mantenimiento y retardos de propagación.
Representación visual en DigiSim.io
El registro de desplazamiento de 8 bits se muestra como un bloque rectangular con pines de entrada de datos (D0-D7 y SI) en el lado izquierdo, señales de control (CLK, DIR, S/L) en la parte inferior, y pines de salida de datos (Q0-Q7 y SO) en el lado derecho. Cuando se conecta en un circuito, el componente indica visualmente los valores almacenados y las operaciones de desplazamiento a través de cambios de color en los cables de conexión.
Valor educativo
Conceptos clave
- Lógica secuencial: Demuestra cómo los datos pueden almacenarse y manipularse a lo largo del tiempo en circuitos digitales.
- Desplazamiento de datos: Ilustra las operaciones de movimiento y rotación de bits en sistemas digitales.
- Conversión de formato: Muestra cómo los datos pueden convertirse entre formatos serie y paralelo.
- Operación con reloj: Enfatiza la importancia de la temporización y sincronización en circuitos secuenciales.
- Almacenamiento temporal: Presenta el concepto de almacenamiento intermedio de datos y procesamiento por etapas.
- Comunicación digital: Introduce conceptos fundamentales para la transmisión de datos serie y paralelo.
Objetivos de aprendizaje
- Comprender cómo los registros de desplazamiento convierten entre formatos de datos serie y paralelo.
- Aprender sobre las operaciones secuenciales basadas en reloj en sistemas digitales.
- Reconocer la importancia de los registros de desplazamiento en las interfaces de comunicación.
- Aplicar conceptos de registros de desplazamiento en el diseño de sistemas de transmisión de datos.
- Comprender la relación entre las señales de control y las operaciones del registro.
- Desarrollar habilidades en el análisis y diseño de circuitos secuenciales con múltiples modos de operación.
- Dominar las relaciones de temporización en las operaciones de datos serie.
Ejemplos de uso/Escenarios
- Comunicación serie: Implementación de interfaz UART, SPI o I²C para conversión entre protocolos serie y buses de datos paralelos.
- Control de pantalla LED: Controlar múltiples pantallas LED con menos líneas de control desplazando en serie los datos de la pantalla.
- Adquisición de datos: Captura de datos de sensores en serie y conversión a formato paralelo para procesamiento.
- Filtros digitales: Creación de líneas de retardo para aplicaciones de procesamiento digital de señales.
- Escaneo de teclado: Escaneo de teclados matriciales desplazando un solo bit activo.
- Generación de patrones: Creación de patrones de bits repetitivos para pruebas o aplicaciones de control.
- Cálculo CRC: Implementación de división polinomial para verificación de errores en sistemas de comunicación.
- Conversión paralelo a serie: Transmisión de datos paralelos a través de canales de comunicación serie.
Notas técnicas
- La implementación típicamente usa ocho flip-flops D conectados en serie, con multiplexores adicionales para carga paralela.
- Los registros de desplazamiento pueden conectarse en cascada para crear longitudes de bits más largas conectando la salida serie de uno a la entrada serie de otro.
- Los parámetros de temporización críticos incluyen tiempo de establecimiento (5-15ns antes del flanco de reloj) y tiempo de mantenimiento (0-5ns después del flanco de reloj).
- Las diferentes configuraciones incluyen SISO (Entrada serie, salida serie), SIPO (Entrada serie, salida paralelo), PISO (Entrada paralelo, salida serie) y universal (bidireccional con carga paralela).
- Las implementaciones comunes de CI incluyen el 74HC164 (SIPO), 74HC165 (PISO) y 74HC595 (SIPO con latch de salida).
- La frecuencia máxima de desplazamiento está limitada por los retardos de propagación a través de la cadena de flip-flops.
- En DigiSim.io, la simulación del registro de desplazamiento modela con precisión las dependencias de temporización y las operaciones de movimiento de bits de los componentes reales de registros de desplazamiento.
Características
Configuración de entrada:
- Ocho entradas de datos paralelas (D0-D7)
- Entrada serie (SI) para introducción de datos por desplazamiento
- Entrada de reloj (CLK) - típicamente activada por flanco de subida
- Entrada de borrado síncrono (SCLR) para reiniciar el registro
- Habilitación de carga paralela (LOAD) para cargar datos paralelos
- Puede incluir control de dirección de desplazamiento en tipos bidireccionales
- Compatible con niveles lógicos digitales estándar
Configuración de salida:
- Ocho salidas de datos paralelas (Q0-Q7)
- Salida serie (SO) - típicamente Q0 para registros de desplazamiento a la derecha
- Cada salida representa el estado actual de la etapa correspondiente
- Capaz de manejar cargas digitales estándar
- Puede incluir salidas complementarias en algunas implementaciones
- Cambia de estado síncronamente con las transiciones del reloj
Funcionalidad:
- Almacena y desplaza 8 bits de datos binarios
- Permite que los datos se carguen en paralelo o en serie
- Proporciona acceso a los datos en formato paralelo o serie
- Desplaza datos a la derecha (o izquierda, en variantes bidireccionales)
- Convierte entre formatos de datos serie y paralelo
- Implementa operaciones de entrada serie/salida serie, entrada serie/salida paralelo, entrada paralelo/salida serie o entrada paralelo/salida paralelo
- Puede conectarse en cascada para anchos de bits más grandes
Retardo de propagación:
- Reloj a salida (tCO): 10-25ns típico
- Tiempo de establecimiento (tS): 5-15ns antes del flanco de reloj
- Tiempo de mantenimiento (tH): 0-5ns después del flanco de reloj
- Borrado a salida (tCLR): 5-20ns
- Dependiente de la tecnología (TTL, CMOS, etc.)
- Parámetros críticos para operaciones serie de alta velocidad
- Consistente en todos los bits en diseños síncronos
Fan-Out:
- Típicamente maneja 10-20 cargas estándar
- La carga de salida afecta al retardo de propagación
- Puede requerir almacenamiento intermedio para aplicaciones de alto fan-out
- La salida serie a menudo está diseñada para manejar etapas subsiguientes
Consumo de energía:
- Energía estática mínima en implementaciones CMOS
- La energía dinámica aumenta con la frecuencia del reloj
- Consumo de energía proporcional a la actividad de desplazamiento
- Picos de energía durante transiciones de múltiples bits
- Gestión de energía mediante control de reloj
- Dependiente de la tecnología (CMOS menor energía estática)
Complejidad del circuito:
- Complejidad moderada
- Requiere ocho flip-flops más lógica de control
- Multiplexores adicionales para carga paralela
- Lógica de control de entrada para selección de modo
- La complejidad aumenta con características adicionales (bidireccional, etc.)
- Las implementaciones integradas reducen el número de componentes externos
Métodos de implementación
Cadena de flip-flops D
- Ocho flip-flops D en cascada con reloj común
- Implementación más simple para entrada serie/salida serie
- La salida de cada flip-flop se conecta a la entrada del siguiente
- Multiplexores adicionales para capacidad de carga paralela
- Lógica de control de modo para seleccionar la operación
- Ejemplo educativo común de operación de registro de desplazamiento
Implementación con circuito integrado
- CIs dedicados de registro de desplazamiento de 8 bits
- Ejemplos: 74HC164 (entrada serie/salida paralelo), 74HC165 (entrada paralelo/salida serie), 74HC595 (entrada serie/salida paralelo con latches de salida)
- Varias características: carga paralela, salidas de tres estados, etc.
- Disponibles en diferentes familias lógicas (TTL, CMOS, etc.)
- Reducción del número de componentes y espacio en placa
- Características de temporización bien definidas
Registro de desplazamiento universal
- Configurable para desplazamiento izquierda, derecha, carga paralela
- Lógica de control más compleja y rutas internas
- Máxima flexibilidad para diferentes operaciones
- Ejemplos incluyen 74HC194, 74HC299
- Las entradas de selección de modo determinan la operación
- Más complejo pero altamente versátil
Registro de desplazamiento bidireccional
- Capaz de desplazar datos a la izquierda o a la derecha
- Entrada de control de dirección selecciona la dirección de desplazamiento
- Multiplexores adicionales para control de dirección
- Común en operaciones aritméticas (multiplicación, división)
- A menudo implementado con registros de desplazamiento universales
- Mayor complejidad para capacidad bidireccional
Configuración SIPO (Entrada serie/Salida paralelo)
- Los datos entran en serie, se leen en paralelo
- Común para conversión serie a paralelo
- Permite captura de flujos de datos serie
- Usado en interfaces de comunicación serie
- Más simple que el diseño universal si se dedica a esta función
- Ejemplo típico: 74HC164
Configuración PISO (Entrada paralelo/Salida serie)
- Los datos entran en paralelo, salen en serie
- Permite conversión paralelo a serie
- Usado en transmisores e interfaces serie
- Requiere capacidad de carga paralela
- Control de reloj para desplazamiento serie
- Ejemplo típico: 74HC165
Implementación FPGA/ASIC
- Implementado usando flip-flops y multiplexores
- Opciones de diseño altamente configurables
- Puede optimizarse para requisitos específicos
- Puede aprovechar características especializadas de la tecnología objetivo
- A menudo sintetizado a partir de descripciones HDL
- Características personalizadas añadidas fácilmente
Aplicaciones
Conversión serie a paralelo
- Interfaz de periféricos serie a sistemas de bus paralelo
- Implementación de receptor UART/USART
- Interfaces de esclavo SPI
- Receptores de esclavo I²C
- Adquisición de datos de sensores serie
- Deserializadores de datos serie
Conversión paralelo a serie
- Interfaz de sistemas de bus paralelo a periféricos serie
- Implementación de transmisor UART/USART
- Interfaces de maestro SPI
- Serialización de datos para transmisión
- Interfaces de controladores de pantalla
- Serializadores de datos serie
Almacenamiento intermedio y temporal de datos
- Registros de pipeline en rutas de datos
- Captura y retención de datos de entrada
- Adaptación de velocidad de datos entre sistemas
- Búferes de múltiples etapas para flujos de datos
- Almacenamiento temporal para procesamiento
- Almacenamiento intermedio de datos a nivel de byte
Procesamiento digital de señales
- Filtros digitales (implementación FIR/IIR)
- Líneas de retardo para procesamiento de señales
- Operaciones de correlación y convolución
- Generación de formas de onda digitales
- Detección de patrones en flujos serie
- Reconocimiento de secuencias
Operaciones aritméticas
- Multiplicación y división binaria
- Unidades aritméticas serie
- División polinomial (cálculo CRC)
- Operaciones de manipulación de bits
- Aceleradores de hardware para algoritmos específicos
- Implementaciones de registros de desplazamiento con retroalimentación lineal
Temporización y control
- Generación de secuencias
- Máquinas de estado con secuencias fijas
- Implementación de retardo de tiempo
- Control de secuencia de pulsos
- Generadores de patrones
- Generadores de secuencias pseudoaleatorias
Comunicación de datos
- Sincronización de tramas
- Encapsulación de protocolos
- Formateo de datos
- Inserción y eliminación de bits
- Paquetización de datos
- Generación de código de detección de errores
Limitaciones
Restricciones de temporización
- Requisitos de tiempo de establecimiento y mantenimiento
- Limitaciones de frecuencia máxima de reloj
- Temporización de transición de datos crítica para flujos serie
- Sensibilidad al desfase de reloj en sistemas en cascada
- Retardos de propagación que limitan la velocidad máxima
- Problemas de sincronización con sistemas externos
Capacidad de datos
- Limitado a 8 bits sin conexión en cascada
- Requiere múltiples dispositivos para rutas de datos más amplias
- La conexión en cascada aumenta el tiempo de propagación
- El ancho de datos es fijo después de la implementación
- Capacidad de almacenamiento menor que las memorias dedicadas
- Sobrecarga de lógica de control en aplicaciones de datos pequeños
Restricciones operacionales
- Dirección de desplazamiento fija en tipos no universales
- Pérdida de datos durante el desplazamiento sin almacenamiento externo
- Requisitos de temporización del control de modo
- Acceso secuencial a datos desplazados
- Accesibilidad limitada a etapas internas
- Las capacidades de reinicio/preconfiguración varían entre implementaciones
Consumo de energía
- El reloj continuo aumenta el consumo de energía
- La operación a alta frecuencia aumenta la potencia dinámica
- Potencia activa proporcional a las transiciones de bits
- La gestión de energía requiere control del reloj
- Las aplicaciones alimentadas por batería requieren un diseño cuidadoso
- El desplazamiento de alta velocidad aumenta los requisitos de energía
Complejidad de diseño
- Complejidad de conexión en cascada para anchos de bits más grandes
- Coordinación de señales de control
- Sobrecarga de lógica de selección de modo
- Consideraciones de distribución del reloj
- Desafíos de prueba y verificación
- Integración con sistemas asíncronos
Detalle de implementación del circuito
Registro de desplazamiento básico de 8 bits de entrada serie/salida paralelo
graph LR
SI[Serial In] --> FF0[D FF 0]
CLK[Clock] --> FF0
FF0 -->|Q0| OUT0[Q0]
FF0 --> FF1[D FF 1]
CLK --> FF1
FF1 -->|Q1| OUT1[Q1]
FF1 --> FF2[D FF 2]
CLK --> FF2
FF2 -->|Q2| OUT2[Q2]
FF2 --> FF7[D FF 7]
CLK --> FF7
FF7 -->|Q7| OUT7[Q7]
Operación: Los datos se desplazan a la derecha en cada flanco de reloj, las salidas paralelas están disponibles en todos los flip-flops.
Registro de desplazamiento 74HC595 de 8 bits de entrada serie/salida paralelo con latches de salida
Configuración de pines:
| Pin | Señal | Función |
|---|---|---|
| SER | Entrada serie | Entrada de datos |
| SRCLK | Reloj de desplazamiento | Desplaza datos en el flanco de subida |
| RCLK | Reloj de registro | Transfiere registro de desplazamiento a salida |
| /SRCLR | Borrado | Borrado activo en BAJO |
| /OE | Habilitación de salida | Habilitación de salida activa en BAJO |
| QA-QH | Salidas | Salidas de datos paralelas Q0-Q7 |
| QH' | Salida serie | Salida para conexión en cascada |
| VCC, GND | Alimentación | +5V y Tierra |
Características:
- Doble etapa: Registro de desplazamiento + latch de salida
- Cascada: QH' permite encadenar múltiples dispositivos
- Control de salida: Salidas de tres estados mediante /OE
Registro de desplazamiento 74HC165 de 8 bits de entrada paralelo/salida serie
Configuración de pines:
| Pin | Señal | Función |
|---|---|---|
| A-H | Entradas de datos | Entradas de datos paralelas D0-D7 |
| SER | Entrada serie | Entrada de datos en cascada/serie |
| CLK | Reloj | Entrada de reloj de desplazamiento |
| CLK INH | Inhibición de reloj | Detiene el reloj cuando está en ALTO |
| SH//LD | Desplazamiento/Carga | BAJO=Carga paralela, ALTO=Desplazamiento |
| QH | Salida serie | Salida de datos serie |
| QH' | Salida complementaria | Salida serie invertida |
| VCC, GND | Alimentación | +5V y Tierra |
Operación:
- Modo de carga (SH//LD=BAJO): Datos paralelos cargados
- Modo de desplazamiento (SH//LD=ALTO): Datos se desplazan en serie
CLK = Reloj, CLK INH = Inhibición de reloj, SH/LD = Desplazamiento/Carga, SER = Entrada serie, QH = Salida serie, QH' = Salida serie complementaria
Componentes relacionados
- Registro de desplazamiento de 4 bits: Versión más pequeña para operaciones de nibble
- Registro de desplazamiento de 16 bits: Versión extendida para operaciones de palabra
- Registro de desplazamiento universal: Registro flexible con múltiples modos de desplazamiento
- Registro de desplazamiento bidireccional: Puede desplazar datos a la izquierda o a la derecha
- Registro SIPO (Entrada serie/Salida paralelo): Especializado para conversión serie a paralelo
- Registro PISO (Entrada paralelo/Salida serie): Especializado para conversión paralelo a serie
- Registro SISO (Entrada serie/Salida serie): Registro de desplazamiento simple con entrada y salida serie
- Registro PIPO (Entrada paralelo/Salida paralelo): Registro básico sin capacidad de desplazamiento
- Contador Johnson: Registro de desplazamiento con retroalimentación invertida para generación de secuencias
- Contador de anillo: Registro de desplazamiento con retroalimentación directa para generación de secuencias