Ce chapitre décrit l'architecture de différents registres couramment utilisés dans la conception de circuits numériques.

Conversion série-parallèle


Les registres à décalage sont utilisés dans de nombreux circuits intégrés pour convertir des données logiques séries en données parallèles. Dans de nombreux cas, les liaisons de données séries sont préférées pour la communication entre blocs, car elles réduisent le nombre de broches et la taille des bus, ce qui a un impact positif sur le coût d’interconnexion. Cependant, la liaison série est plus lente que l'interface parallèle. Les cellules Dreg sensibles sur front sont très utiles pour convertir un flux de données série en un flux de données parallèles.

Registre à décalage permettant la conversion série-parallèle

Registre à décalage permettant la conversion série-parallèle

Dans le circuit ci-dessus, les données séries entrent par l'entrée "DataIn". Quatre cellules Dreg sont chaînées en connectant la sortie Q à l'entrée D du prochain étage.  À chaque front descendant de l’horloge "Shift", le registre copie l’entrée sur la sortie. Au bout de quatre fronts actifs, les données séries de DataIn se retrouvent en parallèle sur D0..D3. On nomme ce circuit "Serial IN - Parallel OUT".

Vous trouverez ci-dessous un exemple de simulation de conversion de données séries en parallèles avec DSCH :

En supposant que l'on souhaite transformer la donnée 0,1,11 de série en parallèle, au bout de 4 fronts actifs sur "Shift", D0=0, D1=1, D2=1 et D3=1.


Conversion série-parallèle

Conversion série-parallèle

De la même façon, 4 bascules D permettent la conversion parallèle vers série, à l'issue de 4 fronts actifs de l'horloge.


Conversion parallèle-série


La conversion parallèle-série fait appel à un circuit un peu plus complexe que le circuit précédent, car il faut une logique de contrôle un peu plus sophistiquée.

Séquence de conversion :

  1. Phase d'initialisation : on envoie une impulsion positive sur Reset pour mettre les 4 sorties Q à 0.
  2. Sélection de la donnée sur le clavier : les 4 sorties du clavier forment la combinaison binaire qui correspond au chiffre sélectionné.
  3. Sélection du mode chargement : Shift/Load est mis à 0, ce qui active le mode "chargement" et permet d'appliquer un 1 sur une des entrées de chaque porte AND, dont l'autre entrée est connectée au clavier. Cela a pour conséquence d'acheminer la combinaison binaire vers les entrées D des bascules.
  4. Mémorisation des données dans les bascules D : un front d'horloge descendant permet de transférer les données des entrées des bascules vers leur sortie Q.
  5. Décalage en série : Shift/Load est mis à 1 (mode "décalage" activé). Cela inhibe les portes AND véhiculant les données du clavier. En revanche, cela permet d'activer la deuxième série de porte AND, dont l'une des entrées est connectée à la sortie de la bascule précédente, transférant ainsi la sortie de la bascule précédente sur l'entrée D de la suivante. Un premier décalage de 1 bit est ainsi réalisé.
  6. Soit on continue à décaler avec Shift/Load à 1, soit on charge une nouvelle donnée de 4 bits avec Shift/Load à 0.


Exemple : charger et décaler le chiffre 6


Après une impulsion positive sur Reset, toutes les sorties Q0..Q3 sont remises à 0.

"Shift/Load" est mis à 0, donc "Load" est au niveau 1 actif, ce qui fixe à 1 une entrée de chaque porte AND, dont l'autre entrée est connectée au clavier. Ceci a pour effet de transmettre la donnée du clavier en entrée des portes OU. La deuxième entrée de ces portes OU est mise à 0 par l'intermédiaire du signal Shift/Load qui est à 0. Il en résulte que le nombre binaire (image du chiffre entré au clavier) est directement disponible sur les entrées D des 4 bascules.

Un front actif de l'horloge permet alors de transférer ce nombre binaire en sortie des bascules D et donc de stocker la donnée d'entrée, qui s'affiche sur les leds.

Ici, on rentre "6" au clavier soit 0110. Avec Shift/Load à 0 et après un front d'horloge actif, la combinaison des sorties des bascules représente la donnée 0110.

La donnée en sortie des bascules reste stable jusqu'au prochain front d'horloge, même si les données du clavier sont modifiées, grâce à l'effet mémoire des bascules.

En positionnant ensuite Shift/load à 1, trois fronts d'horloge permettent de transférer les données 0110 vers "SerialOut".

Circuit de conversion parallèle-série

Circuit de conversion parallèle-série

Une fois les données transmises, celles-ci sont perdues car elles n'ont pas été stockées au préalable. Un nouveau cycle Load puis Shift peut alors être engagé.

Dans ce chapitre, vous avez découvert l'architecture de différents types de registres et vous avez appris à concevoir un circuit permettant de charger et décaler une valeur numérique.

Dans le chapitre suivant, vous réutiliserez ces concepts pour créer une horloge qui compte les heures.