3. Spécifications de l'ALU
3.1. Généralités
- L'unité arithmétique et logique "ALU" d'un microprocesseur contient les opérateurs nécessaires au traitement des données. Les opérations peuvent être arithmétiques, logiques ou porter sur les bits (par ex. décalage d'un bit vers la gauche).
- Dans le cadre de ce TP:
- l'ALU de base reçoit deux nombres entiers non signés sur 4 bits : A[3..0] et B[3..0],
- Le type d'opération à effectuer est indiqué dans l'instruction en cours d'exécution, par l'intermédiaire d'un code d'opération CODE de 3bits.
3.2. Les entrées/sorties
- Le tableau suivant définit l'interface externe de l'ALU:
|
Nom |
Type |
Utilisation |
|
A[3:0] |
entrée |
Premier opérande de l'ALU. Entier non signé codé sur 4 bits |
|
B[3:0] |
entrée |
Deuxième opérande de l'ALU. Entier non signé codé sur 4 bits |
|
CODE[2:0] |
entrée |
Code déterminant l'opération à effectuer, sur 3 bits |
|
CIN |
entrée |
Retenue entrante, utilisée suivant l'opération demandée |
|
S[3:0] |
sortie |
Résultat sortant de l'ALU. Entier non signé codé sur 4 bits |
|
COUT |
sortie |
Eventuelle retenue sortante dont l'interprétation dépend de l'opération effectuée |
Remarques sur la notation vectorielle des données
- X[i:0] permet de représenter une donnée X codée sur (i+1) bits.
- X[i] est le bit de poids fort
- X[0] est le bit de poids faible
- X[j] est le bit de rang j (i >= j >= 0)
- X[k:l] est une tranche de (k-l+1) bits du vecteur X
3.3. Codage des opérations
Le tableau suivant représente les opérations à effectuer en fonction de CODE.
-
Attention : certains codes ne sont pas utilisés.
|
CODE |
Nom |
Équation |
Description |
|
000 |
AND |
A and B |
ET logique bit à bit |
|
001 |
OR |
A or B |
OU logique bit à bit |
|
010 |
XOR |
A xor B |
XOR logique bit à bit |
|
110 |
ADD |
A + B + CIN |
Addition sur 4 bits (avec propagation de retenue) |
|
111 |
SUB |
A - B - CIN |
Soustraction sur 4 bits (avec propagation de retenue) |