Vous êtes sur la page 1sur 18

UNIVERSITE HASSAN II DE

CASABLANCA
------------
Faculté des Sciences Aïn Chock

Département de Physique
Master Spécialisé
Électronique électrotechnique automatique et informatique industrielle

Mini-Projet Composants logiques porgrammables-


languge de description de matériel VHDL

Additionneur/soustracteur sur 4bit en utilisant la


description structurelle

Préparé par : Encadré par :


BOULFANID Youssef Pr. WAHBI Azeddine
EL GUELAI Hamza
QATQAT Abdelkabir
NAZIH Chaimaa
LAOUAM Yassine

Année Universitaire 2021/2022


Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Table des matières

Chapitre 1: Etude théorique........................................................................................................ 1


I. Objectif : ............................................................................................................................. 2
II. Additionneur-Soustracteur 4-bit ......................................................................................... 2
III. Description de l’additionneur-Soustracteur 4-bit ............................................................ 2
1- Additionneur 4-bit ........................................................................................................... 2
2- Soustraction ..................................................................................................................... 3
Chapitre 2:Programme VHDL Additionneur-soustracteur ........................................................ 5
I. Programme VHDL d’un additionneur complet 1bit (FA) : ................................................ 6
II. Programme VHDL d’un additionneur-soustracteur 4bit : .................................................. 6
Chapitre 3: Synthèse du circuit en utilisant le logiciel Xilinx.................................................... 7
I. Introduction ......................................................................................................................... 8
II. Description VHDL du module à partir du logiciel Xilinx ISE : ..................................... 8
1- Description VHDL à partir du VHDL module : ............................................................. 8
III. Simulation (Modelsim) ................................................................................................. 13
1- Exemple 1 pratique : additions deux nombre positive .................................................. 13
2- Exemple 2 pratique : additions deux nombre positive .................................................. 14
3- Exemple 3 pratique : la soustraction à l'aide de l'additionneur ..................................... 14
Conclusion Générale ................................................................................................................ 15

Page | I
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Liste des figures


Figure 1:Schéma de l'additionneur-soustracteur ........................................................................ 2
Figure 2: Additionneur 4-bit ...................................................................................................... 3
Figure 3:- Additionneur-soustracteur 4-bit ................................................................................ 4
Figure 4:Création du projet ........................................................................................................ 8
Figure 5:Création de notre projet ............................................................................................... 8
Figure 6:les propriétés des périphériques ................................................................................... 9
Figure 7:création module vhdl additionneur complet 1 bit ........................................................ 9
Figure 8:programmation module d'addition complet 1bit ........................................................ 10
Figure 9:module VHDL association les 4 modules d'additions complet ................................. 10
Figure 10:l’architecture de l’additionneur-soustracteur ........................................................... 11
Figure 11:Schéma du Bloc ....................................................................................................... 11
Figure 12:Schéma interne du système (Xilinx ISE 12.1) ......................................................... 12
Figure 13:les différents modules du projet ............................................................................... 12
Figure 14:fenêtre pour simuler le projet à partir du programme VHDL .................................. 13
Figure 15:simulation exemple 1 additions deux nombre positive............................................ 13
Figure 16:simulation exemple 2 additions deux nombre positive............................................ 14
Figure 17:simulation exemple 3 d’une soustraction ................................................................ 14

Page | II
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Etude théorique

1|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
I. Objectif :

Le but de ce Projet est d’utiliser le VHDL en description structurelle pour concevoir un


Additionneur-soustracteur 4-bit avec détection de débordement.

II. Additionneur-Soustracteur 4-bit

On désire décrire l’additionneur-soustracteur 4-bit représenté sur la figure 1. L’additionneur-


soustracteur est un circuit capable d'additionner ou de soustraire deux nombres binaires, chacun
de taille 4 bit, en fonction d'un signal de commande M.
Ce circuit permet de faire l’addition ou la soustraction de deux nombres A et B de 4 bits chacun.

Figure 1:Schéma de l'additionneur-soustracteur

En sortie on va avoir le résultat sur 4 bits ainsi que la retenu (Cf), le débordement (Ovf) et une
sortie (Mcov).

III. Description de l’additionneur-Soustracteur 4-bit

-La description VHDL du circuit doit :


✓ Être modulaire (comprenant des sous-modules).
✓ Comporter une commande pour basculer entre l'addition et la soustraction (M).
✓ Être capable de détecter un débordement (Overflow), c.à.d. un dépassement de capacité
lors d'une addition de nombres signés.

1- Additionneur 4-bit

Lorsque on fait l’addition en binaire, on additionne bit par bit en commençant à partir du poids
faible et à chaque fois on propage la retenue sortante au bit du rang supérieur. L’addition sur
un bit peut se faire par un additionneur complet 1-bit (FA).

2|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
La table de vérité d’additionneur complet 1-bit (FA) :

A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Les fonctions logiques simplifient d’additionneur complet 1-bit (FA) :

𝑺=𝐴⊕B⊕C 𝑪𝒐𝒖𝒕 = 𝐶𝑖𝑛(𝐴 ⊕ B) + AB

Ainsi, pour effectuer l'addition de deux nombres de 4 bits, il suffit de chaîner entre eux 4
additionneurs 1-bit complets (Figure 2). 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).

B3 A3 B2 A2 B1 A1 B0 A0

C3 C2 C1 FA0 C0
FA3 FA2 FA1

C4 S3 S2 S1 S0

Figure 2: Additionneur 4-bit

2- Soustraction

On peut implémenter la soustraction à l'aide de l'additionneur avec des modifications mineures.


Pour ce faire, on exploite les propriétés du complément à 2 et le fait que le bit de poids faible
de l'additionneur n'a pas de retenue d'entrée. En effet, 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 peut donc supposer que l'on dispose 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.
3|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
On utilise ce signal M comme retenue du bit de poids faible de l'additionneur. Enfin, pour obtenir
B' (complément à 1 de B), il suffit de rajouter un inverseur (une porte XOR) en entrée de
chacun des additionneurs 1-bit : Bi ⊕ M ; lorsque M vaut 0, la valeur d'entrée de l'additionneur
i est Bi, et lorsque M vaut 1, la valeur d'entrée est Bi'.
Donc, lorsque M vaut 0, l'opération effectuée par le circuit est A + B (Addition), et lorsque
M vaut 1, l'opération effectuée est A + B' + 1 (soustraction).
Ainsi, le circuit de l’additionneur-soustracteur 4-bit à décrire est représenté par la figure 3.

Figure 3:- Additionneur-soustracteur 4-bit

Avec en plus 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 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. Sur la figure 3,
les signaux qui connectent les modules internes de l’additionneur-soustracteur sont représentés
en rouge.
Les fonctions logiques l’additionneur-soustracteur 4-bit :

𝑶𝒗𝒇 = 𝐶4 ⊕ 𝐶3 𝑩𝒙 = 𝑀 ⊕ 𝐵𝑖 𝑴𝒄𝒐𝒗 = 𝑀 𝑪𝒇 = 𝐶4

4|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Programme VHDL
Additionneur-soustracteur

5|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
I. Programme VHDL d’un additionneur complet 1bit (FA) :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity additionneur_complet is
Port ( Acom : in STD_LOGIC;
Bcom : in STD_LOGIC;
Ccom : in STD_LOGIC;
sum : out STD_LOGIC;
Ret : out STD_LOGIC);
end additionneur_complet;
architecture Behavioral of additionneur_complet is
begin
sum<=Acom xor Bcom xor Ccom;
Ret<=(Acom and Bcom) or (Acom and Ccom) or (Bcom and Ccom) ;
end Behavioral;

II. Programme VHDL d’un additionneur-soustracteur 4bit :


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity additionneur_soustracteur4bit is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
b : in STD_LOGIC_VECTOR (3 downto 0);
M : in STD_LOGIC;
cf : out STD_LOGIC;
ovf : out STD_LOGIC;
Mcov : out STD_LOGIC;
s : out STD_LOGIC_VECTOR (3 downto 0));
end additionneur_soustracteur4bit;
architecture Behavioral4bit of additionneur_soustracteur4bit is
component additionneur_complet is
Port ( Acom : in STD_LOGIC;
Bcom : in STD_LOGIC;
Ccom : in STD_LOGIC;
sum : out STD_LOGIC;
Ret : out STD_LOGIC);
end component;
signal c:STD_LOGIC_VECTOR (4 downto 0);
signal bx:STD_LOGIC_VECTOR (3 downto 0);
begin
bx <= b xor M & M & M & M;
Mcov<=M;
c(0) <= M;
FA0:additionneur_complet port map(a(0),bx(0),M, s(0),c(1));
FA1:additionneur_complet port map(a(1),bx(1),c(1), s(1),c(2));
FA2:additionneur_complet port map(a(2),bx(2),c(2), s(2),c(3));
FA3:additionneur_complet port map(a(3),bx(3),c(3), s(3),c(4));
cf <= c(4);
ovf<= c(3) xor c(4);
end Behavioral4bit;

6|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Synthèse du circuit en utilisant


le logiciel Xilinx

7|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
I. Introduction
Pour exécuter ce projet on a choisi le logiciel Xilinx ISE, ce dernier se considère comme un
environnement de développement et de compilation des programmes VHDL, il permet
d’effectuer une analyse de timing, la simulation des conceptions et la mise en œuvre de
l'ensemble de flux. VHDL Xilinx Designs vous donne ainsi la possibilité de mettre en œuvre
des conceptions EDIF, SCHEMATIC et Verilog. Xilinx ISE est utilisée pour développer des
programmes qui sont utilisés dans les systèmes embarqués.
II. Description VHDL du module à partir du logiciel Xilinx ISE :
1- Description VHDL à partir du VHDL module :
Création d’un projet à partir du diagramme d’état :
Tout d’abord on doit ouvrir l’environnement Xilinx ISE Design Suite 12.1 pour créer un
nouveau projet à partir de File. Puis New Project.

Figure 4:Création du projet

La fenêtre New Project Wizard – Create New Project apparaît, on renseigne la avec les
valeurs voulues comme indiqué sur la capture d’écran (le chemin de l’emplacement du projet
et le nom du projet). Puis on appuie sur Next.

Figure 5:Création de notre projet

8|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
La fenêtre New Project Wizard – Device Properties apparaît, on renseigne la avec les valeurs
voulues comme indiqué sur la capture d’écran. Puis Next.

Figure 6:les propriétés des périphériques

Après les étapes montées précédemment on voit que le projet a été créé, alors on sélectionne
New Source et comme source du projet on choisit VHDL module et on nomme le module
(additionneur_complet). Et on termine par Next. Puis Finish.

Figure 7:création module vhdl additionneur complet 1 bit

9|Page MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Figure 8:programmation module d'addition complet 1bit

Pour complier le programme on clique par le bouton droit Check Syntax puis on clique Run.
Le programme a bien compilé sans aucune erreur.
Après création VHDL module pour addition complet. Alors pour effectuer l'addition de deux
nombres de 4 bits, il suffit de chaîner entre eux 4 additionneurs 1-bit complets (Figure 8) en
utilisant addition complète comme un component. La retenue est ainsi propagée d'un
additionneur à l'autre.

Figure 9:module VHDL association les 4 modules d'additions complet

10 | P a g e MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Figure 10:l’architecture de l’additionneur-soustracteur

À l’intérieur de l’architecture de l’additionneur-soustracteur_4bit, en faites attention aux noms


des ports de chaque module déclaré (component) et instancié (Instance_X : nom_module PORT
MAP (…,…,…)) afin de les connecter correctement aux signaux correspondants comme
montré sur la figure 3.
Le programme de l’additionneur-soustracteur_4bit a bien compilé sans aucune erreur.
Maintenant on peut avoir notre schéma bloc du système en double cliquant sur View RTL
Schematic. Le schéma bloc est le suivant :

Figure 11:Schéma du Bloc

On clique 2 fois sur le schéma du bloc pour afficher les différents modules et les portes logique
du projet voir (figure 12 et 13).

11 | P a g e MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle

Figure 13:les différents modules du projet

Figure 12:Schéma interne du système (Xilinx ISE 12.1)

12 | P a g e MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
III. Simulation (Modelsim)
Pour simuler notre projet à partir du langage VHDL il faut cliquer sur le fichier d’extension
DIA → New source.
Ensuite une fenêtre apparaît dont il faut choisir ‘Test Bench Waveform‘ et après on clique
sur ‘Next’ et ainsi de suite.

Figure 14:fenêtre pour simuler le projet à partir du programme VHDL

1- Exemple 1 pratique : additions deux nombre positive


Decimal Benaire

+ 4 + 0100
7 0111
cf 0
11 1011
ovf 1

Figure 15:simulation exemple 1 additions deux nombre positive

13 | P a g e MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
2- Exemple 2 pratique : additions deux nombre positive
Decimal Benaire

+ 4 + 0100
3 0011
cf 0
7 0111
ovf 0

Figure 16:simulation exemple 2 additions deux nombre positive

3- Exemple 3 pratique : la soustraction à l'aide de l'additionneur


Decimal Benaire

+ 7 + 0111
-5 -0101
cf 1
2 0010
ovf 0

Figure 17:simulation exemple 3 d’une soustraction


Overflow vs Carry: L’overflow peut être considéré comme une forme de complément à deux
d’un carry. Dans une opération signée, l’overflow est surveillé et le carry est ignoré. De même,
dans une opération non signée le carry est surveillé et l’overflow est ignoré.

14 | P a g e MS_EEAII
Additionneur/soustracteur sur 4bit en utilisant la description structurelle
Conclusion Générale

Ce projet qui intitule « Additionneur/soustracteur sur 4bit en utilisant la description


structurelle » a répondu au cahier des charges donné au premier chapitre et pour réaliser l’étude
de ce projet on a suivi deux grandes étapes :

La première est de réaliser une étude théorique bien détaillée pour notre projet.

La deuxième est de compiler le programme VHDL qui est généré à partir le graph
d’états, après on a les simulé dans le logiciel Xilinx ISE Design Suite 12.1.

Ce projet, nous a permis de comprendre et apprendre à maitriser comment en peut étudier un


cahier des charges, de réaliser une machine à état finie et aussi de maitriser la compilation dans
le logiciel Xilinx ISE Design Suite 12.1.
Durant la période de la réalisation on a rencontré un problème consterne à l’installation de la
version XILINX 12.1, mais après une recherche on a fixé le problème.

15 | P a g e MS_EEAII

Vous aimerez peut-être aussi