Vous êtes sur la page 1sur 126

Conception Numrique VHDL

ENSA Khouribga 2013/14 Pr.I. LAGRAT

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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

Conception de circuits intgrs


Conception assiste par ordinateur
Modle
Analyse et synth
se
Langage de description de matriel
Simulation logique
Synth
se logique
Synth
se architecturale
Synth
se physique
ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 progrsconstants 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 Pr.I. LAGRAT

1. Conception de circuits intgrs


Mode de fonctionnement du circuit :
Un circuit logique (digital circuit) travaille selon un mode
discret qui ne considrequun 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
dquations.
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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 mani
re 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 mani
re tr
s flexile
partir dun 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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

Lensemble des mod


les considrs ici est celui des syst
mes matriels
(hardware systms), cest-dire des syst
mes raliss sous la forme de circuits
intgrs.
Ces mod
les 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 mod
le et sur le type de composant de base, ou primitives quil
consid
re:

ENSA Khouribga 2013/14 Pr.I. LAGRAT

12

Niveaux dabstraction et domaines de description

ENSA Khouribga 2013/14 Pr.I. LAGRAT

13

Niveaux dabstraction et domaines de description

ENSA Khouribga 2013/14 Pr.I. LAGRAT

14

Niveaux dabstraction et domaines de description

ENSA Khouribga 2013/14 Pr.I. LAGRAT

15

Niveaux dabstraction et domaines de description

ENSA Khouribga 2013/14 Pr.I. LAGRAT

16

4. Analyse et synthse

ENSA Khouribga 2013/14 Pr.I. LAGRAT

17

4. Analyse et synthse

ENSA Khouribga 2013/14 Pr.I. LAGRAT

18

5. Langage de description de matriel

ENSA Khouribga 2013/14 Pr.I. LAGRAT

19

5. Langage de description de matriel

ENSA Khouribga 2013/14 Pr.I. LAGRAT

20

6. Simulation logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

21

6. Simulation logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

22

6. Simulation logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

23

7. Synthse logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

24

7. Synthse logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

25

7. Synthse logique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

26

8. Synthse architecturale

ENSA Khouribga 2013/14 Pr.I. LAGRAT

27

8. Synthse architecturale

ENSA Khouribga 2013/14 Pr.I. LAGRAT

28

9. Synthse physique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

29

9. Synthse physique

ENSA Khouribga 2013/14 Pr.I. LAGRAT

30

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 Pr.I. LAGRAT

32

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

ENSA Khouribga 2013/14 Pr.I. LAGRAT

33

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 Pr.I. LAGRAT

34

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 Pr.I. LAGRAT

35

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 Pr.I. LAGRAT

36

ENSA Khouribga 2013/14 Pr.I. LAGRAT

37

ENSA Khouribga 2013/14 Pr.I. LAGRAT

38

ENSA Khouribga 2013/14 Pr.I. LAGRAT

39

ENSA Khouribga 2013/14 Pr.I. LAGRAT

40

ENSA Khouribga 2013/14 Pr.I. LAGRAT

41

ENSA Khouribga 2013/14 Pr.I. LAGRAT

42

ENSA Khouribga 2013/14 Pr.I. LAGRAT

43

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

46

Dmarche de synthse:

ENSA Khouribga 2013/14 Pr.I. LAGRAT

47

Niveau dabstraction:

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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}

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

64

Exemple: Description Structurelle

Dclaration du composant XOU.

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 U2.

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

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 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

70

Le type std_logic

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

Le corps de l'architecture est une zone concurrente:


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

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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

signal1xx when expresion_boolnne else

signal par dfaut;

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

84

Logique squentielle: les instructions


Assignations directes
Exemple

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

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 Pr.I. LAGRAT

86

Logique squentielle: les instructions


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

instructions ;
.
instructions ;
instructions ;
instructions ;

ENSA Khouribga 2013/14 Pr.I. LAGRAT

87


Exemple

ENSA Khouribga 2013/14 Pr.I. LAGRAT

88

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

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 Pr.I. LAGRAT

101

Machine de Moore

ENSA Khouribga 2013/14 Pr.I. LAGRAT

102

Exemple : Machine de Moore reconnaissant la squence

ENSA Khouribga 2013/14 Pr.I. LAGRAT

103

ENSA Khouribga 2013/14 Pr.I. LAGRAT

104

Machine de Mealy

ENSA Khouribga 2013/14 Pr.I. LAGRAT

105

ENSA Khouribga 2013/14 Pr.I. LAGRAT

106

ENSA Khouribga 2013/14 Pr.I. LAGRAT

107

Ecriture VHDL Machine de Moore

ENSA Khouribga 2013/14 Pr.I. LAGRAT

108

ENSA Khouribga 2013/14 Pr.I. LAGRAT

109

ENSA Khouribga 2013/14 Pr.I. LAGRAT

110

Ecriture VHDL Machine de Mealy

ENSA Khouribga 2013/14 Pr.I. LAGRAT

111

ENSA Khouribga 2013/14 Pr.I. LAGRAT

112

ENSA Khouribga 2013/14 Pr.I. LAGRAT

113

ENSA Khouribga 2013/14 Pr.I. LAGRAT

114

ENSA Khouribga 2013/14 Pr.I. LAGRAT

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 Pr.I. LAGRAT

116

2. Procdure de test

ENSA Khouribga 2013/14 Pr.I. LAGRAT

117

ENSA Khouribga 2013/14 Pr.I. LAGRAT

118

ENSA Khouribga 2013/14 Pr.I. LAGRAT

119

ENSA Khouribga 2013/14 Pr.I. LAGRAT

120

ENSA Khouribga 2013/14 Pr.I. LAGRAT

121

ENSA Khouribga 2013/14 Pr.I. LAGRAT

122

ENSA Khouribga 2013/14 Pr.I. LAGRAT

123

ENSA Khouribga 2013/14 Pr.I. LAGRAT

124

ENSA Khouribga 2013/14 Pr.I. LAGRAT

125

ENSA Khouribga 2013/14 Pr.I. LAGRAT

126