Binaire : le code de Gray

Quelle est la particularité du code de Gray ? C'est qu'il ne peut exister entre deux valeurs codées qu'une et une seule transition (un seul bit peut être modifié à la fois).

Ce système est utilisé lorsque la vitesse d'exécution est très importante dans une séquence : car un seul bit est modifié à la fois si la séquence est respectée.

Il paraît que nous ne regarderons plus jamais notre chaudière de la même manière après avoir pris connaissance que le code de Gray qui y est utilisé est identique à celui qui intervient dans les missiles...y dit quoi lui ???

Table de correspondances Gray/Binaire

Nous pouvons remarquer dans ce tableau la mise en évidence que un et un seul bit est modifié à la fois.

Conversions Binaire/Gray

Valeur
décimale
Représentation
binaire
Représentation
code Gray
00 0 00 0 0
10 0 10 0 1
20 1 00 1 1
30 1 10 1 0
41 0 01 1 0
51 0 11 1 1
61 1 01 0 1
71 1 11 0 0
Conversions du binaire vers le code de Gray

Nous avons la valeur 0011 en binaire, que nous devons coder en code de Gray.

Nous devons parcourir les bits du LSB [“Lower Significant Bit”1][?] vers le MSB [“Most Significant Bit”3][?].
Chaque groupe de deux bits est soumis à une porte X-OR, qui ne retourne un 1 que lorsque un et un seul 1 se présente en entrée.

Les deux premiers bits sont 1 et 1, ce qui donne 0.
Nous pouvons décaler la porte d'un pas vers le MSB, ce qui nous donne les bits 1 et 0 qui, après traitement dans la porte X-OR retournent 1.
Ensuite viennent les bits 0 et 0, ce qui nous donne 0.
Enfin, le dernier bit est reporté tel quel (ici un bit 0).

Conversion logique

Conversion logique

Comme il est possible de convertir un code binaire en code de Gray, nous pouvons profiter de cette expérience pour utiliser les portes logiques, et créer un circuit logique combinatoire qui effectuerait le travail à notre place.

Déterminons nos circuits

3 entrées
A B C
3 fonctions
f1 f2 f3
0 0 00 0 0
0 0 10 0 1
0 1 00 1 1
0 1 10 1 0
1 0 01 1 0
1 0 11 1 1
1 1 01 0 1
1 1 11 0 0

Pour constituer notre table de vérité, nous avons les 3 fils en entrée (A, B, et C) et nos trois fils, ou fonctions en sortie (f1, f2, et f3). Nous devons placer les signaux qui se présentent en entrée (code binaire) et ceux qui se présentent en sortie du circuit (codes Gray).

Générons les matrices correspondant aux circuits

Matrice qui correspond à la fonction f1  Matrice qui correspond à la fonction f2  Matrice qui correspond à la fonction f3

Transposition des expressions en un circuit

Circuits du convertisseur binaire vers Gray

Et avec des NAND ?

Notre circuit est planifié, mais au moment de le réaliser nous constatons que nous ne disposons plus que de portes NAND. Il faut donc repenser le circuit de manière à utiliser le matériel que nous avons à notre disposition...

Voici de quoi passer votre temps ;-)

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 22/04/2004, last modified the 07/04/2023
Source of the printed document:https://www.gaudry.be/en/binaire-gray.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.

Notes
  1. a,b Lower Significant Bit : corresponds to « bit de poids faible » en français

  2.  LSB : “Lower Significant Bit” (en français, « bit de poids faible »)

  3. a,b,c Most Significant Bit : corresponds to « bit de poids significatif » en français

  4. a,b MSB : “Most Significant Bit” (en français, « bit de poids significatif »)

Contents Haut