Unité arithmétique et logique
Projet
Unité arithmétique
d’électronique
et logique (UAL)
numérique
______________
Projet réalisé par :
Aymen BOUHAMED
Mohamed CHAABEN
Groupe :
INDP1 G
Année universitaire :
2019-2020
___________________________________________________
1
Unité arithmétique et logique
Nous disposons ci-joint les différents concepts qui illustrent le
travail de sept semaines et qui ont abouti à ce projet. Veuillez
trouvez ci-après les objectifs ainsi que les différents blocs qui
nous a permis d’établir une unité arithmétique et logique à 4
bits.
Les Objectifs
Il s’agit d’implémenter une unité arithmétique et logique
(UAL) sous l’environnement Quartus qui sera capable
d’effectuer un ensemble d’opérations arithmétiques et
logiques sur des opérandes de 4 bits.
Ces opérations sont listées ci-dessus :
• l’addition
• la soustraction
• la multiplication (dont le résultat s’affiche sur 8 bits)
• l’opération XOR
• l’opération AND
• l’opération OR
• le décalage à gauche
• le décalage à droite
2
Unité arithmétique et logique
1- L’addition
Grâce au circuit additionneur 7483, on construit un
additionneur complet qui prend 2 entrées, de 4bits
chacune, et une retenue C0 et fournie en sortie leur
somme S et la retenue C4.
Pour faire l’opération A+B=S, on doit écrire sur 4 bits A
et B et C0= 0. Le résultat sera fournie Sur S1,S2,S3,S4
et C4 (comme retenue).
Afin d’exécuter une somme, l’utilisateur doit entrer le
code 000 via les switchers, soit sel1=0, sel2=0 et
sel3=0.
2- La soustraction
En fait, on va se servir du circuit 7483 pour « faire d’une pierre deux
coups » et réutiliser ainsi le circuit 7483 pour modéliser la
soustraction.
Afin d’exécuter une soustraction, l’utilisateur doit entrer le code 111
via les switchers, soit sel1=1, sel2=1 et sel3=1.
Compte tenu de ces trois constations :
A-B est équivalent à A+ B́+1 en complément à 2
B XOR 1 = B XOR (sel1.sel2.sel3)= B́
B XOR 0 = B
On fournit comme entrées A, B́ et C0=1 pour faire la soustraction. Le
résultat est alors A+ B́ +C0, soit A-B et en plus C 4 comme étant un bit
de signe : 0 si le résultat est positif et 1 sinon.
3- La multiplication
Le processus de multiplication est illustré ci-dessous.
3
Unité arithmétique et logique
4
Unité arithmétique et logique
L’opération suivante peut être effectuée en se servant de ports AND et
de 3 additionneurs complets 7483 comme le montre le schéma
suivant.
Afin d’exécuter une multiplication, l’utilisateur doit entrer le code 001
via les switchers, soit sel1=1, sel2=0 et sel3=0.
4- Le décalage
Il s’agit de translater les chiffres d’un nombre
binaire donné à chaque front d’horloge. Pour ce
faire, l’environnement Quartus fournit le circuit à
décalage 74194.
A, B,C et D représentent les 4 bits à décaler, CLK
représente l’horloge tandis que S 0 et S1 permettent
de choisir entre le décalage à droite et le décalage
à gauche de la manière suivante.
Décalage à droite
Décalage à gauche
S0=1 et S1=0
S0=0 et S1=1
5
Unité arithmétique et logique
Afin d’exécuter un décalage, l’utilisateur doit entrer via les switchers le
code 110 s’il est à droite et le code 101 s’il est à gauche.
5- XOR, AND et OR
Les opérations élémentaires sont des opérations binaires réalisées
simultanément sur l'ensemble des bits d'un mot de manière
indépendante. Ainsi, la valeur du bit de rang n dans le résultat ne
dépend que des valeurs des bits de même rang dans les opérandes
d'entrée. Il nous faut 4 opérateurs de chaque type qui seront
modélisés comme suit.
Un
utilisateur doit entrer le code 010 pour désigner l’opération XOR, 011
pour AND et 100 pour OR.
Synthèse :
Après avoir constitué les différents blocs, il faut définir des entrées et
les soties, les faire correspondre avec la carte Cyclone V puis
assembler les blocs pour trouver toute l’unité.
Les 2 mots binaires seront entrés via 8 switchers. Les
deux switchers qui restent constituent, avec un bouton
poussoir, 3 entrées pour la sélection de l’opération.
Le bloc de décalage demande, à son tour, deux boutons
6
Unité arithmétique et logique
poussoirs : le premier pour le chargement du registre « load » et le
second pour l’horloge « clock ».
Comme les résultats des opérations s’écrivent sur 8 bits au maximum,
on a utilisé 8 multiplexeurs à 8 entées chacun pour assurer la liaison
entre les entrées et les sorties.
L’affichage des résultats sera par le biais de 8 LED.