Circuit Court : du binaire au code de Gray
sur
Certains codes de Gray, ceux qu’on dit "cycliques", présentent l'avantage que lorsqu'ils "debordent", c'est-à-dire lorsqu'ils passent de la valeur maximale à l'état initial, il n'y a qu'un seul changement de bit (c'est-à-dire que le premier et le dernier chiffre sont différents d'un seul bit). La page Wikipedia du code de Gray est intéressante et mérite d'être lue. Là, j'ai trouvé un algorithme pour convertir une valeur binaire en code de Gray :
num_gray = num_bin ^ (num_bin >> 1)
Où ^ est la fonction OU exclusif et >> correspond à un décalage vers la droite d’un bit. Pas mal, et facile à retenir pour la prochaine fois que l'on vous demandera pendant un dîner mondain le code de Gray de 10010110. Vous pourriez répondre rapidement 11011101 après un gribouillage sur une serviette en papier. À vous, l'admiration de tous !
Je me suis demandé à quoi pouvait ressembler le circuit logique équivalent. Comme je n'étais pas assez malin pour convertir directement l'algorithme ci-dessus en portes logiques, j'ai regardé les bits.

On voit que dans le cas d'un seul bit (en jaune) les codes binaire et Gray sont les mêmes. En matériel, c'est juste un fil. Pour deux bits (en bleu), nous voyons que le bit de poids fort est G1 = B1, et le bit de poids faible est G0 = NON B0. Pour trois bits (en violet) c’est G2 = B2 comme précédemment, mais sans la négation. Nous avons donc besoin d'une nouvelle stratégie. En cherchant un peu plus, nous remarquons que Gn = Bn XOR Bn+1 pour GN-1 à G0 et GN = BN.
J'ai peut-être adopté une approche naïve pour résoudre ce problème. Comment vous y prendriez-vous ?
En savoir plus sur la conception de circuits, le code de Gray, et plus encore...
Pour plus d’informations:- Articles sur la conception de circuits imprimés, ElektorMagazine.fr.
- S. Drimer, "Circuits courts : Les formes des décimales codées en binaire (DCB)", 30 Mars 2021.
- Suivez la série Circuit Court pour être tenue au courant des nouveautés.
Vous avez besoin d'une solution de prototypage rapide ? Consultez ElektorPCB4Makers. Vous pouvez obtenir deux prototypes de PCB en trois jours ouvrables !


Discussion (1 commentaire(s))