• L'addition est une opération très courante dans un microprocesseur. Outre dans l'unité arithmétique, elle sert pour incrémenter le compteur de programme et pour les calculs d'adresses. Il est donc important qu'elle soit optimisée pour être rapide. Malgré la simplicité apparente du problème, il existe de multiples façons de construire des additionneurs efficaces en temps et en nombre de portes logiques utilisées. Semi-additionneur • Ce premier circuit est la brique de base. Il prend en entrée deux bits A et B et calcule la somme S et la retenue C (pour Carry en anglais). Les bits C et S peuvent aussi être vus comme les bits de poids fort et de poids faible de l'écriture sur deux bits de la somme A + B Semi-additionneur • On remarque sur la table de vérité que S est le ou exclusif des deux entrées A et B → S = A ⊕ B • et que C vaut 1 lorsque les deux entrées valent 1, c'est-à-dire C = A . B Semi-additionneur • On remarque sur la table de vérité que S est le ou exclusif des deux entrées A et B → S = A ⊕ B • et que C vaut 1 lorsque les deux entrées valent 1, c'est-à-dire C = A . B Semi-additionneur Additionneur complet 1 bit Pour construire un additionneur sur plusieurs bits, plusieurs additionneurs 1 bit sont mis en cascade. Chacun de ces addionneurs prend en entrée deux bits A et B ainsi que la retenue précédente C0. Il calcule la somme S de ces trois valeurs binaires ainsi que la retenue C1. Comme pour le semi-additionneur, ces bits C1 et S peuvent aussi être vus comme les bits de poids fort et de poids faible de l'écriture sur deux bits de la somme A + B + C0. Cette somme s'écrit justement sur deux bits car elle est comprise entre 0 et 3 Additionneur complet 1 bit On peut remarquer sur la table de vérité que S est le ou exclusif des trois entrées A, B et C0 → S = A ⊕ B ⊕ C0
et que la retenue C1 vaut 1 dès que
deux des trois entrées valent 1, c'est-à-dire C1 = AB + AC0 + BC0 Additionneur complet 1 bit On peut remarquer sur la table de vérité que S est le ou exclusif des trois entrées A, B et C0 → S = A ⊕ B ⊕ C0 et que la retenue C1 vaut 1 dès que deux des trois entrées valent 1, c'est-à-dire C1 = AB + AC0 + BC0