Circuits logiques de base



Circuits combinatoires

1.3.1 Additionneur à propagation de retenue

Un additionneur est un circuit admettant en entrée deux mots de N bits, et fournissant en sortie le résultat de l'addition binaire des deux mots d'entrée, sur N+1 bits :

o Demi-additionneur 1 bit

En appelant A et B les deux entrées d'un additionneur 1 bit, (i.e. N=1), on peut dresser la table de vérité ci-contre, et en déduire le diagramme fonctionnel ci-dessous :
   A      B      C      S=A+B   
   0      0      0      0   
   0      1      0      1   
   1      0      0      1   
   1      1      1      0   

où le mot de 2 bits C S, formé par la retenue C jouant le rôle du bit de poids fort (i.e. le N+1ème bit du résultat) et par la sortie S , résultat de la somme sur N bits,donne bien la somme sur N+1 bits.

Si l'on veut construire un additionneur N bits (N > 1), par juxtaposition d'additionneurs 1 bit, le module 1 bit doit non seulement fournir une retenue en sortie, mais doit également en accepter une en entrée puisqu'il faut propager la retenue de proche en proche, des bits de poids faible vers les bits de poids fort. C'est pour cette raison que le système ci-dessus est appelé un demi-additionneur.
 

o Additionneur 1 bit cascadable

Un module de N bits est dit cascadable s'il tient compte d'une retenue en entrée (Carry in) et fournit une retenue en sortie (Carry out). Ceci permet de construire des modules d'une largeur de deux fois N bits en cascadant deux modules N bits, de trois fois N bits en cascadant trois modules, etc...

o
La table de vérité d'un additionneur 1 bit cascadable est donnée ci-contre, et correspond au diagramme fonctionnel ci-dessous :
   Cin      A      B      Cout      S   
   0      0      0      0      0   
   0      0      1      0      1   
   0      1      0      0      1   
   0      1      1      1      0   
   1      0      0      0      1   
   1      0      1      1      0   
   1      1      0      1      0   
   1      1      1      1      1   

Pour obtenir un additionneur N bits, il suffit de cascader ce module N fois, en forçant l'entréee Cin du premier module à 0, et en cascadant la sortie Cout à l'entrée Cin d'un module à l'autre. La sortie Cout du dernier module correspond au N+1ème bit de l'additionneur N bits.

Un tel additionneur s'appelle un additionneur à propagation de retenue (ripple carry adder). La propagation de retenue présente un désavantage important qui limite son usage à la mise en cascade d'un faible nombre de modules : le résultat final n'est connu que lorsque la retenue a pu se propager à travers tous les modules, ce qui revient à additionner les temps de transit du signal à travers tous les modules.

1.3.2 Additionneur N bits synchrone

Afin de remédier au problème du temps de propagation de la retenue, il est possible de construire un additionneur N bits directement à partir de la table de vérité. Afin d'illustrer ceci nous nous limiterons à un demi-additionneur 2 bits, pour ne pas inutilement augmenter la complexité du propos.

o Demi-additionneur 2 bits

Un demi-additionneur 2 bits comporte 2 mots d'entrée A et B d'une largeur de 2 bits chacun, un mot de sortie S d'une largeur de deux bits, plus une sortie C qui tient lieu de retenue, ou représente le 3ème bit du résultat.

o La table de vérité :

   A      B      C      S   
   A1A0      B1B0      C      S1S0   
   00      00      0      00   
   00      01      0      01   
   00      10      0      10   
   00      11      0      11   
   01      00      0      01   
   01      01      0      10   
   01      10      0      11   
   01      11      1      00   
   10      00      0      10   
   10      01      0      11   
   10      10      1      00   
   10      11      1      01   
   11      00      0      11   
   11      01      1      00   
   11      10      1      01   
   11      11      1      10   

o Les équations correspondantes sont :

(N.B. L'expression de S1 a été obtenue à l'aide d'une table de Karnaugh)

o Il est bien entendu que l'on peut procéder de même pour concevoir directement (i.e. sans propagation de retenue), n'importe quel demi-additionneur ou même additionneur complet (i.e. admettant une retenue en entrée et donc cascadable) de N bits.

Nous insisterons ici sur le fait que malgré sa complexité, un additionneur est simplement obtenu en juxtaposant des portes logiques. De plus, à tout instant, l'état de ses sorties est uniquement déterminé par la connaissance de l'état de ses entrées : c'est un circuit combinatoire.


Home Up Centrale Lyon
Tous droits réservés
Pour tous renseignements, prière de contacter Daniel Muller

Dernière mise à jour le Jeudi 30 octobre 1997 17:33:47
English version