Vous êtes sur la page 1sur 34

Les circuits logiques programmables - FPGA

Introduction aux outils et langages de conception des systmes numriques


Fabrice CAIGNET LAAS - CNRS fcaignet@laas.fr

http://www.laas.fr/~fcaignet/

F.CAIGNET

Les circuits logiques programmables - FPGA

Contenu :

I. II.

Le VHDL : introduction Le VHDL : smantique numriques

III. Introduction la conception de systmes IV. Introduction aux FPGAs V. Prsentation des convertisseurs numriques ddi : le bus CAN
F.CAIGNET 2

VI. Prsentation dun bus de communication

Les circuits logiques programmables - FPGA

Introduction au langage VHDL


VHSIC ( Very High Speed Integrated Circuit) Hardware Description Language But : Langage de description matrielle
Augmentation de la vitesse de conception des circuits Simulation rapide Langage de programmation tel ADA, C, Pascal

F.CAIGNET

Les circuits logiques programmables - FPGA

Contenu : I. Le VHDL? II. Organisation dun modle VHDL III. La conception en VHDL

F.CAIGNET

Les circuits logiques programmables - FPGA

I. Le VHDL?
Conception de systmes complexes Permet la modlisation de grands ensembles lectroniques ou logiques en conservant un certain niveau dabstraction Composant lmentaire
(Porte)

Porte lmentaire Composant

Circuit intgr
(Microprocesseur)

Complexit

Carte - systme
(calculateur)

Processus
(systme de navigation)

Systme complexe

F.CAIGNET

Les circuits logiques programmables - FPGA

I. Le VHDL?
Pourquoi le VHDL ? Demande des USA en 1980 Ncessit dun langage de description non ambigu des systmes matriels Unicit de la description Prennit du modle Normalisation IEEE du VHDL en 1987 Depuis 1987, cest un standard de description et de modlisation des circuits et systmes logiques Nombreux outils 100% VHDL (synopsys) Entres possibles en VHDL (cadence)

Standard IEEE (ref. IEEE Std 1164 en 93)


F.CAIGNET 6

Les circuits logiques programmables - FPGA

I. Le VHDL?
Caractristiques du VHDL
Avantages Simulation de systmes complexes : - Macroscopiques ou microscopiques - Modlisation densembles de circuits Description structure : - Travail en quipe, sparation des taches - Rapidit de conception Adaptation aux projets Multi-entreprise : - Indpendance vis vis de la technologie - Scurit grce des modles compils Inconvnients Description complexe Tout nest pas synthtisable (analogique)
Prise en compte avec le VHDL-AMS (1997)

Un langage de
Spcification Simulation Conception

F.CAIGNET

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Structure dun modle VHDL
Nom_du_modle (signaux dentre, signaux de sortie) Architecture du modle - dfinition des signaux - Blocs de description Trois niveaux de description peuvent tre utiliss : Structurelle Comportementale Flot de donnes

F.CAIGNET

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Structure dun modle VHDL
Le modle peut avoir plusieurs descriptions adaptables chaque projet

Modle VHDL Entit


Dclaration dentit

Structurelle

Architecture 1

Comportemental
Architecture 2

Architecture

Begin If clk =1 then Sortie<= a or b; End if; End;

F.CAIGNET

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Hirarchisation du VHDL
Le modle peut avoir plusieurs descriptions adaptables chaque projet

Modle VHDL Entit


Dclaration dentit

Structurelle
Entit 1 Entit 2

Architecture 1

Comportementale
Begin If clk =1 then Sortie<= a or b; End if; End;

Structurelle

Architecture 2

Architecture
Modle Modle

F.CAIGNET

10

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Description structurelle (Structural description)
Le systme lectronique (Entity) est dcrit comme un module avec des entres et des sorties (Port). Ce module est compos de sous modules ou instances connects entre eux par des fils (signal) Entity Entity
A A

Instances (GHI)

G I H
signal
S

F
B

Port

La description repose sur une bibliothque physique dinstances


F.CAIGNET 11

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Description comportementale (Behavioural description or functional description)
Le systme lectronique (entity) est dcrit comme un ensemble de foncions ou dalgorithmes squentiels Entity Boolennes(bits, bit_vector), entiers (integer)
A

F
B

Descriptions complexes de fonctions (If then..else)


S

Description temporelle (s<=b after 5ns)

Le VHDL autorise :
Structure de boucles (loop endloop, While)
Begin If clk =1 then S<= a or b; End if; End;

Branchement (if then.else, case end case) Appel aux procdures et fonctions

Pas de lien avec une bibliothque physique


12

F.CAIGNET

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Description de type flot de donnes (discret event time model description)
Cest une description qui dfinit l'volution des signaux. Cest une dfinition temporelle des signaux et des vnements. Cette description permet essentiellement de simuler des structures qui ont t spcifies Elle est dfinie gnralement par lutilisation dquations concourantes

Dclaration de lentit

Dclaration de larchitecture
Flot de donnes

F.CAIGNET

13

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Un petit exemple : bascule D - description comportementale
D0 H0 Q0
Dclaration de lentit

Dfinition des entres et sorties Dfinition dune sensibilit de dclenchement

Affectation des signaux

Corps darchitecture

F.CAIGNET

14

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Un petit exemple : Oscillateur en anneau - description structurelle
D0 H0 H Q0 D1 H1 Q1 D2 H2 Q2 Q2

Dclaration de lentit Dfinition des entres et sorties

Dclaration dun composant


(Rappel des ports obligatoire)

Instanciation des composants

Corps darchitecture

F.CAIGNET

15

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Un petit exemple : Oscillateur en anneau - description structurelle
D0 H0 H Q0 D1 H1 Q1 D2 H2 Q2 Q2

F.CAIGNET

16

Les circuits logiques programmables - FPGA

II. Organisation dun modle VHDL


Un petit exemple : Oscillateur en anneau (32 bits)- description structurelle
D0 H0 H Q0 D1 H1 Q1 D 31 H 31 Q 31 Q 31

Instanciation du composant 0

Instanciation des composants De 1 30 grce une boucle generate Instanciation du composant 31

F.CAIGNET

17

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Vue densemble
Source VHDL Modle
Bibliothque fondeur Fonctionnelle

Dtecte les erreurs se syntaxe Incompatibilits des signaux

Compilation
Bibliothque fondeur Structurelle
Source VHDL

Tests fonctionnels et temporels

Simulation

Equations boolennes, mise plat de la structure, calcul des redondances, schma quivalent

Synthse
Rtro annotation

Optimisation place, temps

Placement routage

Fabrication programmation F.CAIGNET 18

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Dmarche dans maxplusII pour la programmation de FPGA

F.CAIGNET

19

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Dmarche dans maxplusII pour la programmation de FPGA

F.CAIGNET

20

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Environnement de saisie dans MaxplusII

F.CAIGNET

21

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Environnement de saisie dans Quartus

F.CAIGNET

22

Les circuits logiques programmables - FPGA

III. La conception en VHDL


Environnement de saisie dans Quartus

F.CAIGNET

23

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL
Compilation de tous les modules VHDL

Description VHDL

Simulation Passage dans le domaine temporel

Dfinition de nouveaux signaux

Recherche du premier vnement et des entits actives

Rsultat Final

Simulation des modules valides

Pas de
F.CAIGNET 24

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition de nouveaux signaux

Recherche du premier vnement et des entits actives

Simulation des modules valides

t0 A B W1 S(t) A B W1 S(t)

F.CAIGNET

25

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

Simulation Simulation des des modules modules valides valides

t0 A B t1 W1 S(t) W1 S(t) A B

F.CAIGNET

26

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

t0 A B t1 W1 S(t)

t2

Simulation Simulation des des modules modules valides valides

A B W1 S(t)

F.CAIGNET

27

Les circuits logiques programmables - FPGA

La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

Simulation Simulation des des modules modules valides valides

t0 A

t2 A t3 B

B t1 W1 S(t)

W1 S(t)

F.CAIGNET

28

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

Simulation Simulation des des modules modules valides valides

t0 A

t2 A t3 B

B t1 W1 S(t) t4

W1 S(t)

F.CAIGNET

29

Les circuits logiques programmables - FPGA

La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

Simulation Simulation des des modules modules valides valides

t0 A

t2 t3

t5 A B

B t1 W1 S(t) t4

W1 S(t)

F.CAIGNET

30

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple Combinatoire pure Compilation de tous
les modules VHDL

A B

W1
Description VHDL Simulation Passage dans le domaine temporel

S(t)
Entity AND Entity OR

Dfinition Dfinition de de nouveaux nouveaux signaux signaux

Recherche Recherche du du premier premier vnement vnement et et des des entits entits actives actives

Rsultat Final
t0 A t3 B t1 W1 S(t) t4 t6 t2 t5

Simulation Simulation des des modules modules valides valides

A B W1 S(t)

F.CAIGNET

31

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple compteur synchrone (en anneau)
D0 H0 Q0 D1 H1 Q1 D2 H2 Q2 H Q2

t0

t1

t2

Process (clk). If clkevent and clk=1: On calcul toutes les entits en mme temps
F.CAIGNET 32

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : exemple compteur asynchrone
1
H J
0

J 0 0 1 1

K 0 1 0 1

Qt+1 Qt O 1 Qt

Q0

1
1

Q1

Q2

H0

H1

H2

K0

K1

K2

Process (clk). If clkevent and clk=0;


H
Q0

t0

t1 t2

t3

t4 t5 t6

t7

t8 t9

t10

t11 t12 t13

t t t

Q1

Q2 t

F.CAIGNET

33

Les circuits logiques programmables - FPGA

III. La conception en VHDL


La simulation dans les environnements VHDL : rsum Le VHDL permet une simulation vnementiel Rapidit de simulation Simulation de systmes numriques trs complexes Intelligence de la mthode de simulation: seul les entits activs sont actionnes

Utilisable uniquement pour les systmes numriques

F.CAIGNET

34