Registro de desplazamiento
Descripción general
- Propósito: El registro de desplazamiento es un circuito de lógica secuencial que almacena datos binarios y desplaza su contenido una posición de bit con cada pulso de reloj. Puede mover datos hacia la izquierda o hacia la derecha, permitiendo la manipulación y almacenamiento secuencial de datos.
- Símbolo: El registro de desplazamiento se representa mediante un bloque rectangular con entradas para datos (serie y a veces paralelo), reloj, reinicio y control de modo, con salidas para los datos almacenados/desplazados.
- Rol en DigiSim.io: Sirve como componente esencial para la conversión de datos entre formatos serie y paralelo, almacenamiento de datos y aplicaciones de procesamiento de señales en diseños de circuitos digitales.

Descripción funcional
Comportamiento lógico
El registro de desplazamiento almacena y manipula datos binarios desplazando los bits almacenados en una dirección especificada con cada pulso de reloj. Dependiendo del tipo, puede cargar datos en serie (un bit a la vez) o en paralelo (todos los bits simultáneamente), y puede producir datos en formato serie o paralelo.
Modos de operación típicos:
| Control de modo | Función | Descripción |
|---|---|---|
| 00 | Mantener | Mantener el estado actual |
| 01 | Desplazar a la derecha | Mover bits a la derecha, nuevo bit entra por la izquierda |
| 10 | Desplazar a la izquierda | Mover bits a la izquierda, nuevo bit entra por la derecha |
| 11 | Carga paralela | Cargar todos los bits simultáneamente |
Tabla de verdad de ejemplo (Registro de desplazamiento universal de 4 bits):
| CLK | DIR | S/L | SI | D3 | D2 | D1 | D0 | Q3 (Siguiente) | Q2 (Siguiente) | Q1 (Siguiente) | Q0 (Siguiente) | Notas |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d3 | d2 | d1 | d0 | d3 | d2 | d1 | d0 | Carga paralela |
| ↑ | 0 | 0 | si | X | X | X | X | si | Q3 | Q2 | Q1 | Desplazamiento derecha |
| ↑ | 1 | 0 | si | X | X | X | X | Q2 | Q1 | Q0 | si | Desplazamiento izquierda |
| ↓ | X | X | X | X | X | X | X | Q3 | Q2 | Q1 | Q0 | Sin cambio |
Nota: ↑ representa un flanco de subida del reloj, ↓ flanco de bajada, X no importa, si entrada serie, dn entrada de datos paralela. Qn es el estado actual.
Entradas y salidas
Entradas (8 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: Cuatro entradas de datos paralelas de 1 bit para cargar datos simultáneamente cuando S/L es 1.
Salidas (5 en total):
- Q0, Q1, Q2, Q3: Cuatro 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 Q3.
Parámetros configurables
- Ancho de bits: El número de bits que el registro de desplazamiento puede almacenar (típicamente 4, 8, 16, etc.).
- Dirección de desplazamiento: Si el registro desplaza a la izquierda, a la derecha o es bidireccional.
- Tipo: La configuración del registro (SISO, SIPO, PISO, PIPO o Universal).
- Sensibilidad al flanco de reloj: Si el registro responde a flancos de subida o bajada del reloj.
- Retardo de propagación: El tiempo que tardan las salidas en cambiar después de un evento de disparo.
Representación visual en DigiSim.io
El registro de desplazamiento se muestra como un bloque rectangular con las entradas etiquetadas en el lado izquierdo (SI, D0-D3, CLK, DIR, S/L) y las salidas (Q0-Q3, SO) en el lado derecho. La entrada de reloj está típicamente marcada con un símbolo de triángulo que indica sensibilidad al flanco. Cuando se conecta en un circuito, el componente indica visualmente su estado actual a través de los valores mostrados en sus salidas y los cambios de color en los cables de conexión.
Valor educativo
Conceptos clave
- Procesamiento secuencial de datos: Demuestra cómo los datos pueden procesarse un bit a la vez en secuencia.
- Conversión serie-paralelo: Ilustra la transformación entre formatos de datos secuenciales y simultáneos.
- Almacenamiento temporal: Muestra cómo los sistemas digitales pueden almacenar y retardar datos a lo largo del tiempo.
- Operación con reloj: Refuerza la comprensión de sistemas digitales síncronos.
- Comunicación digital: Introduce conceptos fundamentales en la transmisión de datos digitales.
Objetivos de aprendizaje
- Comprender los principios del almacenamiento y manipulación secuencial de datos.
- Aprender cómo los sistemas digitales convierten entre formatos de datos serie y paralelo.
- Reconocer diferentes tipos de registros de desplazamiento y sus aplicaciones.
- Aplicar conceptos de registros de desplazamiento para resolver problemas de manejo de datos en circuitos digitales.
- Comprender el papel de los registros de desplazamiento en los protocolos de comunicación digital.
Ejemplos de uso/Escenarios
- Comunicación serie: Conversión entre datos paralelos en un microprocesador y datos serie para transmisión.
- Líneas de retardo: Creación de retardos digitales precisos para aplicaciones de procesamiento de señales.
- Almacenamiento intermedio de datos: Almacenamiento temporal de bits de datos antes de ser procesados.
- Generación de patrones: Creación de patrones de bits repetitivos para pruebas o visualización.
- Filtros digitales: Implementación de filtros de respuesta al impulso finito (FIR) para procesamiento de señales.
- Controladores de pantalla: Control de pantallas LED/LCD matriciales con líneas de control limitadas.
Notas técnicas
- Los registros de desplazamiento se implementan típicamente usando flip-flops D, con un flip-flop por bit de almacenamiento.
- La frecuencia máxima de operación está limitada por el retardo de propagación a través de la cadena de flip-flops.
- Los registros de desplazamiento universales ofrecen la mayor flexibilidad pero requieren más entradas de control y lógica interna.
- Los registros de desplazamiento con retroalimentación lineal (LFSRs) son configuraciones especiales utilizadas para generación de números pseudoaleatorios y cálculos CRC.
- En DigiSim.io, los registros de desplazamiento modelan el comportamiento típico activado por flanco con retroalimentación visual clara de las operaciones de desplazamiento.
- Se pueden conectar múltiples registros de desplazamiento en cascada para manejar anchos de datos más grandes de los que proporciona un solo componente.
Tipos de registros de desplazamiento
Entrada serie, salida serie (SISO)
- Los datos entran un bit a la vez y salen un bit a la vez
- Actúa como línea de retardo o elemento de memoria digital
Entrada serie, salida paralelo (SIPO)
- Los datos entran en serie pero pueden accederse en paralelo
- Usado para conversión serie a paralelo
- Común en interfaces de comunicación (UART, SPI)
Entrada paralelo, salida serie (PISO)
- Los datos se cargan en paralelo pero se desplazan en serie
- Usado para conversión paralelo a serie
- Esencial en sistemas de transmisión de datos
Entrada paralelo, salida paralelo (PIPO)
- Los datos entran y salen en paralelo
- Proporciona almacenamiento temporal y puede desplazar datos
- Usado para almacenamiento intermedio de datos entre sistemas
Registros de desplazamiento bidireccionales
- Pueden desplazar datos a la izquierda o a la derecha
- Permiten manipulación flexible de datos
Registros de desplazamiento universales
- Soportan múltiples modos de operación (todos los anteriores)
- Configurables a través de entradas de control
- Proporcionan máxima flexibilidad
Modos de operación
| Control de modo (S/L, DIR) | Función | Descripción |
|---|---|---|
| 1, X | Carga paralela | Q[3:0] = D[3:0] |
| 0, 0 | Desplazamiento derecha | SI → Q3, Q3 → Q2, Q2 → Q1, Q1 → Q0 |
| 0, 1 | Desplazamiento izquierda | Q2 → Q3, Q1 → Q2, Q0 → Q1, SI → Q0 |
Tabla de verdad (Registro de desplazamiento universal de 4 bits)
| CLK | DIR | S/L | SI | D3 | D2 | D1 | D0 | Q3 (Siguiente) | Q2 (Siguiente) | Q1 (Siguiente) | Q0 (Siguiente) | Notas |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d3 | d2 | d1 | d0 | d3 | d2 | d1 | d0 | Carga paralela |
| ↑ | 0 | 0 | si | X | X | X | X | si | Q3 | Q2 | Q1 | Desplazamiento derecha |
| ↑ | 1 | 0 | si | X | X | X | X | Q2 | Q1 | Q0 | si | Desplazamiento izquierda |
| ↓ | X | X | X | X | X | X | X | Q3 | Q2 | Q1 | Q0 | Sin cambio |
Nota: ↑ representa un flanco de subida del reloj, ↓ flanco de bajada, X no importa, si entrada serie, dn entrada de datos paralela. Qn es el estado actual.
Características
- Capacidad de bits: Típicamente 4, 8 o 16 bits (puede ser de cualquier longitud)
- Dirección de desplazamiento: Izquierda/derecha/bidireccional dependiendo de la configuración
- Requisitos de reloj: Operación síncrona en flancos de reloj
- Temporización: El retardo de propagación limita la frecuencia máxima de desplazamiento
- Muestreo: Los datos de entrada se muestrean en el flanco activo del reloj
- Comportamiento de reinicio: Típicamente borra todos los bits a cero
- Opciones de preconfiguración: Algunos registros permiten establecer valores iniciales
- Control de flujo de datos: Puede incluir funciones de habilitación/deshabilitación
- Requisitos de energía: Proporcional al número de flip-flops y la frecuencia del reloj
Aplicaciones
Conversión de datos
- Conversión serie a paralelo y paralelo a serie
- Interfaz entre buses serie y procesadores paralelos
Comunicación digital
- Interfaces UART, SPI, I2C
- Operaciones de codificación/decodificación
- Enmarcado de bits y formateo de datos
Procesamiento de señales
- Filtros digitales (filtros FIR)
- Líneas de retardo para procesamiento digital de señales
- Operaciones de correlación y convolución
Almacenamiento de datos
- Almacenamiento temporal en búfer
- Generación y reconocimiento de patrones de bits
Sistemas informáticos
- Operaciones de desplazamiento/rotación de CPU
- Generación y verificación de CRC
- Generación de secuencias pseudoaleatorias
Sistemas de visualización
- Multiplexación de pantallas LED/LCD
- Pantallas con desplazamiento
- Distribución de datos de paneles de visualización
Temporización y control
- Generación de secuencias
- Temporización y control de eventos
Implementación
Los registros de desplazamiento pueden implementarse usando:
Cadenas de flip-flops:
- Flip-flops D (más común)
- Flip-flops JK
- Configuraciones maestro-esclavo
Circuitos integrados:
- Serie 74xx:
- 7491: SISO de 8 bits
- 74164: SIPO de 8 bits
- 74165: PISO de 8 bits
- 74194/74195: Universal de 4 bits/acceso paralelo de 4 bits
- 74299: Universal de 8 bits
- Serie 74xx:
Basados en memoria:
- Configuraciones de memoria FIFO
- Implementaciones de búfer circular
- LUTs de registro de desplazamiento en FPGAs
Implementación del circuito
Un registro de desplazamiento básico de 4 bits de entrada serie, salida serie:
### Registro de desplazamiento de entrada serie, salida serie (SISO)
```mermaid
graph LR
SIN[Serial In] --> FF0[D FF0]
CLK[Clock CLK] --> FF0
FF0 -->|Q0| FF1[D FF1]
CLK --> FF1
FF1 -->|Q1| FF2[D FF2]
CLK --> FF2
FF2 -->|Q2| FF3[D FF3]
CLK --> FF3
FF3 -->|Q3| SOUT[Serial Out]
Componentes relacionados
- Registros: Almacenamiento de datos de propósito general
- Contadores: Circuitos secuenciales que cuentan pulsos
- Flip-Flops: Bloques de construcción básicos para registros de desplazamiento (D, JK)
- Multiplexores: A menudo usados en diseños de registros de desplazamiento universales
- Interfaces de comunicación serie: UART, SPI, I2C
- Registros de desplazamiento con retroalimentación lineal: Para generación de secuencias pseudoaleatorias
- Desplazadores de barril: Para desplazamientos de múltiples bits en un solo ciclo
- Búferes FIFO/LIFO: Estructuras avanzadas de almacenamiento de datos
- Filtros digitales: Usan registros de desplazamiento para implementar líneas de retardo
- Detectores de secuencia: Circuitos de reconocimiento de patrones