Magist ere de Mathématiques Fondamentales & Appliquées et d'informatique Corrigé du contr^ole partiel du cours : Syst emes Digitaux. Le 3// de 9h3 a 2h3. n code Gray sur n bits est une permutation g n des entiers k<2 n, telle que :. g n ()=; 2. les codes g n (k) etg n (k + ) de deux entiers consécutifs sont différents sur exactement un bit : g n (k) Φ g n (k +)=2 pn(k) ; avec» p n (k) <npour <k+ < 2 n et pour k+ = 2 n = (mod 2 n ). Example : g 2 f23g = f32g est un code Gray sur 2 bits ; sa table binaire, poids faibles a gauche : 2 [] Question (Code Gray). Montrer qu'il existe un code Gray sur n bits, pour tout n>. 2. Combien y a t-il de codes Gray : sur, 2, 3 bits? N'envisager les valeurs 4n qu' a la fin des autres questions. Réponse. L'unique code Gray sur bit est l'identité g =[]. Sur 2 bits, il y en a deux : le code standard g 2 ci-dessus, et son miroir ~g 2 =[23]. On construit le code standard g n+ sur n+ bits a partir du code standard g n sur n bits : g n+ (k) = ρ g n (k) si k<2 n ; 2 n + g n (2 n+ k ) si k 2 n : () Le miroir du code standard est donné par ~g n (k) =g n (2 n k), pour < k<2 n,et~g n () =. Pour 3 bits, on a : (a) Décimal : g 3 =[326754] et ~g 3 =[457623]. (b) Binaire gauche : g 3 = [ ].
2. On arrive a compter les codes sur trois bits : il y en a 2. Ce sont les images du code standard g 3 et de son miroir ~g 3, par les 6 permutations des 3 bits de sortie. 5 7 3 4 3 5 6 9 2 2 4 8 A 4 bits, le temps se g^ate car il faut compter les cycles hamiltoniens dans l'hypercube H 4 ci-dessus. Ces cycles partent de l'origine et y reviennent apr es avoir traversé exactement une fois tous les autres points de l'hypercube. Le calcul par ordinateur indique l'existence de 2688 codes Gray sur 4 bits. La réponse, pour un nombre arbitraire de bits, ne semble pas connue. L' Encyclopedie Electronique des Suites Entieres, rubrique 342 en http://www.research.att.com/ njas/sequences/indexfr.html donne seulement les valeurs : 2 2 2688 83952. Question 2 (Compteur Gray sur 3 bits). Donner explicitement la table binaire d'un code Gray g 3 sur 3 bits. 2. Construire et dessiner proprement un circuit digital synchrone G 3, sans entrée, dont la sortie au cycle t 2 N soit la représentation sur 3 bits du code de Gray g 3 (t j 8). 3. Analyser le nombre de portes logiques et de registres dans G 3, ainsi que son chemin critique. Réponse 2. La table de g 3 est en page. 2. La table de transition d'une configuration g = g 3 (k) =g +2g +4g 2 vers la suivante g = g 3 (k +)=g +2g +4g 2 est donnée par : 2
k g(k) g(k +) g g g 2 g g g 2 3 2 7 6 4 5 En appliquant la synth ese BDD a cette table, on trouve le circuit G 3 suivant : g[]=() g'[] g[] g[]=() u=() g'[] g[] g[] g'[2] i=() () 3. G 3 comprend 7 multiplexeurs et 3 registres ; profondeur combinatoire 3. 4. Le circuit g 3 qui suit, en 3 mux(dont un inverseur) et 3 regest le meileur trouvé. 3
Peut-on, ou non, le réaliser avec seulement 2 mux? g[] g[] () () () b[]=() () () Question 3 (Code inverse) Montrer que l'on peut toujours transformer un compteur Gray en compteur binaire sur n bits.. On construira pour cela un circuit combinatoire dont les n entrées proviennent d'un compteur Gray sur n bits, et dont les n sorties sont identiques a celles d'un compteur binaire, pour tout cycle t 2 N. 2. Optimiser sa taille. 3. Optimiser sa profondeur. Réponse 3 L'énoncé ne devrait faire référence qu'aux n! codes dérivés par permutation des bits du code Gray standard. Pour les autres, c'est moins clair, cf. la fin de la question.. Soit k<2 n un entier présenté sur n bits k = 2 b b b n : La représentation binaire du successeur k + de k est k += 2 b b b n ; avec b i = b i pour i» v et b i = b i pour i>v.iciv = v 2 (k +) est la valuation binaire de l'entier k + ; c'est la plus grande puissance de deux qui divise k +,soit:k +=2 v ( + 2k ); et k =2 v +2 v+ k ; il vient k Φ (k +)=2 v+. On voit que r(k) = k Φ (k +) = 2 v+ est le vecteur des retenues, dans la transition k + = k Φ r(k) d'un compteur binaire. En écrivant j +=j Φ r(j) pour, et en sommant bit a bitmodulo 2, on trouve : k =M r(j): (2) 4
La valuation binaire v 2 (k +) donne la position de la retenue la plus significative, dans la transition d'un compteur binaire a partir de k. C'est aussi la position p n (k) =minfv 2 (k +);n g de l' unique bit a changer pour faire latransition de g n (k) a g n (k +) = g n (k) Φ 2 pn(k),danslecode Gray standard sur n bits. k 2 k r(k) 2 p3(k) g 3 (k) b b b 2 r r r 2 p p p 2 g g g 2 2 3 4 5 6 7 Calculons r(k)φ(r(k)ξ2) = (2 v+ )Φ(2 v ) = 2 v ce qui donne 2 p(k) = r(k)φ(r(k)ξ2). Modulo 2 n,cette relation devient 2 pn(k) = r(k)φ(r(k)ξ2). En sommant bit a bit et modulo 2 pour,ontrouve : g n M (k) = 2 pn(j) M = r(j) ΦM(r(j) Ξ 2): En utilisant (2) deux fois, il vient : g n (k) =k Φ (k Ξ 2): (3) Divisons par deux et ajoutons : g n (k) Φ g n (k Ξ 2) = k Φ (k Ξ 4). Encontinuant ainsi, on inverse la formule (3) par : k = M»j<n 2. Traduisons la formule (4) en circuit combinatoire: g n (k Ξ 2 j ): (4) g[] g[] g[3] b[] b[] b[2] b[3] 5
3. En procédant maintenant par dichotomie : g[7] g[6] g[5] g[4] g[3] g[] g[] b[6] b[6] g32 g32 b[4] b[4] b[4] b[7] b[6] b[5] b[4] b[3] b[2] b[] b[] Question 4 (Compteur Gray haute fréquence). Concevoir un compteur Gray sur n bits, pour n grand ; on veut néanmoins opérer a tr es haute fréquence. 2. Caractériser, en fonction de n et des délais combinatoires des portes la fréquence maximale d'horloge a laquelle une réalisation cmos de votre circuit g n calcule de mani ere fiable. Réponse 4. Partons du compteur haute fréquence du cours, et de la formule (4) : g[] b[] b[] g[] b[2] b[3] g[3] b[4] b[] g[] b[] c2 c2 r r b[] b[] b[] g[] b[2] b[3] b[n-] g[n-] g[n] c c rn cn r b[] b[] 6
2. Le compteur Gray ci-dessus est conοcu pour pouvoir opérer jusqu'au toggle rate, soit une période d'horloge supérieure a fi = fi reg +2fi mux,ledélai de registre a registre au travers de deux multiplexeurs. Le chemin combinatoire qui va du registre b[2] a l'entrée e du registre, (disons) g[], comprend mux en série. La commande c2 = 2 () laisse quatre cycles pour s'établir au signal e, qui est lié au registre source a travers neuf et un mux. Supposons, pour simplifier, que fi = fi mux. A partir de l'instant ou c2 tombe de a, le signal e se stabilise au temps fi reg +fi mux. Ceci arrive avant le quatri eme coup d'horloge (et donc la prochaine commande c2 =) si fi reg +fi mux < 4fi reg +8fi mux, soit 2fi mux < 3fi reg. C'est une hypoth ese technologique raisonnable (sinon, réduire la taille de cette tranche du compteur). La commande c de cette tranche a une période de 2K =2 cycles. Ceci nous permet d'opérer, a la fréquence toggle rate, tous les compteurs - Gray comme binaire - jusqu' a plus de 4K bits. C'est bien trop, en pratique! Que ceci n'emp^eche pourtant pas les curieu(x/ses) de montrer qu'on peut pousser la construction arbitrairement loin, du moins en théorie. Faites-le, c'est amusant. 7