Vous êtes sur la page 1sur 3

TP Cir. Prog. VHDL 2ème Ing. Mécat.

TP1: Additionneur complet


(Full-Adder)

I- Objectifs:
Les buts de ce TP sont :
• L’utilisation du VHDL en logique combinatoire pour décrire l’architecture d’un Additionneur complet.
• L’utilisation du VHDL pour décrire un banc de test (Testbench) de vérification.
• La familiarisation avec Modelsim®, le logiciel de simulation de Mentor Graphics®.
• La familiarisation avec Xilinx ISE®, l’environnement de description, de simulation, et de programmation des
®
circuits FPGA de Xilinx .
• La familiarisation avec « Spartan-3 Starter Board », la carte de développement FPGA de Xilinx .
®

II- Additionneur complet 1-bit :

Considérons un additionneur complet (Full-Adder) 1-bit ayant 3 entrées : A, B et une retenu d’entrée Cin (Carry)
chacune sur un bit et deux sorties : S (la somme) et la retenu de sortie Cout chacune sur un bit également (Figure 1).

Inputs Outputs
A B Cin Cout S
A 0 0 0 0 0
Cout 1 0 0 0 1
B FULL 0 1 0 0 1
ADDER 1 1 0 1 0
S
Cin 0 0 1 0 1
1 0 1 1 0
0 1 1 1 0
Figure 1 - Additionneur complet 1-bit
1 1 1 1 1

Figure 2 - Table de vérité de l'additionneur complet

- Rappeler les équations de S et Cout en fonction de A, B et Cin.

III- Description VHDL du module et simulation (Modelsim)

1- Créer dans un projet TP1 un fichier source VHDL full_add.vhd dans lequel il faut décrire
l’additionneur complet. Le squelette du code VHDL de l’additionneur complet est fourni dans la page
suivante.

2- Analyser le code du fichier full_add_tb.vhd fourni sur la page suivante, et déterminer les parties
nécessaires pour créer des stimuli de test. Compléter les stimuli de test de façon à couvrir toutes les
combinaisons possibles des entrées (A, B et Cin) répertoriées dans la table de vérité (Figure2).

3- Ajouter les deux fichiers (RTL et testbench) au projet TP1 et compiler.

4- Créer un chronogramme des signaux ―waveform―; et séparer les signaux d’entrée de ceux de sortie.

5- Lancer la simulation et interpréter le résultat.

ENICAR (2015/2016) 1
TP Cir. Prog. VHDL 2ème Ing. Mécat.

Description VHDL de l’additionneur complet


-- Bibliothèques
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

--Entity
ENTITY full_add IS
-- …
--Architecture
ARCHITECTURE behavior OF full_add IS
-- …

Testbench de l’additionneur complet


-- Bibliothèques
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

--Entity
ENTITY full_add_tb IS
END full_add_tb;

--Architecture
ARCHITECTURE test OF full_add_tb IS

-- Déclaration du composant à tester --


COMPONENT full_add
PORT(A : in std_logic;
B : in std_logic;
Cin : in std_logic;
S : out std_logic;
Cout : out std_logic);
END COMPONENT;

-- Déclaration des signaux de test --


signal A_tb, B_tb,Cin_tb, S_tb, Cout_tb: std_logic;

BEGIN
-- Instanciation du composant à tester -- DUT : Design Under Test
DUT: full_add PORT MAP (A=>A_tb,
B=>B_tb,
Cin=>Cin_tb,
S=>S_tb,
Cout=>Cout_tb);
-- Création des signaux de test --
process

BEGIN
A_tb <='0'; B_tb <='0'; Cin_tb <='0'; -- 000
wait for 20 ns;
A_tb <='1'; -- 100
wait for 20 ns;
A_tb <='0'; B_tb <='1'; -- 010
wait for 20 ns;
-- …
END PROCESS;
END test;

ENICAR (2015/2016) 2
TP Cir. Prog. VHDL 2ème Ing. Mécat.

IV- Synthèse et implémentation sur FPGA (Xilinx ISE)


1- Avec le logiciel Xilinx ISE®, utiliser le fichier full_add.vhd décrit et testé précédemment pour implémenter
l’additionneur complet sur la carte Spartan-3 (Suivre les étapes du Tutorial).

 Lors de l’étape d’assignation des broches (Assign Package Pins), connecter les ports de l’additionneur
complet aux broches de la carte de développement FPGA comme suit:

• Les entrées « A », « B » et « Cin » aux interrupteurs SW0, SW1 et SW2 respectivement.


• Les sorties « S » et « Cout » aux LEDs LD0 et LD1.

Additionneur (VHDL) Périphériques de la carte FPGA


Entrées :
A SW0
B SW1
Cin SW2
Sorties :
S LD0
Cout LD1

LD1-LD0 SW2-SW1-SW0

2- Faire varier manuellement les entrées et observer les sorties.

ENICAR (2015/2016) 3