Cours Vhdl14

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 126

Universit Hassan 1er

Ecole Nationale des Sciences Appliques


Khouribga

Conception Numrique
VHDL
Pr. Ismal LAGRAT
Dpartement de Gnie Electrique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

Chapitre 1
Conception Assiste par Ordinateur :
Base et Mthodologie

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

1.
2.
3.
4.
5.
6.
7.
8.
9.

Conception de circuits intgrs


Conception assiste par ordinateur
Modle
Analyse et synthse
Langage de description de matriel
Simulation logique
Synthse logique
Synthse architecturale
Synthse physique
ENSA Khouribga 2013/14
LAGRAT

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.

2. Conception assiste par


ordinateur
La complexit des fonctions ralises sur une seule
puce de silicium ne peut trs maitrise que grce .
Lassistance doutils logiciels appropris et de
mthodes de conception systmatiques.
Il existe trois grands types de mthodes de
conception: Les mthodes descendantes, les
mthodes montantes et les mthodes mixtes.
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

2. Conception assiste par


ordinateur
Les mthodes descendantes (top-down) sont bases sur une suite de
raffinements successifs partant dun cahier des charges pour aboutir une
description dtaille de la ralisation.
Le cahier des charges dfinit le "quoi", cest-dire principalement les
fonctions raliser et les conditions dans lesquelles ces fonctions devront
sexcuter. A lautre bout du processus, la ralisation dcrit le "comment",
cest-dire la manire qui a t retenue pour fabriquer un circuit
satisfaisant les contraintes imposes par le cahier des charges.
Les mthodes descendantes sont bien adaptes . la ralisation de circuits
dont la structure peut trs optimise de manire trs flexile partir d
un ensemble de cellules standard (standard cells) ou de matrices de
portes (gate arrays, sea of gates ).
Les contrleurs (squenceurs) sont des exemples typiques de tels circuits.
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

2. Conception assiste par


ordinateur
Les mthodes montantes (bottom-up) se basent sur lexistence de
modules (primitives ou fonctions plus complexes) caractriss, cest-dire
dont les fonctions et les performances sont connues. Une ralisation
possible est alors construite par assemblage . Laide dun processus de
slection de modules. Le processus est tel quil doit garantir que les choix
faits satisfont les contraintes imposes par le cahier des charges.
Les mhodes montantes sont bien adaptes la ralisation de circuits
dont la structure est essentielle leur bon fonctionnement. Les circuits
rguliers (mmoires, chemins de donnes (datapath modules)) en sont
des exemples types. Un additionneur, bloc de base tr s courant dans les
circuits intgrs, peut par exemple trs ralis selon diffrentes
architectures (propagation de retenue, anticipation de retenue, etc.) avec
diffrents niveaux de performances.
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

2. Conception assiste par


ordinateur
Les mthodes mixtes (meet-in-the-middle) sont une
combinaison de mthodes descendantes et de mthodes
montantes.
Elle sont particulirement adaptes la ralisation de circuits
applications spcifiques (ASIC) possdant un grand nombre de
composants personnaliss comme des multiplieurs, des units
de contrle et de la mmoire.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

2. Conception assiste par


ordinateur
On peut distinguer deux types de descriptions: Les
formats dchange et les langages de description de matriel.
o Les formats dchange (interchange format) sont des
descriptions qui ne sont destines tre lues et comprises que
par des outils logiciels. On trouve par exemple dans cette
catgorie les formats CIF et GDSII pour le layout et EDIF pour
le sch.ma et le layout.
o Les langages de description de matriel (hardware description
language, HDL) sont des descriptions destines tre en plus
lues et comprises par des concepteurs. Le langage VHDL est un
exemple qui sera prsent. plus en dtails par la suite.
ENSA Khouribga 2013/14
LAGRAT

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:

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

12

Niveaux dabstraction et
domaines de description

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

13

Niveaux dabstraction et
domaines de description

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

14

Niveaux dabstraction et
domaines de description

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

15

Niveaux dabstraction et
domaines de description

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

16

4. Analyse et synthse

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

17

4. Analyse et synthse

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

18

5. Langage de description de
matriel

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

19

5. Langage de description de
matriel

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

20

6. Simulation logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

21

6. Simulation logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

22

6. Simulation logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

23

7. Synthse logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

24

7. Synthse logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

25

7. Synthse logique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

26

8. Synthse architecturale

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

27

8. Synthse architecturale

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

28

9. Synthse physique

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

29

9. Synthse physique

ENSA Khouribga 2013/14


LAGRAT

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

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

32

Circuit avec des lments discrets


Circuit fig
Circuit imprim difficile modifier
Intgration limite
Cot lev
Justifi pour de petits circuits

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

33

Circuit fonctionnement programmable


A base des microprocesseurs, Microcontrleurs, DSP
En modifiant le programme on modifie la fonction
Plus souple que les circuits lments discrets
Vitesse limite (mais qui augmente sans cesse)
Paralllisme compliqu (mais faisable)
Intgration encore limite
Adapt des oprations squentielles

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

34

Circuit architecture programmable


Une quantit importante de portes logiques
Des matrices d'interconnections programmables
Modification du fonctionnement sur le circuit
Souplesse assure
Cot de fabrication faible (pour un nombre limit)
Intgration forte
Adapt des applications gourmandes en logique
Temps de dveloppement dpend de l'application
Compliqu pour implanter des algorithmes complexes

ENSA Khouribga 2013/14


LAGRAT

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

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

36

ASIC ou FPGA ?

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

37

Evolution : Mthodes de CAO

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

38

Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

39

Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

40

Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

41

Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

42

Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

43

Introduction au langage VHDL

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

44

Un peu dhistoire

Dbut des annes 80


la ncessit dun langage non ambigu des systmes matriels
pour intgration grande chelle
normalisation pour tre indpendant du fournisseur
Norme dfinitive adopte en 1987 : IEEE Std 1076
La norme a t revue en 93, 2000 et 2002
Les premiers outils de synthse en 1995

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

45

Quest ce que on attend de VHDL ?


VHDL est utilis pour:
Dcrire des circuits numriques
Dcrire des machines tats
Prparer des signaux de test pour simuler cette criture

Quest ce que on attend des outils de synthse ?


Une fois le programme en VHDL est crit, il faut maintenant le
raliser:
Synthse logique : gnrer des fonctions logiques partir du programme
Implmentation : adapter la logique synthtise la cible (FPGA, CPLD)
Gnration : Gnrer un fichier binaire a tl-charger sur le device
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

46

Dmarche de synthse:

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

47

Niveau dabstraction:

ENSA Khouribga 2013/14


LAGRAT

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

Domaine concurrent et squentiel:


Description dun systme matriel
description daction concurrentes (ex. plusieurs blocs dun circuit
peuvent fonctionner en parallle)
description daction en squence (ex. automates)

Deux jeux dinstructions en VHDL


Instructions concurrentes : elles sexcutent en mme temps
Instructions squentielles : elles sexcutent les une aprs les
autres

ENSA Khouribga 2013/14


LAGRAT

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

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

52

Les oprateurs:
Oprateur

logique : and, or, nand, nor, xor,


xnor, sll, srl, sra, rol, ror
Oprateur de comparaison : =, /=, <, <=, >, >=
Oprateur daddition : +, -, &
Oprateur mathmatique : *, /, mod, rem
Oprateur de signe : Oprateur divers : **, abs, not
ENSA Khouribga 2013/14
LAGRAT

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

Structure dune description VHDL


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}

ENSA Khouribga 2013/14


LAGRAT

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

Cest la description interne.


Elle est toujours associe une entit.
Il peut y avoir plusieurs architectures pour la mme entit.
Dfinition de signaux et d'autres objets internes
Description du fonctionnement ou de la structure de lentit
laide dinstructions concurrentes
Remarque:
Les ports sont des signaux utilisables dans larchitecture
associe, sans quil soit ncessaire de les y redclarer.
ENSA Khouribga 2013/14
LAGRAT

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;

ENSA Khouribga 2013/14


LAGRAT

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

Affectation aux signaux


Affectation des signaux se fait par le signe <=
Signal A,B,C: std_logic; --declaration

A <= not B ;
B <= 1 ;
C <= A and B ;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

60

Il existe deux faons distinctes de dcrire une structure:


o Comportementale.
o Structurelle.
Description comportementale:
Dans ce type de description, le comportement de la structure est
directement inscrit dans l'architecture l'aide d'instructions
squentielles ou sous forme de flow de donnes.

ENSA Khouribga 2013/14


LAGRAT

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;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

62

Description flot de donnes


Le circuit est dcrit grce plusieurs couche de registres relies par de la
logique combinatoire.
On utilise gnralement une liste dinstructions concurrentes daffectations
de signaux, ou une expression utilisant des oprateurs logiques,
arithmtiques ou relationnels, ou une expression conditionnelle.
Exemple dune bascule RS

ENSA Khouribga 2013/14


LAGRAT

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

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

64

port (E1, E2 : in bit;


DescriptionSStructurelle
DclarationExemple:
du
: out bit);
composant XOU.
end component;

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

Tout objet en VHDL doit tre typ.


Un type dfinit
l'ensemble des valeurs que l'on peut affecter l'objet
l'ensemble des oprations disponibles sur l'objet
VHDL possde les types:
scalaires dont la valeur est constitue d'un seul lment
composites dont la valeur comprend plusieurs lments
accs ou pointeurs
fichier
On n'tudie que les deux premiers
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

66

Type scalaire
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

physique qui est un entier avec l'unit correspondant


type TIME is range to --64 bits
units fs; ps=1000 fs; ns=1000 ps;
hr=60 min;
end units;
T <= 5 ns;
ENSA Khouribga 2013/14
LAGRAT

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

Type entier (scalaire)


C'est un type prdfini
type integer is range
-2_147_483_648 to 2_147_483_647
On peut dfinir un sous type :
subtype nom_de_sous_type is
type_de_base contraintes;
subtype NATURAL is INTEGER
range 0 to INTEGER'high
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

69

Logique

valeurs multiples (scalaire)

Il existe des signaux logiques plusieurs tats:


0, 1, haute impdance, dont care, non dtermin,
Le type "std_logic" remplace le type "bit" pour permettre
davoir 9 tats diffrents
Utilisation de librairie IEEE.std_logic_1164
exemple
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
signal SORTIE, Q: std_logic;
S
ORTIE <= Z; -- haute impdance
Q <= 1;
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

70

Le type std_logic

ENSA Khouribga 2013/14


LAGRAT

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

On peut aussi dfinir un type tableau dlments composites


type MEMO is array (15 downto 0) of std_logic_vector(7 downto 0);
signal A,B : MEMO;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

72

Accs aux lments


Dclaration:
A,B: std_logic_vector(15 downto 0);

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

Accs aux lments de tableaux


Par agrgat
Notation positionnelle
A(3 downto 1) <= ('0', '1', B(15));
B <= ('1','1',others => '0');
Notation par nommage
A <= (1 =>'1', 3 =>'1',others =>'0');

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

Les instructions de base (mode concurrent ), logique combinatoire.

Le corps de l'architecture est une zone concurrente:


les instructions s'excutent toutes en mme temps (en parallle)

ENSA Khouribga 2013/14


LAGRAT

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

signal1xx when expresion_boolnne else


signal par dfaut;

ENSA Khouribga 2013/14


LAGRAT

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

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

79

o Assignation slective
with expression select
signal1 <= signal1when valeur 1,
signal2 when valeur2,
-----signal par dfaut when others ;
Exemple:
Le multiplexeur

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

80

o Instanciation (placement) de composants dj cres


Dcoupage de votre projet en fonctions: cration de
composants adquats
Assemblage des composants crs pour structurer votre
projet
MOT CLE: PORTMAP
Ma Rfrence :port map ( liste ordonne de signaux) ;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

81

Pour dcrire des systmes combinatoires les


instructions
types
concurrentes
seront
prfres
Lordre des instructions est SANS IMPORTANCE ( car
en parallle)
Il est souhaite de scinder les projets en composants
simples
APPROCHE METHODOLOGIQUE TOP-DOWN

Utilisation des bibliothques IEEE

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

82

Les instructions du mode squentiel


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

ENSA Khouribga 2013/14


LAGRAT

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

Logique squentielle: les instructions

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

Logique squentielle: les


instructions
Assignation conditionnelle
Structure SI/SINON SI
process(H,R)
begin
if R='1' then X <= "000";
elsif (H'event and H='1') then
if X = "000" then X <= "001";
elsif X = "001" then X <= "011";
elsif X = "011" then X <= "010";
elsif X = "010" then X <= "110";
elsif X = "110" then X <= "111";
elsif X = "111" then X <= "101";
elsif X = "101" then X <= "100";
elsif X = "100" then X <= "000";
end if;
end if;
end process
ENSA Khouribga 2013/14
LAGRAT

Pr.I.

86

Logique squentielle: les


instructions
Assignation Selctive
Structure CASE/IS
Case selecteur is
when condition1 => instructions ;
.
instructions ;
when condition2 => instructions ;
---when others
=> instructions ;
end case ;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

87


Exemple

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

88

Chapitre 3 : Machines
tats finie

LES FONCTIONS SQUENTIELLES


La diffrence essentielle entre une fonction combinatoire et une fonction
squentielle rside dans la capacit de cette dernire de se souvenir des
vnements antrieurs : une mme combinaison des entres, un certain
instant, pourra avoir des effets diffrents suivant les valeurs des combinaisons
prcdentes de ces mmes entres.
Pour traduire cet effet de mmoire on introduit la notion dtat interne de la
fonction, laction des entres est alors de provoquer dventuels
changements dtat, la situation qui suit le changement de lune des entres
dpend de ltat prcdent. Si le nouvel tat est diffrent du prcdent on dit
quil y a eu une transition.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

90

Machines dtats finis (Finite State Machine)


Modle de base pour dcrire le comportement dun systme :
Selon son tat actuel, selon les vnements extrieurs,
envoie des messages l'extrieur
change d'tat

Exemples:
Distributeur automatique de monnaie
Feu de circulation pour piton
La partie contrle dun processeur

ENSA Khouribga 2013/14


LAGRAT

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.

ENSA Khouribga 2013/14


LAGRAT

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

Etat des sorties

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

Procdure danalyse dun circuit squentiel


La procdure pour analyser un circuit squentiel synchrone
partir dun diagramme donn consiste :
o Identifier les variables dtat;
o crire les quations dtat et les quations de sortie;
o Dresser le tableau dtats;
o Dessiner le diagramme dtat.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

95

Variables et quations dtat


Ltat dun circuit squentiel est la valeur de tous ses lments
mmoire un moment donn.
Dans un circuit squentiel, chaque signal de sortie dun lment
mmoire est une variable dtat du circuit.
Les quations dtat dun circuit squentiel dterminent la valeur
des variables dtat du circuit en fonction de leurs valeurs prsentes
ainsi que des entres du systme. Les quations dtat sont aussi
appeles quations de transition.

ENSA Khouribga 2013/14


LAGRAT

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.

ENSA Khouribga 2013/14


LAGRAT

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;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

98

Pour les machines de Moore (i.e. si les sorties ne dpendent que de


ltat prsent), la valeur des signaux de sortie est place lintrieur
des cercles;

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

99

Pour les machines de Mealy (i.e. si les sorties dpendent de ltat


prsent et des entres), la valeur des signaux de sortie est place ct
des flches de transition - on les spare des conditions de transition par
une barre oblique.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

100

Circuits squentiels de Moore et de Mealy


o Un circuit squentiel a toujours des lments mmoire et une
fonction combinatoire pour calculer le prochain tat. Il peut aussi
avoir une ou des fonctions combinatoires de Mealy ou de Moore ou
des deux.
o Dans une machine de Moore, les sorties ne sont fonctions que de
ltat prsent.
o Dans une machine de Mealy, les sorties sont fonctions de ltat
prsent ainsi que des entres.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

101

Machine de Moore

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

102

Exemple : Machine de Moore reconnaissant la squence

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

103

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

104

Machine de Mealy

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

105

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

106

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

107

Ecriture VHDL Machine de Moore

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

108

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

109

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

110

Ecriture VHDL Machine de Mealy

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

111

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

112

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

113

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

114

Chapitre 4: Testbenches

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

115

Testbenches
1. Prambule
o VHDL est la fois un langage de synthse, et de simulation.
o

Un testbench VHDL est un code VHDL destin la


vrification, par simulation, du bon fonctionnement dun
systme, lui-mme dcrit en VHDL.

o Dans lindustrie, les testbenches jouent un rle trs important ;


ils sont intgrs dans les spcifications dun systme.

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

116

2. Procdure de test

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

117

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

118

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

119

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

120

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

121

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

122

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

123

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

124

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

125

ENSA Khouribga 2013/14


LAGRAT

Pr.I.

126

Vous aimerez peut-être aussi