Académique Documents
Professionnel Documents
Culture Documents
1.
2.
3.
4.
5.
6.
7.
8.
9.
10
3. Modle
La cration dun mod
le rsulte dun processus de structuration dun ensemble de
connaissances, parfois exprimentales, que lon dispose propos dun phnomne
ou dun syst
me physique. Un mod
le peut reprsenter le comportement et/ou la
structure dun syst
me donne.
o Le comportement (behaviour) dun syst
me se concentrer sur la (les)
fonction(s) du syst
me en exprimant des relations de cause effet. Les
fonctions dun syst
me peuvent
trs organises de mani
re hirarchique
(fonctions imbriqu.es ou rcursives).
o La structure ( structure ) se concentre sur la mani
re dont un syst
me est
organis hirarchiquement en sous-syst
mes.
La structure dun syst
me 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 syst
me.
ENSA Khouribga 2013/14 Pr.I. LAGRAT
11
3. Modle
12
13
14
15
16
4. Analyse et synthse
17
4. Analyse et synthse
18
19
20
6. Simulation logique
21
6. Simulation logique
22
6. Simulation logique
23
7. Synthse logique
24
7. Synthse logique
25
7. Synthse logique
26
8. Synthse architecturale
27
8. Synthse architecturale
28
9. Synthse physique
29
9. Synthse physique
30
32
Circuit fig
Circuit imprim difficile modifier
Intgration limite
Cot lev
Justifi pour de petits circuits
33
34
35
36
37
38
39
40
41
42
43
44
Un peu dhistoire
45
46
Dmarche de synthse:
47
Niveau dabstraction:
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 Pr.I. LAGRAT
49
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 Pr.I. LAGRAT
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
52
Les oprateurs:
Oprateur
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)
54
Entite
L'entit dfinit les ports (vue externe) et leur mode (in, out,
inout, buffer)
Paramtrer le modle (paramtres gnriques)
Syntaxe:
entity nom_de_l_entite is
{generic(liste_des_parametres)}
{port(liste_des_port_avec_leutr_mode)}
end {nom_de_l_entite}
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 Pr.I. LAGRAT
56
Architecture
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;
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 Pr.I. LAGRAT
59
A <= not B ;
B <= 1 ;
C <= A and B ;
60
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;
ENSA Khouribga 2013/14 Pr.I. LAGRAT
62
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
64
Entity add is
port (A, B : in bit; Som, Ret : out bit);
end add;
architecture Arch_structurelle of add is
component XOU
port (E1, E2 : in bit; S : out bit);
end component;
component ET
port (E1, E2 : in bit; S : out bit);
end component;
for U1 : XOU use entity
work.XOU(A_XOU);
for U2 : ET use entity work.ET(A_ET);
begin
U1 : XOU port map (A, B, Som);
U2 : ET port map (A, B, Ret);
end arch_structurelle;
ENSA Khouribga 2013/14 Pr.I. LAGRAT
65
66
numr
type T_FEU is (ROUGE, ORANGE, VERT);
signal FEU : T_FEU;
entier
signal COMPT : integer range 0 to 15;
flottante
signal MASSE : REAL; -- de -1e38 1e38
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 Pr.I. LAGRAT
68
69
Logique
70
Le type std_logic
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);
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 Pr.I. LAGRAT
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;
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 Pr.I. LAGRAT
75
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 Pr.I. LAGRAT
77
Assignation conditionnelle
Structure WHEN/ELSE
signal <= signal1 when expresion_boolnne else
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;
----------------------------------------
79
o Assignation slective
with expression select
signal1 <=
signal1when valeur 1,
signal2 when valeur2,
-----signal par dfaut when others ;
Exemple:
Le multiplexeur
80
81
82
PROCESS
Le PROCESS est activ lors dun changement dtat dun des signaux de la liste de
sensibilit
Une fois dans le PROCESS le droulement est SEQUENTIELLE
Les instructions utilisables dans un PROCESS sont SPECIFIQUE ( pas de when/else
par exemple)
Les signaux sont mis jour uniquement la fin du process
83
Exemple:
process (CLK)
Begin
end process ;
84
S <= signal;
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 Pr.I. LAGRAT
85
86
instructions ;
.
instructions ;
instructions ;
instructions ;
87
Exemple
88
90
Exemples:
Distributeur automatique de monnaie
Feu de circulation pour piton
La partie contrle dun processeur
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.
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
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 Pr.I. LAGRAT
94
95
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.
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;
98
99
100
101
Machine de Moore
102
103
104
Machine de Mealy
105
106
107
108
109
110
111
112
113
114
115
Testbenches
1. Prambule
o VHDL est la fois un langage de synthse, et de simulation.
116
2. Procdure de test
117
118
119
120
121
122
123
124
125
126