Additionneur (électronique) - Adder (electronics)
Fait partie d'une série sur | |||||||
Circuits logiques arithmétiques | |||||||
---|---|---|---|---|---|---|---|
Navigation Rapide | |||||||
Composants
|
|||||||
Voir également |
|||||||
Un additionneur est un circuit numérique qui effectue l' addition de nombres. Dans de nombreux ordinateurs et autres types de processeurs, des additionneurs sont utilisés dans les unités arithmétiques et logiques ou ALU . Ils sont également utilisés dans d'autres parties du processeur, où ils sont utilisés pour calculer des adresses , des indices de table, des opérateurs d'incrémentation et de décrémentation et des opérations similaires.
Bien que des additionneurs puissent être construits pour de nombreuses représentations de nombres , telles que les nombres décimaux codés en binaire ou en excès-3 , les additionneurs les plus courants fonctionnent sur des nombres binaires . Dans les cas où le complément à deux ou le complément à un est utilisé pour représenter des nombres négatifs , il est trivial de modifier un additionneur en un additionneur-soustracteur . D'autres représentations de nombres signés nécessitent plus de logique autour de l'additionneur de base.
Additionneurs binaires
Demi additionneur
Le demi-additionneur ajoute deux chiffres binaires simples A et B . Il a deux sorties, sum ( S ) et carry ( C ). Le signal de retenue représente un débordement dans le chiffre suivant d'une addition à plusieurs chiffres. La valeur de la somme est 2 C + S . La conception de demi-additionneur la plus simple, illustrée à droite, intègre une porte XOR pour S et une porte ET pour C . La logique booléenne pour la somme (dans ce cas S ) sera A′B + AB′ alors que pour le report ( C ) sera AB . Avec l'ajout d'une porte OU pour combiner leurs sorties de report, deux demi-additionneurs peuvent être combinés pour former un additionneur complet. Le demi-additionneur ajoute deux bits d'entrée et génère une retenue et une somme, qui sont les deux sorties d'un demi-additionneur. Les variables d' entrée d'un demi-additionneur sont appelées bits d'augend et addend. Les variables de sortie sont la somme et le report. La table de vérité pour le demi-additionneur est :
Contributions Les sorties UNE B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0
Additionneur complet
Un additionneur complet ajoute des nombres binaires et prend en compte les valeurs transportées aussi bien à l'intérieur qu'à l'extérieur. Un additionneur complet d'un bit ajoute trois nombres d'un bit, souvent écrits sous la forme A , B et C dans ; A et B sont les opérandes, et C in est un peu reporté de l'étape précédente moins significative. L'additionneur complet est généralement un composant d'une cascade d'additionneurs, qui ajoutent des nombres binaires de 8, 16, 32, etc. Le circuit produit une sortie à deux bits. Portée de sortie et somme typiquement représentées par les signaux C out et S , où la somme est égale à 2 C out + S .
Un additionneur complet peut être implémenté de différentes manières, par exemple avec un circuit de niveau transistor personnalisé ou composé d'autres portes. Un exemple est mise en œuvre avec S = A ⊕ B ⊕ C dans et C out = ( A ⋅ B ) + ( C en ⋅ ( A ⊕ B )) .
Dans cette mise en œuvre, la porte OU finale avant la sortie de report peut être remplacée par une porte OU exclusif sans altérer la logique résultante. L'utilisation de seulement deux types de portes est pratique si le circuit est mis en œuvre en utilisant de simples puces de circuit intégré qui ne contiennent qu'un seul type de porte par puce.
Un additionneur complet peut également être construit à partir de deux demi - additionneurs en connectant A et B à l'entrée d'une demi - additionneur, puis prenant sa somme-sortie S comme l' une des entrées du second demi - additionneur et C en tant que son autre entrée, et enfin les sorties de retenue des deux demi-additionneurs sont reliées à une porte OU. La somme-sortie du second demi - additionneur est la sortie de somme finale ( S ) de l'additionneur complet et la sortie de la porte OU est la sortie de report final ( C out ). Le chemin critique d'un additionneur complet traverse les deux portes XOR et se termine au bit de somme s . En supposant qu'une porte XOR prenne 1 retards pour se terminer, le retard imposé par le chemin critique d'un additionneur complet est égal à
Le chemin critique d'un report passe par une porte XOR dans l'additionneur et par 2 portes (ET et OU) dans le bloc de retenue et, par conséquent, si les portes ET ou OU prennent 1 retard pour se terminer, a un retard de
Un additionneur complet peut être implémenté à l'aide de neuf portes NAND .
La table de vérité pour l'additionneur complet est :
Contributions Les sorties UNE B C dans C sur 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
L'inversion de toutes les entrées d'un additionneur complet inverse également toutes ses sorties, ce qui peut être utilisé dans la conception d'additionneurs à ripple-carry rapide, car il n'est pas nécessaire d'inverser le report
Additionneurs prenant en charge plusieurs bits
Additionneur d'ondulation
Il est possible de créer un circuit logique en utilisant plusieurs additionneurs complets pour ajouter des nombres à N bits. Chaque additionneur complet entre un C in , qui est le C out de l'additionneur précédent. Ce type d'additionneur est appelé additionneur d' ondulation (RCA), puisque chaque bit de report "se répercute" sur le prochain additionneur complet. Notez que le premier (et seulement le premier) additionneur complet peut être remplacé par un demi additionneur (en supposant que C in = 0).
La mise en page d'un additionneur de transport d'ondulation est simple, ce qui permet un temps de conception rapide ; cependant, l'additionneur de report d'ondulation est relativement lent, puisque chaque additionneur complet doit attendre que le bit de report soit calculé à partir de l'additionneur complet précédent. Le retard de porte peut facilement être calculé en inspectant le circuit d'additionneur complet. Chaque additionneur complet nécessite trois niveaux de logique. Dans un additionneur d'ondulation de 32 bits, il y a 32 additionneurs complets, donc le délai de chemin critique (pire des cas) est de 3 (de l'entrée à transporter dans le premier additionneur) + 31 × 2 (pour la propagation de report dans les derniers additionneurs) = 65 retards de porte. L'équation générale pour le délai dans le pire des cas pour un additionneur d'ondulation de retenue à n bits, prenant en compte à la fois la somme et les bits de retenue, est
Une conception avec des polarités de retenue alternées et des portes AND-OR-Invert optimisées peut être environ deux fois plus rapide.
Additionneur d'anticipation
Pour réduire le temps de calcul, les ingénieurs ont conçu des moyens plus rapides d'ajouter deux nombres binaires en utilisant des additionneurs de report (CLA). Ils fonctionnent en créant deux signaux ( P et G ) pour chaque position de bit, selon qu'un report est propagé à partir d'une position de bit moins significative (au moins une entrée est un 1), généré dans cette position de bit (les deux entrées sont 1 ), ou tué dans cette position de bit (les deux entrées sont à 0). Dans la plupart des cas, P est simplement la sortie somme d'un demi-additionneur et G est la sortie de retenue du même additionneur. Une fois P et G générés, les retenues pour chaque position de bit sont créées. Certaines architectures avancées d'anticipation sont la chaîne de transport Manchester , l' additionneur Brent-Kung (BKA) et l' additionneur Kogge-Stone (KSA).
Certaines autres architectures d'additionneurs multibits divisent l'additionneur en blocs. Il est possible de faire varier la longueur de ces blocs en fonction du délai de propagation des circuits pour optimiser le temps de calcul. Ces additionneurs basés sur des blocs incluent l'additionneur de retenue (ou de contournement) qui déterminera les valeurs P et G pour chaque bloc plutôt que chaque bit, et l' additionneur de retenue qui pré-génére la somme et les valeurs de retenue pour l'un ou l'autre des retenues possibles. entrée (0 ou 1) dans le bloc, en utilisant des multiplexeurs pour sélectionner le résultat approprié lorsque le bit de retenue est connu.
En combinant plusieurs additionneurs de report anticipé, des additionneurs encore plus grands peuvent être créés. Cela peut être utilisé à plusieurs niveaux pour créer des additionneurs encore plus grands. Par exemple, l'additionneur suivant est un additionneur 64 bits qui utilise quatre CLA 16 bits avec deux niveaux d' unités de report d' anticipation .
D' autres modèles d'addition comprennent l' additionneur de report de sélection , sommateur somme conditionnelle , additionneur de report saut , et sur l' aspic de report complet.
Additionneurs Carry-Save
Si un circuit additionneur doit calculer la somme de trois nombres ou plus, il peut être avantageux de ne pas propager le résultat du report. Au lieu de cela, des additionneurs à trois entrées sont utilisés, générant deux résultats : une somme et un report. La somme et la retenue peuvent être introduites dans deux entrées de l'additionneur à 3 nombres suivant sans avoir à attendre la propagation d'un signal de retenue. Après toutes les étapes d'addition, cependant, un additionneur conventionnel (comme le ripple-carry ou le lookahead) doit être utilisé pour combiner la somme finale et les résultats de report.
3:2 compresseurs
Un additionneur complet peut être considéré comme un compresseur avec perte 3:2 : il additionne trois entrées d'un bit et renvoie le résultat sous la forme d'un seul nombre de deux bits ; c'est-à-dire qu'il mappe 8 valeurs d'entrée à 4 valeurs de sortie. Ainsi, par exemple, une entrée binaire de 101 entraîne une sortie de 1 + 0 + 1 = 10 (nombre décimal 2). Le report représente le bit un du résultat, tandis que la somme représente le bit zéro. De même, un demi-additionneur peut être utilisé comme compresseur avec perte 2:2 , compressant quatre entrées possibles en trois sorties possibles.
De tels compresseurs peuvent être utilisés pour accélérer la sommation de trois additifs ou plus. Si les addends sont exactement trois, la mise en page est connue sous le nom de carry-save adder . Si les addends sont au nombre de quatre ou plus, plus d'une couche de compresseurs est nécessaire, et il existe différentes conceptions possibles pour le circuit : les plus courantes sont les arbres Dadda et Wallace . Ce type de circuit est notamment utilisé dans les multiplicateurs , c'est pourquoi ces circuits sont également appelés multiplicateurs Dadda et Wallace.
Additionneur complet quantique
En utilisant uniquement les portes logiques quantiques Toffoli et CNOT , il est possible de réaliser un circuit quantique qui effectue l'addition.
Le même circuit peut également être utilisé dans le calcul réversible classique .
Voir également
- Multiplicateur binaire
- Soustracteur
- Mélangeur électronique — pour ajouter des signaux analogiques
Les références
Lectures complémentaires
- Liu, Tso-Kai ; Hohulin, Keith R.; Shiau, Lih-Er ; Muroga, Saburo (janvier 1974). "Optimal One-Bit Full-Adders avec différents types de portes". Transactions IEEE sur les ordinateurs . Laboratoires Bell : IEEE . C-23 (1) : 63-70. doi : 10.1109/TC.1974.223778 . ISSN 0018-9340 . S2CID 7746693 .
- Lai, Hung Chi ; Muroga, Saburo (septembre 1979). "Les additionneurs parallèles binaires minimum avec les portes NOR (NAND)". Transactions IEEE sur les ordinateurs . IEEE . C-28 (9) : 648-659. doi : 10.1109/TC.1979.1675433 . S2CID 23026844 .
- Hydromel, sculpteur ; Conway, Lynn (1980) [décembre 1979]. Introduction aux systèmes VLSI (1 éd.). Reading, MA, États-Unis : Addison-Wesley . Bibcode : 1980aw ... livre ..... M . ISBN 978-0-20104358-7. Récupéré le 2018-05-12 .
- Davio, Marc; Dechamps, Jean-Pierre ; Thayse, André (1983). Digital Systems, avec implémentation d'algorithmes (1 éd.). Laboratoire de recherche Philips , Bruxelles, Belgique : John Wiley & Sons , une publication Wiley-Interscience. ISBN 978-0-471-10413-1. LCCN 82-2710 .
Liens externes
- Algorithmes matériels pour les modules arithmétiques , comprend la description de plusieurs dispositions d'additionneurs avec des chiffres.
- Full Adder and Subtractor 8 bits , une démonstration d'un Full Adder interactif construit en JavaScript uniquement à des fins d'apprentissage.
- Simulation interactive d'additionneur complet (nécessite Java), circuit interactif d'additionneur complet construit avec le simulateur de circuit en ligne de Teahlab.
- Simulation interactive de demi-additionneur (nécessite Java), circuit de demi-additionneur construit avec le simulateur de circuit de Teahlab.
- Simulation Full Adder 4 bits intégrée à Verilog et didacticiel vidéo Ripple Carry Full Adder qui l'accompagne
- Shirriff, Ken (novembre 2020). « Reverse-engineering du circuit de report dans le processeur Intel 8008 » .