Cours Vhdl14
Cours Vhdl14
Cours Vhdl14
Conception Numrique
VHDL
Pr. Ismal LAGRAT
Dpartement de Gnie Electrique
Pr.I.
Chapitre 1
Conception Assiste par Ordinateur :
Base et Mthodologie
Pr.I.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Pr.I.
1. Conception de circuits
intgrs
Un circuit intgr (integrated circuit, IC) ralise une fonction
lectronique sous la forme d un ensemble de composants
lectroniques miniaturiss assembls sur un m me substrat,
usuellement de silicium.
Les progrs constants des techniques de fabrication permettent
aujourdhui de placer plusieurs dizaines de millions de transistors
sur une surface de silicium plus petite quun timbre poste.
la conception du circuit dans son ensemble pose de redoutables
problmes lorsquil sagit de satisfaire des contraintes:
o
de performance:
surface, dlais, partition matriel-logiciel, partition logique-analogique.
o de march :
domaine dapplication, disponibilit du produit.
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
1. Conception de circuits
intgrs
Mode de fonctionnement du circuit :
Un circuit logique (digital circuit) travaille selon un mode discret
qui ne considre quun nombre limit dtats. Le comportement
du circuit consiste principalement passer dun tat un autre et
peut trs dcrit sous la forme dun programme.
Un circuit analogique (analog circuit) travaille selon un mode
continu dont le comportement peut trs dcrit sous la forme d
quations.
Un circuit mixte (mixed-signal circuit) incorpore des parties
fonctionnant en mode logique et des parties fonctionnant en mode
analogique. Un convertisseur logique-analogique est un exemple
type de circuit mixte.
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
Pr.I.
Pr.I.
Pr.I.
Pr.I.
Pr.I.
10
3. Modle
La cration dun modle rsulte dun processus de structuration dun ensemble de
connaissances, parfois exprimentales, que lon dispose propos dun phnomne ou d
un systme physique. Un modle peut reprsenter le comportement et/ou la structure
dun systme donne.
o Le comportement (behaviour) dun systme se concentrer sur la (les) fonction(s) du
systme en exprimant des relations de cause effet. Les fonctions dun syst me
peuvent trs organises de manire hirarchique (fonctions imbriqu.es ou
rcursives).
o La structure ( structure ) se concentre sur la manire dont un syst me est organis
hirarchiquement en sous-systmes.
La structure dun systme peut trs de plus considre sous deux aspects
complmentaires: un aspect adimensionnel pour lequel les notions de dimension, de taille
et de forme sont ignores et un aspect gomtrique qui tient compte de ces notions. Une
description structurelle adimensionnelle est usuellement un schma, ventuellement
hirarchique, reprsentant uniquement les liens topologiques entre lements du
systme.
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
11
3. Modle
Lensemble des modles considrs ici est celui des systmes matriels
(hardware systms), cest-dire des systmes raliss sous la forme de circuits
intgrs.
Ces modles peuvent trs classs en termes de niveaux dabstraction
( abstraction levels) et de vues (views). La Table 1.1 prsente ces deux notions
orthogonales. Chaque niveau dabstraction est caractris par la nature des
informations sur le modle et sur le type de composant de base, ou primitives qu
il considre:
Pr.I.
12
Niveaux dabstraction et
domaines de description
Pr.I.
13
Niveaux dabstraction et
domaines de description
Pr.I.
14
Niveaux dabstraction et
domaines de description
Pr.I.
15
Niveaux dabstraction et
domaines de description
Pr.I.
16
4. Analyse et synthse
Pr.I.
17
4. Analyse et synthse
Pr.I.
18
5. Langage de description de
matriel
Pr.I.
19
5. Langage de description de
matriel
Pr.I.
20
6. Simulation logique
Pr.I.
21
6. Simulation logique
Pr.I.
22
6. Simulation logique
Pr.I.
23
7. Synthse logique
Pr.I.
24
7. Synthse logique
Pr.I.
25
7. Synthse logique
Pr.I.
26
8. Synthse architecturale
Pr.I.
27
8. Synthse architecturale
Pr.I.
28
9. Synthse physique
Pr.I.
29
9. Synthse physique
Pr.I.
30
Chapitre 2
Conception via le langage VHDL
Introduction
Implantation des circuits numriques
Avec des lments discrets
Avec des microprocesseurs, micro contrleurs, DSP
Avec des circuits architecture programmable PAL,
GAL, FPGA
Avec des circuits intgrs ASIC
PLD : Programmable Logic Device, CPLD : Complex PLD, PAL:
Programmable Array Logic, GAL: Generic Array Logic, FPGA : Field
Programmable Gate Array, ASIC : application-specific integrated circuit
Pr.I.
32
Pr.I.
33
Pr.I.
34
Pr.I.
35
Les ASIC
Application Specific Integrated Circuit
Cot trs bas mais pour de gros tirages
Temps de dveloppement important
Pas de modifications une fois fabriqu
Ncessitant un fondeur pour la fabrication
Pr.I.
36
ASIC ou FPGA ?
Pr.I.
37
Pr.I.
38
Exemple
Pr.I.
39
Exemple
Pr.I.
40
Exemple
Pr.I.
41
Exemple
Pr.I.
42
Exemple
Pr.I.
43
Pr.I.
44
Un peu dhistoire
Pr.I.
45
Pr.I.
46
Dmarche de synthse:
Pr.I.
47
Niveau dabstraction:
Pr.I.
48
Structure du VHDL
Il existe 5 catgories dunit de conception:
Circuit principal:
Lentit (mot cl entity): dcrit un systme vu extrieur
(bote noire).
Larchitecture (mot cl architecture): dcrit lintrieur (le
fonctionnement) dune bote noire.
La configuration (mot cl configuration)
Package (librairie):
La dclaration de paquetage (mot cl package)
Le corps de paquetage (mot cl package body)
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
49
Pr.I.
50
Classes dobjets:
Quatre classes dobjets en VHDL :
Les constantes
Comme les autres langages, elles ont une valeur fixe
Les variables
Comme les autres langages, elles ont une valeur
immdiatement modifiable par affectation
Les signaux
Notion nouvelle, la valeur ne se modifie pas immdiatement
Fichier (nest pas abord dans ce cours)
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
51
Types dobjets
Les objets dun programme VHDL sont tous typs.
Avant toute utilisation dune constante, dune variable ou dun
signal, il faut les dclarer.
La dclaration des objets seffectue uniquement dans la partie
dclarative du programme
Pr.I.
52
Les oprateurs:
Oprateur
Pr.I.
53
Programmer en VHDL:
Dfinition de lentit (bote noire avec les ports dentre/sortie)
Dfinition de larchitecture interne de cette bote noire
o Dclaration des constantes, des signaux, des fonctions, des
procdures, des blocs hirarchiques utiliss dans le
programme
Corps du programme consistant
o Les instructions concurrentes
o Les instructions squentielles encapsules dans des process
(Les commentaires sont prcds de deux tirs : -- exemple)
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
54
end {nom_de_l_entite}
Pr.I.
55
Exemples dentit:
entity NAND2 is
port(E1,E2: in std_logic;
S: out std_logic);
end NAND2;
entity COMPT is
generic(N : integer := 20);
port(E1: in std_logic;
S: out std_logic_vector(4 downto 0));
end COMPT;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
56
Architecture
Pr.I.
57
Syntaxe:
architecture nom_de_l_architecture of nom_de_l_entite is
{partie dclarative}
begin
{suite dinstructions concurrentes}
end nom_de_l_architecture;
Exemple:
entity additionneur is
port (A, B : in bit; Som, Ret : out
bit);
end additionneur ;
architecture arch_addi of additionneur
is
begin
Som <= A xor B;
Ret <= A and B;
end arch_addi;
Pr.I.
58
Structure de l'architecture
entity circuit is
port (CLK, RST: in std_logic;
B_DAT: inout std_logic_vector(7 downto 0);
);
end circuit;
architecture comport of circuit is
{partie dclarative de l'architecture}
begin
{zone des instructions concurrentes }
{comme des affectations, des process; }
end comport;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
59
A <= not B ;
B <= 1 ;
C <= A and B ;
Pr.I.
60
Pr.I.
61
Exemple:
Le circuit est dcrit sous forme dun algorithme.
architecture Arch_comp1 of entit_X is
begin
process (A, B)
begin
if (A = '0' and B = '0') then
Som <= '0'; Ret <= '0';
if (A = '0' and B = '1') then
Som <= '1'; Ret <= '0';
if (A = '1' and B = '0') then
Som <= '1'; Ret <= '0';
if (A = '1' and B = '1') then
Som <= '1'; Ret <= '1';
end if;
end process;
end arch_comp1;
Pr.I.
62
Pr.I.
63
Description Structurelle
Dans ce type de description, on relie entre eux des composants
pralablement dcrits en VHDL.
entity XOU is
port (E1, E2 : in bit; S1 : out
bit);
End XOU;
architecture A_XOU of XOU is
begin
S1 <= E1 XOR E2;
end A_XOU;
entity ET is
port (E3, E4 : in bit; S2 : out
bit);
end ET;
architecture A_ET of ET is begin
S2 <= E3 AND E4;
end A_ET
Pr.I.
64
Dclaration du
composant ET.
Spcification de l'entit
et de l'architecture
utiliser pour les
composants ET et
XOU.
Cblage des
composants XOU
et ET appel U1 et ENSA Khouribga 2013/14
LAGRAT
U2.
component ET
port (E1, E2 : in bit;
S : out bit);
end component;
for U1 : XOU use
entity
work.XOU(A_XOU)
;
Pr.I.
65
Types en VHDL
Pr.I.
66
Type scalaire
numr
entier
signal COMPT : integer range 0 to 15;
flottante
signal MASSE : REAL; -- de -1e38 1e38
Pr.I.
67
Type numr:
Ce type dclare toutes les valeurs qu'un objet de ce type
peut prendre.
type T_FEU is (ROUGE, ORANGE, VERT);
signal FEU : T_FEU;
type ETAT is (INIT, LECT, ECR, ATT);
Les types ci-dessous sont des types prdfinis
type BOOLEAN is (FALSE, TRUE);
type BIT is ('0' , '1');
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
68
Pr.I.
69
Logique
Pr.I.
70
Le type std_logic
Pr.I.
71
Type composite
Deux types sont considrs : tableau et record
Un tableau est un ensemble dlments du mme type
Pour un ensemble de std_logic, nous avons le type prdfini
std_logic_vector : on dfinit la taille et l'ordre des lments
signal BUS1 : std_logic_vector (7 downto 0);
signal REG : std_logic_vector (0 to 31);
Pr.I.
72
Directement:
A(3) <= 1;
B(15) <= 0;
Par tranches
A(15 downto 12) <= "1011";
B(0 to 2) <= "111" ; -- erreur
A(10 downto 2) <= B(15 downto 7);
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
73
Par concatnation
signal A,B,C,D : std_logic;
signal BYTE : std_logic_vector(7 downto 0);
signal Z_BUS,A_BUS : std_logic_vector(3 downto 0);
Z_BUS <= A & C & D & B;
BYTE <= Z_BUS & A_BUS;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
74
Exemples
SIGNAL a: STD_LOGIC;
SIGNAL b: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL c: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL d: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL e: STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL f: STD_LOGIC_VECTOR(8 DOWNTO 0);
.
a <= 1;
b <= 0000; -- Base Binaire par dfaut
c <= B0000; -- Base Binaire explicite
d <= 0110_0111; -- Utiliser _ pour augmenter la lisibilit
e <= XAF67; -- Base Hexadecimale
f <= O723; -- Base Octale
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
75
Pr.I.
76
Instructions concurrentes
o Assignation simples
library IEEE;
use IEEE.std_logic_1164.all;
--librairie pour inclure type std_logic
--portes ET
--3 entres E2 E1 E0
-- 1 sortie S0
entity ET3 is
port( E: IN std_logic_vector(2 downto 0);
S:OUT std_logic );
end ET3;
--definition de l'architecture
architecture arch_ET3 of ET3 is
begin
S<=E(2) and E(1) and E(0); -- E(2) accs au fil 2
end arch_ET3;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
77
Assignation conditionnelle
Structure WHEN/ELSE
signal <= signal1 when expresion_boolnne else
Pr.I.
78
LIBRARY ieee;
USE ieee.std_logic_1164.all;
--------------------------------------------ENTITY encoder IS
PORT ( x: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
y: OUT STD_LOGIC_VECTOR (1 DOWNTO 0));
END encoder;
--------------------------------------------ARCHITECTURE encoder1 OF encoder IS
BEGIN
y <= "00" WHEN x="0001" ELSE
"01" WHEN x="0010" ELSE
"10" WHEN x="0100" ELSE
"11" WHEN x="1000" ELSE
"ZZZ";
END encoder1;
----------------------------------------
Pr.I.
79
o Assignation slective
with expression select
signal1 <= signal1when valeur 1,
signal2 when valeur2,
-----signal par dfaut when others ;
Exemple:
Le multiplexeur
Pr.I.
80
Pr.I.
81
Pr.I.
82
Pr.I.
83
Exemple:
process (CLK)
Begin
if (CLK'event and CLK ='1') then
if (RESET =1) then
S <= 0;
elsif (SET =1)then
S <= 1;
else
S <= D;
end if;
end if;
end process ;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
84
Assignations directes
S <= signal;
Exemple
process (CLOCK)
begin
if (CLOCK ='1' and CLOCK'event) then
Q_BUS_INTERNE <= Q_BUS_INTERNE + 1;
end if;
end process;
Q <= Q_BUS_INTERNE; -- affectation du bus
interne au
-- signal de sortie Q
end DESCRIPTION;
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
85
Pr.I.
86
Pr.I.
87
Exemple
Pr.I.
88
Chapitre 3 : Machines
tats finie
Pr.I.
90
Exemples:
Distributeur automatique de monnaie
Feu de circulation pour piton
La partie contrle dun processeur
Pr.I.
91
Une machine tats (M.A.E.) en anglais Finite State Machine (F.S.M.) est
un systme dynamique, qui peut se trouver, chaque instant, dans une position
parmi un nombre fini de positions possibles. Elle parcourt des cycles, en
changeant ventuellement dtat lors des transitions actives de lhorloge.
Larchitecture gnrale dune machine tat est prsente ci-dessus.
Pr.I.
92
LA DESCRIPTION DETAT
PRINCIPE :
La description du systme se fait par un nombre fini dtats. Ci-dessous la
reprsentation schmatique dun systme 4 tats (M0 M3), 2 sorties (S1 et S2), 2
entres X et Y, sans oublier lentre dhorloge qui fait avancer le processus, et celle de
remise zro qui permet de linitialiser :
M0
Y=1
S1= 0
S2 = 0
M1
S1 = 1
S2 = 0
M3
dnomination de ltat
X= 0
M0
S1 = 0
S2 = 1
M2
S1 = 0
S2 = 0
S1 = 1
S2 = 1
condition
Y=1
de la
transition
conditionnelle
transition inconditionnelle
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
93
Ltat initial est M0. Les 2 sorties sont 0. Au coup dhorloge on passe
inconditionnellement ltat M1 sauf si la condition Y=1 a t vrifie,
ce qui mne ltat M3 ou si X=0 a t valid ce qui mne M2. De
M3 on revient au coup dhorloge M0. De M1 on passe M2, et de
M2 on passe M 3... Dans chaque tat on dfinit les niveaux des
sorties.
ECRITURE EN LANGAGE V.H.D.L. :
On va traduire et essayer lexemple ci-dessus. En langage VHDL une
des mthodes conseille dcriture des machines dtat est :
o une ENTITE
o une ARCHITECTURE de description dtat avec 2 PROCESS :
Un process asynchrone et un process synchrone.
ENSA Khouribga 2013/14
LAGRAT
Pr.I.
94
Pr.I.
95
Pr.I.
96
Tableau dtat
Un tableau dtat (aussi appel tableau de transitions dtat) est similaire
une table de vrit. Il comporte quatre sections : les tats prsents, les
entres, les tats prochains, et les sorties.
Si on a m bascules et n entres, le tableau a 2m + n ranges en forme
gnrale.
En forme compacte, le tableau na que 2m ranges. On forme alors des
colonnes pour couvrir les diffrents cas des variables dentre.
Pr.I.
97
Diagramme dtat
Toute linformation prsente dans un tableau dtat peut tre reprsente
sous forme graphique par un diagramme dtat, et vice versa.
Un diagramme dtat ne contient pas plus dinformation quun tableau dtat
mais facilite la comprhension du comportement du circuit. Dans un
diagramme dtat :
Les tats sont identifis par des cercles, avec leur nom et/ou leur code
binaire associ crit dans le cercle;
Les transitions entre les tats sont identifies par des flches entre les
cercles;
Les conditions pour toute transition (i.e. les valeurs ncessaires de
variables dentre) sont places ct des flches de transition;
Pr.I.
98
Pr.I.
99
Pr.I.
100
Pr.I.
101
Machine de Moore
Pr.I.
102
Pr.I.
103
Pr.I.
104
Machine de Mealy
Pr.I.
105
Pr.I.
106
Pr.I.
107
Pr.I.
108
Pr.I.
109
Pr.I.
110
Pr.I.
111
Pr.I.
112
Pr.I.
113
Pr.I.
114
Chapitre 4: Testbenches
Pr.I.
115
Testbenches
1. Prambule
o VHDL est la fois un langage de synthse, et de simulation.
o
Pr.I.
116
2. Procdure de test
Pr.I.
117
Pr.I.
118
Pr.I.
119
Pr.I.
120
Pr.I.
121
Pr.I.
122
Pr.I.
123
Pr.I.
124
Pr.I.
125
Pr.I.
126