TP1 CONCEPTION DES CIRCUITS NUMERIQUES PROGRAMMABLES
Groupes: 2AGE
Enseignants Responsables :
Dr. Sawssen LAHIANI & Dr. Ahmed NEFFATI
Dr. Faten BEN ABDALLAH & Dr. Lotfi CHARRABI
TP1 : ADDITIONNEUR-SOUSTRACTEUR 4 BITS
1. BUT
Le but de ce TP est d’utiliser le VHDL en description structurelle pour concevoir un Additionneur-
soustracteur 4-bits avec détection de débordement.
2. DESCRIPTION
On désire décrire l’additionneur-soustracteur 4-bit représenté sur la figure 1. C’est un circuit capable
d’additionner ou de soustraire deux nombres binaires signés, chacun de taille 4 bits (le bit de poids fort
est un bit de signe), en fonction d’un signal de commande M. Si M=0, le circuit effectue une addition, si
M=1 le circuit effectue une soustraction.
En sortie on va avoir le résultat S sur 4 bits ainsi que la retenu (Cf), le débordement (Ovf) et une sortie
Mcov.
Figure 1 – Entrées/Sorties de l’additionneur-soustracteur 4 bits
Pour effectuer l’addition de deux nombres de 4 bits, il suffit de chaîner entre eux 4 additionneurs 1-bit complets
(Full Adder). La retenue est ainsi propagée d’un additionneur à l’autre. Un tel additionneur est appelé un
additionneur parallèle à propagation de retenue (Ripple-carry adder).
Effectuer A - B en complément à 2, est équivalent à A + B' + 1. (Le complément à 2 est équivalent au
complément à 1 bit-par-bit (changement de 0 par 1 et de 1 par 0) plus l’addition de 1)
Pour effectuer la deuxième addition (+1), il suffit d’injecter un 1 en guise de retenue dans l’additionneur de poids
faible.
On dispose ainsi d’un signal de contrôle M qui vaut 0 lorsque l'on veut faire une addition, et 1 lorsque l'on veut
faire une soustraction.
Les sorties Cf et Ovf où : Cf : Carry Flag (Drapeau de retenu), est activé lorsque la somme non signée dépasse 15
(c'est à dire que la somme ne peut plus être représenté sur 4 bits) et Ovf : Overflow Flag (Drapeau de
1
TP1 CONCEPTION DES CIRCUITS NUMERIQUES PROGRAMMABLES
débordement), est activé lorsque la somme signée est en dehors de l’intervalle [-7, +7]. Mcov est la sortie d’un
multiplexeur qui sélectionne Cf si l’opération réalisée est une addition ou Ovf si l’opération est une soustraction
La figure 2 présente le schéma structurel de l’additionneur soustracteur 4 bits :
Figure 2 – Architecture structurelle de l’Additionneur-soustracteur 4-bits
Le débordement (overflow):
- Comme on travaille avec des nombres de taille fixe, le résultat d'une addition peut donner un
nombre trop grand pour être représenté avec le même nombre de bits (4 bits dans notre cas),
cette source d'erreur est appelé débordement (overflow).
- Un débordement se produit si deux nombres de même signe sont additionnés et un résultat avec
le signe opposé est obtenu.
- Un débordement ne peut pas se produire lors de l'addition de nombres de signes opposés.
- Une façon de détecter le débordement: Si la retenue d’entrée (C3) à l’additionneur des bits de
signe (le 4ième additionneur complet) est différente de la retenue sortante (C4), alors il y a
débordement.
Exemples:
Decimal Binaire
Decimal Binaire Decimal Binaire Decimal Binaire
2 0010 5 0101 -7 1001 7 0111
+3 +0011 +3 +0011 + -5 +1011 + -2 +1110
5 cf 0 0101 8 cf 0 1000 4 cf 1 0100 5 cf 1 0101
ovf 0
ovf 1 ovf 1 ovf 0
3. TRAVAIL DEMANDE (OUTIL : MODELSIM)
1. Donner la description VHDL comportementale de :
- un additionneur complet à 1 bit (full_adder.vhd)
-
un multiplexeur ([Link])
2. Editer le fichier [Link] pour donner une description structurelle de l’additionneur-
soustracteur 4 bits.
2
TP1 CONCEPTION DES CIRCUITS NUMERIQUES PROGRAMMABLES
3. Editer le fichier de test addsub4_tb.vhd et simuler avec ModelSim l'additionneur-soustracteur.
Donner d’abord des valeurs de A et B de mêmes signes (positives et négatives) puis des valeurs
de signes opposés et de varier les opérations entre addition et soustraction. Observer les
chronogrammes et interpréter.