Escolar Documentos
Profissional Documentos
Cultura Documentos
Bekkay HAJJI
ENSAO - Universit Mohamed Premier
1 Introduction 7
1.1 Qu'est ce que VHDL ? . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Avantages du VHDL . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Flot de conception d'un circuit numrique . . . . . . . . . . . 8
4 Testbench 27
4.1 Structure du testbench . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Exemples du testbench . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Testbench du demi-additionneur . . . . . . . . . . . . . 28
4.2.2 Testbench du diviseur de frquence . . . . . . . . . . . 29
3
4 TABLE DES MATIRES
Avant propos
6 TABLE DES MATIRES
Chapitre 1
Introduction
Les avances technologiques de ces dernires annes continues stimuler
l'volution fulgurante des circuits logiques programmables. Nous disposons
actuellement de circuits avec plusieurs millions de portes. De plus, les fr-
quences de fonctionnement de ces circuits ne cessent d'augmenter, pour at-
teindre 400 500 Mhz. Ces volutions permettent d'orir des circuits logiques
de plus en plus performant un cot toujours plus faible. Le domaine d'utili-
sation de ces circuits ne se limite plus de petites applications priphriques
mais s'largit jusqu' l'intgration de systme processeur complet (SoPC).
Paralllement, la diminution du prix de ces composants ainsi que de leurs
outils de conceptions, les met la porte de toute PME (Petites et moyennes
entreprises ) dsireuse d'accder cette technologie.
7
8 CHAPITRE 1. INTRODUCTION
2.1 Entit
Le bloc Entit (Entity) dcrit la vue externe du circuit. Elle est consti-
tue d'une entte contenant son nom suivie de la liste des dirents signaux
entres/sorties (ports) qui constituent son interface. Chaque port possde :
Un nom.
Un mode, ce qui dnit le sens de transfert comme l'illustre le schma
de la gure 2.1.
IN pour des signaux entrants.
OUT pour des signaux sortants (non visibles l'intrieur de l'entit).
BUFFER pour les signaux sortants qui peuvent tre aussi utiliss
l'intrieur de l'entit.
INOUT pour les signaux bidirectionnels.
11
12 CHAPITRE 2. STRUCTURE D'UN MODULE VHDL
2.2 Architecture
Le bloc architecture dcrit le fonctionnement interne du circuit. Chaque
architecture porte un identicateur et est relie une seule entit. Cependant,
une entit peut avoir plusieurs architectures. Le format du bloc architecture
est montr dans l'exemple ci-dessous.
Architecture de l'additionneur : .
La gure 2.7 illustre l'architecture du demi additionneur par la description
de ot de donnes.
2.3 Exemples
Exemple 1 : Code VHDL de l'additionneur complet
3.1.1 Process
17
18CHAPITRE 3. DIFFRENTS STYLES DE DESCRIPTION D'UN CIRCUIT
Exemple 1 : Bscule D
Dans l'exemple de la gure 3.5, nous dcrirons le fonctionnement de la
bascule D en utilisant la notion du process. La bascule D comporte les entres
suivants :
D, clk et reset : signaux d'entrs .
Q : signal de sortie.
20CHAPITRE 3. DIFFRENTS STYLES DE DESCRIPTION D'UN CIRCUIT
des entits dclares dans d'autres chiers, et pour lesquelles il existe des des-
criptions de leur comportement l'aide d'architectures. Ces chiers doivent
avoir t compils dans une librairie qui est visible lors de la compilation du
code de cet exemple.
L'instanciation d'une composante doit inclure une tiquette (XOR1, XOR2,
AND1, AND2 et OR dans l'exemple). Elle est suivie de l'identicateur de la
composante, et de la liste des connexions ses ports d'entre et de sortie.
L'assignation des connexions aux ports des composantes peut tre faite par
24CHAPITRE 3. DIFFRENTS STYLES DE DESCRIPTION D'UN CIRCUIT
LIBRARY ieee ;
USE ieee.std_logic_1164.ALL ;
ENTITY Full_adder IS PORT (
x,y,Cin : IN std_logic ;
Sum, cout : OUT std_logic) ;
END Full_adder ;
Architecture structurelle of Full_adder is
Dclaration des types de composants
component XOR_G portes XOR
PORT (
X1,X2, : IN std_logic ;
XO1 : OUT std_logic) ;
END component ;
component AND_G portes AND
PORT (
A1,A2, : IN std_logic ;
AO1 : OUT std_logic) ;
END component ;
componentOR_G portes OR PORT (
O1, O2 : IN std_logic ;
OO1 : OUT std_logic) ;
END OR_G ;
Signal S1, S2, S3 : std_logic ; dclaration des signaux
begin
XOR1 : XOR_G portmap(X, Y, S) ;
XOR2 : XOR_G portmap(S1, Cin, Cout) ;
AND1 : AND_G portmap (X, Y, S3) ;
AND2 : AND_G portmap(S1, Cin, S2) ;
OR : OR_ portmap(S2, S3, Cout) ;
end structurelle
3.3. DESCRIPTION PAR FLOT DE DONNES 25
Exemple 1 : Comparateur
L'exemple de la gure 3.11, prsente la description de ot de donnes en
VHDL du comparateur.
Exemple 2 : Demi-additionneur
L'exemple de la gure 3.12, prsente la description ot de donnes en
VHDL du demi-additionneur.
26CHAPITRE 3. DIFFRENTS STYLES DE DESCRIPTION D'UN CIRCUIT
27
28 CHAPITRE 4. TESTBENCH
dclare le composant tester ainsi que les direntes signaux qui vont servir
connecter le composant. La suite du programme testbench du diviseur
de frquence est prsente sur la gure 4.6. Elle concerne l'instantiation du
composant tester l'aide de la commande Port map et la gnration des
vecteurs de tests prsenter ses entres l'aide du Process.
5.1 Introduction
Les machines tats sont des circuits de logiques squentielle servant
gnrer des signaux de commande. Il existe en eet 2 grands types de signaux
en lectroniques :
Signaux traiter : les donnes
Signaux pilotant le traitement : les commandes
La partie contrle, gnrant les commandes, est dissocie de la partie op-
rative, traitant les donnes (Figure 5.1). Les 2 parties sont toujours ralises
en logiques squentielle et dans un trs grande majorit des cas en logique
squentielle synchrone.
33
34 CHAPITRE 5. MACHINES TATS EN VHDL
Machine de Mealy :
Deux process pour dcrire une machine tat :
Un process combinatoire : dtermination de l'tat suivant en fonction
de l'tat courant et de signaux d'entres.
Un process synchrone : description du registre d'tat qui mmorise
l'tat courant sur un front d'horloge
36 CHAPITRE 5. MACHINES TATS EN VHDL
39
40 CHAPITRE 6. QUELQUES DTAILS DU LANGAGE VHDL
6.2 Oprateurs
En VHDL, il existe un vaste choix d'oprateurs :
Oprateur logiques : ( types BIT, BIT_VECTOR) :
AND, OR, NAND, NOR, XOR, etc.
Oprateur de test :
= (gal), /= (difrent) , < (strictement infrieur) , > (strictement
suprieur), (suprieur ou gal) , (infrieur ou gal), etc.
Oprateur arithmtique :
+ (addition) , - (soustraction) , / (division) , * (multiplication), &
(concatnation).
Oprateur de dcalage :
Sll (dcalage logique gauche) , srl (dcalage logique droite),
sla(dcalage arithmtique gauche) , sra (dcalage arithmtique
droite), rol (rotation gauche), et ror (rotation droite).
6.3.1 Objets
Constantes
Une constante est un objet possdant une valeurs xes aprs initialisation.
Exemples :
constant number_of_bytes:integer:=4;
constant e:real:=2.718281828;
constant count_limit:integer:=255;
6.3. OBJETS ET LEURS TYPES 41
Variables :
Les variables s'utilisent exclusivement au sein des processes. Elles ont une
utilisation semblable aux variables dans un langage de programmation clas-
sique. La mise jour pour un variable se fait instantanment contrairement
un signal. La dclaration d'un variable se fait l'aide de : :=
Exemple :
variable index: integer :=0;
variable start,finish: time :=0 ns;
Signal
Les signaux reprsentent les donnes physiques changes entre les mo-
dules. Il sont utiliss pour connecter des lments concurrents (comme par
exemple, lors des instanciations des composants, les processus, et les assigna-
tions concurrentes), de la mme faon que les ls sont utiliss pour connecter
des composants dans un circuit lectronique ou dans un schma.
6.3.2 Types
Le langage VHDL est fortement typ. Tout objet (ou donne) manipul
dans le langage doit tre dclar avant utilisation en indiquant son type. Un
type dnit :
Le format des donnes
42 CHAPITRE 6. QUELQUES DTAILS DU LANGAGE VHDL
1991.
[2] Yannick HERV : Extension AMS du langage VHDL pour l'lec-
tronique de puissance., Techniques de l'ingnieur, Universit Louis
Pasteur-Strasbourg.
[3] J. VILLEMEJANE., Composants programmables complexes / FPGA. ,
2013.
[4] Alain Vachoux. Le langage VHDL, alain.vachoux@ep.ch.
45