L'additionneur complet est-il le même additionneur en série? Si non, quelle est la différence entre eux? Et aussi la différence entre l'additionneur parallèle et l'additionneur complet?


Réponse 1:

L'additionneur complet (FA) est un nom qui s'oppose au demi-additionneur (HA).

Le FA additionne deux bits d'entrée (A, B) plus un bit de report (Cin) et sort un bit de résultat (S) et une sortie de report (Cout, image ci-dessous, ignore les valeurs '0' aux sorties).

Le HA additionne deux bits d'entrée (A, B, pas de report d'entrée) et sort un bit de résultat (Sum) et une sortie de report (Carry). (image ci-dessous, ignorez à nouveau les valeurs «0» aux sorties).

Notez qu'un additionneur complet peut être construit avec deux demi-additionneurs et une porte OU.

Pour additionner des entiers positifs avec un certain nombre de bits, vous chaînez un nombre égal d'additionneurs complets, mais le premier additionneur de la chaîne (qui additionne les LSB) peut être un HA car l'entrée de portage initiale est '0'. Cette chaîne d'additionneurs est appelée "additionneur de report d'ondulation" car les changements dans les sorties de report ondulent le long de la chaîne des LSB aux MSB. Je pense que c'est l'additionneur en série dont vous parlez dans la question (la chaîne d'additionneurs est un arrangement en série de blocs). Voici l'image.

La belle propriété de ces additionneurs est qu'ils sont parfaitement modulaires, c'est-à-dire que s'il est nécessaire de additionner des mots avec plus de bits, nous ajoutons simplement plus de FA à la chaîne.

Il existe de nombreuses variantes d'additionneurs de report d'ondulation, tels que l'additionneur d'anticipation de report, l'additionneur de saut de report et l'additionneur de chaîne Manchester (voir http: //users.encs.concordia.ca/~ ....). Le but de ces variations est d'accélérer "l'ondulation" du report le long de la chaîne des additionneurs, car le retard total à la fin limite la vitesse de l'additionneur.

Enfin, l'additionneur parallèle se réfère généralement à un additionneur avec des entrées à n bits, de sorte que lorsqu'il est considéré comme un bloc, il est perçu comme un additionneur de deux mots à n bits en parallèle et génère un mot (n + 1) bits. La réalisation "interne" de l'additionneur peut être l'une quelconque des déjà mentionnées, ou autre.

Les photos ont été prises du circuit Half Adder et Full Adder qui comprend une explication plus approfondie du fonctionnement de la FA et de la HA.


Réponse 2:

Un additionneur complet vous permet d'ajouter trois bits ensemble.

A0 + B0 + Co [C0 étant le report, A0 et B0 deux bits à ajouter]

Si vous mettez en cascade plusieurs additionneurs complets, vous obtenez un additionneur en série (alias Ripple Adder).

par exemple. vous souhaitez ajouter A3A2A1A0 avec B3B2B1B0.

Tout d'abord, A0 + B0 + C0 (Carry-C0 est facultatif) aura lieu, générant sum-S0 ainsi que carry C1.

Le, A1 + B1 + C1 aura lieu générant la somme-S1 ainsi que porter C2.

de cette façon, nous obtiendrons S3S2S1S0 et enfin, Carry C4.

Le problème avec l'additionneur en série est assez évident. Pour faire la somme, il faut attendre le report de l'état précédent. (pour ajouter A3 et B3, il faut C3 comme indiqué dans la figure ci-dessous)

 Parallel Adder (alias Look-ahead Carry unit) essaie d'extrapoler à l'avance le Carry des étapes suivantes et élimine le retard généré en cas d'additionneur en série. Cela se fait en introduisant du matériel supplémentaire. Plus à ce sujet ici-

Adder (électronique)


Réponse 3:

Bonjour, vous pouvez faire un peu plus en utilisant ces schémas:

Vous pouvez également le faire en utilisant des transistors:

Voici le fonctionnement final du projet:

Démonstration YouTube: additionneur 1 bit avec report et exécution

Pour avoir un additionneur complet, vous avez besoin de ce circuit et de trois registres, deux registres pour mémoriser les deux nombres et un pour mettre le résultat. Vous aurez également besoin d'un circuit pour ajouter des bits position à position, par exemple pour deux registres 8 bits, vous pouvez utiliser un registre à décalage pour un seul bit de "1".