17 Jan

Retenue anticipé !

Publié par Nain0nain ,

Retenue anticipé !

Salut tout le monde on est reparti de plus belle, pour de l'électronique !

Alors là on rigole plus c'est parti pour avoir des beaux additionneurs, tout propre et surtout rapides !

  • P, et G
  • Unité de retenu

P et G, ou G et P :

La première chose que l'on va déterminer, pour ne pas s'embrouiller, c'est utiliser des notations !

  1. Soit les majuscules des entrées : A et B, les bits à additionners; R, la retenu; P et G ce que ne allons voir.
  2. Ensuite les minuscules des sorties : r retenu de sortie, p et g ce que nous allons voir.
  3. Et en fin les exposants pour montrer de quel bit nous allons parler : A, Bi donc ici je parle du bit "i". 

 

Voilà les notations déterminées, c'est parti bon déjà on peu virer tous les r qui sortent d'un additionneur, ils seront partant de l'unitée de retenu, qui consituent les propagations de retenus et la remplacer par p, p va se charger de savoir si la retenue est propagée ou pas, soit si A ou B est 1 mais pas les deux en même temps, alors p = 1, on traduit donc A ou B par une porte XOR que l'on va donc insérer avant le calcul, et g un générateur de retenu, donc si A et B sont 1, alors g = 1, ça se traduit par une porte AND :

Une image est toujours plus parlante !

Une image est toujours plus parlante !

Unité de retenu

Bon il faut déjà expliquer comment ça va marcher ! Une fois que l'on a p et g comme entrée il faut savoir si l'on va propager la retenue, savoir si R = 1 ou 0 !

On va parti du bit 1, soit C1Déjà il faut savoir que g est toujours prévilégié, donc si :

 

g1 = 1, alors R2 = 1 !

 

normal car si A1 + B1 = 1 + 1 donc retenu. Et pour C1 on utilise p pour savoir si la retenu entrante est porpagée, donc si 

 

p1 = 1 et Re = 1 alors R2 = 1, 

 

parce qu' on propage Re

 

Soit si gi = 1 ou pi = 1 et Re = 1, alors Ri+1 = 1 pour (i = 1).

 

Passons à C2,

 

si g2 = 1, alors R3 = 1,

 

mais d'autre facteur jouent ici : si

 

p2 = 1 et g1 = 1, alors R3 = 1,

 

normal parce que si A2 + B2 = 1 + 0 alors p2 = 1, mais enfaite c'est pas vraiment ça; il ne faut pas oublier R2 : c'est A2 + B2 + R2 = 1 + 0 + 1, donc c'est logique la retenu à R3, enfaite on connait la retenu avant le calcul, puis 

 

p2 = 1, p1 = 1 et Re = 1 alors R3 = 1

 

pareil.

 

Si gi = 1, ou si pi = 1 et gi-1 = 1, ou pi = 1, pi-1 = 1 et Re = 1 alors Ri+1 = 1.

 

Si on passe au Calcul supérieur, on doit reprendre la retenu du premier calcul et du deuxième : 

 

si gi = 1, ou pi = 1 et gi-1 = 1, ou pi = 1, pi-1 = 1 et gi-2 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1 et Re = 1 alors Ri+1 = 1 (si i = 3) ! 

 

et encore un étage !  ça pique les yeux ! 

 

si gi = 1, ou pi = 1 et gi-1 = 1ou pi = 1, pi-1 = 1 et gi-2 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1 et gi-3 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1, pi-3 = 1 et Re = 1 alors Ri+1 = 1 (si i = 4) !

 

 : Je récapitule :

 

si gi = 1 ou pi = 1 et Re = 1, alors Ri+1 = 1 pour (i = 1)

 

Si gi = 1, ou pi = 1 et gi-1 = 1, ou pi = 1, pi-1 = 1 et Re = 1 alors Ri+1 = 1 pour (i = 2)

 

si gi = 1, ou pi = 1 et gi-1 = 1ou pi = 1, pi-1 = 1 et gi-2 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1 et Re = 1 alors Ri+1 = 1 (si i = 3)

 

si gi = 1, ou pi = 1 et gi-1 = 1ou pi = 1, pi-1 = 1 et gi-2 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1 et gi-3 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1, pi-3 = 1 et Re = 1 alors Ri+1 = 1 (si i = 4) 

 

Bon on va pas se mentir on ne fait pas ça à l'infini heusement parce que ça fait peur sinon ! Je vais m'arrêter à i = 4 parce que je vais fabriquer des additionneurs de 4 bits, donc il faut juste rajouter un détail, un retenu entrante pour C1 quand on enchaine les additionneurs, donc ça modifie un peu le calcul: on rajoute à la fin si la retenu entrante doit être propagée, donc on retient : 

 

si gi = 1, ou pi = 1 et gi-1 = 1ou pi = 1, pi-1 = 1 et gi-2 = 1, ou pi = 1, pi-1 = 1, pi-2 = 1 et gi-3 = 1 ou pi = 1, pi-1 = 1, pi-2 = 1, pi-3 = 1 et Re = 1 alors Ri+1 = 1 (si i = 4) !

 

(si c'est le premier de la chaine Re = 0). Nous pouvons donc maintenant traduire ce calcul en porte logique, il nous faudra donc :

  • 4 portes OR
  • et 10 portes AND

Pas trop mal, bon je vais pas vous la faire en entier parce que sinon c'est la gros bordel ! (parce que je suis flémard) mais : 

Ici C0 va correspondre au Re de mon explication, il faut bien voir que ici on va prendre les infos du début (surtout pour le dernier calcul) et qu'il va tout recalculer

Ici C0 va correspondre au Re de mon explication, il faut bien voir que ici on va prendre les infos du début (surtout pour le dernier calcul) et qu'il va tout recalculer

Voila un additionneur performant ! Bientôt nous verrons comment les assembler ! Sur ce salut ! (Cet article est compliqué et pas très bien expliqué , c'est pourquoi je le passerai en revue bientôt)

Nain0nain

Nain0nain

blogLa suite ici

Retour au menu : fonctionnement du processeur
Commenter cet article

Suivez nous sur :