Meilleure réponse
Une table de vérité est une table qui vous donne la sortie dune fonction booléenne pour toute combinaison possible de contributions. Un additionneur complet est une fonction booléenne (ou un élément matériel limplémentant) qui, étant donné deux entiers de 2 bits, vous donne la somme de ces entiers, y compris le report. (Un demi-additionneur ajoute seulement les nombres mais ignore le report). Si vous avez deux entiers de 2 bits en entrée, il y a 16 entrées possibles, donc votre table aura 16 lignes. Voici à quoi cela peut ressembler si vos entrées sont a et b avec des bits, la sortie est xabx 00 00 000 00 01 001 00 10 010 00 1 1 011 01 00 001 01 01010 01 10011 01 11 100 11 00 011 10 01 011 10 10 100 10 11 101 11 00 011 11 01 100 11 10 101 11 11 110
Réponse
La réponse simple est «tout ce que le concepteur veut».
Lorsque jai commencé à étudier la conception informatique à la fin des années 1970, javais une formation en mathématiques et, dans une moindre mesure, en programmation informatique. Certains des premiers travaux que jai réalisés concernaient la conception et la mise en œuvre de jeux dinstructions, en particulier, des opérations arithmétiques. Tout cela a exigé que je devais développer une compréhension de larithmétique informatique, et en raison du contexte, je lai fait dun point de vue mathématique légèrement abstrait. Cétait en contraste avec ce qui était présenté dans de nombreux manuels de conception électronique et informatique qui définissent les fonctions (par exemple les additifs) et leur implémentation, mais ne motivent pas toujours.
Le motivat La mise en œuvre dun additionneur consiste à prendre deux ensembles de bits («mots»), représentant des nombres, et à produire une sortie représentant la somme de ces bits. Il y a trois questions clés à poser ici. Premièrement, quels sont les chiffres que nous essayons de représenter. Deuxièmement, comment ces nombres sont-ils représentés sous forme de bits. Et troisièmement, ce qui est censé se produire si la somme des deux nombres ne peut pas être représentée comme un ensemble de bits.
Une situation courante (N bits, petit boutien, entier non signé) est qu’un Le mot de N bits est utilisé pour représenter les entiers [0,2^N-1],
et le mot B[N-1]...B[0]
représente la valeur ΣB[i]2^i: i in [0,N-1].
La troisième question est un problème – la somme des deux entrées peut être dans la plage [0,2*(2^N-1)]
et il y a donc des résultats qui ne peuvent pas être représentés.
A la mise en œuvre simple dans un manuel dun «additionneur à N bits» le construit à partir de N «additionneurs complets à 1 bit». En plus des 2 ensembles de N bits dopérande, il existe un bit de report (forcé à zéro) et un bit de report. Si le résultat mathématique de laddition peut être représenté, alors les N bits de résultat de ladditionneur seront la représentation correcte du résultat, et le report sera 0. Si, par contre, le résultat mathématique de laddition ne peut pas être représentée, alors les N bits de résultat de ladditionneur seront la représentation correcte du résultat modulo 2 ^ N, et le report sera 1. Pour résumer, cet additionneur produit toujours le résultat correct modulo 2 ^ N et une exécution indiquent que le résultat correct nest pas représentable. Certains systèmes informatiques voudront traiter cela comme une erreur, peut-être en lenregistrant dans un drapeau, ou en provoquant une exception.
Une autre situation courante (N-bit, petit boutien, entier de complément à deux signé) est quun Le mot de N bits est utilisé pour représenter les entiers [-2^(N-1),2^(N-1)-1],
et le mot B[N-1]...B[0]
représente la valeur -B[N-1]*2^N + ΣB[i]2^i: i in [0,N-1]*.
Encore une fois, il y a des résultats qui ne peuvent pas être représentés. Ladditionneur décrit précédemment a produit le résultat correct pour tous les résultats représentables (cest pourquoi larithmétique du complément à deux est utilisée). Cependant, le report nindique pas si le résultat est représentable. (Considérons -1 + 1 = 0 qui produit un report et 0 + 0 = 0 qui ne le fait pas). Pour le complément à deux, la condition qui représente un résultat non représentable (communément appelé «débordement») est que le bit de signe (bit le plus significatif) du résultat est «inattendu» – cest-à-dire que la somme de deux nombres négatifs semble être positive, ou la somme de deux nombres positifs semble négative (exercice au lecteur pour montrer que la somme de deux nombres de signes différents peut toujours être représentée).
Certaines autres représentations peuvent utiliser les mêmes additionneurs sous forme dentiers signés et non signés. Pour les représentations fractionnaires où la valeur dun mot est la valeur du mot, traitée comme un entier, divisée par une puissance de deux, ladditionneur produit le résultat correct lorsque la valeur est représentable. Cependant, dans les systèmes utilisant ces représentations, parfois le comportement souhaité est que les résultats «saturent» – cest-à-dire que le résultat est hors de portée, la somme est la valeur la plus positive ou la plus négative, selon le cas. Autres systèmes 2 lune des valeurs (généralement 10… 0) à utiliser comme valeur derreur qui se propagera ensuite à travers dautres opérations. Dans ce cas, un additionneur spécial sera nécessaire.
* Cette formulation rend explicite la forme du complément à deux – la valeur signée du mot est la valeur non signée du mot moins 2 ^ N fois le bit supérieur (bit de signe). De manière équivalente, la valeur peut être écrite -B[N-1]*2^(N-1) + ΣB[i]2^i: i in [0,N-2]
ce qui correspond au bit supérieur représentant 0 ou -1 plutôt que 0 ou +1.