TP1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

IUT GEII de Neuville sur Oise – TP FPGA – 2015

TP1
Combinatoire, additionneurs et VHDL

Objectif :

L’objectif de ce TP est de se familiariser avec la description VHDL de composants


numériques combinatoires.

Exercice n°1 – Convertisseur binaire - décimal

Nous voulons concevoir un convertisseur qui affiche directement la valeur décimale d’un nombre
binaire V sur 4 bits au moyen de deux afficheurs 7 segments HEX0 (unité) et HEX1 (décimal). La
table de vérité est donnée ci-dessous :

V HEX1 (d1) HEX2 (d0)


0 0 0 0 0 0
0 0 0 1 0 1
0 0 1 0 0 2
0 0 1 1 0 3
0 1 0 0 0 4
0 1 0 1 0 5
… …
1 1 1 0 1 4
1 1 1 1 1 5

Une description schématique de l’architecture de ce convertisseur est donnée ci-dessous. Le


comparateur permet de tester si le nombre est supérieur ou inférieur à 9 afin de contrôler l’afficheur d1
et les multiplexeurs.

1. Créer un nouveau projet TP1

2. Créer un nouveau fichier BDF (bin2dec.bdf). Ce fichier correspondra à la vue de haut niveau du
convertisseur binaire en décimal.

3. Analyser l’architecture du convertisseur (figure 1) et donner les fonctions des circuits A et B.

4. Ecrire le code VHDL des blocs A, B, multiplexeur 2->1, comparateur et décodeur 7 segments. Pour
chaque blocs, vous :
• créerez un fichier VHDL
• testerez en simulation le comportement
• créerez un symbole que vous intégrerez dans le fichier bin2dec.bdf
• consignerez dans votre rapport les développements et les résultats.

5. Tester sur la carte en assignant les broches d’entrée sortie aux ressources suivantes (SW0, SW1,
SW2, SW3 => v0, v1, v2 et v3) et (d0 => HEX0 et d1 => HEX1)

6. Faite contrôler par l’enseignant.

Olivier Romain 1
IUT GEII de Neuville sur Oise – TP FPGA – 2015

Figure 1: Convertisseur binaire décimale 4 bits

Exercice n°2 – Additionneur à propagation de retenue 4 bits

On souhaite réaliser l’additionneur à propagation de retenue 4 bits en utilisant une description


structurelle à partir des instructions COMPONENT en VHDL. Les figures a, b et c donnent la
structure classique d’un additionneur 1 bit, son symbole et sa table de vérité. La figure d montre
l’architecture d’un additionneur 4 bits conçus à partir de 4 additionneurs 1 bits.

Figure 2 : additionneur 4 bits

1. Créer un nouveau fichier VHD que vous nommerez adder4bits.vhd. Ce fichier correspondra à la
description structurelle en VHDL de l’additionneur 4bits.

Olivier Romain 2
IUT GEII de Neuville sur Oise – TP FPGA – 2015

2. Analyser l’architecture du convertisseur (figure 2) et donner les équations des sorties (cout, s3, s2,
s1 et s0) en fonctions des entrées (cin, a0..a3, b0..b3). Consignez dans votre rapport.

3. Ecrire le code VHDL d’un additionneur 1bit :


• créez un fichier VHDL
• testez en simulation le comportement
• créez un symbole
• créez un fichier adder4bits_bdf.bdf
• insérer le symbole de l’additionneur 1 bit et réalisez les connections nécessaires pour
concevoir l’additionneur 4 bits
• testez en simulation le comportement et faite contrôler par l’enseignant.
• consignerez dans votre rapport les développements et les résultats.

4. Ecrire le code VHDL d’un additionneur 4bit à partir de l’instruction VHDL COMPONENT. Pour
cela, vous trouverez ci-dessous, le code VHDL d’une porte xnor (xnor.vhd) conçue à partir
d’une porte xor (xor.vhd) et d’un inverseur (not.vhd).
• créerez un fichier VHDL
• testerez en simulation le comportement
• déterminer le temps de calcul de l’additionneur. Consignez dans votre rapport
• créerez un symbole
• consignerez dans votre rapport les développements et les résultats.

----- fichier xor.vhd -----


LIBRARY ieee;
USE ieee.std logic 1164.all;

ENTITY xor IS
PORT (
a,b : IN STD_LOGIC;
s : OUT STD_LOGIC
);
END;

ARCHITECTURE struct OF xor IS


BEGIN
s <= a xor b;
END;

----- fichier not.vhd -----


LIBRARY ieee;
USE ieee.std logic 1164.all;

ENTITY not IS
PORT (
a : IN STD_LOGIC;
s : OUT STD_LOGIC
);
END;

ARCHITECTURE struct OF not IS


BEGIN
s <= not(a);
END;

----- fichier xnor.vhd -----


LIBRARY ieee;

Olivier Romain 3
IUT GEII de Neuville sur Oise – TP FPGA – 2015

USE ieee.std logic 1164.all;

ENTITY xnor IS
PORT (
a,b : IN STD_LOGIC;
s : OUT STD_LOGIC
);
END;

ARCHITECTURE struct OF xnor IS


COMPONENT xnor IS
PORT (
a,b : IN STD_LOGIC;
s : OUT STD_LOGIC
);
END;

COMPONENT not IS
PORT (
a : IN STD_LOGIC;
s : OUT STD_LOGIC
);
END;

SIGNAL temp : STD_LOGIC ;


BEGIN
Porte1 : xor port map (a,b,temp);
Porte2 : not port map (temp, s) ;
END;

Exercice n°3 – Affichage du résultat de l’additionneur

On souhaite vérifier le comportement de l’additionneur au moyen des afficheurs 7 segments.

1. Créer un nouveau fichier BDF que vous nommerez verif_adder.vhd. Ce fichier correspondra à la
description schématique de l’exercice 3.

2. Créer un symbole pour le convertisseur de l’exercice 1.

3. Créer un symbole pour l’additionneur 4 bits

4. Connecter les deux symboles de manière à afficher le résultat de deux nombres A et B sur les
afficheurs 7 segments HEX1 et HEX0. A et B seront respectivement les switchs (A3-> SW3 …
A0->SW0 et B3->SW7 …B0->SW4).

5. Consignez dans votre rapport la structure que vous avez programmée.

6. Programmer la carte et faite vérifier par l’enseignant.

Exercice n°4 – Additionneur 32 bits

Dans les micro-processeurs ou contrôleurs 32 bits, l’ALU comporte un additionneur qui réalise des
opérations sur des opérandes de 32 bits. On souhaite créer un additionneur 32 bits à partir de 8
additionneurs 4 bits.

1. Créer un nouveau fichier VHD que vous nommerez adder32bits.vhd. Ce fichier correspondra
à la description structurelle de l’additionneur à partir de l’instruction COMPONENT.

Olivier Romain 4
IUT GEII de Neuville sur Oise – TP FPGA – 2015

• Dessinez dans votre rapport l’architecture de l’additionneur

2. Ecrire le code VHDL correspondant à l’additionneur 32bits

3. Tester et simuler. Déterminer le nombre de cycle nécessaire à la réalisation de l’opération.


Consignez le résultat dans votre rapport

4. A partir des résultats de l’exercice 2 et la 3ème question ci-dessus, dessinez la courbe du temps
de calcul en fonction du nombre de bits de l’additionneur.

Exercice n°5 – Additionneur 4bits à anticipation de retenue

L’additionneur par propagation de retenue est purement pédagogique et n’est jamais utiliser en
pratique du fait de son temps de calcul proportionnel au nombre de bits. Dans les microprocesseurs
d’autres techniques sont utilisées pour des nombres de bits importants. Toutes les techniques ont pour
but d’accélérer le calcul des retenues (anticipation de retenue, sélection de retenue, récursivité,
hybride, etc.). La technique d’anticipation de retenue est basée sur le calcul de toutes les retenues
avant même le calcul de la somme. Afin de faciliter le calcul des retenues, on introduit deux quantités
appelées G (pour Generate en anglais) et P (pour Propagate en anglais). Pour deux quantités binaires
Ai et Bi, les quantités Gi et Pi sont définies de la façon suivante. L’indice i correspond au numéro de
l’étage de l’additionneur. Dans un additionneur 4 bits, 4 étages, le calcule du LSB correspond à
l’indice 0 et le calcule du MSB correspond à l’indice 3.

Gi = Ai and Bi et Pi = Ai or Bi

1. Exprimer la somme Si en fonction de Gi, Pi et Ci


2. Exprimer la retenue Ci+1 en fonction de Gi et Pi
3. Donnez les équations de C0, C1, C2 et C3 uniquement en fonction de Gi et Pi
4. Dessinez l’architecture d’un additionneur 4 bits
5. Créer un fichier VHDL d’un additionneur 4 bits prenant en entrée A et B sur 4 bits, Cin sur 1
bits, et en sortie, S sur 4 bits et Cout sur 1 bits.
6. Simulez et déterminer le temps de calcul.
7. Connecter le contrôleur de l’exercice 1 et vérifier sur la carte le comportement de
l’additionneur.
8. Faite vérifier par l’enseignant.

Olivier Romain 5

Vous aimerez peut-être aussi