L'Unité Arithmétique et Logique⚓︎
Exercice 6 : L'unité arithmétique
Tout comme l'unité logique, il est possible de faire une unité arithmétique qui permet de faire diverses opérations en fonction du code opération.
Et comme l'unité logique, il est possible de faire cela à l'aide d'inverseurs en plus de l'additionneur.
En modifiant les sélecteurs Sa, Sb et Sr, déterminer comment faire les opérations A+B, A-B et B-A.
Les affichages sont réglés pour des nombres relatifs en complément à 2 sur 4 bits. Ils vont donc de -8 à 7.
Sa | Sb | Sc | Opération |
---|---|---|---|
0 | 0 | 0 | |
0 | 1 | 0 | |
1 | 0 | 0 | |
1 | 1 | 0 | |
0 | 0 | 1 | |
0 | 1 | 1 | |
1 | 0 | 1 | |
1 | 1 | 1 |
Solution
Sa | Sb | Sc | Opération |
---|---|---|---|
0 | 0 | 0 | A + B |
0 | 0 | 1 | Autre |
0 | 1 | 0 | Autre |
0 | 1 | 1 | Autre |
1 | 0 | 0 | Autre |
1 | 0 | 1 | B - A |
1 | 1 | 0 | A - B |
1 | 1 | 1 | Autre |
Si on note \(\overline{A}\) l'inverse bit à bit de \(A\), on a alors \(-A = \overline{A} +1\) par définition du complément à 2.
On a donc \(\overline{A} = -A - 1\).
Lorsqu'on active Sa et Sc, mais pas Sb, on otbient :
De même,
Exercice 7 : Le muxer 4 bits
Pour choisir entre la partie arithmétique et la partie logique de l'UAL, il faut un muxer sur 4 bits.
Pour tester un muxer 4 bits
Portes multiples
Vous pouvez utiliser des portes multiples qui réalisent l'opération indiquée bit à bit. Vous pouvez changer le type de la porte avec un clic droit dessus.
Solution
Exercice 8 : L'Unité Arithmétique et Logique
Nous avons tout ce qu'il faut pour réaliser une UAL.
Pour rappel, voici le schéma :
Réaliser le circuit de l'UAL à l'aide des portes disponibles. Pour le muxer, il faut modifier le nombre de sorties pour le mettre à 4.
Exemples d'utilisations de l'UAL
L'opcode se lit dans l'ordre op4, op3, op2 et op1. Voici des exemples d'utilisation :
Opcode | A | B | Résultat | Commentaire |
---|---|---|---|---|
0000 | 0011 | 0101 | 1000 | A+B |
0000 | 0001 | 1111 | 0000 | overflow |
0101 | 0011 | 0101 | 0010 | B-A |
1001 | 0011 | 0101 | 1110 | A-B |
0101 | 0011 | 0000 | 1101 | -A |
0001 | 1100 | 0000 | 0011 | non A |
0010 | 0011 | 0101 | 1110 | non(A et B) |
0011 | 0011 | 0101 | 0001 | A et B |
1110 | 0011 | 0101 | 0111 | A ou B |
Solution
Pour aller plus loin
Vous pouvez utiliser Logic pour essayer de réaliser d'autres circuits en explorant les portes disponibles.
Vous pouvez aussi aller tester le jeu NandGame qui propose de réaliser un ordinateur en partant uniquement des portes NAND.