Registre
Vue d'ensemble
- Objectif : Le registre est un composant numérique de stockage qui stocke plusieurs bits de données binaires. Contrairement à une bascule unique qui stocke un bit, les registres sont composés de plusieurs bascules disposées pour stocker un mot binaire complet.
- Symbole : Le registre est représenté par un bloc rectangulaire avec 4 entrées de données (D0-D3), une entrée d'horloge (CLK), une activation de chargement (LD), un effacement (CLR) et 4 sorties de données (Q0-Q3).
- Rôle dans DigiSim.io : Sert de bloc de construction fondamental de logique séquentielle dans les systèmes numériques, fournissant un stockage temporaire pour l'information binaire pendant les opérations de traitement.

Description fonctionnelle
Comportement logique
Le registre capture et stocke les valeurs présentes à ses entrées de données lorsqu'il est déclenché par un signal d'horloge. Les valeurs stockées restent inchangées jusqu'au prochain déclenchement d'horloge ou jusqu'à l'application d'un signal de réinitialisation/effacement.
Table de vérité (registre 4 bits) :
| CLR | LD | CLK | D[3:0] | Q[3:0] (état suivant) | Opération |
|---|---|---|---|---|---|
| 1 | X | X | xxxx | 0000 | Effacement asynchrone |
| 0 | 1 | ↑ | abcd | abcd | Chargement synchrone |
| 0 | 0 | ↑ | xxxx | Q (préc.) | Maintien (pas de chargement) |
| 0 | X | 0 | xxxx | Q (préc.) | Maintien (pas de front d'horloge) |
Remarque : ↑ représente un front d'horloge montant, X signifie « peu importe », « préc. » signifie l'état précédent. CLR est actif à l'état HIGH et asynchrone — il réinitialise le registre immédiatement indépendamment de CLK. Les données ne sont chargées que lorsque LD=1 sur un front d'horloge montant.
Entrées et sorties
Entrées (7 au total) :
- D0 : Pin 0. Bit d'entrée de données 0 (LSB).
- D1 : Pin 1. Bit d'entrée de données 1.
- D2 : Pin 2. Bit d'entrée de données 2.
- D3 : Pin 3. Bit d'entrée de données 3 (MSB).
- CLK : Pin 4. Entrée d'horloge — les données sont chargées sur le front montant lorsque LD est à HIGH.
- LD (Load) : Pin 5. Activation de chargement — lorsque HIGH sur un front d'horloge montant, les entrées de données sont verrouillées dans le registre.
- CLR (Clear) : Pin 6. Effacement asynchrone — réinitialise tous les bits stockés à zéro lorsque HIGH, indépendamment de l'horloge.
Sorties (4 au total) :
- Q0 : Pin 0. Bit de sortie 0 (LSB).
- Q1 : Pin 1. Bit de sortie 1.
- Q2 : Pin 2. Bit de sortie 2.
- Q3 : Pin 3. Bit de sortie 3 (MSB).
Paramètres configurables
- Largeur de bits : le nombre de bits que le registre peut stocker (généralement 4, 8, 16, etc.).
- Sensibilité au front d'horloge : si le registre réagit aux fronts d'horloge montants ou descendants.
- Contrôles asynchrones vs synchrones : comment l'effacement et les autres signaux de contrôle se comportent par rapport à 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 est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (D[n:0], CLK, CLR, etc.) et des sorties (Q[n:0]) 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
- Stockage de données : démontre comment les circuits numériques peuvent stocker plusieurs bits d'information.
- Fonctionnement synchrone : illustre le concept d'opérations déclenchées par des signaux d'horloge.
- Éléments de mémoire : introduit les blocs de construction fondamentaux pour les systèmes de mémoire informatique.
- Traitement de mots binaires : montre comment les ordinateurs gèrent les données multi-bits comme des mots plutôt que des bits individuels.
- Préservation d'état : démontre comment les systèmes numériques maintiennent leur état entre les cycles d'horloge.
Objectifs d'apprentissage
- Comprendre comment les registres stockent et maintiennent les données binaires à travers les cycles d'horloge.
- Apprendre la relation entre les signaux d'horloge et la capture de données dans les circuits séquentiels.
- Reconnaître le rôle des registres dans le traitement de données et le stockage temporaire.
- Appliquer les concepts de registres à la conception de circuits séquentiels plus complexes comme les compteurs et les registres à décalage.
- Comprendre la différence entre la logique combinatoire (qui n'a pas de mémoire) et la logique séquentielle (qui préserve l'état).
Exemples d'utilisation / Scénarios
- Stockage de données : maintien temporaire des résultats de calcul dans un CPU.
- Registres d'adresses : stockage des adresses mémoire pendant les cycles fetch-execute.
- Tampons de données : maintien des données aux frontières d'interface entre systèmes fonctionnant à différentes vitesses.
- Registres d'instructions : stockage de l'instruction en cours dans un CPU.
- Étages de pipeline : création d'étages de traitement séquentiels dans les architectures pipelinées.
- Conversion parallèle-série : stockage de données parallèles pour transmission série bit par bit.
Notes techniques
- Les registres sont généralement implémentés à l'aide de bascules D, avec une bascule par bit de stockage.
- Les exigences de temps de préétablissement et de maintien des bascules constitutives déterminent les contraintes temporelles pour un fonctionnement fiable du registre.
- Dans DigiSim.io, les registres modélisent un comportement typique déclenché sur front avec un retour visuel clair des transitions d'état.
- Les registres forment la base de composants séquentiels plus complexes comme les registres à décalage, les compteurs et les matrices de mémoire.
- Les registres à usage spécial incluent les accumulateurs (pour les opérations arithmétiques), les registres d'état (pour les drapeaux de condition) et les registres d'index (pour l'adressage de la mémoire).
Caractéristiques
- Taille de mot : généralement 4, 8, 16, 32 ou 64 bits (peut être tout nombre)
- Capacité de stockage : égale au nombre de bits (bascules) du registre
- Modes de fonctionnement :
- Chargement (écriture) : stocke de nouvelles données dans le registre
- Lecture : sort les données actuellement stockées
- Effacement / réinitialisation : met tous les bits à 0
- Mise à 1 : met tous les bits à 1
- Décalage : déplace les données à gauche ou à droite dans le registre
- Contrôle de timing : généralement synchrone avec les signaux d'horloge
- Vitesse : déterminée par le délai de propagation des bascules (temps de préétablissement typique : 2-5 ns)
- Consommation électrique : proportionnelle au nombre de bascules et à la fréquence de commutation
Types de registres
- Registres de données : stockent des valeurs de données à usage général
- Registres à décalage : permettent de décaler les données à gauche ou à droite
- SISO (Serial In, Serial Out)
- SIPO (Serial In, Parallel Out)
- PISO (Parallel In, Serial Out)
- PIPO (Parallel In, Parallel Out)
- Registres tampons : stockage temporaire entre composants système
- Registres d'adresses : contiennent des adresses mémoire
- Registres d'instructions : contiennent les instructions du processeur
- Registres d'état : stockent les drapeaux de condition et les informations d'état
- Registres accumulateurs : registres spéciaux pour les opérations arithmétiques
Applications
- Microprocesseurs et microcontrôleurs : pour les registres CPU
- Systèmes de mémoire : comme registres d'adresses et de données
- Interfaces d'E/S : mise en tampon entre différents domaines de vitesse
- Unités Arithmétiques et Logiques (UAL) : pour le stockage d'opérandes
- Conversion de données : dans les CAN et CNA
- Traitement du signal : pour la mise en tampon et le pipelining de données
- Systèmes de communication : conversion parallèle-série et série-parallèle
- Compteurs : comme élément de stockage dans les compteurs binaires
- Machines à états : pour le stockage d'état dans les circuits séquentiels
- Pilotes d'affichage : pour le maintien des données d'affichage
Implémentation
Les registres peuvent être implémentés à l'aide de :
Bascules :
- Bascules D (les plus courantes)
- Bascules JK
- Bascules T
Circuits intégrés :
- 74174/74175 : bascules D hexa/quadruples
- 74273 : bascule D octale avec effacement
- 74377/74378 : bascules D octales avec activation d'horloge
- 74595 : registre à décalage 8 bits avec verrou de sortie
- 74299 : registre à décalage universel 8 bits
Technologies de mémoire :
- Cellules de RAM statique
- Cellules de RAM dynamique (avec rafraîchissement)
- Matrices de bascules dans les FPGA
Implémentation du circuit
Un registre 4 bits de base utilisant des bascules D :
graph LR
D0[D bit 0] --> FF0[D Flip-Flop 0]
D1[D bit 1] --> FF1[D Flip-Flop 1]
D2[D bit 2] --> FF2[D Flip-Flop 2]
D3[D bit 3] --> FF3[D Flip-Flop 3]
CLK[Clock] --> FF0
CLK --> FF1
CLK --> FF2
CLK --> FF3
FF0 --> Q0[Q bit 0]
FF1 --> Q1[Q bit 1]
FF2 --> Q2[Q bit 2]
FF3 --> Q3[Q bit 3]
Structure : toutes les bascules partagent un signal d'horloge commun pour un fonctionnement synchrone.
Composants associés
- Bascules : blocs de construction de base pour les registres (D, JK, T)
- Verrous : similaires aux registres mais déclenchés par niveau au lieu d'être déclenchés sur front
- Compteurs : circuits séquentiels qui utilisent des registres pour compter les impulsions
- Registres à décalage : registres spécialisés pour les opérations de décalage
- Modules de mémoire : matrices plus grandes d'éléments de stockage (RAM, ROM)
- Multiplexeurs : souvent utilisés avec les registres pour la sélection de données
- Systèmes de bus : connectent plusieurs registres pour le transfert de données
- Microprocesseurs : contiennent plusieurs registres à diverses fins
- Tampons de mémoire : registres spécialisés pour interfacer avec les systèmes de mémoire
- Contrôleurs d'E/S : utilisent des registres pour mettre en tampon les données entre différents systèmes