Leçon 8 sur 18

Chapitre 8 — Additionneurs et soustracteurs

Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, Licence

Finalité du chapitre

Comprendre, concevoir et valider les circuits arithmétiques élémentaires permettant d’additionner ou de soustraire des nombres binaires, depuis le traitement d’un seul bit jusqu’aux opérations parallèles sur plusieurs bits.

Présentation du chapitre

L’addition et la soustraction constituent les opérations arithmétiques fondamentales de tout système numérique. Les processeurs, microcontrôleurs, calculateurs, automates et systèmes embarqués les exécutent au moyen de réseaux de portes logiques appelés circuits arithmétiques combinatoires.

Ce chapitre commence par le demi-additionneur, qui additionne deux bits sans retenue entrante. Il introduit ensuite l’additionneur complet, capable de tenir compte d’une retenue provenant d’un rang inférieur. L’association de plusieurs additionneurs complets permet de traiter des mots binaires de plusieurs bits. La même logique est ensuite appliquée à la soustraction, directement avec des soustracteurs ou indirectement par le complément à 2.

L’objectif n’est pas seulement de mémoriser les tables de vérité. Il s’agit de comprendre comment les équations sont obtenues, comment les retenues ou les emprunts se propagent et comment les délais physiques influencent la rapidité du calcul.

Objectifs pédagogiques

À la fin du chapitre, l’étudiant sera capable de…

Indicateur de maîtrise

expliquer la différence entre somme, retenue et emprunt

les rôles des sorties sont correctement interprétés

concevoir un demi-additionneur

la table, les équations et le schéma sont cohérents

analyser un additionneur complet

les huit combinaisons sont traitées sans erreur

associer plusieurs additionneurs complets

les retenues sont chaînées dans le bon ordre

évaluer le retard d’un additionneur parallèle

le chemin critique est correctement identifié

concevoir un demi-soustracteur et un soustracteur complet

les différences et emprunts sont correctement calculés

réaliser A−B par complément à 2

l’inversion de B et l’ajout de 1 sont correctement appliqués

détecter retenue, emprunt et dépassement

les indicateurs sont distingués selon le type de nombres

 

Prérequis

  • connaître les systèmes binaire et hexadécimal ainsi que les opérations élémentaires en base 2 ;
  • savoir utiliser les portes NON, ET, OU, XOR, NAND et NOR ;
  • savoir établir une table de vérité et une expression logique ;
  • maîtriser les lois de Boole et les méthodes élémentaires de simplification ;
  • connaître le complément à 1 et le complément à 2.

Organisation du chapitre

Partie

Contenu principal

Production attendue

8.1

demi-additionneur

addition de deux bits et génération de la retenue

8.2

additionneur complet

prise en compte de la retenue entrante

8.3

additionneur parallèle

addition de mots binaires et analyse du délai

8.4

soustracteurs

différence, emprunt et complément à 2

TD et activité

conception, simulation et comparaison

validation complète de circuits arithmétiques

 

Figure 1 — Progression des blocs arithmétiques étudiés dans le chapitre.


 

 

8.1. Demi-additionneur

8.1.1. Rôle et principe

Le demi-additionneur, ou half adder, additionne deux bits A et B. Il produit deux sorties distinctes : le bit de somme S et le bit de retenue C. Il est qualifié de « demi » parce qu’il ne possède pas d’entrée de retenue provenant d’un rang précédent.

Idée essentielle

L’addition de deux bits peut produire une valeur comprise entre 0 et 2. Deux bits de sortie sont donc nécessaires : S représente le poids 2⁰ et C représente le poids 2¹.

8.1.2. Entrées

Les deux entrées A et B représentent les bits de même poids de deux nombres binaires. Chaque entrée peut prendre la valeur 0 ou 1. Le circuit doit donc traiter quatre combinaisons possibles.

A

B

Interprétation

0

0

aucun bit actif

0

1

seul B est actif

1

0

seul A est actif

1

1

les deux bits sont actifs

 

8.1.3. Sortie somme

La sortie S contient le bit de poids faible du résultat. Elle vaut 1 lorsque exactement une des deux entrées vaut 1. Ce comportement correspond à la fonction OU exclusif XOR.

S = A ⊕ B

La somme est égale à 1 lorsque A et B sont différents.

8.1.4. Sortie retenue

La sortie C, appelée retenue ou carry, vaut 1 lorsque l’addition de A et B produit la valeur décimale 2, c’est-à-dire uniquement lorsque A=1 et B=1. Elle correspond donc à une fonction ET.

C = A · B

La retenue est transmise au rang immédiatement supérieur.

8.1.5. Table de vérité

A

B

Addition

C

S

Résultat CS

0

0

0+0=0

0

0

00₂

0

1

0+1=1

0

1

01₂

1

0

1+0=1

0

1

01₂

1

1

1+1=2

1

0

10₂

 

La lecture du résultat doit respecter l’ordre CS : C est le bit de poids 2¹ et S celui de poids 2⁰. Pour A=B=1, le résultat est donc 10₂, soit 2₁₀.

8.1.6. Équations et simplification

À partir de la table de vérité, la somme possède les mintermes correspondant aux lignes 01 et 10 :

S = ¬A·B + A·¬B = A ⊕ B

La retenue possède un seul minterme, celui de la ligne 11 :

C = A·B

8.1.7. Schéma logique et chronogramme

Figure 2 — Demi-additionneur réalisé avec une porte XOR et une porte ET.

Le chronogramme confirme que S change à chaque fois que les entrées deviennent différentes, alors que C n’est active que pendant les intervalles où A et B valent simultanément 1. Dans un circuit réel, ces changements apparaissent après le temps de propagation des portes.

8.1.8. Exemple d’application

Considérons le bit de poids faible de l’addition 1011₂ + 0111₂. Au rang 0, A₀=1 et B₀=1. Le demi-additionneur fournit S₀=0 et C₁=1. Cette retenue doit être prise en compte au rang 1 ; un demi-additionneur ne suffit donc plus pour les rangs suivants.

Limite du demi-additionneur

Il convient uniquement au premier rang lorsque la retenue entrante est garantie nulle. Pour un rang quelconque, il faut utiliser un additionneur complet.


 

 

8.2. Additionneur complet

8.2.1. Nécessité de la retenue d’entrée

Dans une addition sur plusieurs bits, chaque rang reçoit les deux bits Aᵢ et Bᵢ ainsi qu’une retenue Cᵢ provenant du rang inférieur. L’additionneur complet, ou full adder, traite ces trois entrées et produit la somme Sᵢ ainsi que la retenue Cᵢ₊₁ destinée au rang supérieur.

Aᵢ + Bᵢ + Cᵢ  →  Sᵢ et Cᵢ₊₁

8.2.2. Entrées et sorties

Symbole

Nom

Rôle

A

premier bit

bit du premier opérande au rang considéré

B

deuxième bit

bit du deuxième opérande au même rang

Cᵢₙ

retenue entrante

retenue reçue du rang inférieur

S

somme

bit de résultat au rang courant

Cₒᵤₜ

retenue sortante

retenue transmise au rang supérieur

 

8.2.3. Table de vérité

A

B

Cᵢₙ

Somme décimale

Cₒᵤₜ

S

0

0

0

0

0

0

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

2

1

0

1

0

0

1

0

1

1

0

1

2

1

0

1

1

0

2

1

0

1

1

1

3

1

1

 

La sortie S vaut 1 lorsque le nombre de 1 en entrée est impair. La retenue Cₒᵤₜ vaut 1 lorsqu’au moins deux entrées valent 1.

8.2.4. Équation de la somme

Les quatre lignes donnant S=1 correspondent à la fonction de parité impaire sur trois variables. L’écriture compacte est :

S = A ⊕ B ⊕ Cᵢₙ

La propriété associative du XOR permet de calculer d’abord S₁=A⊕B puis S=S₁⊕Cᵢₙ.

8.2.5. Équation de la retenue

La retenue vaut 1 si A et B valent 1, ou si la retenue entrante vaut 1 en même temps que la somme partielle A⊕B. Deux écritures équivalentes sont couramment utilisées :

Cₒᵤₜ = A·B + Cᵢₙ·(A ⊕ B)

Cₒᵤₜ = A·B + A·Cᵢₙ + B·Cᵢₙ

Cette seconde forme exprime une fonction de majorité : au moins deux des trois entrées valent 1.

8.2.6. Réalisation avec deux demi-additionneurs

Figure 3 — Décomposition d’un additionneur complet en deux demi-additionneurs et une porte OU.

1. Le premier demi-additionneur additionne A et B et produit S₁ et C₁.

2. Le second demi-additionneur additionne S₁ et Cᵢₙ et produit S et C₂.

3. La porte OU combine C₁ et C₂ pour produire Cₒᵤₜ.

8.2.7. Exemple de calcul

Supposons A=1, B=0 et Cᵢₙ=1. La somme arithmétique vaut 1+0+1=2=10₂. L’additionneur doit donc fournir S=0 et Cₒᵤₜ=1.

Étape

Calcul

Valeur

somme partielle

S₁=A⊕B=1⊕0

1

retenue partielle

C₁=A·B=1·0

0

somme finale

S=S₁⊕Cᵢₙ=1⊕1

0

seconde retenue

C₂=S₁·Cᵢₙ=1·1

1

retenue finale

Cₒᵤₜ=C₁+C₂=0+1

1

 

8.3. Additionneur parallèle

8.3.1. Addition sur plusieurs bits

Un additionneur parallèle sur n bits associe n additionneurs complets, un par rang. Tous les couples de bits Aᵢ et Bᵢ sont présentés simultanément aux étages. Les retenues, en revanche, sont transmises d’un étage au suivant.

Pour le rang de poids faible, la retenue initiale C₀ est généralement fixée à 0 lors d’une addition simple. L’étage i produit Sᵢ et Cᵢ₊₁. Le dernier étage fournit Cₙ, qui peut représenter un bit supplémentaire du résultat non signé.

Figure 4 — Architecture d’un additionneur parallèle 4 bits à propagation de retenue.

8.3.2. Exemple complet sur 4 bits

Calculons 1011₂ + 0111₂, soit 11₁₀ + 7₁₀. La retenue initiale vaut C₀=0.

Rang i

Aᵢ

Bᵢ

Cᵢ

Total

Sᵢ

Cᵢ₊₁

0110201
1111311
2011201
3101201

 

1011₂ + 0111₂ = 1 0010₂ = 18₁₀

Le bit C₄ devient le cinquième bit du résultat non signé.

8.3.3. Propagation de la retenue

Dans l’architecture dite ripple-carry, chaque étage doit attendre la valeur correcte de la retenue produite par l’étage précédent. Une modification des bits de poids faible peut donc se propager jusqu’au bit de poids fort.

Chemin critique

Le chemin critique est le trajet logique dont le retard cumulé est le plus grand. Dans un additionneur à propagation de retenue, il suit généralement la chaîne C₀ → C₁ → … → Cₙ.

8.3.4. Retard de calcul

Une porte logique réelle possède un temps de propagation tₚ. Si la retenue traverse plusieurs étages, les sorties intermédiaires peuvent prendre brièvement des valeurs incorrectes avant de se stabiliser. Le modèle simplifié suivant permet une première estimation :

Tcritique ≈ n · tretendue

La constante exacte dépend de la structure interne de chaque additionneur complet.

Figure 5 — Accumulation simplifiée des retards le long de la chaîne de retenue.

Cette relation explique pourquoi un additionneur ripple-carry est simple et économique mais devient lent lorsque n augmente. Des architectures plus rapides, comme l’anticipation de retenue, déterminent plusieurs retenues en parallèle au prix d’un circuit plus complexe.

8.3.5. Signification de la retenue finale

Pour des nombres non signés, Cₙ=1 indique que la somme nécessite n+1 bits. Si le résultat est limité à n bits, cette situation constitue un dépassement de capacité non signé.

Pour des nombres signés en complément à 2, la retenue finale ne suffit pas à détecter le dépassement. Un overflow signé apparaît lorsque deux nombres de même signe produisent un résultat de signe opposé. Une méthode matérielle consiste à comparer la retenue entrant dans le bit de signe et celle qui en sort.

V = Cₙ₋₁ ⊕ Cₙ

V=1 signale un dépassement signé en complément à 2.

Type de données

Indicateur pertinent

Interprétation

non signé

Cₙ

la somme dépasse la plage 0 à 2ⁿ−1

signé complément à 2

V=Cₙ₋₁⊕Cₙ

le résultat sort de la plage −2ⁿ⁻¹ à 2ⁿ⁻¹−1

 


 

 

8.4. Soustracteurs

8.4.1. Principe de la soustraction binaire

La soustraction binaire A−B suit les mêmes règles que la soustraction décimale. Lorsque le bit A du rang courant est inférieur au bit B, le rang doit emprunter une unité au rang supérieur. En base 2, cet emprunt correspond à 10₂, soit 2₁₀.

A

B

Opération

Différence D

Emprunt E

0

0

0−0

0

0

0

1

0−1 : emprunt nécessaire

1

1

1

0

1−0

1

0

1

1

1−1

0

0

 

8.4.2. Demi-soustracteur

Le demi-soustracteur traite deux bits A et B sans emprunt entrant. Il produit la différence D et l’emprunt sortant E.

D = A ⊕ B

E = ¬A · B

Un emprunt est nécessaire uniquement pour 0−1.

A

B

D

E

0

0

0

0

0

1

1

1

1

0

1

0

1

1

0

0

 

8.4.3. Soustracteur complet

Un soustracteur complet traite les bits A et B ainsi qu’un emprunt entrant Eᵢₙ provenant du rang inférieur. Il produit la différence D et l’emprunt Eₒᵤₜ destiné au rang supérieur.

A

B

Eᵢₙ

D

Eₒᵤₜ

0

0

0

0

0

0

0

1

1

1

0

1

0

1

1

0

1

1

0

1

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

1

1

1

 

D = A ⊕ B ⊕ Eᵢₙ

Eₒᵤₜ = ¬A·B + Eᵢₙ·¬(A ⊕ B)

Eₒᵤₜ = ¬A·B + ¬A·Eᵢₙ + B·Eᵢₙ

Forme développée équivalente.

Figure 6 — Structures d’un demi-soustracteur et d’un soustracteur complet.

8.4.4. Exemple de soustraction avec emprunts

Calculons 1010₂−0111₂, soit 10₁₀−7₁₀. La soustraction est effectuée du bit de poids faible vers le bit de poids fort.

Rang i

Aᵢ

Bᵢ

Eᵢ

Dᵢ

Eᵢ₊₁

0

0

1

0

1

1

1

1

1

1

1

1

2

0

1

1

0

1

3

1

0

1

0

0

 

1010₂ − 0111₂ = 0011₂ = 3₁₀

8.4.5. Soustraction par complément à 2

Dans la plupart des unités arithmétiques, une soustraction n’est pas réalisée par une chaîne distincte de soustracteurs. Elle est transformée en addition grâce au complément à 2 :

A − B = A + (¬B + 1)

1. Inverser chaque bit de B pour obtenir le complément à 1 ¬B.

2. Ajouter 1 afin d’obtenir le complément à 2 de B.

3. Additionner ce complément à A avec un additionneur parallèle.

4. Conserver les n bits de résultat ; interpréter correctement la retenue et les indicateurs.

Exemple sur 4 bits

Pour calculer 1010₂−0111₂ :

Étape

Valeur

B

0111

complément à 1 de B

1000

complément à 2 de B

1001

addition

1010 + 1001 = 1 0011

résultat sur 4 bits

0011

 

La retenue finale est ignorée dans le résultat sur 4 bits. Elle vaut 1, ce qui signifie, pour cette soustraction non signée, qu’aucun emprunt global n’est nécessaire et que A≥B.

8.4.6. Additionneur-soustracteur commandé

Un signal de mode M permet d’utiliser le même additionneur pour les deux opérations. Chaque bit Bᵢ traverse une porte XOR commandée par M et la retenue initiale reçoit également M.

Mode M

B* = B ⊕ M

C₀

Opération réalisée

0

B

0

A+B

1

¬B

1

A+¬B+1=A−B

 

Figure 7 — Principe d’un additionneur-soustracteur par complément à 2.

8.4.7. Emprunt, retenue et dépassement

Situation

Signal observé

Conclusion

soustraction non signée avec complément à 2

Cₙ=1

pas d’emprunt global ; A≥B

soustraction non signée avec complément à 2

Cₙ=0

emprunt global ; A<B

soustraction signée

V=1

résultat hors de la plage signée

résultat négatif signé

bit de signe=1

interpréter le mot en complément à 2

 

Attention

La retenue Cₙ, l’emprunt et le dépassement signé sont des notions différentes. Leur interprétation dépend du codage choisi et du caractère signé ou non signé des opérandes.


 

 

Méthode générale d’analyse d’un circuit arithmétique

1. Identifier le nombre de bits des opérandes et préciser s’ils sont signés ou non signés.

2. Repérer les entrées de données, la retenue ou l’emprunt entrant, ainsi que les signaux de commande.

3. Établir la table de vérité du bloc élémentaire lorsque cela est nécessaire.

4. Déterminer les équations de somme ou de différence et celles de retenue ou d’emprunt.

5. Vérifier le sens de propagation entre les rangs, du poids faible vers le poids fort.

6. Calculer plusieurs cas tests : zéro, maximum, génération et propagation de retenue, résultat négatif.

7. Analyser le chemin critique et attendre la stabilisation avant de valider les sorties.

8. Interpréter séparément le bit de résultat, la retenue finale et le dépassement signé.

Comparaison des blocs étudiés

Bloc

Entrées

Sorties

Fonction principale

Limitation

demi-additionneur

A, B

S, C

addition de deux bits

pas de retenue entrante

additionneur complet

A, B, Cᵢₙ

S, Cₒᵤₜ

addition d’un rang quelconque

un seul bit

additionneur parallèle

deux mots n bits, C₀

mot somme, Cₙ

addition multi-bit

retard de propagation

demi-soustracteur

A, B

D, E

soustraction de deux bits

pas d’emprunt entrant

soustracteur complet

A, B, Eᵢₙ

D, Eₒᵤₜ

soustraction d’un rang

un seul bit

additionneur-soustracteur

A, B, M

résultat, indicateurs

addition ou soustraction

interprétation des indicateurs

 

Erreurs fréquentes

Erreur

Conséquence

Correction

lire SC au lieu de CS pour le demi-additionneur

résultat binaire inversé

placer la retenue au poids supérieur

oublier Cᵢₙ dans un rang intermédiaire

somme multi-bit incorrecte

utiliser un additionneur complet

propager la retenue dans le mauvais sens

chaînage incohérent

du poids faible vers le poids fort

confondre Cₙ et overflow signé

détection erronée du dépassement

utiliser V=Cₙ₋₁⊕Cₙ pour les signés

oublier le +1 du complément à 2

réalisation de A−B−1

fixer C₀=1 en mode soustraction

valider trop tôt les sorties

lecture d’un état transitoire

attendre le retard du chemin critique

 

Activité pratique — Additionneur-soustracteur 4 bits

Objectifs

  • réaliser un additionneur complet à partir de portes logiques ;
  • associer quatre étages pour former un additionneur parallèle ;
  • ajouter le signal de mode M afin de réaliser l’addition et la soustraction ;
  • observer la propagation des retenues et mesurer le temps de stabilisation ;
  • vérifier les indicateurs de retenue et de dépassement signé.

Matériel ou logiciel

  • Logisim Evolution, Digital, Proteus, Multisim ou une plaque d’essai avec circuits logiques ;
  • interrupteurs ou générateurs logiques pour A, B et M ;
  • LED ou sondes logiques pour les bits de résultat et les indicateurs ;
  • oscilloscope logique ou chronogramme du simulateur pour l’étude temporelle.

Déroulement

1. Construire et valider un demi-additionneur avec les quatre combinaisons d’entrée.

2. Construire un additionneur complet et vérifier ses huit combinaisons.

3. Associer quatre additionneurs complets en reliant Cᵢ₊₁ à l’entrée Cᵢₙ du rang suivant.

4. Ajouter une porte XOR sur chaque bit B et relier le mode M à C₀.

5. Tester 5+3, 11+7, 10−7, 3−5, 7+7 en signé sur 4 bits et −8−1.

6. Relever le résultat, C₄, le bit de signe et V, puis expliquer chaque cas.

7. Introduire des retards de porte dans le simulateur et observer les transitions intermédiaires.

Compte rendu attendu

Élément

Exigence

schémas

blocs clairement nommés et connexions de retenue visibles

tables de test

opérandes, mode, résultat attendu, résultat obtenu, indicateurs

chronogramme

au moins un cas de propagation complète de la retenue

analyse

distinction claire entre retenue non signée et dépassement signé

conclusion

limites de l’architecture ripple-carry et proposition d’amélioration

 


 

 

Travaux dirigés

TD 1 — Demi-additionneur

À partir de l’addition de deux bits A et B :

1. établir la table de vérité de S et C ;

2. écrire les formes canoniques de S et C ;

3. simplifier les deux fonctions ;

4. réaliser le circuit uniquement avec des portes NAND ;

5. déterminer les sorties pour A=1 et B=1.

TD 2 — Additionneur complet

1. établir la table de vérité de S et Cₒᵤₜ ;

2. montrer que S=A⊕B⊕Cᵢₙ ;

3. montrer que Cₒᵤₜ=A·B+A·Cᵢₙ+B·Cᵢₙ ;

4. identifier les combinaisons qui génèrent une retenue ;

5. réaliser le circuit avec deux demi-additionneurs.

TD 3 — Addition parallèle

Effectuer les additions suivantes sur 4 bits et préciser S₃S₂S₁S₀, C₄ et le dépassement signé V :

Cas

A

B

Interprétation demandée

a

0101

0011

non signé puis signé

b

1011

0111

non signé

c

0111

0001

signé

d

1000

1111

signé

e

1111

0001

non signé

 

TD 4 — Retard de propagation

Un additionneur ripple-carry 8 bits est réalisé avec des étages dont le retard maximal de propagation de retenue est de 12 ns. Le retard entre la stabilisation de la retenue entrante et celle de la somme du dernier rang est de 8 ns.

1. estimer le retard maximal jusqu’à C₈ ;

2. estimer le retard maximal jusqu’à S₇ ;

3. déterminer une fréquence maximale prudente si le résultat doit être stable avant le front d’horloge suivant ;

4. expliquer pourquoi l’estimation est pessimiste pour certaines données.

TD 5 — Soustracteurs

1. établir la table de vérité du demi-soustracteur ;

2. établir celle du soustracteur complet ;

3. vérifier D=A⊕B⊕Eᵢₙ ;

4. simplifier l’expression de Eₒᵤₜ ;

5. effectuer 1101₂−0110₂ avec une chaîne de soustracteurs complets.

TD 6 — Complément à 2

Réaliser sur 8 bits les opérations suivantes et indiquer le résultat décimal, C₈ et V :

Opération

Codage

45−18

non signé

18−45

non signé puis signé

60+70

signé

−50−40

signé

−128−1

signé

 

TD 7 — Conception d’un additionneur-soustracteur

On souhaite concevoir un bloc 4 bits possédant les entrées A, B, un mode M et les sorties R, C et V. M=0 commande l’addition et M=1 la soustraction.

1. donner l’équation des bits B* appliqués à l’additionneur ;

2. donner la valeur de la retenue initiale C₀ ;

3. dessiner le schéma de principe ;

4. définir C en addition et en soustraction non signée ;

5. donner l’équation de V ;

6. proposer six vecteurs de test couvrant les cas normaux et les dépassements.


 

 

Synthèse du chapitre

À retenir

Le demi-additionneur produit S=A⊕B et C=A·B. L’additionneur complet ajoute la retenue entrante. Une chaîne de n additionneurs forme un additionneur parallèle, dont la vitesse est limitée par la propagation des retenues. La soustraction peut être réalisée directement avec des soustracteurs ou transformée en addition par A−B=A+¬B+1.

Notion

Relation fondamentale

Interprétation

demi-additionneur

S=A⊕B ; C=A·B

deux bits sans retenue entrante

additionneur complet

S=A⊕B⊕Cᵢₙ

parité impaire des trois entrées

retenue complète

Cₒᵤₜ=A·B+Cᵢₙ(A⊕B)

au moins deux entrées actives

demi-soustracteur

D=A⊕B ; E=¬A·B

emprunt uniquement pour 0−1

soustracteur complet

D=A⊕B⊕Eᵢₙ

prise en compte de l’emprunt entrant

complément à 2

A−B=A+¬B+1

réutilisation de l’additionneur

overflow signé

V=Cₙ₋₁⊕Cₙ

dépassement de la plage signée

 

Glossaire

Terme

Définition

retenue — carry

bit transmis au rang supérieur lorsqu’une somme locale est au moins égale à 2

emprunt — borrow

unité prise au rang supérieur lorsque le minuende local est insuffisant

demi-additionneur

circuit additionnant deux bits sans retenue entrante

additionneur complet

circuit additionnant deux bits et une retenue entrante

ripple-carry

architecture dans laquelle la retenue se propage séquentiellement entre les étages

chemin critique

trajet présentant le retard de propagation maximal

complément à 2

codage des entiers signés et méthode permettant de transformer une soustraction en addition

overflow

dépassement de la plage représentable pour des nombres signés

carry-out

retenue sortant du bit de poids fort

additionneur-soustracteur

circuit partagé réalisant les deux opérations selon un signal de mode

 

Exercices d’entraînement

Exercice 1 — Lecture de tables

Compléter les sorties S et C d’un demi-additionneur pour la séquence d’entrées suivante :

Intervalle

A

B

S

C

t₀

0

0

 

 

t₁

0

1

 

 

t₂

1

1

 

 

t₃

1

0

 

 

t₄

1

1

 

 

 

Exercice 2 — Formes logiques

À partir de la table de vérité de l’additionneur complet :

  • écrire la forme canonique SOP de S ;
  • écrire la forme canonique SOP de Cₒᵤₜ ;
  • simplifier les deux expressions ;
  • indiquer le nombre de portes XOR, ET et OU d’une réalisation avec deux demi-additionneurs.

Exercice 3 — Calculs sur 5 bits

Effectuer les opérations suivantes en indiquant toutes les retenues intermédiaires :

Calcul

Type

10101+00111

non signé

11100+10101

non signé

01111+00001

signé

10000+11111

signé

 

Exercice 4 — Dimensionnement temporel

Un étage d’additionneur complet possède un retard de retenue de 9 ns et un retard de somme de 6 ns. Estimer le retard maximal d’un additionneur ripple-carry 16 bits jusqu’à la retenue finale et jusqu’au bit de somme de poids fort.

Exercice 5 — Soustraction directe

Réaliser 10010₂−01101₂ avec des soustracteurs complets. Présenter, pour chaque rang, Aᵢ, Bᵢ, Eᵢ, Dᵢ et Eᵢ₊₁.

Exercice 6 — Complément à 2

Sur 8 bits, calculer : 83−29, 29−83, −24+11, 100+50 et −100−40. Donner le mot résultat et préciser si un dépassement signé se produit.

Exercice 7 — Détection d’erreurs de conception

Un étudiant réalise A−B en inversant les bits de B mais fixe C₀ à 0. Un autre utilise Cₙ comme indicateur d’overflow signé. Expliquer les deux erreurs et proposer les corrections.

Exercice 8 — Synthèse

Concevoir un bloc 3 bits qui calcule A+B lorsque M=0 et A−B lorsque M=1. Fournir le schéma de principe, les équations de commande, la signification de la retenue finale et quatre tests pertinents.

Auto-évaluation

Affirmation

Oui

À revoir

Je distingue la somme de la retenue.

Je sais obtenir les équations d’un demi-additionneur.

Je sais analyser les huit lignes d’un additionneur complet.

Je sais chaîner des additionneurs complets.

Je sais identifier le chemin critique.

Je sais établir les équations d’un soustracteur complet.

Je sais réaliser une soustraction par complément à 2.

Je distingue retenue finale et overflow signé.

 


 

 

Corrigés des travaux dirigés et exercices

Corrigé du TD 1

Les sorties du demi-additionneur sont S=¬A·B+A·¬B=A⊕B et C=A·B. Une réalisation NAND utilise A NAND B comme signal intermédiaire, puis deux NAND pour les termes du XOR et une NAND finale. Le signal N₁=A NAND B est inversé par une cinquième NAND pour obtenir C=N₁ NAND N₁=A·B. Pour A=B=1, S=0 et C=1.

Corrigé du TD 2

La somme est active pour 001, 010, 100 et 111, ce qui correspond à la parité impaire : S=A⊕B⊕Cᵢₙ. La retenue est active lorsque au moins deux entrées valent 1 : Cₒᵤₜ=A·B+A·Cᵢₙ+B·Cᵢₙ. La décomposition en deux demi-additionneurs conduit à Cₒᵤₜ=A·B+Cᵢₙ(A⊕B).

Corrigé du TD 3

Cas

Calcul

S sur 4 bits

C₄

V

Interprétation

a

0101+0011=1000

1000

0

1

8 non signé ; overflow signé car 5+3 dépasse +7

b

1011+0111=1 0010

0010

1

0

18 non signé

c

0111+0001=1000

1000

0

1

overflow signé : +7+1

d

1000+1111=1 0111

0111

1

1

overflow signé : −8+(−1)

e

1111+0001=1 0000

0000

1

0

16 non signé, résultat tronqué à 0

 

Corrigé du TD 4

La retenue finale traverse huit étages : T(C₈)≈8×12=96 ns. Pour S₇, la retenue doit traverser sept étages puis le dernier calcul de somme : T(S₇)≈7×12+8=92 ns. Une période supérieure au pire cas, par exemple 100 ns avec une faible marge, correspond à environ 10 MHz ; une conception réelle ajoute les temps de setup, l’incertitude d’horloge et une marge de sécurité. Certaines données ne propagent pas la retenue sur toute la chaîne, d’où un temps réel plus court.

Corrigé du TD 5

Pour le demi-soustracteur, D=A⊕B et E=¬A·B. Pour le soustracteur complet, D=A⊕B⊕Eᵢₙ et Eₒᵤₜ=¬A·B+¬A·Eᵢₙ+B·Eᵢₙ. Le calcul 1101₂−0110₂ donne 0111₂, soit 7₁₀, sans emprunt global.

Corrigé du TD 6

Opération

Résultat 8 bits

Décimal

C₈

V

45−18

00011011

27

1

0

18−45

11100101

−27 en signé ; emprunt en non signé

0

0

60+70

10000010

−126 codé, mais résultat attendu +130

0

1

−50−40

10100110

−90

1

0

−128−1

01111111

+127 codé, résultat attendu −129

1

1

 

Corrigé du TD 7

Les bits appliqués au second opérande sont Bᵢ*=Bᵢ⊕M et la retenue initiale vaut C₀=M. Le résultat est donc A+B lorsque M=0 et A+¬B+1 lorsque M=1. En addition non signée, C=C₄. En soustraction non signée, on peut définir l’emprunt global comme ¬C₄. Le dépassement signé est V=C₃⊕C₄. Les tests doivent inclure zéro, retenue complète, emprunt, résultat négatif et dépassements positifs et négatifs.


 

 

Corrigés des exercices

Exercice 1

Intervalle

A

B

S

C

t₀

0

0

0

0

t₁

0

1

1

0

t₂

1

1

0

1

t₃

1

0

1

0

t₄

1

1

0

1

 

Exercice 2

S=Σm(1,2,4,7)=¬A·¬B·Cᵢₙ+¬A·B·¬Cᵢₙ+A·¬B·¬Cᵢₙ+A·B·Cᵢₙ=A⊕B⊕Cᵢₙ. Cₒᵤₜ=Σm(3,5,6,7)=A·B+A·Cᵢₙ+B·Cᵢₙ. La réalisation par deux demi-additionneurs utilise deux XOR, deux ET et une OU.

Exercice 3

Calcul

Résultat complet

C final

V signé

10101+00111

11100

0

0

11100+10101

1 10001

1

0

01111+00001

10000

0

1

10000+11111

1 01111

1

1

 

Exercice 4

Retenue finale : 16×9=144 ns. Somme de poids fort : 15×9+6=141 ns, selon le modèle simplifié proposé.

Exercice 5

10010₂−01101₂=00101₂. Les emprunts successifs sont E₀=0, E₁=1, E₂=0, E₃=1, E₄=1, E₅=0 selon le détail des rangs ; l’emprunt global final est nul.

Exercice 6

Opération

Mot 8 bits

Résultat attendu

V

83−29

00110110

54

0

29−83

11001010

−54

0

−24+11

11110011

−13

0

100+50

10010110

150 hors plage signée

1

−100−40

01110100

−140 hors plage signée

1

 

Exercice 7

Inverser B sans ajouter 1 réalise A+¬B=A−B−1. La correction consiste à fixer C₀=1 en mode soustraction. La retenue finale ne détecte pas l’overflow signé ; il faut utiliser V=Cₙ₋₁⊕Cₙ ou vérifier un changement incohérent du signe lors de l’addition de deux opérandes de même signe.

Exercice 8

Le bloc comprend trois XOR commandés par M devant les entrées B, trois additionneurs complets chaînés et C₀=M. Pour M=0, B*=B et C₀=0. Pour M=1, B*=¬B et C₀=1. En soustraction non signée, l’emprunt global vaut ¬C₃. Les tests peuvent être 2+3=5, 7+1 avec retenue, 5−2=3 et 2−5 donnant un résultat négatif en complément à 2.

Conclusion

Les additionneurs et soustracteurs montrent comment une opération arithmétique apparemment complexe se construit à partir de fonctions logiques élémentaires. Le demi-additionneur établit le lien entre XOR, somme et retenue. L’additionneur complet généralise ce principe à une chaîne multi-bit, tandis que le complément à 2 permet de réutiliser le même matériel pour la soustraction.

La correction fonctionnelle doit toujours être complétée par une analyse temporelle. Dans une architecture à retenue propagée, les sorties peuvent être transitoirement incorrectes jusqu’à la stabilisation du chemin critique. Cette contrainte conduit aux architectures arithmétiques rapides étudiées dans les systèmes numériques avancés.