Vous êtes sur la page 1sur 4

Faculté des Sciences de Bizerte

Département Informatique

Classe : SEIoT2 A-U : 2022/2023


Matière : VHDL Durée : 1h30

TP N°2
Conception numérique VHDL

Objectif

✓ L’utilisation du langage VHDL pour décrire l’architecture des circuits logiques


combinatoires.
✓ L’utilisation du VHDL pour décrire un banc de test (Testbench) de vérification.

Exercice N°1 :
Donner le code de description VHDL du circuit numérique ci-dessous:

S1=A.B
S2=A+B
S3=AB
S4=𝐴̅
S5= ̅̅̅̅̅
𝐴. 𝐵
̅̅̅̅̅̅̅̅
S6=𝐴 + 𝐵
𝐴𝐵
S7= ̅̅̅̅̅̅

Exercice N°2 : Additionneur complet à un bit

Un additionneur possède trois 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.

Un additionneur complet nécessite une entrée supplémentaire : une retenue. L'intérêt de celle-
ci est de permettre le chaînage des circuits. La table de vérité d'un additionneur complet est :

SEIoT2/ TP1-2-3-4 1
Faculté des Sciences de Bizerte
Département Informatique

Le circuit correspondant à l'additionneur complet, est composé de deux demi-additionneurs en


série accompagnés d'une logique pour calculer la retenue (un OU entre les deux retenues
générales par chacun des demi-additionneurs) :

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


2- Créer dans un projet TP2 un fichier source VHDL « full_add.vhd » dans lequel il faut
décrire l’additionneur complet. La structure du code VHDL de l’additionneur complet
est fournie dans la figure suivante :

3- Analyser le code du fichier « full_add_tb.vhd fourni ci-dessous, 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é.

SEIoT2/ TP1-2-3-4 2
Faculté des Sciences de Bizerte
Département Informatique

4- Ajouter les deux fichiers au projet TP1 et compiler.


5- Générer un chronogramme des signaux « view -> wave ».
6- Lancer la simulation et interpréter le résultat.

-- 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;

Exercice N° 3 : Circuits Multiplexeurs


1- Ecrire le code de description VHDL qui permet de réaliser le multiplexeur 2 vers 1 de la
figure suivante, en utilisant l’instruction if-else :

2- Ecrire le code VHDL du multiplexeurs 4 vers 1 schématisé par la figure ci-dessous.

SEIoT2/ TP1-2-3-4 3
Faculté des Sciences de Bizerte
Département Informatique

3- Ecrire le code VHDL permettant de simuler et vérifier les résultats obtenus. Visualiser
les chronogrammes des E/S.
4- Ecrire le descriptif VHDL du multiplexeur 4 vers 1 en se basant sur des multiplexeurs
2 vers1 telle que présenté dans la figure suivante.

SEIoT2/ TP1-2-3-4 4

Vous aimerez peut-être aussi