PREVIEW
Shift Register (4-bit)

Shift Register (4-bit)

Memory signal_cellular_alt_2_bar Intermediate schedule 22 min

Interactive Circuit

Registre à décalage

Vue d'ensemble

  • Objectif : Le registre à décalage est un circuit logique séquentiel qui stocke des données binaires et décale son contenu d'une position de bit à chaque impulsion d'horloge. Il peut déplacer les données vers la gauche ou vers la droite, permettant la manipulation et le stockage séquentiels des données.
  • Symbole : Le registre à décalage est représenté par un bloc rectangulaire avec des entrées pour les données (série et parfois parallèle), l'horloge, la réinitialisation et le contrôle de mode, avec des sorties pour les données stockées/décalées.
  • Rôle dans DigiSim.io : Sert de composant essentiel pour la conversion de données entre les formats série et parallèle, le stockage de données et les applications de traitement du signal dans les conceptions de circuits numériques.

composant registre à décalage

Description fonctionnelle

Comportement logique

Le registre à décalage stocke et manipule les données binaires en décalant les bits stockés dans une direction spécifiée à chaque impulsion d'horloge. Selon le type, il peut charger les données en série (un bit à la fois) ou en parallèle (tous les bits simultanément), et peut sortir les données au format série ou parallèle.

Modes de fonctionnement typiques :

Contrôle de mode Fonction Description
00 Maintien Maintient l'état actuel
01 Décalage à droite Décale les bits à droite, nouveau bit entre par la gauche
10 Décalage à gauche Décale les bits à gauche, nouveau bit entre par la droite
11 Chargement parallèle Charge tous les bits simultanément

Exemple de table de vérité (registre à décalage universel 4 bits) :

CLK DIR S/L SI D3 D2 D1 D0 Q3 (suivant) Q2 (suivant) Q1 (suivant) Q0 (suivant) Notes
X 1 X d3 d2 d1 d0 d3 d2 d1 d0 Chargement parallèle
0 0 si X X X X si Q3 Q2 Q1 Décalage à droite
1 0 si X X X X Q2 Q1 Q0 si Décalage à gauche
X X X X X X X Q3 Q2 Q1 Q0 Pas de changement

Remarque : ↑ représente un front d'horloge montant, ↓ front descendant, X « peu importe », si entrée série, dn entrée de données parallèles. Qn est l'état actuel.

Entrées et sorties

  • Entrées (8 au total) :

    • SI (Serial Input) : entrée 1 bit pour la saisie de données série.
    • CLK (Clock) : entrée 1 bit ; les opérations se produisent sur le front montant.
    • DIR (Direction) : entrée 1 bit ; contrôle la direction de décalage (0 = droite, 1 = gauche) lorsque S/L est à 0.
    • S/L (Shift/Load) : entrée 1 bit ; contrôle de mode (0 = décalage, 1 = chargement parallèle).
    • D0, D1, D2, D3 : quatre entrées de données parallèles 1 bit pour le chargement simultané des données lorsque S/L est à 1.
  • Sorties (5 au total) :

    • Q0, Q1, Q2, Q3 : quatre sorties parallèles 1 bit représentant les bits actuellement stockés du registre.
    • SO (Serial Output) : sortie 1 bit. Le comportement dépend de la direction de décalage :
      • Pendant le décalage à droite (DIR=0) : SO reflète généralement Q0.
      • Pendant le décalage à gauche (DIR=1) : SO reflète généralement Q3.

Paramètres configurables

  • Largeur de bits : le nombre de bits que le registre à décalage peut stocker (généralement 4, 8, 16, etc.).
  • Direction de décalage : si le registre décale à gauche, à droite ou est bidirectionnel.
  • Type : la configuration du registre (SISO, SIPO, PISO, PIPO ou universel).
  • Sensibilité au front d'horloge : si le registre réagit aux fronts montants ou descendants de l'horloge.
  • Délai de propagation : le temps que mettent les sorties à changer après un événement déclencheur.

Représentation visuelle dans DigiSim.io

Le registre à décalage est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (SI, D0-D3, CLK, DIR, S/L) et des sorties (Q0-Q3, SO) sur le côté droit. L'entrée d'horloge est généralement marquée d'un symbole triangulaire indiquant la sensibilité au front. Lorsqu'il est connecté dans un circuit, le composant indique visuellement son état actuel via les valeurs affichées sur ses sorties et les changements de couleur sur les fils de connexion.

Valeur pédagogique

Concepts clés

  • Traitement séquentiel des données : démontre comment les données peuvent être traitées un bit à la fois en séquence.
  • Conversion série-parallèle : illustre la transformation entre les formats de données séquentiels et simultanés.
  • Stockage temporel : montre comment les systèmes numériques peuvent stocker et retarder les données dans le temps.
  • Fonctionnement synchronisé : renforce la compréhension des systèmes numériques synchrones.
  • Communication numérique : introduit les concepts fondamentaux de la transmission de données numériques.

Objectifs d'apprentissage

  • Comprendre les principes du stockage et de la manipulation séquentiels de données.
  • Apprendre comment les systèmes numériques convertissent entre les formats de données série et parallèle.
  • Reconnaître les différents types de registres à décalage et leurs applications.
  • Appliquer les concepts de registres à décalage pour résoudre des problèmes de gestion de données dans les circuits numériques.
  • Comprendre le rôle des registres à décalage dans les protocoles de communication numérique.

Exemples d'utilisation / Scénarios

  • Communication série : conversion entre données parallèles dans un microprocesseur et données série pour la transmission.
  • Lignes à retard : création de retards numériques précis pour des applications de traitement du signal.
  • Mise en tampon de données : stockage temporaire de bits de données avant leur traitement.
  • Génération de motifs : création de motifs de bits répétitifs pour des tests ou des affichages.
  • Filtres numériques : implémentation de filtres à réponse impulsionnelle finie (FIR) pour le traitement du signal.
  • Pilotes d'affichage : contrôle d'écrans à matrice LED/LCD avec des lignes de contrôle limitées.

Notes techniques

  • Les registres à décalage sont généralement implémentés à l'aide de bascules D, avec une bascule par bit de stockage.
  • La fréquence de fonctionnement maximale est limitée par le délai de propagation à travers la chaîne de bascules.
  • Les registres à décalage universels offrent le plus de flexibilité mais nécessitent plus d'entrées de contrôle et de logique interne.
  • Les registres à décalage à rétroaction linéaire (LFSR) sont des configurations spéciales utilisées pour la génération de nombres pseudo-aléatoires et les calculs CRC.
  • Dans DigiSim.io, les registres à décalage modélisent un comportement typique déclenché sur front avec un retour visuel clair des opérations de décalage.
  • Plusieurs registres à décalage peuvent être mis en cascade pour gérer des largeurs de données plus grandes que celles fournies par un seul composant.

Types de registres à décalage

  1. Série-In, Série-Out (SISO)

    • Les données entrent un bit à la fois et sortent un bit à la fois
    • Agit comme une ligne à retard ou un élément de mémoire numérique
  2. Série-In, Parallèle-Out (SIPO)

    • Les données entrent en série mais sont accessibles en parallèle
    • Utilisé pour la conversion série-parallèle
    • Courant dans les interfaces de communication (UART, SPI)
  3. Parallèle-In, Série-Out (PISO)

    • Les données se chargent en parallèle mais sortent en série
    • Utilisé pour la conversion parallèle-série
    • Essentiel dans les systèmes de transmission de données
  4. Parallèle-In, Parallèle-Out (PIPO)

    • Les données entrent et sortent en parallèle
    • Fournit un stockage temporaire et peut décaler les données
    • Utilisé pour la mise en tampon de données entre systèmes
  5. Registres à décalage bidirectionnels

    • Peuvent décaler les données à gauche ou à droite
    • Permettent une manipulation flexible des données
  6. Registres à décalage universels

    • Prennent en charge plusieurs modes de fonctionnement (tous les précédents)
    • Configurables via des entrées de contrôle
    • Offrent une flexibilité maximale

Modes de fonctionnement

Contrôle de mode (S/L, DIR) Fonction Description
1, X Chargement parallèle Q[3:0] = D[3:0]
0, 0 Décalage à droite SI → Q3, Q3 → Q2, Q2 → Q1, Q1 → Q0
0, 1 Décalage à gauche Q2 → Q3, Q1 → Q2, Q0 → Q1, SI → Q0

Table de vérité (registre à décalage universel 4 bits)

CLK DIR S/L SI D3 D2 D1 D0 Q3 (suivant) Q2 (suivant) Q1 (suivant) Q0 (suivant) Notes
X 1 X d3 d2 d1 d0 d3 d2 d1 d0 Chargement parallèle
0 0 si X X X X si Q3 Q2 Q1 Décalage à droite
1 0 si X X X X Q2 Q1 Q0 si Décalage à gauche
X X X X X X X Q3 Q2 Q1 Q0 Pas de changement

Remarque : ↑ représente un front d'horloge montant, ↓ front descendant, X « peu importe », si entrée série, dn entrée de données parallèles. Qn est l'état actuel.

Caractéristiques

  • Capacité de bits : généralement 4, 8 ou 16 bits (peut être de toute longueur)
  • Direction de décalage : gauche/droite/bidirectionnelle selon la configuration
  • Exigences d'horloge : fonctionnement synchrone sur les fronts d'horloge
  • Timing : le délai de propagation limite la fréquence de décalage maximale
  • Échantillonnage : données d'entrée échantillonnées au front d'horloge actif
  • Comportement de réinitialisation : efface généralement tous les bits à zéro
  • Options de preset : certains registres permettent une mise à des valeurs initiales
  • Contrôle de flux de données : peut inclure des fonctions d'activation/désactivation
  • Exigences de consommation : proportionnelles au nombre de bascules et à la fréquence d'horloge

Applications

  1. Conversion de données

    • Conversion série-parallèle et parallèle-série
    • Interface entre bus série et processeurs parallèles
  2. Communication numérique

    • Interfaces UART, SPI, I2C
    • Opérations d'encodage/décodage
    • Tramage de bits et formatage de données
  3. Traitement du signal

    • Filtres numériques (filtres FIR)
    • Lignes à retard pour le traitement numérique du signal
    • Opérations de corrélation et de convolution
  4. Stockage de données

    • Stockage tampon temporaire
    • Génération et reconnaissance de motifs de bits
  5. Systèmes informatiques

    • Opérations de décalage/rotation du CPU
    • Génération et vérification CRC
    • Génération de séquences pseudo-aléatoires
  6. Systèmes d'affichage

    • Multiplexage d'affichage LED/LCD
    • Affichages défilants
    • Distribution de données aux panneaux d'affichage
  7. Timing et contrôle

    • Génération de séquences
    • Timing et contrôle d'événements

Implémentation

Les registres à décalage peuvent être implémentés à l'aide de :

  1. Chaînes de bascules :

    • Bascules D (les plus courantes)
    • Bascules JK
    • Configurations maître-esclave
  2. Circuits intégrés :

    • Série 74xx :
      • 7491 : SISO 8 bits
      • 74164 : SIPO 8 bits
      • 74165 : PISO 8 bits
      • 74194/74195 : universel 4 bits / accès parallèle 4 bits
      • 74299 : universel 8 bits
  3. À base de mémoire :

    • Configurations de mémoire FIFO
    • Implémentations de tampon circulaire (ring buffer)
    • LUT de registres à décalage dans les FPGA

Implémentation du circuit

Un registre à décalage série-in, série-out 4 bits de base :

### Registre à décalage série-in, série-out (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]

Composants associés

  • Registres : stockage de données à usage général
  • Compteurs : circuits séquentiels qui comptent les impulsions
  • Bascules : blocs de construction de base pour les registres à décalage (D, JK)
  • Multiplexeurs : souvent utilisés dans les conceptions de registres à décalage universels
  • Interfaces de communication série : UART, SPI, I2C
  • Registres à décalage à rétroaction linéaire : pour la génération de séquences pseudo-aléatoires
  • Décaleurs en barillet (barrel shifters) : pour les décalages multi-bits en un seul cycle
  • Tampons FIFO/LIFO : structures avancées de stockage de données
  • Filtres numériques : utilisent des registres à décalage pour implémenter des lignes à retard
  • Détecteurs de séquence : circuits de reconnaissance de motifs

school Parcours d'apprentissage

arrow_back Prérequis

arrow_forward Prochaines étapes

help_outline Foire aux questions

Comment fonctionnent les registres à décalage ?

À chaque front d'horloge, chaque bascule transmet sa sortie à sa voisine en recevant de l'autre côté. Les données se décalent d'une position vers la gauche ou la droite.

Que sont SIPO et PISO ?

SIPO (Série In Parallèle Out) : les données entrent en série, les données parallèles sont disponibles. PISO (Parallèle In Série Out) : chargement parallèle, décalage en série.

play_arrow Exécuter le circuit en direct

Voir d'autres composants