Vous êtes sur la page 1sur 156

Rpublique Algrienne Dmocratique et Populaire

Ministre de lenseignement suprieur et de la recherche scientifique

Universit Mohamed Khider Biskra


Facult des Sciences et de la technologie
Dpartement : Gnie lectrique

! "#
$ $%
% & (

:
:

Ref :

Mmoire prsent en vue de lobtention


Du diplme de

Magister en : Electronique
Option : Signaux et communication

Mthodologie de dveloppement et dimplantation sur


puce FPGA dalgorithme de commande
Prsent par :

Houari ABBAD

Soutenu publiquement le 29/06/2016

Devant le jury compos de :


Dr.Benakcha Abdelhamid
Dr. Abderrazak DEBILOU

Maitre de Confrences A

Prsident

Maitre de Confrences A

Rapporteur

Universit de Biskra
Universit de Biskra

Dr. Ouafi Abdelkarim

Maitre de Confrences A

Examinateur

Universit de Biskra

Dr. Ghodebane Hatem

Maitre de Confrences A

Examinateur

Universit de Biskra

Ww|vtvx
Tt ? }x |x xxv|x x u w|x? x |x | yyx x vtzx x
t vxt|x tyyx x w|yyxx wx t |x?
]x ww|x vx wxx tt|
T t xA
T xA
T x yx
T x
x x t yt|xA
T x t| x x vzx wx t | `tz|x

Remerciements
Nous remercions le Dieu de nous avoir donn la force et le courage pour raliser ce modeste
travail.
Nous remercions Monsieur Debilou Abderrazak et Mlle. Gargazi qui on suivi de trs prs
ce travail, pour son aide, ses orientations pdagogiques dans llaboration de ce mmoire, et
tous les conseils quil nous a prodigus pendant toute la dure de ce travail malgr ses
nombreuses occupations.
Nous adressons nos plus vifs remerciements aux membres du jury pour l'honneur qu'ils nous
font en acceptant la charge de juger ce travail.
Nous sommes reconnaissants envers nos enseignants auxquels nous devons notre formation.
Enfin, nous ne pourrons terminer ces remerciements sans remercier notre famille pour leurs
aides, comprhensions, encouragements et soutiens, quelles nous ont apports tout le long de
nos tudes et toutes nos amies.

f|zt x v|vt| A

II

Mthodologie de dveloppement et dimplantation sur puce FPGA


dalgorithmes de commande
- Mots Clefs

FPGA
Mesure de performances
Commande
Temps rel

Rsum
Lobjectif de ce travail est de trouver une mthodologie pour limplantation des algorithmes
de commande sur cible FPGA, on a fait notre dpart de travail par partager le projet ont deux
grandes parties : une partie thorique et une partie pratique.
Pour la 1re partie, on a fini le premier chapitre qui est consacr sur les rseaux logiques
programmables PLD, le 2me chapitre qui, sera destin la technologie et environnement de
dveloppement des FPGA et le dernier sur la Mthodologie de dveloppement des
algorithmes de commande et l'implantation sur FPGA.
La 2me partie contient le dernier chapitre, notre motivation tait de raliser un dispositif de
commande numrique base dune puce dFPGA pour un onduleur triphas pdagogique,
cest une pratique de ce que nous avant tudient dans la partie thorique, alors ont dbut
dans cette partie par prparer un cahier des charges pour faire une boucle de commande
vectorielle pour moteur asynchrone, et voire ce que nous avant comme matrielle
pdagogique (les cartes FPGA) dans le laboratoire de facult, aprs ont choisir la carte
FPGA DE0 dAltra comme une cible, on mme temps commenc partager la boucle
dacquisition sur des petits blocs dalgorithmes pour faciliter lcriture et la simulation du
programme , finalement ces propositions d'avancement sont valides en simulation.

III

Methodology development and implementation on FPGA control


algorithms

- Key Words

FPGA
Measuring performance
command
real time

Summary
The objective of this work is to find a methodology for the setting-up of the algorithms of
command on target FPGA, we made our working departure to share the project have two big
parts: a theoretical part and a part practises.
For the 1st part, we finished the first chapter which is dedicated on the programmable logical
networks PLD, the 2nd chapter, which,

will be intended for the technology and the

environment of development of the FPGA and the last one on the Methodology of
development of the algorithms of command and the setting-up on FPGA.
The 2nd part contains the last chapter, our motivation was to realize a digital control system
with a flea of FPGA for an educational three-phase inverter, it is the practice of what we
before study in the theoretical part, then have to begin in this part to prepare a specifications
to make a buckle of vectorial command for asynchronous motor, and even that we before as
material educational (cards FPGA) in the laboratory of faculty, Later have to choose the card
FPGA DE0 of Altera as a target, one the same time begun to share the loop of acquisition on
small blocks of algorithms to facilitate the writing and the simulation of the program, finally
these proposals of progress are validated in simulation.

IV

! "# $ & %

'& "

*
"#
' $
(0 ) . , - * ( )#
4 , 3 8 $. ' " 56, ) 56 <2 56 * 1 ,2
8
F


.4

, PLD B , $ 4 E
, . 32 C
5 A ? >
FPGA G , ' . , # ( $(G 3 . . FPGA " #

FPGA.
G 3 2 -$IJ 4
3 B
G0 , . 0G 2 C
5 42 E . ,E G'
0 4 C$I 5 ) 5 < ( 0 C 2 32 A I 3 M
0 B
3 . $#
2 (# ) 2
* 4 ? " # 5(6 $ J 2 '>
FPGA
FPGA -DE0
4 (AR 4 G.Q$. , 2 $'U G 3
4# -3
4 ,E $ 32 $ T 2
Altera A 3 ) $A T 2 . C A

Table des matires


DEDICACE

REMERCIMENT

II

RESUME

III

TABLE DES MATIERES

VI

TABLE DES NOTATIONS ET SYMBOLES

IX

LISTE DES FIGURES

XI

LISTE DES TABLEAUX

XIV

INTRODUCTION GENERAL

CHAPITRE I : Les composants rseaux logiques programmables : PAL, PLD, CPLD, FPGA

I.1. Introduction
I.2. Les circuits programmables
I.3. Les oprateurs combinatoires gnriques
I.3.1. Sommes de produits, produits de somme et matrice PLA (Programmable Logic Array)
I. 3.2. Mmoires
I.3.3. Multiplexeur
I.3.4. Ou exclusif
I.3.5. Les Bascules
I.4. Technologie d'interconnexions
I. 4.1. Connexions programmable une seule fois (OTP : One Time Programming)
I.4.1.1. Cellules fusible
I.24.1.2. Cellules antifusible
I. 4.2. Cellules reprogrammables
I.4.2.1. Cellule transistor MOS grille flottante et EPROM (Erasable Programmable Read
Only Mmory)
I.4.2.2. Cellules SRAM transistors MOS classique
I.5. Architectures utilises
I.5.1. PLD (Programmable Logic Device)
I.5.2. CPLD (Complex Programmable Logic Device)
I.5.3. FPGA (Field Programmable Gate Array)
I.5.4. ASIC (Application Spcific Intgrated Circuit)
I. 5.4.1. Les prdiffuss (gate arrays)
I. 5.4.2. Les prcactriss (standard cell)
I.5.4.3. Les "fulls customs"
I.6. Conclusion

5
8
8
9
13
14
16
17
18
19
19
21
23
23
25
26
26
28
29
30
31
31
31
31

CHAPITRE II : Technologie et environnement de dveloppement des FPGAs


II.1. Introduction
II.2. Description de la composent FPGA

34
35

VI

II.3. Les cinq principaux atouts de la technologie FPGA


II.3 .1. Performances
II.3. 2. Temps de mise sur le march
II.3. 3. Cot
II.3. 4. Fiabilit
II.3. 5. Maintenance long terme
II.4. Fabricants
II.5. Structure interne de FPGA
II.5.1. Architectures des FPGA
II.5.1.1. Architecture lot de calcul
II.5.1.2. Architecture hirarchique
II.5.1.3. Architecture de type mer de portes
II.5.1.4. Architecture Spacetime
II.5.2. Ressources fonctionnelles configurables
II.5.2.1. Les lments de mmorisation
II.5.2.2. Les lments de routages
II.5.2.3. Les lments dentres sorties
II.5.2.4. Les lments de contrle et dacheminement des horloges
II.5.3. Ressources programmables embarqus
II.5.4. Ressources arithmtiques de gros grain
II.6. Le systme Excalibur dAltera
II.6.1. Architecture Nios
II.6.2. Processeur NIOS II
II.7. Exemples des Cartes (FPGA) de dveloppement
II.7.1. Carte de dveloppement et de formation DE2(Altera)
II.7.2. Carte dtude BASYS2 Digilent (Xilinx)
II.8. Principales applications des FPGA
II.8.1. Applications Mdical
II.8.2. Application Militaire
II.8.3. Applications Wireline
II.8.4. Application Sans fil
II.8.6. Vhicules lectriques
II.9. Tendances
II.10. Conclusion

37
37
37
38
38
38
39
46
46
46
47
49
49
50
53
54
55
57
58
60
61
62
63
66
66
66
70
70
71
72
73
75
76
77

CHAPITRE III : Mthodologie de dveloppement dun algorithme de commande pour


l'implantation sur puce FPGA
III.1. Introduction
III.2. Description dun systme de commande
III.3. Structure gnrale dun systme de commande
III.3.1. Commande en Boucle Ferme
III.3.2. Commande en Boucle Ouverte
III.4. Mthodes dimplantation dun algorithme de commande
III.5. Contribution des FPGA dans la commande
III.6. Mthodologie de dveloppement pour implantation sur cible FPGA
III.6.1. Partitionnement modulaire de lalgorithme de commande
III.6.2. Etape de simulation
III.6.3. Optimisation des ressources consommes
III.6.3. a. Programm FPGA Utilisation de HDL Coder
III.6.3. a.1. Conversion en virgule fixe
III.6.3. a.2. Gnration de code HDL
III.6.3. a.3. Vrification HDL

VII

79
79
79
79
80
83
85
87
88
90
92
92
94
94
95

III.6.3. a.4. HDL Synthse


III.6.3. b.Programm FPGA Altera Utilisation Altera DSP Builder
III.6.4. Lintgration des priphriques
III.6.5. Conception modulaire de larchitecture de commande
III.6.6. Compilation
III.6.7. La simulation (La simulation avec Le simulateur Modelsim)
III.6.8. Validation de larchitecture De lalgorithme (chip placement FPGA)
III.7. Conclusion

95
96
97
99
109
110
112
114

CHAPITRE IV : Ralisation dun algorithme de commande pour moteur asynchrone triphas


IV.1. Introduction
IV.2.Choix de la carte cible
IV.3. Commande dun onduleur triphas
IV.4. PWM Sinusodale
IV.4.1. Etude d'un onduleur monophas 1/2 pont
IV.4.2. Etude d'un onduleur triphas
IV.5. PWM Vectorielle ou SVPWM
IV.6. Carte de dveloppement et d'enseignement DE0
IV.7. Simulation
IV.8. Lancement de la simulation
IV.9. Conclusion

116
116
116
117
117
119
121
122
124
131
133

Conclusion Gnrale
Bibliographie

134
136

VIII

Table des Notations et symboles


SSI
MSI
LSI
VLSI
ASIC
PLA
PAL
PLD
FPLA
SPLD
Signal OE
CPLD
FPGA
LUT
OTP
RAM
ROM
EPROM
MOS
EEPROM
NOVRAM
ISP
OLMC
SRAM
VHDL
DSP
NRE
OEM
PFU
ECP
FPSC
CLB
ECU
LAB
CAO
CTO
Co- Design
PCI
PLL
DLL
MAC
SOPC

Small Scale Integration


Medium Scale Integration
Large Scale Integration
Very Large Scale Integration
Application Specific Integrated Circuits
Programmable Logic Array
Programmable Array Logic
Programmable Logic Device
Field Programmable Logic Array
Simple Programmable Logic Device
Output Enable
Complex Programmable Logic Device
Field Programmable Gate Array
Lock UpTable
One Time Programming
Random Access Memory
Read Only Mmory
Erasable Programmable Read Only Mmory
Mtal-Oxyde- Semi-conducteur
Electrically Erasable Programmable Read Only Memory
NOn Volatile RAM
In Sito Programmation
Output Logic MacroCell, dnomination Lattice
Static Random Access Memory
Very High Speed Integrated Circuit Hardware Description Langage
Digital Signal Processor
Les cots d'ingnierie non rcurrents
Original Equipment Manufecturer
Programmable Functional Unit
Electronic Check Presentment
Field Programmable System Chip
Configurable Logic Block
Embedded Computational Units
Logic Array Blocs
La conception assiste par ordinateur
Chief Technology Officer
conception conjointe logiciel matriel
Peripheral Component Interconnect
Phase Locked Loops
Delay Locked Loops
Multiplieur Accumulateur
System On a Programmable Chip
IX

CPU
ALM
LEs
LABs
TSMC
LUT
RISC
PIO
mppSoC
OFDMA
MIMO
IGBT
GFD
JTAG
MLI
PWM
SVpwm

Central Processing Unit


Adaptive Logic Module
Logic Elements
Logic Array Blocs
Taiwan Semiconductor Manufacturing Company
Look Up Table
Reduced instruction set computer
Parallel Input Output
parametric massive parallel
Orthogonal Frequency Division Multiple Access
multiple-input multiple-output
insulated-gate bipolar transistor
Graphe de Flot de Donnes
Joint Test Action Group
modulation de largeur dimpulsions
pulse width modulation
space vector pulse width modulation

Liste des figures


Chapitre I
Figure I-1: Le tableau classification possible des circuits numrique
Figure I-2: Propose le principe de ralisation des fonctions de la matrice ET PAL
Figure I-3: le principe de ralisation des fonctions de la matrice ET PLA
Figure I-4: Macrocellule
Figure I-5: Matrice de connexion programmable
Figure I-6: Reprsentation symbolique simplifie d'une PROM de 16 mots de 4 bits
Figure I-7: Reprsentation symbolique de Multiplixeur
Figure I-8: Un multiplexeur lmentaire
Figure I-9: Ou exclusif ralis par un multiplexeur
Figure I-10: Polarit programme par un ou exclusif
Figure I-11: Les trois types fondamentaux de bascules
Figure I-12: La programmation physique dun fusible
Figure I-13: Pld lmentaire fusibles
Figure I-14: un extrait du fichier JEDEC
Figure I-15: Premire technologie de programmation cellules a antifusible
Figure I-16: Seconde technologie de programmation cellules a antifusible
Figure I-17: La structure des transistors Mos grille flottante
Figure I-18: Le systme de programmation ISP (In Sito Programmation)
Figure I-19: Cellule SRAM
Figure I-20: La structure gnrale dun PLD
Figure I-21: Structure interne dune OLMC
Figure I-22: Architecture interne dun CPLD
Figure I-23: schma dune FPGA de constructeur XILINX

7
10
11
12
12
13
14
14
15
17
18
19
19
20
22
22
23
25
26
27
28
29
30

Chapitre II
Figure II-1.a: Architecture interne du FPGA fabriqu ALTERA (Cyclone II EP2C20)
Figure II-1.b: Architecture interne du FPGA fabriqu Xilinx : XC4000
Figure II-2: Parts de march des fabricants de FPGAs
Figure II-3: Architecture lot de calcul, typique des FPGA actuels
Exemple dArchitecture hirarchique quatre niveaux (circuit, tuiles,
Figure II-4:
clusters, lments configurables) que lon rencontre frquemment dans
les circuits ACTEL
Figure II-5: Architecture Spacetime (socit Tabula)
Elments logiques configurables (simplifis) circuits Xilinx Virtex4 et
Figure II-6:
Virtex6
Figure II-7.a: Elments logiques (LAB) configurables (Logic Blocks, Cyclone II)
dAltera
Figure II-7.b: Elments logiques configurables (simplifis) des circuits XC4000
Configurable (LAB) Logic Blocks de XILINX
Figure II8: lments de mmorisation (M4K RAM) dAltera
Figure II9: lment de routages (Altera)
Figure II-10: lment de routages (Xilinx)
Figure II-11: lment dentres sorties (Altera)
XI

36
36
44
47
48

49
51
51
52

53
54

55
56

Figure II-12: lment dentres sorties (XC4000E-Xilinx)


Figure II-13: lment de contrle et dacheminement des horloges (Cyclone II Altera)
Figure II-14: lment de contrle et dacheminement des horloges (Xilinx Spartan)
Figure II-15: Trois architectures possibles de circuits mixtes FPGA microprocesseur(s)
Figure II-16: Elment arithmtique configurable du circuit Xilinx Virtex6
Figure II-17: Architecture interne processeur de type Berkeley
Figure II-18: Processeur embarqu NIOS dAltera
Figure II-19: Schma block du processeur NIOS II
Figure II-20: Carte de dveloppement et de formation DE2(Altera)
Figure II-21: Synoptique de la carte DE2
Figure II-22: Carte dtude BASYS2 Digilent (Xilinx) avec le Synoptique
Figure II-23: Le taux de diffrentes applications sans fil et la mobilit des donnes
Figure II-24: Unit de contrle et commande du vhicule lectrique

56
57
58
59
61
62

63
65
66
67
69
74
76

Chapitre III
Figure III-1: Structure gnrale d'un systme de commande
Figure III-2: schma bloc en boucle ouverte
Figure III-3: Structure gnrale du commande dune machine lectrique
Figure III-4: Diffrence de capacit de calcul entre les solutions (a) logicielles (b)
matrielles
Figure III-5: Migration du mode de fonctionnement entre un FPGA et un DSP
Figure III-6: Les tapes optimises de limplantation dun algorithme de commande
sur FPGA
Figure III-7: Partitionnement modulaire dun algorithme type commande vectoriel
Figure III-8: Fentres de logiciel Matlab-Simulink
Figure III-9: Modle Simulink du moteur asynchrone
Figure III-10: Gnrer du code HDL partir de MATLAB et Simulink
Figure III-11: Fentre de Workflow conseiller
Figure III-12: DSP Builder Conception dbit
Figure III-13: La fentre principale de SOPC-Builder
Figure III-14: Environnement Eclipse pour NIOS-II
Figure III-15: Icne du Navigateur de projet ISE et Quartus disponible sur le bureau
Figure III-16: Droulement de la configuration de composants FPGA
Figure III-17: Interface graphique Quartus II
Figure III-18: Processus de conception dun circuit FPGA
Figure III-19: Organigramme de la conception
Figure III-20: Affichage de la hirarchie (suivant 2 onglets)
Figure III-21: Fentre de Quartus II
Figure III-22: Mode de saisie schmatique
Figure III-23: Mode de saisie Textuel
Figure III-24: Exemple dune feuille de description du projet (LOUVIERS GDF)
Figure III-25: Dbut de processus de compilation
Figure III-26: le rapport affich a la fin de processus de compilation
Figure III-27: Fentre QSim
Figure III-28: Rsultat de la simulation sur le Modelsim
Figure III-29: Les tapes de compilation
Figure III-30: Fentre de fin programmation

XII

80
81
81
85
86
88
89
90
92
93
94
96
98
98
99
100
101
102
103
104
105
105
106
108
109
110
111
111
112
113

Chapitre IV
Figure IV-1: Les diffrentes stratgies de modulation pour la commande des moteurs
Figure IV-2: Le schma de simulation onduleur monophas pont sur PSIM
Figure IV-3: Graphes des signaux dentre /sortie comparateur
Vm : signal de modulation Vp : porteuse K1 : commande de K1
Figure IV-4: Schma de simulation de l'onduleur triphas
Figure IV-5: Graphes dune tension entre phases Us et des courants de sortie
Figure IV-6: Les huit vecteurs tensions de l'onduleur (V 0 to V 7)
Figure IV-7: a) Tableau switching vecteurs de tension b) Plans vecteurs
Figure IV-8: Prsentation de la plate-forme de dveloppement (La carte choisie)
Figure IV-9: l'ensemble de la conception du notre projet SVPWM
Figure IV-10: Programme crit en VHDL
Figure IV-11: Rapport Compilation du programme VHDL
Figure IV-12: Lensemble du projet SVPWM on schma block. (bdf)
Figure IV-13: Schma RTL (Schma fonctionnel) de la SVPWM
Figure IV-14: la structure logique de block Switch
Figure IV-15: Schma GATE
Figure IV-16: Les rsultats de la simulation sur Modelsim du gnrateur propos
SVPWM
Figure IV-17: Zoome pour la zone de Dead time (temps mort) et temps dattente
entre secteur
Figure IV-18: Frquence de commande jusqu 4,27khz (234 us)
Figure IV-19: Mesure de la priode d'onde 0,02s (50Hz)
Figure IV-20: Plan de cblage du FPGA

XIII

117
118
119
120
120
121
122
124
125
126
126
127
128
129
130
131
132
133
133
134

Liste des tableaux


Tableau II-1 : Comparaison des caractristiques des diffrentes FPGAs
Tableau III-1: Flots de conception des fabricants de FPGA

XIV

45
99

Introduction Gnrale

Introduction gnrale

Introduction gnrale

Les entranements lectriques ont fait l'objet d'importantes rvolutions, notamment dans le
cadre de l'amlioration des performances de composants d'lectronique de puissance et dans
l'utilisation de nouvelles solutions numriques comme support pour l'implantation des
algorithmes de commande. Les premires implantations d'algorithmes de commande furent
ralises avec des solutions analogiques. Ces solutions assuraient la ralisation de contrles
ayant une large bande passante vu leur rapidit et leur action en continu. Cependant, elles
manquaient de fiabilit cause de leur sensibilit aux perturbations et aux variations des
paramtres de contrle lies aux contraintes thermiques des circuits analogiques de contrle.
Pour remdier ces inconvnients, les solutions numriques se sont naturellement imposes.
Les premires ralisations numriques d'implantation d'algorithmes de commande de
machines lectriques ont t effectues en utilisant les microcontrleurs, les microprocesseurs
et les DSP (Digital Signal Processor). Ces solutions numriques ont permis de rsoudre les
problmes lis l'utilisation des commandes analogiques. Par ailleurs, elles prsentaient un
grand intrt conomique et une meilleure flexibilit de conception. Cependant, malgr les
avantages offerts par ces solutions numriques, certains avantages offerts par les
implantations analogiques sont perdus. Cela est principalement d au fait que la discrtisation
et la quantification des algorithmes de commande implanter, ainsi que les dlais de temps de
calcul, dtriorent les performances de contrle en termes de rapidit de correction et de
rsolution de contrle.
Avec l'avancement technologique dans le domaine de la microlectronique, de nouvelles
solutions numriques telles que les FPGA (Field Programmable Gate Array ) ou les ASIC
(Application Specific Integrated Circuit ) sont disponibles et peuvent tre utilises comme
cibles numriques pour l'implantation des algorithmes de commande. Le paralllisme inhrent
de ces nouvelles solutions ainsi que leurs grandes capacits de calcul font que les dlais de
temps de calcul sont ngligeables en dpit de la complexit des algorithmes implanter.
L'utilisation de ces solutions matrielles permet donc de retrouver certaines performances
analogiques tout en gardant les avantages des solutions numriques. De plus, ces solutions
permettent de rpondre aux nouvelles exigences des contrles modernes. En effet, outre
l'amlioration des performances de contrle travers la rduction des temps de calcul, le
paralllisme des solutions matrielles permet d'intgrer sur une seule et unique cible plusieurs
algorithmes qui assurent diffrentes fonctionnalits et qui peuvent travailler indpendamment
les uns des autres. Par ailleurs, par rapport aux solutions numriques standard utilises dans
les entranements lectriques vitesse variable, les FPGA offrent au concepteur un accs la
partie architecture matrielle, puisque c'est le concepteur lui-mme qui assure sa conception.
Nanmoins, ce nouveau degr de libert prsente une difficult de plus pour le concepteur
puisque c'est lui de mettre en uvre l'architecture de contrle. Pour ce faire, lors de
l'implantation d'algorithmes sur cible FPGA, il est judicieux de se baser sur une approche
mthodique plus automatise et moins intuitive. Cette approche consiste en une mthodologie
1

Introduction gnrale
de dveloppement qui permet de rsoudre l'adquation entre l'algorithme de commande
implanter et son architecture en vue d'effectuer une implantation optimise en termes de
ressources consommes et de temps de calcul, tout en rduisant le temps de dveloppement.
Pour les entranements lectriques vitesse variable, plusieurs algorithmes de contrle
peuvent tre utiliss. Ces algorithmes comportent souvent plusieurs boucles de rgulation
imbriques. Il s'agit des boucles de rgulation de courant, de vitesse, de position... La boucle
de rgulation du courant est souvent la plus difficile implanter car elle constitue
gnralement la partie la plus complexe et la plus sensible de l'algorithme de commande. Les
autres boucles de rgulation sont relativement plus simples implanter. Dans ce dossier, on
s'intresse particulirement l'implantation sur cible FPGA de techniques de contrle du
command type SVPWM les plus couramment utilises pour la commande d'une machine
asynchrone. Dans ce qui suit, l'apport et l'intrt de l'utilisation des FPGA comme support
pour l'implantation de ces techniques de contrle sont discuts et analyss [42].
Le domaine des FPGA est domin par le duopole que forment Xilinx/Altera, avec Actel et
lattice jouant les solides seconds rles .Cette situation perdure depuis vingt ans mais pourrait
bien sanimer avec lavnement darchitectures originales concoctes par de jeunes pousses
comme Abound Logic, Achronix, Menta, SiliconBlue, Tabula ou Tier Logic [39].

Historique
Depuis 1983 et lavnement des rseaux logiques programmables, plus de cinquante
socits se sont lances dans cette aventure et plus dune quarantaine ont disparu du paysage.
Celles-ci ont t soit rachetes, soit rorientes, voire ont tout simplement mis la clef sous la
porte. Lattrait du caractre programmable des FPGA justifie, entre autres, le dynamisme en
ce domaine. Cependant, malgr ces tentatives, jusquici, rgnait une certaine quitude dans le
monde des FPGA. Les deux acteurs dorigine, Xilinx et Altera, ont ainsi travers cette
vingtaine dannes en ternels frres ennemis, assumant pleinement leur statut incontest de
leaders du domaine. La socit dtude Gartner estime dailleurs 86 % leur emprise sur le
march des FPGA. Les deux acteurs suivants, plus petits mais nanmoins bien tablis, sont
Actel et Lattice qui possdent chacun 6 % de parts de ce march.
En dpit des apparitions et disparitions dintervenants, la situation semblait donc fermement
installe, voire immuable, entre ces quatre socits de FPGA qui, chacune dans leur spcialit,
faisaient voluer leurs matrices en tirant le meilleur parti des avances technologiques. Des
progrs qui savrent plus souvent redevables la loi de Moore qu de profondes
modifications de larchitecture de la matrice elle mme. Vingt ans aprs, six mousquetaires
pourraient changer la donne. En quelques mois, Abound Logic, Achronix, SiliconBlue,
Tabula et Tier Logic, voire Menta (encadr), ont non seulement survcu la crise de 2009
mais osent, pour certaines, prsenter des architectures profondment novatrices associes
des outils de dveloppement qui ne dpaysent pas le concepteur. Le phnomne est trop rare
pour ne pas sy arrter un instant et tudier ces nouvelles offres ainsi que leurs chances de
russite. Dautant plus que de nombreux experts du domaine des FPGA sinterrogent car ces
cinq socits runissent deux des premiers critres dun succs sur ce march : avoir de
2

Introduction gnrale
bons outils associs des avantages technologiques clairs et convaincants. Un point
important car les fournisseurs de logique programmable ont traditionnellement fourni aux
utilisateurs des outils logiciels de dveloppement trs bas cot, voire gratuits. Ainsi, le prix
payer pour entrer sur ce march concerne non seulement la R&D au niveau silicium mais
galement les outils logiciels [39].

Problmatique
Avec lavancement technologique et la complexit des systmes de commande moderne il
est difficile de dfinir dune manire universelle ou une structure gnrale pour de tels
systmes. Les algorithmes des applications de traitement de signal intensif, telles que les
applications de tldtection (radar, sonar, etc.), et de limage deviennent de plus en plus
sophistiqus. Ils mettent en jeu un volume considrable de donnes. Ce domaine
dapplications requiert une grande puissance de calcul, que seules les architectures parallles
spcialises tailles sur mesure peuvent satisfaire les contraintes de vitesse, de performance et
dencombrement. La paralllisation et les architectures parallles semblent tre la voie la plus
prometteuse pour rpondre la complexit applicative. Il est alors ncessaire de faire appel
une mthodologie pour la conception et limplantation des architectures sur les cibles
parallle comme les FPGA et PLD.

Contribution
Cest dans ce cadre que se situe notre travail. Il sagit de trouver une mthodologie de
dveloppement pour limplantation dun algorithme de commande sur puce FPGA, une
mthode facile apprhender par lingnieur lectrotechnicien sans quil soit expert en
microlectronique. Ce travail est bas sur une mthode de dveloppement approprie qui
permet de rpondre aux diffrentes contraintes de conception architecturales des algorithmes
de commande complexe.

Plan
On a fait notre dpart de travail par partager le projet ont deux grandes parties (partie
thorique et partie pratique), le manuscrit est organis selon le plan suivant :
Pour la 1re partie on a fini le premier chapitre qui est consacr sur les rseaux logiques
programmables PLD, la 2me chapitre qui sera destins la technique et environnement de
dveloppement des FPGA et le dernier sur la mthode de dveloppement et d'implantation sur
puce FPGA.
La 2mme partie contient notre dernier chapitre, notre motivation tait de raliser un
dispositif de commande numrique base dune puce d'FPGA pour un onduleur triphas
pdagogique, cest une pratique de ce que nous ayons tudi dans la partie thorique.
On terminera par une conclusion gnrale et d'une bibliographie indiquant quelques sources
d'information utilises.

CHAPITRE I

Composants rseaux logiques


programmables

CHAPITRE I

Composants rseaux logiques programmables

I.1. Introduction
L'lectronique moderne se tourne de plus en plus vers le numrique qui prsente de nombreux
avantages sur l'analogique : grande insensibilit aux parasites et aux drives diverses,
modularit et (re)configurabilit, facilit de stockage de l'information etc...
Les circuits numriques ncessitent par contre une architecture plus lourde et leur mode de
traitement de l'information met en uvre plus de fonctions lmentaires que l'analogique d'o
dcoule des temps de traitement plus long. Aussi les fabriquants de circuits intgrs
numriques s'attachent-ils fournir des circuits prsentant des densits d'intgration toujours
plus leve, pour des vitesses de fonctionnement de plus en plus grandes.
D'abord ralises avec des circuits SSI (Small Scale Integration) les fonctions logiques
intgres se sont dveloppes avec la mise au point du transistor MOS dont la facilit
d'intgration a permis la ralisation de circuits MSI (Medium Scale Integration) puis LSI
(Large Scale Integration) puis VLSI (Very Large Scale Integration). Ces deux dernires
gnrations ont vu l'avnement des microprocesseurs et microcontrleurs.
Bien que ces derniers aient rvolutionn l'lectronique numrique par la possibilit de raliser
n'importe quelle fonction par programmation d'un composant gnrique, ils traitent
l'information de manire squentielle (du moins dans les versions classiques), ne rpondant
pas toujours aux exigences de rapidit.
Au dbut des annes 70 sont apparus les premiers composants (en technologie bipolaire)
entirement configurable par programmation. La nouveaut rsidait dans le fait qu'il tait
maintenant possible d'implanter physiquement par simple programmation, au sein du circuit,
n'importe quelle fonction logique, et non plus de se contenter de faire raliser une opration
logique par un microprocesseur dont l'architecture est fige.
D'abord ddis des fonctions simples en combinatoire (dcodage d'adresse par exemple), ces
circuits laissent aujourd'hui au concepteur la possibilit d'implanter des composants aussi
divers qu'un inverseur et un microprocesseur au sein d'un mme botier ; le circuit n'est plus
limit un mode de traitement squentielle de l'information comme avec les
microprocesseurs. L'intgration des principales fonctions numriques d'une carte au sein d'un
mme botier permet de rpondre la fois aux critres de densit et de rapidit (les capacits
parasites tant plus faibles, la vitesse de fonctionnement peut augmenter).
5

CHAPITRE I

Composants rseaux logiques programmables

La plupart de ces circuits sont maintenant programms partir d'un simple ordinateur type PC
directement

sur la carte o ils vont tre utiliss. En cas d'erreur, ils sont reprogrammables

lectriquement sans avoir extraire le composant de son environnement.


De nombreuses familles de circuits sont apparues depuis les annes 70 avec des noms trs
divers suivant les constructeurs : des circuits trs voisins pouvaient tre appels diffremment
par deux constructeurs concurrents, pour des raisons de brevets et de stratgies commerciales.
De mme une certaine inertie dans l'volution du vocabulaire a fait que certains circuits
technologiquement diffrents ont le mme nom.
Le terme mme de circuit programmable est ambigu, la programmation d'un FPGA ne faisant
pas appel aux mmes oprations que celle d'un microprocesseur. Il serait plus juste de parler
pour les PLD, CPLD et FPGA de circuits architecture programmable ou encore de circuits
rseaux logiques programmables.
Ce domaine de l'lectronique est aussi celui qui certainement a vu la plus forte volution
technologique ces dernires annes :

en moins de 15 ans la densit d'intgration t multiplie par 200 (2000 20 000

portes en 85 pour 72 000 4 000 000 en 2000).

en moins de 10 ans la vitesse de fonctionnement par 6 (40 MHz en 91 pour 240 MHz

en 2000).

la taille d'un transistor est passe de 1,2 m en 91 0,18 m en 2000.

les technologies de conception ont fortement volu, tel constructeur initiateur d'un

procd l'abandonne pour un autre, alors que le concurrent le reprend son compte.

la tension d'alimentation est passe de 5 V 1,8 V diminuant ainsi la consommation.

Aussi est-il trs difficile de s'y retrouver et de donner des ordres de grandeurs qui puissent tre
compars. Nous tenterons dans cet expos une clarification des choses dont la volont de
simplification pourra tre facilement prise en dfaut.
Paralllement ces circuits, on trouvera les ASIC (Application Specific Integrated Circuits)
qui sont des composants o le concepteur intervient au niveau du dessin de la pastille de
silicium en fournissant des masques un fondeur. On ne peut plus franchement parler de
circuits programmables. Les temps de dveloppement long ne justifient l'utilisation que pour
des grandes sries.
6

CHAPITRE I

Composants rseaux logiques programmables

Les PLD, CPLD et FPGA sont parfois considrs comme des ASIC par certains auteurs. Le
tableau ci-aprs tente une classification possible des circuits numrique :

CIRCUITS
NUMERIQUES

Circuits
logiques
standards

74 CH ..

Circuits
fonctionnement
programmables

Circuits
architecture
programmable et
faible temps de
dveloppement

Microprocesseurs et
Microcontrleurs

PLD, CPLD,
FPGA

Circuits temps de
dveloppement
important

Asic pr-diffuss
Asic pr-caractriss
Asic full custom

Figure I-1 : Le tableau classification possible des circuits numrique.

Nous nous intresserons surtout aux circuits architecture programmable faible temps de
dveloppement. Le principe de base des circuits nous intressant ici consiste raliser des
connexions logiques programmables entre des structures prsentant des fonctions de bases. Le
premier problme va donc tre d'tablir ou non suivant la volont de l'utilisateur, un contact
lectrique entre deux points. Aussi, nous intresserons nous, avant de passer aux circuits
proprement dits et leur programmation, ces technologies d'interconnexion. Mais avant
toutes choses, rappelons Quest-ce quun circuit programmable [32].

CHAPITRE I

Composants rseaux logiques programmables

I.2. Les circuits programmables


Un circuit programmable est un assemblage doprateurs logiques combinatoires et de
bascules dans lequel la fonction ralise nest pas fixe lors de la fabrication. Il contient
potentiellement la possibilit de raliser toute une classe de fonctions, plus ou moins large
suivant son architecture. La programmation du circuit consiste dfinir une fonction parmi
toutes celles qui sont potentiellement ralisables.
Comme dans toute ralisation en logique cble, une fonction logique est dfinie par les
interconnexions entre des oprateurs combinatoires et des bascules (synchrones, cela va
presque sans dire), et par les quations des oprateurs combinatoires. Ce qui est
programmable dans un circuit concerne donc les interconnexions et les oprateurs
combinatoires. Les bascules sont le plus souvent de simples bascules D, ou des bascules
configurables en bascules D ou T.
La ralisation doprateurs combinatoires utilise des oprateurs gnriques, cest eux que
nous allons nous intresser dans la suite [34].

I.3. Les oprateurs combinatoires gnriques


Les oprateurs combinatoires gnriques qui interviennent dans les circuits programmables
proviennent soit des mmoires (rseaux logiques) soit des fonctions standard (multiplexeurs et
ou exclusif) [34].
La base d'une fonction logique, est toujours une fonction combinatoire. Pour obtenir une
fonction squentielle, il suffira ensuite de rinjecter les sorties sur les entres, ce qui donnera
alors un systme asynchrone. Si on souhaite un systme synchrone, on intercalera avant les
sorties, une srie de bascules front, dont l'horloge commune synchronisera toutes les
donnes et vitera bien des alas de fonctionnement. Pour coder une fonction combinatoire,
trois solutions sont classiquement utilises [32].

CHAPITRE I

Composants rseaux logiques programmables

I.3.1. Sommes de produits, produits de somme et matrice PLA (Programmable Logic


Array)
La plupart des applications n'exigent pas une telle complexit et on peut se contenter d'une
matrice ET programmable et d'une matrice OU fige. De mme, il est peu probable d'utiliser
tous les termes produits et on peut alors limiter le nombre d'entres de la fonction OU. C'est le
principe utilis par les circuits programmable, appels au dbut PAL (Programmable Array
Logic) comme l'indique la figure I-1, mais plus communment dsign aujourd'hui sous le
terme PLD (Programmable Logic Device) [4]. Un Programmable Logic Array (PLA ou FPLA
: Field Programmable Logic Array) offre le maximum de souplesse car les deux matrices des
OU et ET sont programmables comme l'indique la figure I-2 reprsente une matrice PLA 4
entres et 4 sorties. N'importe quelle fonction peut tre code par une somme de produit, par
un produit de somme ou un mlange des deux. On peut immdiatement en dduire une
structure de circuits, appel matrice PLA (Programmable Logic Array). Chacune des 4
entres et son complmentaire arrive sur une des 24=16 portes ET 2x4=8 entres. Afin de
simplifier la reprsentation, les 8 lignes ont t reprsentes par une seule, chaque croix
reprsentant une connexion programmable (un fusible par exemple). Ce type de structure est
utilis dans certains circuits ASIC (Application Spcific Integrated Circuit) et demande une
densit d'intgration importante : en effet pour n variables en entres, il faut 2n fonctions ET
2n entres et au moins un OU 2n entres (il y a en effet 2n combinaisons possibles, chaque
combinaison dpendant de l'entre et de son complmentaire) [32].

CHAPITRE I

Composants rseaux logiques programmables

I3

I2

I1

I0

Matrice OU
fix

Liaison
Fusible intact

Matrice ET
programmable

Q3 Q2

Q1 Q0

Figure I-2 : Propose le principe de ralisation des fonctions de la matrice ET PAL.

10

CHAPITRE I

Composants rseaux logiques programmables

I3

I2

I1

I0

Matrice OU
Programmable

Fusible intact

Matrice ET
programmable

Q3 Q2

Q1 Q0

Figure I-3 : le principe de ralisation des fonctions de la matrice ET PLA.

Ces circuits constituent la famille de SPLDs (Simple Programmable Logic Device). Ce type
de circuits n'a cess de se sophistiquer au fil du temps. Certains canaux d'entre/sortie peuvent
tre bidirectionnels, les deux portes "3 tats" en commandant le sens pouvant tre
programmable. Par ailleurs, des sorties peuvent tre injectes dans le rseau de portes ET,
offrant ainsi la possibilit d'utiliser des variables intermdiaires. On peut galement trouver un
rseau de bascules de type D avec une horloge commune.
L'entre d'une bascule peut tre programme au niveau des rseaux de portes ET et OU. Sa
sortie peut tre accessible l'extrieur et utilise comme variable interne injecte dans le
rseau de connexions programmables. Il est alors possible de programmer des fonctions
squentielles. La figure I.3 illustre quelques unes de ces possibilits. On y trouve une bascule
11

CHAPITRE I

Composants rseaux logiques programmables

D dont la sortie est injecte dans le rseau programmable, matrialis par les petits carrs. La
sortie doit tre valide par le signal OE (Output Enable).
L'volution a conduit des composants plus complexes. Ce sont d'abord les CPLDs (Complex
Programmable Logic Device), puis les FPGA (Field Programmable Gate Array). Ce sont de
relativement de gros ensembles de cellules logiques programmables (comparable ce que
nous venons de prsenter) qui peuvent tre connectes de diffrentes matires.
Un CPLD est compos d'un certain nombre de PALs, ou macrocellule. La figure I-4 donne un
exemple de ce que peut tre une macrocellule. Ces macrocellules sont regroupes en blocs
logiques, qui peuvent tre relis via une matrice de connexion programmable (fig. I-5). Les
macrocellules d'un mme bloc sont gnralement interconnectes [33].

Figure I-4 : Macrocellule [35].

Figure I-5 : Matrice de connexion programmable [35].


12

CHAPITRE I

Composants rseaux logiques programmables

I.3.2. Mmoires
Une fonction combinatoire associe chacune de ces combinaisons d'entre une valeur
en sortie dcrite par sa table de vrit. C'est le principe de la mmoire o pour chaque
adresse en entre, on associe une valeur en sortie, sur un ou plusieurs bits. La structure
physique des mmoires fait appelle une matrice PLA dont la matrice ET est fige et
sert de dcodeur d'adresse et dont la matrice OU est programme en fonction de la
sortie dsire (figure I-6).
Lorsqu'une adresse est prsente, par exemple I1 I2 I3 I4 = 1111, la porte ET concerne
passe au NL1 (celle du bas dans l'exemple) et suivant les fusibles laisss intacts sur la
matrice OU, on a un mot diffrent en O0 O1 O2 O3 (0000 si tous les fusibles sont
"grills" par exemple). Ce principe utilis pour les mmoires, l'est aussi dans les
CPLD (Complex Programmable Logic Device), mais surtout dans les FPGA (Field
Programmable Gate Array) sous le nom de LUT (Lock UpTable) [32].

I3

I2

I1

Matrice OU
programmable

I0

Liaison
Fusible intact

Matrice ET fix
O3 O2

O1 O0

Figure I-6 : Reprsentation symbolique simplifie d'une PROM de 16 mots de 4 bits.


13

CHAPITRE I

Composants rseaux logiques programmables

I.3.3. Multiplexeur
Le multiplexeur permet galement de coder une fonction combinatoire, comme le montre la
figure suivante (figure I-7).

Entres de

programmation
de la fonction

Figure I-7 : Reprsentation symbolique de Multiplixeur

A chaque valeur des entres E0 et E1 est associ un niveau logique dfini dans la table de
vrit pour la sortie S. Ce niveau logique est impos sur l'entre de programmation
correspondante. Ce principe est utilis dans les FPGA.
Un multiplexeur est un aiguillage dinformations. Dans sa forme la plus simple, il comporte
deux entres de donnes, une sortie et une entre de slection, conformment au symbole de
la figure I-8.

Figure I-8 : Un multiplexeur lmentaire [35].


Le fonctionnement de cet oprateur se dcrit trs simplement sous une forme algorithmique :
Si sel = 0 s in0 ;
Si non (sel = 1) s in1 ;

14

CHAPITRE I

Composants rseaux logiques programmables

Certains constructeurs notent sur le symbole, comme nous lavons fait, la valeur de lentre de
slection en regard de lentre correspondante.
La premire utilisation des multiplexeurs dans les circuits programmables est, videmment, de
crer des chemins de donnes. La programmation consiste alors fixer des valeurs aux
entres de slection.
Une autre utilisation de la mme fonction consiste remarquer quun multiplexeur est, en soi,
un oprateur gnrique. Reprenant lexemple prcdent du ou exclusif, on peut le dcrire sous
forme algorithmique :
si e1= 0 e1 e2 e2 ;
si non (e1 = 1) e1 e2 e2 ;

Do une ralisation possible de loprateur ou exclusif au moyen dun multiplexeur dans le


schma de la figure I-9.

Figure I-9 : Ou exclusif ralis par un multiplexeur [35].

Lexemple prcdent peut tre gnralis sans peine : un multiplexeur n entres de slection,
soit 2n entres de donnes, permet de raliser nimporte quelle fonction combinatoire de n + 1
entres, pourvu que lune, au moins, de ces entres existe sous forme directe et sous forme
complmente.
Dans un circuit programmable dont les briques de base sont des multiplexeurs (cest le cas
de beaucoup de FPGAs) la programmation consiste fixer des chemins de donnes, cest
dire tablir des interconnexions entre des cellules de calcul et des signaux dentre et de
15

CHAPITRE I

Composants rseaux logiques programmables

sortie. Cette opration de cration dinterconnexions entre des cellules gnriques sappelle le
routage dun circuit ; laffectation des cellules des fonctions souhaites par lutilisateur
sappelle le placement [35].
I.3.4. Ou exclusif
Loprateur lmentaire ou exclusif, ou somme modulo 2, dont nous avons rappel
lexpression algbrique prcdemment, est disponible en tant que tel dans certains circuits.
Cet oprateur intervient naturellement dans de nombreuses fonctions combinatoires relies de
prs ou de loin larithmtique : additions et soustractions, contrles derreurs, cryptages en
tout genre, etc. Or ces fonctions se prtent mal une reprsentation en somme de produits, car
elles ne conduisent aucune minimisation de leurs quations. Un simple gnrateur de parit
sur 8 bits, qui rajoute un bit de parit un octet de donnes, ne ncessite pas moins de 128
(28-1) produits, quand il est mis plat , pour tre ralis au moyen dune couche de ETs et
dune couche de OUs. De nombreuses familles de circuits programmables disposent, en plus
des PLAs, doprateurs ou exclusifs pour faciliter la ralisation de ces fonctions
arithmtiques.
Une autre application de loprateur ou exclusif est la programmation de la polarit dune
expression. Quand on calcule une fonction combinatoire quelconque sous forme disjonctive, il
peut arriver quil soit plus conomique, en nombre de produits ncessaires, de calculer le
complment de la fonction et de complmenter le rsultat obtenu. Par exemple, si (cba)2
reprsente lcriture en base 2 dun nombre N, compris entre 0 et 7, on peut exprimer par une
quation logique que N est premier avec 3 :

On peut galement remarquer que si N est premier avec 3 cest quil nest pas multiple de 3,
soit :

La deuxime forme, apparemment plus complexe, ncessite un produit de moins que la


premire pour sa ralisation. Dans des circuits o le nombre de produits disponibles est limit,
16

CHAPITRE I

Composants rseaux logiques programmables

cela peut prsenter un avantage. Un oprateur ou exclusif permet de passer, par


programmation, dune expression son complment, comme lindique la figure I-10. Comme
cet oprateur peut tre ralis avec un multiplexeur, lune ou lautre de ces formes peut se
trouver dans les notices ! [35].

Figure I-10 : Polarit programme par un ou exclusif [34].


I.3.5. Les Bascules
Qui dit logique dit logique squentielle. Les circuits programmables actuels offrent tous la
possibilit de crer des fonctions squentielles, synchrones dans leur immense majorit. La
brique de base de toute fonction squentielle est la bascule, cellule mmoire lmentaire
susceptible de changer dtat quand survient un front actif de son signal dhorloge.
Bascule D, T ou J-K ? La premire est toujours prsente. Comme certaines fonctions se
ralisent plus simplement avec la seconde, les compteurs par exemple, de nombreux circuits
permettent, toujours par programmation, de choisir entre bascule D et bascule T, voire entre
lun des trois types de base. La figure I-11 rappelle, par un diagramme de transitions, le
fonctionnement de ces trois types de bascules.
Le programmeur na, en ralit, que rarement se proccuper de ce genre de choix, les
optimiseurs dterminent automatiquement le type de bascule le mieux adapt lapplication
[35].

17

CHAPITRE I

Composants rseaux logiques programmables

Figure I-11 : Les trois types fondamentaux de bascules [34].

I.4. Technologie d'interconnexions


Premier critre de choix dun circuit programmable, la technologie utilise pour matrialiser
les interconnexions dtermine les aspects lectriques de la programmation : maintien (ou non)
de la fonction programme en labsence dalimentation, possibilit (ou non) de modifier la
fonction programme, ncessit (ou non) dutiliser un appareil spcial (un programmateur,
bien sr) [36].
Comme nous venons de le voir, l'un des lments cl des circuits tudi est la connexion
programmable. Du choix d'une technologie dpendra essentiellement :

la densit d'intgration

la rapidit de fonctionnement une fois le composant programm, fonction de la


rsistance l'tat passant et des capacits parasites

la facilit de mise en uvre (programmation sur site, reprogrammation etc.)

la possibilit de maintien de l'information.

Passons en revue quelques technologies classiquement utilises et leurs caractristiques. Ces


technologies sont ou pourraient tre utilises pour la ralisation de mmoires. Il faut
cependant garder l'esprit qu'hormis quelques cas particuliers (circuit reprogramms en cours
d'utilisation), le temps d'criture reste secondaire, le circuit tant habituellement programm
une fois pour toutes avant utilisation [32].

18

CHAPITRE I

Composants rseaux logiques programmables

I.4.1. Connexions programmable une seule fois (OTP : One Time Programming)
I.4.1.1. Cellules fusible
La programmation consiste dtruire ou garder intact des fusibles, de manire supprimer
ou conserver des connections (figure I-12) :

Figure I-12 : La programmation physique dun fusible [37].


Remarque : la destruction dun fusible entrane la mise 1 de lentre de la porte concerne
[37].
Ce sont les premires avoir t utilises et elles ont aujourd'hui disparu au profit de
technologies plus performantes. Leur principe consistait dtruire un fusible conducteur par
passage d'un courant fourni par une tension suprieure l'alimentation (12 25 V). Avec cette
technique la programmation est irrversible [32].

Figure I-13 : Pld lmentaire fusibles [35].

19

CHAPITRE I

Composants rseaux logiques programmables

La figure I-13 en illustre le principe, toutes les connexions sont tablies la fabrication. Lors
de la programmation le circuit est plac dans un mode particulier par le programmateur, mode
dans lequel des impulsions de courant sont aiguilles successivement vers les fusibles
dtruire.
Pour programmer un circuit, il faut transfrer dans le programmateur une table qui indique par
un chiffre binaire ltat de chaque fusible (la table des fusibles). Cette table est gnralement
transfre entre le systme de CAO et le programmateur sous forme dun fichier au format
normalis le format JEDEC.
Lexemple ci-dessous est un extrait du fichier JEDEC, gnr par un compilateur VHDL, qui
implmente un compteur binaire 10 bits dans un circuit de type 22V10 :

Figure I-14 : un extrait du fichier JEDEC [34].


20

CHAPITRE I

Composants rseaux logiques programmables

Pour chacun des 5828 fusibles de ce circuit, un '0' indique un fusible intact, un '1' un fusible
programm.
Lexamen du dbut de la table prcdente met en vidence un dfaut majeur de cette
technologie : la programmation dtruit plus de fusibles quelle nen conserve, et de loin. Cela
se traduit par une mauvaise utilisation du silicium, un temps de programmation important
(quelques secondes) et des contraintes thermiques svres imposes au circuit lors de
lopration. Cette technologie nest donc pas gnralisable des circuits dpassant quelques
centaines de portes quivalentes.
Le lecteur averti aura peut-tre remarqu, la lecture de len-tte du fichier JEDEC, quen
ralit le circuit prcdent ne contient aucun fusible. Il sagit en vrit dun circuit CMOS
grille flottante, mais lancienne terminologie est reste [34].
I.4.1.2. Cellules antifusible
Linverse dun fusible est un anti-fusible. Le principe est, lchelle microscopique, celui de
la soudure lectrique par points.
En appliquant une tension importante (16 V pendant 1 ms) un isolant entre deux zones de
semi-conducteur fortement dopes, ce dernier diffuse dans l'isolant et le rend conducteur.
Cette technologie trs en vogue permet une haute densit d'intgration.
Hormis le non reprogrammabilit, c'est la meilleure technologie (vitesse et surtout densit
d'intgration).
Dans la premire (fig. I-15) on fait fondre un dilectrique en forant un courant important
(environ 5 mA) dans une zone de trs faibles dimensions situe l'intersection de deux
lectrodes l'une en silicium polycristallin et l'autre ralise par un implant fortement dop n+.
Ce dilectrique est constitu de trois couches alternes d'oxyde et de nitrure de silicium : SiO2
- Si3N4 - SiO2. La prsence du nitrure permet de rduire l'paisseur du dilectrique. Lors de
la fusion du dilectrique il y a diffusion de dopants, ce qui diminue la rsistance du contact
ralis.

21

CHAPITRE I

Composants rseaux logiques programmables

Figure I-15 : Premire technologie de programmation cellules a antifusible [33].


La seconde technologie (fig. I-16) permet de rduire cette rsistance, car le contact est ralis
par un alliage de tungstne, titane et silicium. Le dilectrique est cette fois du silicium
amorphe entre deux lectrodes mtalliques (m1 et m2). Cette technique requiert moins de
place que la premire, mais elle est assez dlicate mettre en uvre.

Figure I-16 : Seconde technologie de programmation cellules antifusible [33].


Dans toutes les techniques prcdentes la programmation irrversible, il est impossible de
revenir en arrire [32,33,36].

22

CHAPITRE I

Composants rseaux logiques programmables

I.4.2. Cellules reprogrammables


I.4.2.1. Cellule transistor MOS grille flottante et EPROM (Erasable Programmable
Read Only Mmory)
L'apparition du transistor MOS grille flottante a permis de rendre le composant bloqu ou
passant sans application permanente d'une tension de commande. Le principe consiste
piger ou non ( l'aide d'une tension suprieure la tension habituelle d'alimentation) des
lectrons dans la grille. L'extraction ventuelle des lectrons pigs permet le retour l'tat
initial.

Figure I-17 : La structure des transistors Mos grille flottante [33].


On utilise pour cela des transistors effet de champ structure MOS (Mtal-Oxyde- Semiconducteur) avec une grille supplmentaire flottante. Dans un transistor MOS classique la
grille est utilise pour induire un canal entre la source et le drain.
Dans l'exemple de la figure I-17 une tension positive de la grille va attirer des lectrons et
repousser des trous. Par ailleurs une partie des lectrons attirs se recombinent avec des trous.
Une inversion de population se cre induisant un canal n entre les implants de la source et du
drain. Le transistor devient passant. Pour programmer un tel nud on fait alors circuler un
courant intense entre la source et le drain. Certains lectrons acquirent une nergie leur
permettant d'atteindre la grille flottante. Ils y sont alors pigs. Lorsque la charge pige est
suffisante elle masque le champ lectrique induit par la grille et le transistor est bloqu. Le
courant de fuite tant trs faible cette charge peut se conserver trs longtemps.
La programmation est rversible, il suffit de dcharger cette grille flottante. Une premire
solution consiste exposer le circuit un rayonnement ultraviolet pendant quelques dizaines
23

CHAPITRE I

Composants rseaux logiques programmables

de minutes. Ces circuits sont quips d'une fentre en quartz et encapsuls dans un botier en
cramique pour rsister l'chauffement. Cette mise en uvre augmente le prix des
composants, mais cela n'est ncessaire que pour le dveloppement. Pour la production le
mme circuit existe sans fentre et en botier plastique. Cette technique correspond aux
mmoires mortes effaables :
EPROM (Erasable Programmable Read Only Memory). Il est galement possible de
dcharger la grille flottante par effet tunnel en appliquant des tensions suffisamment leves
entre la grille, la source et le drain. Cet effacement est plus rapide et n'impose pas de retirer le
circuit du systme dans lequel il est install. Cela correspond la famille des mmoires
mortes programmables et effaables lectriquement : EEPROM (Electrically Erasable
Programmable Read Only Memory).
La diffrence entre les EEPROM et les mmoires vives rside dans la vitesse d'criture. Le
cycle d'criture d'une EEPROM est environ 1000 fois plus long que celui d'une RAM. Par
Contre rappelons que les temps d'accs en lecture des mmoires RAM, ROM, PROM,
EPROM et EEPROM sont comparables.
Un composant hybride qui associe dans un mme botier une RAM et une EEPROM de mme
capacit : la mmoire NOVRAM (NOn Volatile RAM). L'EEPROM permet de raliser en
moins de 10 ms une sauvegarde globale de la RAM. Cela permet une sauvegarde du contenu
de la mmoire en cas de coupure d'alimentation lectrique.
Flash EPROM
L'utilisation de deux transistors par cellule uniquement (5 pour l'EEPROM) et une
structure verticale permettent une densit d'intgration importante (25 m2 par cellules en
CMOS 0,6 m) trois quatre fois plus importante que l'EEPROM, mais quand mme 10 fois
moins que la technologie antifusible. Le nombre de cycle d'criture (104 106) est
galement plus grand que pour l'EEPROM car l'paisseur de l'isolant est plus importante.
Par contre, la simplicit de la cellule lmentaire n'autorise pas une reprogrammation
slective (ventuellement par secteur), ce qui n'est pas gnant pour le type de circuits qui nous
intresse. La tension de programmation et d'effacement est de 12 V, avec un temps de
programmation de quelques dizaines de s pour un temps d'effacement de quelques
millisecondes.
24

CHAPITRE I

Composants rseaux logiques programmables

Un des inconvnients des cellules flash et EEPROM de ncessiter une alimentation


supplmentaire pour la programmation et l'effacement est palli par les constructeurs en
intgrant dans le circuit un systme pompe de charge fournissant cette alimentation. Le
composant peut alors tre programm directement sur la carte o il est utilis. On parle alors
de composants ISP : In Situ Programmation ou encore suivant les sources, In System
Programmation (fig. I-18) [32,33,34].

Figure I-18 : Le systme de programmation ISP (In Sito Programmation) [32].

I.4.2.2. Cellules SRAM transistors MOS classique


Dans les circuits prcdents, la programmation de ltat des interrupteurs, conserve en
labsence de tension dalimentation, fait appel un mode de fonctionnement lectrique
particulier. Dans les technologies mmoire statique, ltat de chaque interrupteur est
command par une cellule mmoire classique quatre transistors (plus un transistor de
programmation), dont le schma de principe est celui de la figure I-19.

25

CHAPITRE I

Composants rseaux logiques programmables

Figure I-19 : Cellule SRAM [34].


Ce principe est classiquement choisi pour les FPGA.
Le fait d'utiliser une mmoire de type RAM (donc volatile) impose la recharge de la
configuration chaque mise sous tension : une PROM srie mmorise gnralement les
donnes. Ce qui peut paratre un inconvnient devient un avantage si on considre l'aspect
volutif du systme qui peut s'adapter un environnement extrieur changeant et modifier sa
configuration en fonction des besoins. On pourra d'autre part facilement intgrer de la
mmoire RAM dans le circuit. Le choix d'une cellule SRAM (Static Random Access
Memory) 6 transistors permet de bnficier d'un accs slectif et rapide (quelques ns) en
cours d'utilisation.
La taille d'une cellule n'est que deux fois plus forte (50 m2 par cellule) qu'avec une flash
EEPROM. Cette technologie, utilise pour les autres circuits VLSI (contrairement aux
EEPROM et Flash EPROM et leurs transistors grille flottante) permet de bnficier
directement des progrs importants raliss dans ce domaine [32,34].
I.5. Architectures utilises
I.5.1. PLD (Programmable Logic Device)
Comme nous l'avons vu, d'abord appels PAL lors de sa sortie, ce circuit utilise le principe de
la matrice PLA rseau ET programmable. Bien que pas trs anciens pour les dernires
gnrations, les PLD ne sont presque plus utiliss pour une nouvelle conception. L'un de leur
avantage qu'tait la rapidit a disparu, les efforts de recherche des constructeurs portant plutt
sur les circuits plus forte densit d'intgration que sont les CPLD et les FPGA.

26

CHAPITRE I

Composants rseaux logiques programmables

Le fait que les PLD soient la base de la conception des CPLD, trs en vogue aujourd'hui,
justifie cependant leur tude.
Initialement bipolaire, les cellules de connexions sont aujourd'hui ralises en technologie
MOS grille flottante. La structure de base comprend un circuit PLA dont seule la matrice ET
est programmable.

Figure I-20 : La structure gnrale dun PLD [32].

La partie nomme OLMC (Output Logic MacroCell, dnomination Lattice) sur la figure I-20
peut tre :

combinatoire, une simple connexion relie alors la sortie du OU l'entre du buffer


de sortie, dont la sortie est rinjecte sur le rseau programmable ;

squentielle, le bloc OLMC tant alors une simple bascule D ;

versatile, il est alors possible par programmation de choisir entre les deux
configurations prcdentes.

Les PLD de dernire gnration utilisent des OLMC versatiles, dont on donne ci-aprs la
structure (fig. I-21) :

27

CHAPITRE I

Composants rseaux logiques programmables

Figure I-21 : Structure interne dune OLMC [32].


Le multiplexeur 4 vers 1 permet de mettre en circuit ou non la bascule D, en inversant ou pas
les signaux. Le multiplexeur 2 vers 1 permet de rinjecter soit la sortie, soit l'entre du buffer
de sortie vers le rseau programmable [32].
I.5.2. CPLD (Complex Programmable Logic Device)
La ncessit de placer de plus en plus de fonctions dans un mme circuit a conduit tout
naturellement intgrer plusieurs PLD (blocs logiques) sur une mme pastille, relie entre
eux par une matrice centrale. Sur la figure suivante chaque bloc LAB (Logic Array Block) de
16 macrocellules est l'quivalent d'un PLD 16 OLMC (fig. I-22). Ils sont relis entre eux par
une matrice d'interconnexion (PIA pour Programmable Interconnect Array).
Un seul point de connexion relie entre eux les blocs logiques. Les temps de propagation d'un
bloc l'autre sont donc constants et prdictibles.
La phase de placement des diffrentes fonctions au sein des macrocellules n'est donc pas
critique sur un CPLD, l'outil de synthse regroupant au maximum les entres sorties utilisant
des ressources communes.

28

CHAPITRE I

Composants rseaux logiques programmables

Figure I-22 : Architecture interne dun CPLD [32].

L'tablissement des liaisons (routage) entre les diffrentes macrocellules est encore moins
critique :
Un seul point de connexion -cause du retard- relie les LAB entre eux. Le temps de
propagation des signaux est parfaitement prdictible avant que le routage ne soit fait. Ce
dernier n'influence donc pas les performances du circuit programm.
Dans l'outil de synthse, la partie s'occupant du placement et du routage est appele le "fitter"
(to fit : placer, garnir).
La technologie de connexion utilise est gnralement l'EEPROM (proche de celle des PLD)
ou EEPROM flash [32].
I.5.3. FPGA (Field Programmable Gate Array)
Les blocs logiques sont plus nombreux et plus simple que pour les CPLD, mais cette fois les
interconnexions entre les blocs logiques ne sont pas centralises (fig. I-23).

29

CHAPITRE I

Composants rseaux logiques programmables

Figure I-23 : schma dune FPGA de constructeur XILINX [38].

Ces composants permettent une forte densit d'intgration. La petitesse des blocs logiques
autorise une meilleure utilisation des ressources du composant (au prix d'un routage dlicat) Il
devient alors possible d'implanter dans le circuit des fonctions aussi complexes qu'un
microcontrleur. Ces fonctions sont fournies sous forme de programme par le constructeur du
composant et appeles "megafunction" ou "megacore". Le terme gnrique classiquement
utilis pour les dsigner est "proprit intellectuelle" ou IP (Intelectual Property).
Les FPGA utilisent gnralement les technologies SRAM ou antifusible [32,38].
I.5.4. ASIC (Application Spcific Intgrated Circuit)
Si les composants prcdents pouvaient tre dvelopps avec un simple ordinateur, ceux que
nous abordons maintenant ncessitent l'intervention d'un fondeur qui produira le circuit
demand partir des masques fournis par son client. Ici encore, le terme programmable n'est
pas des plus judicieux, les connexions entre les lments tant dessines sur les masques.
Les temps et cots de productions sont importants. On distingue trois types d'ASIC class par
ordre croissant de configurabilit.

30

CHAPITRE I

Composants rseaux logiques programmables

I.5.4.1. Les prdiffuss (gate arrays)


Ils contiennent une nbuleuse de transistors ou de portes interconnecter avec les problmes
de routage et de dlais que cela comporte.
I.5.4.2. Les prcactriss (standard cell)
On utilise cette fois des bibliothques de cellules standards placer sur le semi-conducteur.
I.5.4.3. Les "fulls customs"
Ils sont entirement dfinissables par le client. Ces circuits conduisent la ralisation de tous
les composants VLSI comme les microprocesseurs [32].

I.6. Conclusion
Dans le monde des circuits numriques les chiffres voluent trs vite, beaucoup plus vite que
les concepts. Cette impression de mouvement permanent est accentue par les effets
dannonce des fabricants et par lusage systmatique de la publicit comparative, trs en
vogue dans ce domaine.
Il semble que doivent se maintenir trois grandes familles :
Les PLDs et CPLDs en technologie FLASH, utilisant une architecture somme de produits.
La tendance est la gnralisation de la programmation in-situ, rendant inutiles les
programmateurs sophistiqus. Rservs des fonctions simples ou moyennement complexes,
ces circuits sont rapides (jusqu environ 200 MHz) et leurs caractristiques temporelles sont
pratiquement indpendantes de la fonction ralise. Les valeurs de frquence maximum de
fonctionnement de la notice sont directement applicables.
Les FPGAs SRAM, utilisant une architecture cellulaire. Proposs pratiquement par tous
les fabricants, ils couvrent une gamme extrmement large de produits, tant en densits quen
vitesses. Reprogrammables indfiniment, ils sont devenus reconfigurables rapidement (200 ns
par cellule), en totalit ou partiellement.
Les FPGAs antifusibles, utilisant une architecture cellulaire granularit fine. Ces circuits
stendent remplacer une bonne partie des ASICs prdiffuss. Programmables une fois, ils
prsentent lavantage dune trs grande routabilit, do une bonne occupation de la surface
31

CHAPITRE I

Composants rseaux logiques programmables

du circuit. Leur configuration est absolument immuable et disponible sans aucun dlai aprs
la mise sous tension ; cest un avantage parfois incontournable [36].

32

CHAPITRE II

Technologie et environnement de
dveloppement des FPGAs

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.1. INTRODUCTION
Les FPGA, sigle anglais qui signifie Field Programmable Gates Arrays traduit en franais
par rseau de portes programmables, sont des circuits intgrs reprogrammables. Ils offrent la
possibilit de raliser des fonctions numriques plus ou moins complexes, tout comme leurs
homologues figs : les ASIC [40].
Les FPGA sont des circuits numriques matriels configurables ddis llectronique
numriques [41].
A ltat initial ils ne peuvent rien faire mais disposent dune importante quantit (dpendant
de la technologie utilise) de ressources matrielles oprationnelles dont on peut configurer la
fonction. Ces ressources sont, principalement, des blocs lmentaires logiques (pour raliser
des fonctions boolennes), des mmoires RAM, des oprateurs arithmtiques (qui travaillent
en virgule fixe), des ressources de routage interne et des entres/sorties. Ces ressources
configurables sont relies par un rseau dense de lignes de routage et de lignes de transport
des horloges. Ces lignes de routage sont aussi configurables. En plus de ces ressources, un
FPGA est compos dune mmoire interne de configuration. Chaque point de cette mmoire
correspond la configuration dun lment dune des ressources oprationnelles. Cette
mmoire est, dans la plupart des cas, ralise avec une des trois technologies suivantes :
ANTIFUSIBLE (la plus ancienne, configurable une seule fois), FLASH (non-volatile) ou
SRAM (volatile, la plus utilise, reprsente plus de 80 % du march). Pour raliser une
application avec un FPGA il faut dcrire le circuit lectronique raliser avec un langage de
description matrielle comme le VHDL (Very High Speed Integrated Circuit Hardware
Description Langage). Puis il faut synthtiser cette description en circuit lectronique. Cette
tape et les suivantes peuvent se faire avec des logiciels gratuits fournies par le fabricant de
circuit. Enfin aprs une tape de placement et routage qui prend en compte larchitecture du
FPGA, un fichier de configuration appel bitstream est gnr. Celui-ci permet de spcifier au
FPGA lors de la configuration la position des points de la mmoire de configuration [41].
La technologie FPGA (Field-Programmable Gate Array) continue de gagner du terrain : selon
les prvisions, le march mondial du FPGA devrait passer d'1,9 milliard de dollars en 2005
2,75 milliards d'ici 2010 [1]. Depuis leur invention par Xilinx en 1984, les FPGA sont partis
d'un simple rle d' interfaage d'appoint pour arriver vritablement remplacer les ASIC
(circuits intgrs application spcifique) et les processeurs personnaliss dans des
applications de contrle et de traitement de signaux. Afin d'expliquer ce succs, cet chapitre
34

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

propose une introduction la technologie FPGA et met en vidence quelques-uns des


nombreux avantages que les FPGA sont aujourd'hui les seuls offrir [43].

II.2. Description de la composent FPGA


Un FPGA est un circuit en silicium reprogrammable. l'aide de blocs logiques prconstruits
et de ressources de routage programmables, vous pouvez configurer ce circuit afin de mettre
en uvre des fonctionnalits matrielles personnalises, sans avoir jamais besoin d'utiliser
une maquette ou un fer souder. Il vous suffit de dvelopper des tches de traitement
numrique par logiciel et de les compiler sous forme de fichier de configuration ou de flux de
bits contenant des informations sur la manire dont les composants doivent tre relis. En
outre, les FPGA sont totalement reconfigurables et peuvent adopter instantanment une
nouvelle personnalit si vous recompilez une nouvelle configuration de circuits. Jusqu'
prsent, seuls des ingnieurs particulirement expriments en matire de conception de
matriel numrique pouvaient utiliser la technologie FPGA.
Si les FPGA rencontrent un tel succs dans tous les secteurs, c'est parce qu'ils runissent le
meilleur des ASIC et des systmes bass processeur. Ainsi, ils offrent un cadencement par
matriel qui leur assure vitesse et fiabilit, mais sont plus rentables que les ASIC
personnaliss. Les circuits reprogrammables jouissent galement de la mme souplesse
d'excution logicielle qu'un systme bas processeur, mais ils ne sont pas limits par le
nombre de curs de traitement disponibles. Contrairement aux processeurs, les FPGA sont
vraiment parallles par nature, de sorte que plusieurs oprations de traitement diffrentes ne
se trouvent pas en concurrence pour l'utilisation des ressources. Chaque tche de traitement
indpendante est affecte une section spcifique du circuit, et peut donc s'excuter en toute
autonomie sans dpendre aucunement des autres blocs logiques. En consquence, vous
pouvez accrotre le volume de traitement effectu sans que les performances d'une partie de
l'application n'en soient affectes pour autant [43,38.46].

35

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II1.a : Architecture interne du FPGA fabriqu ALTERA (Cyclone II EP2C20) [55].

Figure II-1.b : Architecture interne du FPGA fabriqu Xilinx : XC4000 [38].

36

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.3. Les cinq principaux atouts de la technologie FPGA


1. Performances
2. Temps de mise sur le march
3. Cot
4. Fiabilit
5. Maintenance long terme
II.3 .1. Performances
Comme ils tirent parti du paralllisme matriel, les FPGA offrent une puissance de calcul
suprieure celle des processeurs de signaux numriques (DSP), car ils s'affranchissent du
modle d'excution squentielle et excutent plus d'oprations par cycle d'horloge. BDTI, une
importante socit d'analyse et de benchmarking , a publi des tudes montrant que les
FPGA peuvent offrir une puissance de traitement par dollar plusieurs fois suprieure celle
d'une solution DSP dans certaines applications. Contrler les entres et sorties (E/S) au niveau
matriel permet d'obtenir des temps de rponse plus courts ainsi que des fonctionnalits
spcifiques, qui rpondent mieux aux besoins de l'application.
II.3. 2. Temps de mise sur le march
Face des proccupations croissantes concernant les temps de mise sur le march, la
technologie FPGA reprsente une solution souple offrant des capacits de prototypage rapide.
Ainsi, vous pouvez tester une ide ou un concept, puis le vrifier sur du matriel sans avoir
passer par le long processus de fabrication d'un ASIC personnalis [41]. Par la suite, vous
pourrez apporter les ventuelles modifications ncessaires votre FPGA, en quelques heures
au lieu de quelques semaines. Le matriel sur tagre actuellement commercialis propose
galement diffrents types d'E/S dj connectes un circuit FPGA programmable par
l'utilisateur. La multiplication des outils logiciels de haut niveau disponibles sur le march
permet de rduire le temps d'apprentissage avec les couches d'abstraction. Ces outils
comprennent souvent des curs de proprit intellectuelle (fonctions prcompiles) utiles
pour le contrle avanc et le traitement de signaux.

37

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.3. 3. Cot
Les cots d'ingnierie non rcurrents (NRE) des ASIC personnaliss sont bien suprieurs
ceux des solutions matrielles bases sur du FPGA. L'important investissement de dpart que
requirent les ASIC se justifie largement pour les OEM, par exemple, qui peuvent livrer des
circuits par milliers chaque anne. Cependant, la plupart des utilisateurs finaux ont besoin de
matriels personnaliss pour quelques dizaines ou quelques centaines de systmes en
dveloppement. Par nature, les circuits programmables n'impliquent ni cot de fabrication, ni
longs dlais d'assemblage. Les besoins de la plupart des systmes voluent avec le temps ; or
la modification progressive d'un FPGA reprsente un cot ngligeable compar la dpense
considrable qu'exige la reconception d'un ASIC.
II.3. 4. Fiabilit
Tandis que les outils logiciels fournissent l'environnement de programmation, les circuits
FPGA sont une vritable implmentation matrielle de l'excution logicielle. Les systmes
bass processeur comprennent souvent plusieurs couches d'abstraction, pour aider la
planification des tches et la rpartition des ressources entre les diffrents processus. La
couche de driver contrle les ressources matrielles et le systme d'exploitation gre la
mmoire et la bande passante du processeur. Sur chaque cur de processeur, une seule
instruction peut s'excuter la fois ; c'est pourquoi les systmes bass processeur risquent
toujours de voir des tches prioritaires entrer en conflit. Les FPGA, qui n'utilisent pas de
systme d'exploitation, minimisent les problmes de fiabilit car ils assurent une excution
vritablement parallle et un matriel dterministe ddi chaque tche.
II.3. 5. Maintenance long terme
Comme nous l'avons vu, les circuits FPGA sont volutifs et vous pargnent donc la dpense
de temps et d'argent qu'implique la reconception des ASIC. Les spcifications des protocoles
de communication numriques, par exemple, voluent avec le temps. Or les interfaces bases
sur ASIC peuvent poser des problmes de maintenance et de compatibilit. Comme ils sont
reconfigurables, les circuits FPGA sont capables de s'adapter aux modifications
ventuellement ncessaires. mesure qu'un produit ou qu'un systme volue, vous pouvez y
intgrer des amliorations fonctionnelles sans perdre de temps reconcevoir le matriel ou
modifier l'implantation du circuit [43].

38

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.4. Fabricants
Ayant prsent les caractristiques globales des FPGAS, nous allons rapidement passer en
revue les produits proposs par les diffrents fabricants, savoir, dans lordre alphabtique,
Actel, Altera, Atmel, Lattice Semiconductor, QuickLogic et Xilinx .
Actel
Les principaux circuits dActel sont bass sur des anti-fusibles, les rendant non volatiles,
rapides, et trs srs sur le plan de la proprit intellectuelle. De plus, les anti-fusibles sont
insrs entre les couches de mtal, afin dconomiser la surface de silicium. Toutefois, la
taille des ces circuits nest pas exceptionnelle, la srie Axcelerator contenant au plus
10752 cellules composes dun registre, 21504 cellules combinatoires (quelques
multiplexeurs et portes logiques), et 294912 bits de mmoire ddis, pour un total de 2
millions de portes quivalentes8.
Afin de proposer une alternative leurs prcdents produits tout en maintenant la nonvolatilit, Actel a rcemment introduit la srie ProASIC Plus, base sur une technologie
FLASH. Elle est galement sre, les bits de configuration tant crypts, et va jusqu une
densit de 1 million de portes quivalentes.
Altera
A lheure de la rdaction de ces lignes, Altera, le deuxime plus gros fabricant, se
concentre sur deux sries de base technologie SRAM, Cyclone et Stratix. Loptique de
la srie Cyclone est de disposer dun FPGA bas prix. Bien que les lments de base
(LE, pour Logic Element) des deux sries soient semblables, la version Cyclone a t
optimise, et requiert 30% de moins despace. Il est principalement compos dune LUT
4 entres, dune bascule, et dun systme de propagation de retenue, afin dacclrer les
oprations arithmtiques. Le plus imposant des Cyclones contient 20060 LEs et
288Kbits de RAM, pour un total de 1 million de portes quivalentes.
La srie Stratix est nettement plus imposante, pouvant contenir jusqu 79'040 LEs,
7427Kbits de RAM et 22 blocs DSP (88 multiplicateurs 18 18, 178 de 9 9 ou 22 de 36 36).

En ajoutant jusqu 20 transcievers sriel 3.125 Gbps et moyennant une baisse de


densit (41250 LEs et 3423Kbits de RAM), nous obtenons la srie Stratix GX. Enfin, la

39

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

dernire ne des sries est la Stratix II. Elle est deux fois plus dense que la premire,
notamment grce une redfinition de son lment de base.
Le LE a t remplac par lALM (Adaptive Logic Module), qui contient deux bascules,
deux reports de retenue, et un bloc combinatoire compos principalement de deux 4LUTs et quatre 3-LUTs. A titre de comparaison, le plus gros Stratix II correspond
179400 LEs, 9Mbits de RAM et 384 multiplicateurs 18 18.

Sur le plan des processeurs, la srie Excalibur propose un FPGA de type APEX20KE
(avec un maximum de 38400 LEs, soit 1.7 millions de portes quivalentes), auquel a t
ajout un processeur ARM922T tournant 200MHz. Il semblerait toutefois quil nait pas
obtenu le succs escompt, et cest plutt sur son processeur Nios quAltera mise. Il
sagit dun processeur soft, qui peut tre insr dans nimporte quel design, puis
programm sur le FPGA cible. Sa version 32 bits noccupe que 1400 LEs, et permet donc
den placer plusieurs sur un FPGA.
Finalement, Altera propose la solution HardCopy, qui offre lutilisateur la possibilit de
transformer un design pour FPGA Stratix ou Apex en un ASIC. Bas sur le concept
dASIC rseau structur, le circuit est prdiffus avec les mmes composants que ceux
du FPGA, et seul lapposition de deux couches de mtal supplmentaires est ncessaire
la ralisation physique du design. Lavantage de cette approche est que la consommation
est plus faible et la rapidit plus grande en comparaison de limplmentation sur FPGA,
et que le temps de ralisation est moins lev que pour un ASIC standard.
Atmel
Atmel, fabricant de semi-conducteurs, propose deux architectures de FPGA, la srie
AT6000 et la srie AT40, toutes deux de technologie SRAM. Le bloc de base de la
premire est compos de deux multiplexeurs quatre entres, et de portes logiques
simples, ainsi que dune bascule, alors que celui de lAT40, plus conventionnel, est
compos de deux 3-LUT, dune porte ET et dune bascule. Bien que darchitecture
relativement simple, loriginalit de ces deux circuits rside dans le routage. En effet,
outre un rseau de routage longue distance simple, chaque cellule est directement relie
ces 8 voisines, alors que chez la plupart des autres fabricants les liaisons directes ne sont
que 4. Cette spcificit permet entre autre dimplmenter efficacement des
multiplications de matrice. Concernant la taille, nous pouvons noter que ces circuits sont
40

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

plutt petits en comparaison de leur concurrents, la srie AT6000 possdant au maximum


75000 portes quivalentes et la srie AT40 1 million, dont 18Kbits de RAM.
Finalement, la srie FPSLIC propose un systme compos dun microcontrleur 8-bit
AVR associ un tableau reconfigurable identique celui de lAT40. Ce contrleur a
priori plus simple que lARM dAltera ou le PowerPC de Xilinx, a toutefois la capacit
de reprogrammer le FPGA dynamiquement, avantage certain quant de potentiels
systmes adaptatifs. Notons galement que la srie Secure FPSLIC offre une EEPROM
de 1Mbits, permettant une programmation immdiate au dmarrage, sans la ncessit
dune mmoire externe stockant la configuration du FPGA.
Lattice
Les circuits Lattice peuvent tre regroups en 3 familles de FPGA, ORCA, ispXPGA,
ECP, et une famille FPSC. La premire, ORCA, consiste en trois sries, savoir les
sries 2, 3 et 4.
La srie 2 est compose dlments de base appels PFU (Programmable Functional
Unit) contenant quatre 4-LUT et quatre bascules. Ces PFUs peuvent servir implmenter
des blocs de mmoire RAM et ROM, synchrone, asynchrone ou dual-port, et offrent un
maximum de 99400 portes quivalentes. Les PFUs de la srie 3 et des suivantes ont une
taille double par rapport la srie.
La srie 3 possde galement une interface processeur facilitant la configuration et
propose des circuits allant jusqu 340K portes quivalentes. Enfin, la srie 4 offre encore
plus de complexit avec des blocs de mmoire additionnels pour un total maximal de
148Kbits, pouvant tre utiliss comme RAM, ROM ou multiplicateur, et un maximum de
899K portes quivalentes. Une interface processeur y est galement propose, qui sera
exploite dans les circuits ECP.
Alors que la famille ORCA fut rcupre lors de lachat de Lucent Technologies, la
famille ispXPGA fut entirement dveloppe par Lattice Semiconductors. Son lment
de base est compos de quatre 4-LUT et huit bascules, pour limplmentation efficace de
pipelines. Chaque PFU peut y tre utilis pour la ralisation de 6-LUT, dune fonction
logique jusqu 20 entres, dun multiplexeur huit entres, dun bloc de 61 bits de
RAM, ou dun registre dcalage de 8 bits. Jusqu 246Kbits de RAM sont en outre
disponibles, et le nombre maximal de portes quivalentes propos est de 1250K. La
41

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

grande particularit de cette famille concerne sa programmation base sur des cellules de
mmoire E CMOS, offrant la non-volatilit ces circuits. De ce fait aucune mmoire
externe nest ncessaire, et le circuit est automatiquement configur lors du dmarrage.
Suivant la srie 4, Lattice propose des Field Programmable System Chip (FPSC)
composs dun tableau reconfigurable identique celui trouv dans la srie ORCA4 ainsi
que dlments raliss en technologie ASIC, pouvant tre des interfaces 10Gbits/s, ou
backplane transceivers.
Finalement, deux familles, LatticeECP, pour EConomy Plus, et LatticeECPDSP, offrent
une solution bas cots. Leurs lments de base sont relativement semblables ceux de
la srie ORCA4, mais elles offrent plus de modules utiles limplmentation
dapplications DSP, tels que des multiplicateurs (jusqu quarante 18 18), et des blocs de
mmoire. La famille ECP-DSP propose en plus jusqu 10 blocs DSP permettant chacun
limplmentation de huit multiplicateurs 9 bits ou quatre Multiply-Accumulate sur 9 bits,
par exemple. Le plus grand de ces circuits possde 40 multiplicateurs, 5120 PFUs et
645Kbits de RAM.
QuickLogic
Tous les circuits QuickLogic sont de types anti-fusibles (la technologie ViaLink leur
permet dintercaler le fusible entre deux couches de mtal, afin de sauver de lespace sur
le silicium), bass sur un mme lment de base, avec une lgre diffrence pour la srie
Eclipse. Cet lment comprend 2 portes ET 6 entres, 4 portes ET 2 entres, 6
multiplexeurs 2 entres, et une bascule. Cette architecture est particulire en
comparaison des concurrents. En effet, elle semble moins intuitive que lapproche LUT,
mais permet de crer des fonctions grand nombre de variables dentres comme
plusieurs fonctions moins de variables, grce ses 5 sorties. Dans la srie Eclipse, la
principale diffrence rside en la prsence de deux bascules au lieu dune. Dans tous les
circuits, le rseau de routage est compos de lignes et colonnes connects par des
switchboxs.
La srie pASIC consiste en un simple tableau dlments logiques et du routage
correspondant, pour un maximum de 1584 cellules logiques, soit 75000 portes
quivalentes.

42

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Augmente de blocs de RAM, la srie QuickRAM propose jusqu 25'344 bits, pour un
total de 176608 portes quivalentes. La srie QuickPCI, toujours sur la mme base,
contient quant elle un contrleur PCI, alors que la srie QuickMIPS, de loin la plus
complexe, possde, outre 1152 cellules, 82944 bits de RAM et 18 ECUs, un processeur
MIPS 32 bits, un contrleur PCI, 2 UARTs, etc. La srie Eclipse, quant elle, pour un
maximum de 662208 portes quivalentes, peut contenir jusqu 82900 bits de RAM et
18 blocs ECU (Embedded Computational Units), chacun tant compos dun
multiplicateur 8X8, dun additionneur 16 bits et dun registre.
Xilinx
A lheure actuelle, Xilinx, le premier fabricant de FPGAs, propose principalement deux
familles, Virtex et Spartan, toutes deux de type SRAM, bases sur une architecture LUT.
La diffrence entre les deux familles est minime, et tient principalement du nombre
dlments proposs ainsi que du type de process utilis, les Spartan tant positionnes
bas cot en comparaison des Virtex. Llment de base, le CLB (Configurable Logic
Block), est compos de deux Slices, eux-mmes comprenant deux 4-LUT et deux
bascules. Les versions Virtex-II, Virtex-4 et Spartan-3 diffrent toutefois, le CLB y
contenant quatre Slices. Les deux familles contiennent des blocs de RAM, pouvant tre
utiliss en single ou dual port.
Alors que les sries Spartan-3, Virtex-II et Virtex-4 sont presque identiques en terme
darchitecture, la srie Virtex-II Pro introduit un ou deux processeurs de type PowerPC.
Contrairement lchec de la solution dAltera faisant intervenir un ARM, Xilinx a su
imposer son produit, et la srie Virtex-II Pro se trouve trs bien positionne dans la
gamme de ses produits.
Le plus imposant de la srie Spartan-3 propose 5M de portes quivalentes, dont 104
multiplicateurs de 18x18 bits et 1872 K bits de RAM. En comparaison, les plus gros
Virtex sont le XC4VLX200, de la famille Virtex-4LX et le XC4VFX140, un Virtex-FX.
Le premier contient 178176 lments logiques, un lment logique tant une LUT 4
entres et une bascule. A ceci sajoutent 6048 Kbits de RAM configurables, ainsi que 96
multiplicateurs 18x18 bits, pour un total de 15M de portes quivalentes (chiffre calcul).
Le deuxime, le XC4VFX140, est compos de 126336 lments logiques, de 9936
KBits de RAM, 192 multiplicateurs, et 2 processeurs de type PowerPC.

43

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Nous pouvons finalement noter que Xilinx, linstar dAltera, propose une solution appele
EasyPath, permettant la ralisation en ASIC dun design implment sur un Virtex-II, VirtexII Pro ou un Spartan-3 [46].

Figure II-2 : Parts de march en termes de CA en 2010 [56].

Le tableau II-1 de Comparaison des caractristiques des diffrentes FPGAs rsume les
principales caractristiques des FPGAs disponibles sur le march. Nous pouvons observer une
complexification constante de ces circuits qui se voient ajouter de plus en plus de nouvelles
caractristiques. Il devient en effet quasiment impossible den trouver un ne possdant pas de
blocs de mmoire RAM, et la prsence de multiplicateurs devient presque systmatique.
Sur le plan des structures de routage, la tendance est loptimisation. Les technologies
utilises devenant de plus en plus petites, le dlai des portes se rduit dautant, alors que celui
des fils ne diminue pas. Ds lors une nouvelle attention est donne cette partie du circuit, de
manire assurer un fonctionnement correct haute frquence.
Concernant la complexit du routage, nous pouvons noter que les rseaux de routage des gros
FPGAs ne se bornent pas une simple grille de switchboxs, mais quils font intervenir
plusieurs niveaux. La srie Startix dAltera, par exemple, est composs de Logic Array Blocs
(LABs) contenant 10 Logic Elements (LEs), chaque LE tant une LUT, une bascule et
quelques portes logiques. Le LAB y a une connectique interne, et une connectique externe
44

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

pour des chemins de longue distance entre les LABs. Altera voit ce rseau comme une
structure plusieurs dimensions, lensemble du rseau tant vu comme une grille de sousrseaux interconnects, eux-mmes tant une grille de sous-rseaux, etc [46].

Tableau II-1 : Comparaison des caractristiques des diffrentes FPGAs [46].

45

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.5. Structure interne de FPGA


II.5.1. Architectures des FPGA
Larchitecture dun FPGA est principalement dcrite par la topologie des ressources de
routages et des lments logiques configurables de base. Il existe deux architectures
classiques, larchitecture lot de calcul (initialement utilise dans les composants Xilinx) et
larchitecture hirarchique (initialement utilise dans les composants Altera). Cependant, une
tendance apparait avec les dernires gnrations de circuits, les architectures sont
principalement de style lots de calculs avec une lgre hirarchique (un ou deux niveaux de
cluster hirarchique). Les sections suivantes donnent quelques dtails sur ces architectures.
Dans le pass, dautres architectures ont taient utilises. On peut citer larchitecture de
routage logarithmique utilise par Xilinx pour son circuit XC6000. Malheureusement, les
outils de placement routage ntaient pas adapts cette architecture pour permettre au
concepteur den tirer pleinement partie.
II.5.1.1. Architecture lot de calcul
Larchitecture la plus communment utilise pour raliser ces circuits est de type lot de
calcul. Dans ce cas les ressources configurables sont disposes sous formes de matrice,
comme on peut le voir sur la figure II-3. Des lignes de routage sont disposes horizontalement
et verticalement autour des ressources configurables. Des blocs de connexion relient les
ressources configurables aux lignes de connexion. Des matrices de connexion relient les
lignes de routage horizontales et verticales.
Lutilisation de matrices de connexions configurables est indispensable pour assurer la
connectivit des modules, mais les matrices de connexions configurables dgradent les
caractristiques des signaux, diminuent les performances (frquence de fonctionnement et
consommation de puissance) et ncessitent des outils de placement-routage efficaces. Sur la
figure 4, on peut voir en gras des liaisons point point entre deux lments configurables. Ces
liaisons utilisent : les ports dentres/sorties des lments configurables, les connexions
configurables qui permettent la connexion des lments configurables au rseau de routage,
les lignes de routages et les matrices de connexions configurables. Autant dlments
parcourus qui dgradent les performances du circuit mais qui permettent une flexibilit
importante.
46

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II- 3 : Architecture lot de calcul, typique des FPGA actuels [42].

II.5.1.2. Architecture hirarchique


Larchitecture hirarchique couramment utilise pour les circuits FPGA est constitue de
quatre ou trois niveaux. A chacun de ces niveaux des ressources de routage sont disponibles
pour communiquer entre les lments propres du circuit. La figure 5 schmatise une
architecture hirarchique quatre niveaux en utilisant un exemple darchitecture couramment
rencontre dans les FPGA ACTEL. Au niveau le plus haut de la hirarchique, le circuit est
constitu de tuiles agences matricielle ment. Les tuiles sont constitues de clusters logiques
et de bancs de mmoires. Enfin, les clusters logiques regroupent les lments logiques (et/ou
arithmtiques) configurables. Ce style darchitecture peut tre trs efficace nergtiquement
47

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

car elle permet de localiser les communications intenses et limite lutilisation de longues
lignes de routage. Cependant, il est ncessaire pour les algorithmes de placement et routage de
prendre en compte les caractristiques Spcifiques de ces architectures.

Figure II-4 : Exemple dArchitecture hirarchique quatre niveaux (circuit, tuiles, clusters,
lments configurables) que lon rencontre frquemment dans les circuits ACTEL [42].

48

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.5.1.3. Architecture de type mer de portes


Elle est compose hirarchiquement et le routage est de type logarithmique. Ce type de
topologie fut utilis par Xilinx pour sa srie 6000. Mais ces composants nont pas eu de
succs, commercialement parlant, par manque doutils de CAO capables de les exploiter
correctement. Peut tre, reverrons-nous un jour des architectures de ce type ressortir sur le
march [41].
II.5.1.4. Architecture Spacetime
La socit Tabula vient, de son ct, de concrtiser pour la premire fois son architecture
Spacetime avec sa famille de rseaux logiques programmables (3PLD) baptise Abax.
Spacetime revendique lappellation 3D en prenant le temps comme troisime dimension pour
optimiser lutilisation des ressources sur la puce et ainsi accrotre la densit de logique
disponible. La socit donne du volume la matrice matrielle en la reconfigurant trs
rapidement : 1,6 milliard de fois par seconde (1,6 GHz), soit environ un million de fois plus
rapidement que les FPGA actuels qui chargent la configuration partir dune mmoire
externe. Pour faciliter la gestion de cette structure temporelle et permettre une reconfiguration

Figure II-5 : Architecture Spacetime (socit Tabula) [45].

49

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

ultra rapide de la logique, la succession de configurations est stocke localement sur la puce.
Par rapport aux solutions conventionnelles, la socit annonce pour ses FPGA fabriqus dans
le procd 40 nm de TSMC, des gains respectifs de 2,5 pour la densit, de 2 pour la capacit
mmoire et de 3,7 pour les performances DSP. Tabula prcise galement que cette
reconfiguration est transparente pour lutilisateur, celui-ci pourra donc suivre une
mthodologie de conception classique. Dans larchitecture Spacetime, la matrice matrielle
est dcoupe en plusieurs zones de blocs logiques bass sur des LUT, alternant avec des bancs
de mmoire Ram et des multiplexeurs pour distribuer les signaux entre ces diverses entits.
Suivant le mme principe que celui de la logique programmable, laxe des temps donne un
effet de volume la mmoire, multipliant sa capacit initiale ainsi que le nombre de ports.
Lorsquen 2003, Steve Teig, prsident et CTO de Tabula, mit au point le concept de cette
architecture Spacetime, le premier travail de son quipe fut dtudier la faisabilit doutils de
CAO de type classique pour animer cette architecture. Les premiers membres de la famille
Abax (A1EC02,-03,-04,-06) embarquent entre 220 000 et 630 000 LUT par FPGA. Ils
possdent tous 5,5 Mo de Ram, 920 E/S parallles, 44 PLL ainsi que 48 SerDes oprant entre
55 Mbits/ s et 6,5 Gbits/ s. Le FPGA A1EC06 bnficie en plus de 1 280 blocs MAC
(multiplier/accumulate). Lchantillonnage de ces FPGA est prvu en juillet, pour une
production en volume en octobre.
Quelle que soit larchitecture choisie, les lments constitutifs dun FPGA sont toujours peu
prs les mmes. Chaque fabricant ayant ses variantes par rapport un autre. Nous pouvons
citer un certain nombre de ces lments [45].
II.5.2. Ressources fonctionnelles configurables
Dans la plupart des cas llment logique configurable de base des FPGA se compose dune
LUT (Look Up Table5) avec un nombre dentres allant de 4 8 pour les dernires
gnrations, dune chane de propagation rapide de la retenue et dun registre de sortie afin
dassurer la synchronisation des signaux (trs utile pour limplmentation de calculs
pipelins). Ces lments configurables peuvent tre rassembls en clusters hirarchiques afin
de favoriser une connectivit locale et rapide (cas des composants Altera). Les lments
logiques configurables appel SLICE chez Xilinx. Entre deux gnrations successives de
FPGA Xilinx, quun SLICE Virtex4 ne correspond pas un SLICE Virtex6.

50

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-6 : Elments logiques configurables ( circuits Xilinx Virtex4 et Virtex6) [42].

Figure 6. Elments logiques configurables (simplifis) des circuits Cyclone II de Altera.

Figure II-7.a : Elments logiques (LAB) configurables (Logic Blocks, Cyclone II) dAltera [55].
Figure II-7.a : Elments logiques (LAB) configurables (Logic Blocks, Cyclone II) dAltera.
51

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II.7.b : Elments logiques configurables (simplifis) des circuits XC4000


Configurable (LAB) Logic Blocks de XILINX [38].
Remarque : Une LUT peut tre considre comme une petite mmoire RAM dans laquelle
on mmorise la table de vrit dune fonction logique. Une LUT 4 entres et 1 sortie,
classiquement utilise dans les FPGA, est donc quivalente une RAM 16 bits.
Quelques rares circuits ne comportent pas de LUT et sont constitus de cellules configurables
bases sur des multiplexeurs. Ce fut le cas du circuit Xilinx XC6000 qui nest plus disponible.
Cest le cas pour certains composants ACTEL comme les familles FPGA de technologie
FLASH ProASIC-3 et Fusion ainsi que la famille de FPGA de technologie anti-fusible
Axcelerator.
Rapidement, afin de raliser compltement des applications modernes, les FPGA ont d se
doter dlments configurables de mmorisation (apparition en 1999 dans les composants
Virtex et Apex de Xilinx et Altera). Sans ceux-ci la mmoire synthtise doit tre distribue
sur les LUT, ce qui laisse peu de place pour les traitements [41,38,8].

52

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.5.2.1. Les lments de mmorisation


Les FPGAs ont chang et ne sont plus seulement utiliss pour des applications de type "glue
logique", comme ce ft le cas leur dbut, mais aussi pour des applications plus importantes
qui demandent souvent des capacits de stockage (citons en exemple les applications du
traitement dimages). La ncessit dintgrer des blocs de mmoires directement dans
larchitecture des FPGAs est vite devenue cruciale. De cette faon les temps daccs la
mmoire sont diminus puisquil nest plus ncessaire de communiquer avec des lments
extrieurs au circuit. Dans les exemples dtaills par la suite, nous verrons que ces blocs
mmoires sont gnralement de type RAM, et sont configurables au niveau de la largeur des
mots mmoriss. Du fait de lintgration de ces blocs, dans des architectures dj existantes,
un point crucial apparat qui est le routage entre les parties mmoires et les ressources
logiques. La caractristique importante de ce routage est sa flexibilit. Si ce routage nest pas
assez flexible alors le circuit est difficilement routable, si il est trop flexible il y a
surconsommation de surface (donc de silicium) [41,8].

Figure II8 : lments de mmorisation (M4K RAM) dAltera [55].

53

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.5.2.2. Les lments de routages


Sil y a des lments plus importants que dautres dans les FPGAs, ce sont les lments de
routages. En effet les ressources de routages reprsentent la plus grosse partie de silicium
consomme sur la puce ralisant le circuit. Ces ressources sont composes de segments (de
longueurs diffrentes) qui permettent de relier entre eux les autres lments via des matrices
de connexions. Le routage de ces ressources est un point critique du dveloppement dune
application sur un FPGA, et les mthodes utilises pour les ASICs ne sont plus tout fait
valables (du fait de la segmentation des ressources). Si ces lments sont importants cest
parce quils vont dterminer la vitesse et la densit logique du systme. Par exemple les
matrices de routage (programmable Switch) sont, physiquement, ralises grce des
transistors de cellules SRAMs, qui ont une rsistance et une capacit, ce qui entrane
lexistence de constantes de temps [41,8,38].

Figure II9 : lment de routages (Altera) [55].


54

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-10 : lment de routages (Xilinx) [38].

II.5.2.3. Les lments dentres sorties


Le composant ne vie pas seul sur une carte (ou trs rarement), il appartient un systme
densemble pouvant contenir des parties micro programmes comme dans le cas du "CoDesign" (conception conjointe logiciel matriel). Le circuit doit donc avoir un lien avec son
environnement, cest le but des lments dentres/sorties. Ceux-ci peuvent bnficier de
protections, de buffer ou dautres lments permettant la gestion des entres et des sorties. En
particulier il est noter que les circuits actuels proposent diffrentes normes pour les niveaux
dentres et de sorties (par exemple: LVTTL 2 - 54mA, PCI 5V, PCI 3.3V, HSTL) qui par
configuration peuvent tres choisies afin de sadapter lenvironnement [41,38,8].

55

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II11 : lment dentres sorties (Altera) [55].

Figure II-12 : lment dentres sorties (XC4000E-Xilinx) [38].


56

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.5.2.4. Les lments de contrle et dacheminement des horloges


Il parat vident que dans tout systme lectronique relativement important, il faut disposer
dhorloges et quelles sont souvent dune importance capitale pour le bon fonctionnement du
systme (pensons aux systmes de tlcommunications par exemple). Alors, bien sur, les
FPGAs sont prvus pour recevoir une ou plusieurs horloges. Des entres peuvent tre
spcialement rserves ce type de signaux, ainsi que des ressources de routages
spcialement adaptes au transport dhorloges sur de longues distances (buffrisassions des
lignes). Aussi, pour assurer davoir la mme horloge dans tout le circuit (synchronisation des
signaux) les circuits ont reu des lments dasservissement des horloges (des PLLs ou des
DLLs) qui permettent souvent de crer partir dune horloge dautres horloges des
frquences multiples de la frquence de lhorloge incidente. Ces arbres dhorloge permettent
donc de disposer sur le circuit de fonctions travaillant des frquences diffrentes. Afin de
mieux percevoir tous les lments et architectures prcits nous allons prsenter les
composants Virtex de Xilinx et Apex dAltera. Ces prsentations sont succinctes et ne sont l
que pour monter la diversit des architectures de FPGAs, ce qui nous permettra de mieux
choisir la modlisation apporter ces dernires [41,47,48].

Figure II-13 : lment de contrle et dacheminement des horloges (Cyclone II Altera) [55].
57

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-14 : lment de contrle et dacheminement des horloges (Xilinx Spartan) [38].

II.5.3. Ressources programmables embarqus


Depuis les annes 2000, la densit dintgration des circuits FPGA permet de regrouper, sur
une mme puce, une matrice dlments matriels (logiques, mmoires, oprateurs
arithmtiques, entres-sorties) configurables et un ou plusieurs systmes microprocesseurs.
Ce type de circuit permet de profiter du paralllisme de calcul offert par larchitecture
matrielle et du contrle squentiel efficace offert par le systme programmable
(microprocesseur). Aussi en tirant parti des proprits respectives des systmes
programmables et des systmes reconfigurables il est possible damliorer ladquation du
58

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

systme global avec lapplication dveloppe. Dans ce cas lutilisation de mthodes de


conception conjointe logicielle/matrielle est indispensable et demande un effort important en
dveloppement doutils.
Plusieurs architectures existent aujourdhui, la figure II-15 illustre ces diffrentes possibilits.
Dans certains circuits, la partie matrielle configurable et la partie programmable sont
spares par un bus spcifique. La partie programmable comprend le systme
microprocesseur dans son ensemble : cur de processeur, mmoires caches, priphriques,
interface etc Ce fut le cas du premier circuit commercial embarquant un cur de
processeur, le circuit Altera Excalibur qui regroupait une matrice FPGA APEX 20KE et un
cur de processeur ARM9 (32 bits) fonctionnement 100MHz accompagn de deux fois
8kilo-octets de mmoire cache (instructions + donnes). Malheureusement, au moment de la
sortie de ce composant, les outils ntaient pas matures pour permettre une utilisation simple
et efficace dans un contexte industriel.

Figure II-15 : Trois architectures possibles de circuits mixtes FPGA microprocesseur(s) [42].

Certains circuits embarquent profondment au cur de la matrice configurable le ou les


processeurs. Ceux-ci ne sont pas ncessairement accompagns de leur systme, mais des
outils logiciels permettent de configurer une partie de la logique pour constituer le systme
complet. Cela permet ainsi une plus grande flexibilit dans le choix du systme
programmable. Cest cette solution qui fut choisie par Xilinx pour son premier composant
mixte Virtex-II Pro. Celui-ci tait compos dune matrice Virtex-II Pro et de un quatre
curs IBM PowerPC 405 (32 bits) cadencs 400MHz disposant de deux fois 16 kilo-octets
59

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

de mmoire cache (instructions et donnes). Cette mme architecture est toujours utilise pour
les composants Virtex de dernire gnration.
Il faut noter quil est possible de raliser un circuit mixte sans disposer physiquement dun
cur de processeur embarqu dans le circuit FPGA. Dans ce cas lutilisation dun cur
synthtisable (dit cur soft), fourni gratuitement par le fabricant de circuit, est une solution
trs efficace. Les curs synthtisables 32 bits Altera NIOS et Xilinx MicroBlaze sont par
exemple trs utiliss. Bien entendu, les performances de ces curs sont infrieures celles
des curs embarqus, mais ils permettent une plus grande flexibilit de configuration [41].
II.5.4. Ressources arithmtiques de gros grain
Nombreuses sont les applications qui ncessitent la synthse doprateurs du type multiplieur,
additionneur et multiplieur/accumulateur. Sil est possible, grce aux chanes de propagation
rapide de la retenu de raliser sur un petit nombre de LUT des additionneurs efficaces, ce
nest pas le cas pour des multiplieurs trs coteux en ressources. Les industriels ont donc
choisi dimplanter de faon matrielle des multiplieurs reconfigurables (la reconfiguration
intervient en particulier sur la taille des donnes traiter) au sein mme de la matrice de grain
fin. En positionnant ces multiplieurs prs des colonnes dlments mmoires et dlments
reconfigurables de grain fin il est possible de synthtiser des oprateurs MAC (Multiplieur
Accumulateur). Cette solution fut retenue par Xilinx pour les composants Virtex-II. Altera a
choisi dimplanter dans les circuits de la famille Stratix des oprateurs cbls plus complexes
pouvant directement tre configurs en oprateurs MAC que lon trouve galement sur les
nouvelles gnrations de FPGA Xilinx.
La figure II-16 donne le schma (simplifi) dun lment arithmtique configurable de
dernire gnration (DSP48E Slice) que lon trouve dans les composants Xilinx Virtex-6.
Ceux-ci comportent, entres autres, un multiplieur prenant en entre un mot de 25 bits et un
mot de 18 bits, une unit arithmtique (opration addition ou soustraction) et logique ainsi que
des chaines de retour pour les calculs itratif (filtre IIR par exemple). En fonction du circuit
choisi le nombre de DSP48E Slice est plus ou moins grand, il atteint 2016 lments pour le
plus gros des circuits Virtex-6 SXT qui est une version spcialise pour le traitement
numrique du signal [41].

60

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-16 : Elment arithmtique configurable du circuit Xilinx Virtex6 [42].

II.6. Le systme Excalibur dAltera


Excalibur est un SOPC (System On a Programmable Chip). Il comporte un cur de
processeur, de la logique et de la mmoire fournis sous forme dIP qui seront plac sur un
circuit de type FPGA de la famille APEX dAltera. Excalibur propose deux types de cur de
processeur :

Le NIOS est un processeur de type firm cest dire exclusivement ddi la famille
APEX dAltera. Cest un processeur 32 ou 16 bits configurable. La performance
maximale est de 50 Mips. Lintrt de ce cur est quil est gratuit, quil pourra suivre
les volutions technologiques dAltera, la souplesse de la solution.

Le ARM922T est un processeur RISC 32 bit de chez ARM. Dans sa version


Excalibur, il est directement intgr un circuit APEX. Cette version Hard permet de
garantir des performances de 200 Mips tout en ayant optimis la surface ncessaire.

On bnficie aussi de tout le support et lexprience existant autour de cette famille de


processeurs embarqus les plus utiliss dans le monde industriel.

61

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.6.1. Architecture Nios


Le NIOS comprend un CPU et des priphriques. Il peut tre configur en fonction des
besoins et performances viss. Il prendra alors de 2% 20 % de la surface totale selon le type
de circuit cible (Typiquement 12% pour un processeur 32 bits dans un circuit de 200000
portes EP20K200E) [6,7].
Le CPU
Le processeur est entirement synchrone, son architecture interne de type Berkeley est
celle de la figure ci-aprs

Figure II-17 : Architecture interne processeur de type Berkeley [6].

62

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Ce que lon peut configurer :

La taille du bus de donnes 16 ou 32 bits

Le bus adresse : de 10 33 bits

La taille de la banque de registre (File Registre) : 128, 256 ou 512

Ladresse du RESET

La table dadressage des vecteurs dexceptions

Le nombre de dcalages en un seul cycle dhorloge : 1, 3, 7, 15 ou 31

Une multiplication cble ou non

Figure II-18 : Processeur embarqu NIOS dAltera [7].

II.6.2. Processeur NIOS II


Le processeur softcore NIOS II, dAltera, est bas sur une architecture RISC. Ce
processeur existe en trois versions : rapide NIOSII/f (fast), conomique NIOSII/e et standard
NIOSII/s. Cest un cur de processeur configurable (taille des instructions, nombre de
registres, ajout de priphriques, etc.) volont selon les besoins. Il possde un nombre
paramtrable de diffrents priphriques (voir figure 4.13) savoir : mmoire RAM/ROM,
63

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

UART pour grer une ligne srie, timer, PIO (Parallel Input Output), etc. Hormis ces
priphriques implments par Altera, lutilisateur a la possibilit den ajouter quil aura luimme crits. Ils sont vus par le NIOS comme de simples emplacements mmoires accds
autant en lecture quen criture avec la possibilit de gestion dinterruptions. Ce processeur
embarqu est optimis pour la logique programmable dAltera et lintgration systme sur un
circuit programmable (SOPC). Avec loutil de dveloppement de systme SOPC Builder, les
concepteurs peuvent adapter le processeur NIOS et ses priphriques pour crer le systme
exact dont ils ont besoin.
Larchitecture interne du processeur NIOS est conue pour fournir plusieurs avantages tels
que :
Implmentation efficace dans les composants FPGA dAltera :

Nombre minimal dlments logiques.

Utilisation du minimum de mmoire.

Frquence dhorloge maximale.

Intgration de systme sans effort :

Interface mmoire simple.

Placement de priphriques configurables standard.

Outil SOPC Builder qui cre la logique dinterface du bus Avalon entre lunit
centrale de traitement, les priphriques et la mmoire.

tant donn que le code source de ce processeur est non accessible, la seule mthodologie de
conception quon peut appliquer est celle de rplication. Cette mthodologie est mieux
explique dans le paragraphe suivant. Ladaptation de NIOS aux besoins de mppSoC est aussi
dtaille [7,8].

64

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-19 : Schma block du processeur NIOS II [55].

65

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.7. Exemples des Cartes (FPGA) de dveloppement


II.7.1. Carte de dveloppement et de formation DE2(Altera)
La carte DE2 (figure II-20), construite autour dun FPGA ALTERA Cyclone II (35000 Logic
Elements ou LEs), comporte de la mmoire FLASH, SRAM et SDRAM, et de nombreux
priphriques daffichage (LEDs, LCD, VGA, TV), sonores et de communication (Ethernet,
USB, IrDA...) [8].

Figure II-20 : Carte de dveloppement et de formation DE2(Altera) [8].

66

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Caractristiques FPGA EP2C35F672C6 Cyclone II :

USB Blaster intgr pour configuration FPGA

Ethernet 10/100, RS-232, port IR

Sortie vido (CNA 10 bits VGA)

Entre vido (NTSC/PAL/Multi-format)

USB 2.0 (type A et type B)

Port PS/2 pour clavier ou souris

Entre ligne, sortie ligne, entre micro (CODEC audio 24 bits)

Embases d'extension (76 broches de signal) Mmoire :

o 8 Mo de SDRAM, 512 Ko de SRAM, 4 Mo de Flash


o Port de carte mmoire SD Commutateurs, DEL, affichages et horloges :
o 18 commutateurs bascule

4 commutateurs bouton-poussoir antiparasits

18 DEL rouges, 9 DEL vertes

Huit affichages 7 segments

cran LCD 16 x 2

Oscillateurs 27 MHz et 50 MHz, entre d'horloge SMA externe

Figure II-21 : Synoptique de la carte DE2 [8].


67

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.7.2. Carte dtude BASYS2 Digilent (Xilinx)


Est une plateforme de conception et de mise en uvre de circuits que quiconque peut utiliser
pour acqurir de l'exprience en construction de circuits numriques rels. Elle repose sur le
FPGA (rseau logique programmable) Spartan-E3 de Xilinx et un contrleur USB
AT90USB2 d'Atmel. La carte Basys2 fournit un matriel complet et prt l'emploi convenant
l'hbergement de circuits allant de dispositifs logiques de base des contrleurs complexes.
Un large ventail de priphriques E/S intgrs et tous les circuits de support FPGA
ncessaires sont inclus, de sorte pouvoir crer d'innombrables dessins sans avoir recours
d'autres composants.
Quatre connecteurs d'extension standard permettent de dvelopper les conceptions au-del de
la carte Basys2 en utilisant des plaques d'essais, des cartes de circuit conues par les
utilisateurs ou des Pmods. Les Pmods sont des modules d'E/S analogiques et numriques peu
coteux qui offrent la conversion A/N et N/A, des pilotes de moteur, des entres de capteur et
de nombreuses autres fonctionnalits. Les signaux sur les connecteurs 6 broches sont
protgs contre les dommages DES et les courts-circuits, assurant une longue dure de vie
dans tout environnement. La carte Basys2 fonctionne sans heurts avec toutes les versions des
outils Xilinx ISE, y compris le WebPack gratuit. Elle est livre avec un cble USB qui fournit
l'alimentation et une interface de programmation, de sorte qu'aucun autre bloc d'alimentation
ou cble de programmation ne soit ncessaire [22].
Caractristiques :

FPGA Spartan 3-E Xilinx, 100 K portes logiques.

Le FPGA dispose de multiplicateurs 18 bits, de 72 Kbits de bloc de mmoire RAM


double-port et d'une frquence de fonctionnement de plus de 500 MHz.

Port USB 2.0 pleine vitesse pour la configuration FPGA et les transferts de donnes
(en utilisant le logiciel Adept 2.0).

Mmoire ROM Flash de la plateforme XCF02 qui stocke les configurations FPGA
indfiniment.

Frquence de l'oscillateur rglable par l'utilisateur (25, 50 et 100 MHz), plus support
pour un deuxime oscillateur.

Trois rgulateurs de tension intgrs (1,2 V, 2,5 V et 3,3 V) qui permettent l'utilisation
de sources d'alimentation externes de 3,5 V 5,5 V.
68

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

8 DEL, affichage 7 segments et 4 chiffres, quatre boutons-poussoirs, 8 interrupteurs


glissire, port PS/2 et port VGA 8 bits.

Quatre embases 6 broches pour les E/S utilisateurs et cartes de circuit des
accessoires PMOD de Digilent.

Requiert le logiciel Adept 2.0 ou suprieur.

Figure II-22 : Carte dtude BASYS2 Digilent (Xilinx) avec le Synoptique [22].

69

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.8. Principales applications des FPGA


Ici, nous mettre en lumire certaines applications cls o la conception avec les FPGA peut
tre un avantage concurrentiel.
II.8.1. Applications Mdical

La majorit des produits mdicaux ont un certain type de semi-conducteurs en elle. Au fil des
ans, le contenu des semi-conducteurs continue d'augmenter dans ces myriades de produits.
Dispositifs logiques programmables (FPGA) continuent voir un taux d'adoption plus lev
que d'autres semi-conducteurs. C'est parce que FPGA offrent une alternative viable et
puissante la fois dans le dveloppement du matriel mdical. FPGA limin les cots
initiaux NRE et les quantits minimales de commande associs aux circuits ASIC et les
risques coteux de multiples itrations de silicium par sa capacit reprogrammable.
Les FPGAs offrent la flexibilit et le conseil possibilits d'intgration de conception de
diffrencier contre les fabricants de matriel mdical concurrents. En outre, FPGAs peuvent
tre mis niveau dans le domaine de l'volution des normes ou exigences de changement. En
outre, la possibilit de rutiliser une plate-forme matrielle commune permet aux concepteurs
de crer des systmes diffrencis qui prennent en charge une varit d'ensemble de
fonctionnalits avec un design de base, ce qui entrane une rduction des cots de fabrication.
Qu'il s'agisse de concevoir une machine CT ou de l'quipement de surveillance des patients, la
logique programmable est un chemin souple et faible risque pour une conception russie du
systme. Logique programmable vous permet d'offrir des conomies de cots optimaux tout
en offrant valeur ajoute capacits de diffrenciation par rapport d'autres fabricants
d'quipements mdicaux.

70

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Altera fournit un produit complet et le portefeuille d'outils pour acclrer application mdicale
dveloppement Altera SDK pour OpenCL TM , des conceptions de rfrence industrielles, le
Quartus II et outil d'intgration de systmes Qsys, NiosII processeur intgr 32-bit , mmoire
embarque, un vaste ensemble de broches d'E / S, et un large ventail de la proprit
intellectuelle standard et mdical (IP) de Altera et nos partenaires.
La configurable Nios II processeur embarqu vous permet de crer facilement un systme
bas sur un microprocesseur qui est personnalis pour rpondre vos exigences d'application.
Loutil d'intgration de systmes Qsys automatise la configuration IP et d'intgration. Altera
offre plus de 200 curs d'IP que vous pouvez utiliser dans le commerce pour crer un systme
matriel en quelques minutes. Avec le logiciel de conception Quartus II, vous pouvez rduire
la puissance, la vitesse d'optimiser et de rduire les temps de compilation du systme dans
votre conception de FPGA.
II.8.2. Application Militaire

Aronautique et designers militaires font face une longue liste de dfis, y compris la
ncessit pour la haute performance, une large plage de fonctionnement, et une long dure de
vie du systme , ainsi que les contraintes ajoutes de la taille limite du systme et les budgets
de puissance. FPGA Altera permettent aux concepteurs de rpondre aux exigences de
l'industrie arospatiale et les marchs militaires.

71

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.8.3. Applications Wireline

Avec le dveloppement de nombreuses applications multimdia gourmandes en bande


passante d'aujourd'hui, il ya une augmentation massive de la demande des clients pour plus de
bande passante. Cela impose un fardeau norme sur les fournisseurs de services de faire
voluer tous les segments de leurs rseaux filaires rapidement pour soutenir cette norme
demande de trafic en voix, vido et donnes. Les innovations sont constamment se droulent
dans l'accs, la transmission et les arnes d'quipement de rseau l'ensemble, transporter et
livrer le trafic triple-play sur des rseaux convergents multiservices. Ces technologies
innovantes ncessitent une plate-forme flexible qui offre des solutions rapidement, tout en
ayant une voie d'volution constante, faible cot pour la russite de dploiement de
production haut volume. Avec un portefeuille complet de haute performance, les FPGA
faible cot et une migration sans risque faible cot HardCopy

ASIC technologie,

dispositifs logiques programmables d'Altera (PLD) offrent la bande passante de traitement et


la flexibilit ncessaires pour la conception d'infrastructures filaires. Pour acclrer le dlai de
commercialisation, Altera fournit galement un large ventail de la proprit intellectuelle
(IP), des modles de rfrence , et complter les solutions des partenaires via Altera

cosystme des services filaires. D'Altera 28 nm silicium direction , des outils de soutien et
solutions permettent un niveau lev d'intgration de systme pour les plates-formes
d'infrastructure de communication filaires.

72

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

II.8.4. Application Sans fil

La croissance explosive de l'Internet au cours de la dernire dcennie a conduit une


demande croissante pour l'accs Internet haute vitesse omniprsente. Accs large bande
sans fil mobile rpond ce besoin croissant en offrant un accs tout moment, n'importe o
Internet la maison et le bureau. Il existe de nombreuses applications sans fil qui rpondent
largement aux besoins diffrents pour un accs continu, pratique et flexible pour la mise
jour des informations via le web.
Communication cellulaire mobile a volu partir du systme analogique traditionnel un
systme numrique 4G d'aujourd'hui base sur la frquence accs multiple par rpartition
orthogonale (OFDMA) et multiple-input multiple-output (MIMO). Pour les services de
donnes haute vitesse, + normes 3G ont t dploys pouvant atteindre significativement
plus levs des dbits de pointe par rapport aux technologies 3G telles que W-CDMA et
CDMA2000. Par exemple, les technologies d'accs haut dbit de paquets en liaison
descendante (HSDPA) et l'accs par paquets en liaison montante haut dbit (HSUPA)
augmentent la liaison descendante et des dbits de donnes en liaison montante du W-CDMA
14,4 Mbps et 5,6 Mbps, respectivement. Rseaux de prochaine gnration base sur le 3 me
projet de partenariat de la gnration (3GPP) standard de l'volution long terme (LTE) sont
actuellement prototyp et prpars pour des essais sur le terrain.La figure II-23. montre le
taux de diffrentes applications sans fil et la mobilit des donnes.

73

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-23 : Le taux de diffrentes applications sans fil et la mobilit des donnes [8].
Worldwide Interoperability for Microwave Access (WiMAX) gagne en popularit en tant que
technologie d'accs sans fil large bande avec un potentiel de march important. WiMAX
802.16e-2005 prend en charge un accs Internet haut-dbit mobile dans un rseau
mtropolitain (MAN), et utilise des systmes avancs de traitement du signal tel que la
frquence accs multiple par rpartition orthogonale (OFDMA) et de la technologie entres
multiples sorties multiples (MIMO). WiMAX 802.16e-2005 jouera un rle cl dans les
dploiements vert-terrain et les marchs mergents comme la technologie sans fil fixe.
Avec les avances de la technologie des semi-conducteurs et des techniques de traitement du
signal , les normes sans fil et les systmes sont en constante volution. Une plate-forme
matrielle, qui peut fournir une bande passante leve de traitement, la flexibilit et un
avantage time-to-market est ncessaire pour rpondre ces exigences. Avec un portefeuille
complet de haute performance , faible cot des FPGA et un chemin de migration sans risque
faible cot HardCopy

ASIC technologie, Altera

dispositifs logiques programmables

(PLD) fournir la bande passante de traitement et la flexibilit ncessaires pour des


74

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

conceptions de l'infrastructure sans fil. Pour acclrer le time-to-market, Altera fournit


galement un large ventail de la proprit intellectuelle (IP) , des modles de rfrence , et
complter les solutions des partenaires off-the-shelf via l'cosystme sans fil Altera. 40-nm
silicium leadership, des outils de soutien et des solutions d'Altera permettent dsormais
systme hautement intgr sur une puce (SoC) pour les plates-formes d'infrastructure sans fil.
II.8.6. Vhicules lectriques
Les quipementiers et les constructeurs automobiles utilisent FPGA et CPLD pour
diffrencier leurs voitures puissantes, avec des plates-formes rentables conception flexible qui
rpondent la performance, la qualit, le cycle de vie et les besoins d'volutivit de leurs
systmes numriques de plus en plus complexes. Avec les produits de l'automobile, vous
pouvez rduire les cots du systme, amliorer la fiabilit, et de simplifier la complexit de
conception pour acclrer les dlais de commercialisation.
Apprenez comment FPGA de classe automobile, comme faible cot, de faible puissance
Cyclone srie, peuvent vous aider rsoudre certains de vos plus grands dfis de conception
d'applications automobiles.
Vhicules lectriques hybrides (HEV) et les vhicules lectriques (EV) avec leurs moteurs
lectriques, la conversion de puissance et les systmes de gestion de batterie apporter un
besoin croissant pour une dure de vie de la batterie et une plus grande efficacit.
Les boucles de rgulation rapides de leurs systmes de contrle du moteur doivent haute
efficacit nergtique travers toutes les gammes de couple et de vitesse pour une plus longue
porte conduite. Cela ncessite un contrle algorithme de traitement de signaux vectoriels
complexes que les performances du microcontrleur classique ne peuvent pas soutenir. FPGA
programmables, cependant, peuvent acclrer les boucles de rgulation pour augmenter les
performances du systme.
Vous pouvez utiliser les FPGA dans les applications o le traitement du signal numrique
(DSP) amliore les performances du systme, tels que le AC / DC, des systmes de gestion de
batterie, convertisseurs DC / DC, et systmes d'onduleurs moteur comme indiqu sur la
Figure II-24 [8].

75

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

Figure II-24 : Unit de contrle et commande du vhicule lectrique [8].

II.9. Tendances
Quelques tendances apparaissent ces dernires annes dont lobjectif est daugmenter
lefficacit des FPGA. Sans vouloir tre exhaustif nous pouvons en dcrire quelques unes. Au
niveau de la mmoire de configuration, les densits de configuration et la maitrise des
technologies ont permis lmergence de composants de technologie mixte FLASH-SRAM, tel
que les composants Lattice XP2 et Xilinx Spartan AN. Loffre commerciale a volu en
proposant de plus en plus des sries spcialises lintrieur dune mme famille de
composants.

II.10. Conclusion
La part de march des FPGA dans le march globale des circuits matriels pour llectronique
numrique ne cesse daugmenter. Les volutions technologiques et architecturales qui ont eu
successivement lieu depuis le dbut des annes 2000 ont fait de ces circuits de rels et
rentables alternatives aux classiques ASIC. Avec ces volutions cest tout un nouveau
domaine de llectronique numrique qui sest ouvert. Aujourdhui les FPGA sont utiliss
76

CHAPITRE II

Technologie et environnement de dveloppement des FPGAs

dans tous les domaines, des systmes embarqus aux systmes de communications, ils sont au
cur dun important champ de recherche acadmique et industrielle.

77

CHAPITRE III

Mthodologie de dveloppement
dun algorithme de commande pour
l'implantation sur puce FPGA

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.1. Introduction
Limplantation des algorithmes de contrle dans leur intgralit sur des cibles matrielles
telles que les FPGA est une dmarche qui ncessite une parfaite matrise des processus de
conception et un travail spcifique dadquation entre lalgorithme et larchitecture de
commande intgrer. Donc, un savoir faire mthodologique est ncessaire aux concepteurs
utilisant les composants de type FPGA afin de satisfaire lensemble des contraintes inhrentes
de limplantation, tout en apportant une flexibilit de dveloppement suffisante. Par ailleurs,
les applications de commande sont des applications qui dcloisonnent un savoir faire dans
plusieurs domaines. En effet, cela ncessite du concepteur la matrise dun savoir faire dans
les domaines de la microlectronique, de llectronique faible et grande puissance, des
machines lectriques et de leur commande. Cette difficult pousse les concepteurs prfrer
les implantations standards des solutions logicielles. Par consquent, limplantation des
algorithmes de contrle sur de nouvelles solutions matrielles tels que les FPGA doit suivre
des tapes bien dtermines afin de guider le concepteur et faciliter le processus de
conception [49].

III.2. Description dun systme de commande


Vu la complexit et la diversit des systmes de commande, il est difficile de dfinir dune
manire universelle une structure gnrale pour de tels systmes. Cependant, en ayant une
rflexion par rapport aux lments les plus communment rencontrs dans ces systmes, il est
possible de dfinir au mieux une structure gnrale dun systme de commande comme la
suit [50].

III.3. Structure gnrale dun systme de commande


III.3.1. Commande en Boucle Ferme
Sont des systmes de commande en Boucle Ferme, sont constitus, dans la plupart des cas,
de la faon suivante :

79

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-1 : Structure gnrale d'un systme de commande [51].

Les fonctions principales dans la boucle sont :

Le systme physique (ou processus) : il gnre la variable que l'on dsire asservir.

Lactionneur (organe de puissance) : il peut tre inclus dans le systme physique


asservir.

Le capteur : il ralise la mesure de la grandeur commande.

Le comparateur : il calcule la diffrence entre la grandeur dsire et la grandeur


obtenue (c'est dire lerreur).

Le rgulateur : c'est l'organe de commande : son rle consiste ajuster l'action


partir de l'erreur, Il labore la variable qui va agir et commander lactionneur.

Les perturbations : ce sont des modifications non prvisibles sur le systme.

Le choix du rgulateur tant li la caractristique "entre sortie" du systme asservir, il


sera tout d'abord ncessaire d'tudier le systme physique asservir et d'en tablir un "modle
mathmatique".
III.3.2. Commande en Boucle Ouverte
Lobjectif est de trouver un modle, juste ou approch, du systme physique asservir. Nous
ouvrons la boucle dans le schma bloc. Les paramtres accessibles nous donnent l'entre et la
sortie possibles du systme [51] :

entre : grandeur rgulant.


80

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

sortie : image de la grandeur de sortie (gnralement travers le capteur).

Figure III-2 : schma bloc en boucle ouverte [51].

Un exemple dune structure gnrale du commande dune machine lectrique est constitu de
quatre parties comme indiquer la figure suivant :

Partie puissance
Source
lectrique

Machine
lectrique

Convertisseur
command

Charge
mcanique

Partie interface
(Puissance /commande)

Partie commande

Partie interface
(homme /machine)

Figure III-3 : Structure gnrale du commande dune machine lectrique.

81

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Partie Puissance

Cette partie elle-mme inclue quatre lments. Le premier tant une source lectrique.
Cette dernire peut tre fournie via des batteries, des gnrateurs, un rseau lectrique
(monophas ou triphas) Elle peut aussi contenir des composants dlectrotechnique et
dlectronique de puissance tels que les transformateurs, les Autotransformateurs, les
ponts redresseurs (commands ou non commands), les filtres capacitifs Le deuxime
lment est un ou plusieurs convertisseurs commands. Il sagit de dispositifs
dlectronique de puissance incluant des interrupteurs de puissance (IGBTs,
Thyristors,) qui sont commands travers des signaux de commande louverture et/ou
la fermeture. Le rle dun convertisseur command est de convertir lnergie lectrique
fournie par la source lectrique dune forme une autre travers la commande
dinterrupteurs de puissance. Par exemple, il est possible de trouver des convertisseurs
continu-continu tels que les hacheurs, des convertisseurs continu-alternatif tels que les
onduleurs, des convertisseurs alternatif-continu tels que les redresseurs (commands ou
non commands), des convertisseurs alternatif-alternatif tels que les gradateurs Le
troisime lment est une machine lectrique. Cette dernire constitue une charge
lectromcanique qui est alimente via lnergie lectrique fournie la sortie du
convertisseur command. La machine lectrique permet de convertir lnergie lectrique
quelle reoit en une nergie mcanique sous forme de couple. Plusieurs types de
machines sont utiliss dans lindustrie selon lapplication considre et les performances
souhaites. Par exemple, on y trouve les moteurs pas pas, les machines courant
continu, les machines asynchrones, les machines synchrones, les machines rluctance
variable Le quatrime et dernier lment qui constitue la partie puissance est la charge
mcanique. Cette dernire utilise lnergie mcanique dlivre par la machine lectrique
pour remplir une fonctionnalit donne.

Partie Interface (Puissance/Commande)


Cette partie assure le traitement lectronique des signaux lectriques changs entre la
partie puissance et la partie commande. Elle est constitue dlments tels que les
capteurs lectriques (capteurs de tension, de courant), les capteurs mcaniques
(couple,

vitesse,

position),

llectronique

de

filtrage

des

perturbations,

llectronique de conversion analogique numrique et de conversion numrique

82

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

analogique, llectronique de pilotage des interrupteurs de puissance du convertisseur


commandetc.

Partie Commande
Cette partie assure le contrle de ltat de la machine lectrique (contrle du courant,
du couple, de la vitesse, de la position,). Ce contrle tant assur par un algorithme
de commande qui est implant sur cible analogique ou numrique. Le contenu
algorithmique de la partie commande dpend du cahier de charge de lapplication
considre et des performances souhaites. La partie commande acquiert dans un sens
les signaux lectriques gnrs par la partie interface et dans un autre, elle envoie les
signaux de commande vers le convertisseur command.

Partie Interface (Homme/Machine)


Cette partie permet le contrle de ltat du systme travers un change bidirectionnel
dinformations entre le manipulateur et le systme command. Elle permet dans un
sens denvoyer les consignes de rfrence (consignes de courant, de couple, de vitesse,
de frquence dchantillonnage,) vers la partie commande et de rcuprer dans un
autre ltat dvolution des grandeurs de la machine lectrique. Lobjectif de cette
partie est de pouvoir acqurir des informations sur lvolution des variables du
systme command et en mme temps dassurer un contrle simple et transparent de
ltat de la machine lectrique [52].

III.4. Mthodes dimplantation dun algorithme de commande


La notion dimplantation est dfinie comme tant lintroduction dune fonctionnalit donne
sur un support physique. Dans le cadre de commande des machines, la fonctionnalit
introduire constitue lalgorithme de commande, dont lobjectif est de contrler ltat
dvolution de variables mcaniques ou lectriques de lobjet a commander (courant, flux,
puissance, couple, vitesse). Quant au support physique, il constitue la cible dimplantation.
Cette dernire peut tre de nature analogique ou numrique. Lorsquil sagit dune cible de
nature analogique, le contrle est conu via des circuits analogiques. Lorsquil sagit dune
cible de nature numrique, lalgorithme de commande est discrtis et est ralis via des
solutions numriques.
Les premiers contrles de machines lectriques furent raliss via des implantations de nature
analogiques. Les principaux avantages des solutions analogiques sont les suivants :
83

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Ralisation de contrles avec une large bande passante.

Faible cot.

Ralisation de contrles avec une haute rsolution.

Cependant les implantations de nature analogique prsentent les inconvnients suivants :

Variations des paramtres de contrle lies aux contraintes thermiques inhrentes du


circuit de contrle.

Sensibilit aux perturbations.

Grand nombre de composants (Diminution de fiabilit).

Ncessit dentretien et de rajustement rgulier.

Faible flexibilit de la modification des structures de contrles.

Avec lavancement technologique, les implantations de nature numrique sont devenues les
plus rpandues. Les principaux avantages des solutions numriques sont les suivants :

Grande flexibilit de modification des structures de contrle.

Immunit vis--vis des perturbations.

Pas de problmes de variations de paramtres de contrle.

Ainsi, de nos jours, la plupart des implantations numriques dalgorithmes de commande de


machines lectriques sont bases sur des solutions logicielles telles que les microcontrleurs,
les microprocesseurs ou les DSP (Digital Signal Processor). Cependant, les avantages des
solutions analogiques restent toujours difficiles atteindre et ces solutions prsentent les
inconvnients suivants :

La prsence de dlais de temps de calcul implique une dgradation de la bande


passante du contrle.

Les priodes dchantillonnage utilises sont limites par les dlais de temps de calcul.

Le fonctionnement discret et la quantification des algorithmes font que la prcision et


les performances de contrle sont dgrades.

La compensation des dlais dus au temps de calcul augmente la complexit des


algorithmes implanter.

84

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-4 : Diffrence de capacit de calcul entre les solutions


(a) logicielles_(b) matrielles [52].

Au-del des solutions logicielles traditionnelles, les nouvelles solutions matrielles telles que
les FPGA peuvent aussi tre considres comme tant des solutions numriques appropries
pour limplantation des algorithmes de commande. Par ailleurs, le paralllisme inhrent des
composants FPGA ainsi que leurs grandes capacits de calcul permettent de raliser des
techniques de contrle avec des dlais de temps dexcution trs petits en dpit de la
performances analogiques en augmentant la bande passante des contrles et en affinant leur
rsolution temporelle [52].

III.5. Contribution des FPGA dans la commande


Les structures de contrle comportent plusieurs boucles de rgulation imbriques (boucle de
rgulation de courant, de vitesse, de position,). La boucle qui consomme le plus de temps
de calcul par exemple est la boucle interne de rgulation de courant, et seulement des
ressources de calcul limites sont ddies aux boucles externes. Pour ce faire, il est
avantageux dutiliser des solutions numriques ayant de grandes capacits de calcul pour
limplantation des algorithmes de commande. Les solutions numriques les plus utilises pour
la commande des machines lectriques sont les microprocesseurs et les DSP. Cependant, les
exigences de contrle modernes dans le domaine de commande de machines lectriques
dpassent les capacits de calcul offertes par ces solutions. Et bien que les nouveaux
multiprocesseurs et les nouveaux DSP de hautes performances peuvent rsoudre ce problme,
ils prsentent linconvnient davoir un cot lev.

85

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-5 : Mode de fonctionnement parallle entre un FPGA et un DSP [57].


La migration du mode de fonctionnement squentiel des solutions logicielles au mode de
fonctionnement parallle des solutions matrielles est un nouveau degr de libert offert aux
concepteurs qui sest avr bnfique dans le domaine de commande de machines lectriques
et qui a permis de rpondre aux exigences de contrle modernes.
Parmi les nouvelles solutions matrielles, les composants FPGA ont t utiliss avec succs
dans diffrentes applications lies la commande de machines lectriques. En effet, ils ont t
utiliss pour le contrle des convertisseurs de puissance tels que les onduleurs de tension
triphas, les convertisseurs alternatif/continu, les convertisseurs multi niveaux, les filtres
actifs, Les FPGA ont aussi t utiliss pour le contrle des machines asynchrones, des
machines synchrones, des machins rluctance variable .Ainsi, grce aux caractristiques
propres des FPGA, il est possible de :

Amliorer les performances de contrle : La rapidit de calcul des FPGA permet


une augmentation de la bande passante des boucles de rgulation et une meilleure
rsolution temporelle.
86

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Implanter des algorithmes complexes : Avec lavancement technologique,


laugmentation dintgration des composants FPGA ne cesse daugmenter. De nos
jours, la densit des composants FPGA peut atteindre lquivalent de 10 millions de
portes logiques avec des frquences de commutation de lordre de 500 MHz. Ceci
permet limplantation dalgorithmes de contrle complexes dans leur intgralit avec
un faible dlai de temps de calcul.

Raliser des reconfigurations dynamiques : Le paralllisme inhrent des


composants FPGA offre la possibilit de faire tourner plusieurs algorithmes de
commande en parallle et de reconfigurer entre eux selon des critres bien dfinis. La
reconfiguration dynamique entre les algorithmes de commande permet de slectionner
les algorithmes appropris selon les points de fonctionnements. Elle peut tre utile
aussi pour assurer une continuit de fonctionnement en cas de dfauts (capteurs,
interrupteurs, ).

Renforcer la confidentialit : Larchitecture de contrle implant sur cible FPGA


nest pas facilement duplicable [9].

III.6. Mthodologie de dveloppement pour implantation sur cible FPGA


Plusieurs mthodologies de dveloppement pour la conception darchitectures matrielles.
Elles ont toutes t conues en ayant comme objectif le dveloppement darchitectures
gnriques et rutilisables afin de pouvoir les rutiliser dans diffrentes applications. La
notion de rutilisabilit est toujours de premire importance tant donn quelle permet de
crer une bibliothque de modules rutilisables appels aussi fonctions IP (Intellectuel
Property). La spcificit de la mthodologie de dveloppement utilise dans ce travail est
quelle est facile apprhender par lingnieur lectrotechnicien sans quil soit expert en
microlectronique. Les tapes de dveloppement de larchitecture implanter sont
principalement effectues via le logiciel Matlab-Simulink ainsi que les outils CAO des
solutions matrielles. Les diffrentes tapes de la mthodologie de dveloppement considre
sont dtailles dans les paragraphes qui suivent [9,8].

87

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-6 : Les tapes optimises de limplantation dun algorithme de commande sur
FPGA.

III.6.1. Partitionnement modulaire de lalgorithme de commande


Cette tape est spcialement importante lorsque les algorithmes implanter sont de nature
complexe. En effet, lobjectif de cette tape est de dcomposer lalgorithme de commande
implanter en plusieurs "sous-algorithmes" appels modules ayant des fonctions bien dfinies.
Ceci permet, dune part de faciliter les conceptions raliser, et dautre part de minimiser le
temps de dveloppement. Cependant, le partitionnement modulaire dun algorithme de
commande ncessite une certaine rflexion de la part du concepteur. Ce dernier doit
partitionner lalgorithme de manire fonctionnelle, et ce en identifiant des modules qui soient
indpendants et rutilisables tels que les rgulateurs, les fonctions de modulation, les
estimateurs, les oprateurs vectoriels Ainsi, le concepteur doit extraire un maximum de
modules rutilisables en vue de rendre possible leur rutilisation comme des lments dune
bibliothque spcifique. En mme temps, lextraction des modules doit tre effectue de
manire hirarchique afin dtre adapte la complexit de la conception.
88

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

A la fin de cette tape, plusieurs modules rutilisables, avec diffrents niveaux hirarchiques
sont extraits afin dtre ajouts ( la fin de leur conception) une bibliothque spcifique
ddie la commande de machines lectriques comme le montre la figure III.7. Trois niveaux
hirarchiques sont suffisants pour caractriser dans son intgralit la bibliothque de modules
ddis la commande de machines lectriques. Le premier niveau hirarchique inclut les
oprateurs de "grain fin" tels que les registres, les multiplexeurs, les additionneurs, les
multiplieurs Ensuite, le deuxime niveau hirarchique comporte les modules des fonctions
les plus communment rencontres dans la commande des machines lectriques tels que les
rgulateurs PI, les techniques de modulation de largeur dimpulsion (MLI), les
transformations de coordonnes Les modules du deuxime niveau hirarchique sont
construits en utilisant les modules du premier niveau hirarchique. Finalement, les
algorithmes de contrle constituent les modules du troisime niveau hirarchique de la
bibliothque. Ces modules dalgorithmes de contrle sont construits en utilisant des modules
du premier et deuxime niveau hirarchique de la bibliothque [9].

Figure III-7 : Partitionnement modulaire dun algorithme type commande vectoriel [50].

89

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.6.2. Etape de simulation


La procdure de simulation est effectue en utilisant le logiciel Matlab-Simulink. Lobjectif
de cette tape est de :

Vrifier la fonctionnalit de lalgorithme de contrle lorsquil est insr dans


lapplication considre.

Dterminer une priode dchantillonnage et un format virgule fixe qui permettent


datteindre les performances de contrle souhaites.

Figure III-8 : Fentres de logiciel Matlab-Simulink [10].


La vrification de la fonctionnalit de lalgorithme est effectue travers le dveloppement
dun modle fonctionnel en utilisant les blocs en temps continu de Matlab-Simulink.
Lalgorithme de commande est par la suite discrtis et normalis. La quantification de
lalgorithme de commande discrtis et normalis est alors effectue en tudiant linfluence
de la priode dchantillonnage et celle du format virgule fixe sur les performances de
contrle. Plusieurs mthodes analytiques sont cites en bibliographie portant sur la
dtermination du format et de la priode dchantillonnage. Dans le cadre de ce travail, et
pour des raisons de simplicit, lopration de quantification est effectue uniquement par
simulation travers le dveloppement dun modle de spcification virgule fixe de
lalgorithme de commande discrtis et normalis. Ce modle est dvelopp en utilisant la
90

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

toolbox "fixed point" de Matlab-Simulink. Ce choix est du au fait que la densit des
composants FPGA ne cesse daugmenter avec lavancement technologique et que les
procdures doptimisation de ressources qui seront prsentes par la suite sont suffisantes
pour satisfaire les contraintes matrielles de la cible FPGA. En effet, de nos jours mme des
algorithmes de contrle complexes peuvent tre implants intgralement sur des cibles FPGA
de faible cot, mme si le format virgule fixe choisi est lev, voire surdimensionn pour
lapplication vise.
Une fois le dveloppement du modle de spcification discret et virgule fixe achev, un
GFD (Graphe de Flot de Donnes) est dfini pour chaque sous algorithme des diffrents
modules de deuxime niveau hirarchique extraits lors de ltape de partitionnement
modulaire. Un algorithme donn peut tre dcrit de diffrentes manires. Le GFD constitue
une description graphique de lalgorithme, o ce dernier est dcompos en plusieurs
oprations lmentaires implantables telles que laddition, la soustraction, la multiplication, le
retard, la comparaison, les fonctions trigonomtriques Le GFD mentionne aussi le format
virgule fixe utilis [9].
Exemple dun modle Simulink de la machine asynchrone
La figure III-9 reprsente le modle SIMULINK du moteur asynchrone dcrit par des
quations. Il est constitu de sept blocs principaux, qui sont [53]:

La source d'alimentation triphase,

Le bloc de transformation abc/dq,

Le bloc calculant les courants statoriques et rotoriques dans le plan dq,

Le bloc calculant le couple lectromagntique du moteur,

Le bloc calculant le couple rsistant de la charge,

Le bloc calculant la vitesse du moteur,

Et le bloc calculant les trois signaux triphass du courant statorique.

91

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-9 : Modle Simulink du moteur asynchrone [53].

III.6.3. Optimisation des ressources consommes


III.6.3. a. Programm FPGA Utilisation de HDL Coder
Si vous utilisez MATLAB pour modliser le traitement numrique du signal (DSP) ou vido
et des algorithmes de traitement d'images etc, qui finissent par se retrouver dans les FPGA
ou ASIC, Utilisation de HDL Coder, vous pouvez programmer les FPGA, y compris les
dispositifs d'Altera , Xilinx , et d'autres fournisseurs de FPGA. Cette fonctionnalit vous
permet de prototyper rapidement votre conception sur le matriel FPGA. Le conseiller
Workflow dans HDL Coder s'intgre avec Xilinx ISE et Altera Quartus II (des logiciel de
conception

de larchitecture

implanter)

suites

de conception

automatiquement vos FPGA partir de MATLAB et Simulink [10].

92

de programmer

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-10 : Gnrer du code HDL partir de MATLAB et Simulink [10].


HDL workflow conseiller
Le workflow conseiller HDL (voir la figure ci-dessous) permet d'automatiser les
tapes et fournit un parcours guid partir de MATLAB pour le matriel. Vous
pouvez voir les tapes cls suivantes du flux de travail dans le volet gauche du
conseiller de flux de travail:
1. Conversion en virgule fixe
2. Gnration de code HDL
3. Vrification HDL
4. Synthse et analyse HDL

93

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-11
III
: Fentre de Workflow conseiller [10].
III.6.3. a.1. Conversion en virgule fixe
Applications de traitement du signal sont typiquement implmentes en utilisant les
oprations en virgule flottante dans MATLAB. Toutefois, pour pouvoir, le cot et le
rendement des raisons, ces algorithmes doivent tre convertis pour utiliser
util
les
oprations en virgule fixe pour cibler matriel. Conversion en virgule fixe peut tre
trs difficile et de longue haleine, exigeant gnralement de 25 50 pour cent de la
conception globale et le temps de mise en uvre. La virgule flottante automatique
autom

point fixe conversion flux de travail dans HDL Coder peut grandement simplifier et
acclrer le processus de conversion. A not que cette tape est facultative. Vous
pouvez sauter cette tape si votre conception MATLAB est dj mise en uvre en
virgule fixe.
III.6.3. a.2. Gnration de code HDL
L'tape de gnration de code HDL gnre du code HDL partir du code MATLAB
en virgule fixe. Vous pouvez gnrer soit VHDL ou Verilog code qui implmente
votre conception MATLAB. En plus de gnrer du code HDL synthtisable, HDL
94

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Coder gnre galement diffrents rapports, dont un rapport de traabilit qui vous
permet de naviguer entre votre code MATLAB et le code HDL gnr, et un rapport
d'utilisation des ressources qui vous montre, au niveau de l'algorithme, peu prs ce
ressources matrielles sont ncessaires pour mettre en uvre la conception, en termes
de vipres, des multiplicateurs et RAM.
Lors de la gnration de code, vous pouvez spcifier plusieurs options d'optimisation
pour explorer l'espace de conception sans avoir modifier votre algorithme. Dans la
section Exploration de l'espace de conception et d'optimisation des options ci-dessous,
vous pouvez voir comment vous pouvez modifier les options de gnration de code et
optimiser votre conception de la vitesse ou de la zone.
III.6.3. a.3. Vrification HDL
Standalone test de HDL gnration de banc:
HDL Coder gnre VHDL et Verilog bancs d'essai de vos scripts MATLAB pour
la vrification rapide de code HDL gnr. Vous pouvez adapter un banc d'essai de
HDL en utilisant une varit d'options qui s'appliquent des stimuli du code HDL.
Vous pouvez galement gnrer des fichiers de script pour automatiser le processus de
compilation et de simulation de votre code dans les simulateurs de HDL. Ces mesures
aident s'assurer que les rsultats de la simulation MATLAB correspondent aux
rsultats de la simulation HDL.
III.6.3. a.4. HDL Synthse
Outre les dfis lis la langue, la programmation de FPGA ncessite l'utilisation
d'outils de CAO complexes. Gnration d'un flux binaire de la conception de HDL et
la programmation du FPGA peut tre lourdes tches. HDL Coder offre
automatisation ici, en crant des fichiers de projet pour Xilinx et Altera qui sont
configurs avec le code HDL gnr. Vous pouvez utiliser les tapes du flux de travail
pour synthtiser le code HDL dans l'environnement MATLAB, voir les rsultats de la
synthse, et itrer sur la conception MATLAB pour amliorer les rsultats de synthse
[10].

95

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.6.3. b.Programm FPGA Altera Utilisation Altera DSP Builder


Altera et Mathworks travaillent en troite collaboration pour donner une

nouvelle

technologie qui appeler le DSP Builder qui nous permet de passer de la dfinition et de la
simulation systme en utilisant les outils MathWorks Simulink standard de l'industrie pour la
mise en uvre du systme en quelques minutes. Le DSP Builder est un signal numrique
traitant l'outil de dveloppement (DSP) qui connecte entre le logiciel de Quartus II et les
outils de MathWorks MATLAB/Simulink. La figure III-12 montre l'coulement de la mise
en uvre de la conception l'aide DSP Builder.

Figure III-12 : DSP Builder Conception dbit [8].


DSP Builder vous permet de crer des modles optimiss pour les FPGA Altera dans
Simulink sans exiger que vous travailliez directement avec le code HDL. Avec DSP Builder
avance Blockset, vous spcifiez les contraintes de conception de haut niveau, tels que la
frquence d'horloge souhaite et le nombre de canaux de votre modle Simulink. DSP Builder
gnre alors automatiquement RTL pipeline cibl et optimis pour votre appareil FPGA
choisi. Parce avance Blockset utilise un multiplexage temporel pour optimiser l'utilisation de
la logique et insre automatiquement tages de pipeline et enregistre pour rpondre aux
contraintes de conception, vous pouvez obtenir des performances similaires sur FPGA en
main optimise du code HDL.

96

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

DSP Builder intgre une haute performance, faible latence coulement de l'outil virgule
flottante en utilisant la technologie de chemin de donnes fusionne. Cette capacit permet
l'ingnieur de conception pour construire les chemins des donnes de traitement de signaux
qui combinent oprations en virgule flottante et en virgule fixe [8].
III.6.4. Lintgration des priphriques
Deux tapes sont ncessaires la programmation du NIOS. La premire partie concerne la
conception du systme avec le processeur embarqu NIOS II :

Construction de la plateforme matrielle

Choix des priphriques matriels et des interconnexions.

Intgration de ces priphriques

Cela se fait grce au logiciel Quartus. Cet ensemble doutils est dvelopp par Altera. Il fourni
plusieurs environnement de conception dont loutil de conception matrielle : SOPC Builder.
La deuxime tape concerne le jeu dinstruction programm au niveau logiciel du NIOS en
langage C. Altera a prvu un environnement de dveloppement appel Eclipse qui permet
cette programmation, ainsi que la compilation et la simulation du programme .
Quartus II intgre l'outil SoPC Builder qui permet de construire un systme SoPC (System on
Programmable Chip). Il permet graphiquement de construire par exemple un microcontrleur
intgrant des priphriques d'E/S divers et varis, On peut ainsi intgrer autant de
priphriques que l'on veut, n'tant limit que par le nombre de broches et de cellules logiques
du circuit FPGA cibl.
Cest loutil SOPC-Builder qui permet de configurer et de gnrer la description matrielle
(en VHDL) du processeur et de ses priphriques. Il gnre galement le code (en assembleur
et en langage C) dun systme dexploitation minimal (chargeur, entres-sorties par liaison
srie) qui sera compil puis excut sur le processeur Nios II, vous pourrez visualiser les
diffrents composants du systme ainsi que leurs configuration (adresses de base, numro
dinterruption, etc.) comme indiqu dans figure III-13.

97

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-13 : La fentre principale de SOPC-Builder [11].


La deuxime tape de Lenvironnement que nous allons utiliser est bas sur Eclipse, il permet
de grer ldition, la compilation lexcution et le dbogage dune application NIOS-II crite
en langage C. Une vue de la fentre principale est donne figure III-14 [11].

Figure III-14 : Environnement Eclipse pour NIOS-II [11].

98

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.6.5. Conception modulaire de larchitecture de commande


La conception modulaire de larchitecture dalgorithme et assurer par le logiciel Quartus II et
le MAX+PLUS II ( pour Altera) ou le ISE (pour Xilinx) qui comprend une suite de fonctions
de conception au niveau systme, permettant daccder la large bibliothque dIP et un
moteur de placement-routage intgrant la technologie doptimisation de la synthse physique
et des solutions de vrification.

Figure III-15 : Icne du Navigateur de projet ISE et Quartus disponible sur le bureau [11,38].

Tableau III-1 : Flots de conception des fabricants de FPGA [20].

99

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

De manire gnrale, un flot de conception ayant pour but la configuration de composants


programmables se droulent de la manire suivante:

Figure III-16 : Droulement de la configuration de composants FPGA [55].

Quartus II
Quartus est un logiciel dvelopp par la socit Altera, permettant la gestion complte
d'un flot de conception CPLD ou FPGA. Ce logiciel permet de faire une saisie
graphique ou une description HDL (VHDL ou verilog) d'architecture numrique, d'en
raliser une simulation, une synthse et une implmentation sur cible reprogrammable
(la mme fonction pour ISE de Xilinx) [12].
Altera propose deux versions de Quartus II :
1. Quartus II (version complte).
2. Quartus II (Web Edition) cest une version gratuit qui ne contiens pas tout les
fonctions ncessaire pour le dveloppement du la puce FPGA.

100

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-17 : Interface graphique Quartus II [55].

Quartus II est un logiciel de conception fourni par le constructeur de FPGA, Altera.


Cest un environnement de programmation qui gre compltement le processus de
conception dun circuit programmable. La Figure 19 prsente les tapes de
dveloppement qui seront dcrites au fur et mesure de limplmentation des
algorithmes [4].

101

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-18: Processus de conception dun circuit FPGA [12].

Le Quartus est un logiciel qui travaille sous forme de projets c'est dire qu'il gre un design
sous forme d'entits hirarchiques. Un projet est l'ensemble des fichiers d'un design que ce
soit des saisies graphiques, des fichiers VHDL ou bien encore des configurations de
composants (affectation de pins par exemple) [12].

102

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

La programmation dun circuit se dcompose en 4 phases :


1. Saisie de la description du circuit. Pour cela 3 outils sont utilisables :

description sous la forme dun schma lectronique,

description textuelle en utilisant un langage de programmation (VHDL ou


AHDL),

description sous la forme de chronogramme.

2. Vrification de la description par compilation du circuit.


3. Vrification du bon fonctionnement de la description par simulation logico-temporelle. A
ce stade, il peut-tre ncessaire de reprendre la 1re phase [12].
4. Programmation du circuit physique.

Figure III-19 : Organigramme de la conception.


103

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Pour le logiciel Quartus II, un projet consiste en un ensemble de fichiers de conception, de


fichiers dassignation, de fichiers de simulation, doptions de configuration et dinformations
sur le projet. Le module Cration dun Projet du didacticiel vous guidera travers les tapes
qui sont ncessaires la cration de votre projet.
Conception du projet

Dfinition du projet
Quartus II gre des projets, c'est dire des entits hirarchiques, pour lesquels il
effectue les oprations de CAO; pour illustrer cela, prenons notre module (nomm
LOUVIERS), on va d'abord dfinir une feuille le dcrivant et, pour cela, on va faire
appel des feuilles (de niveau hirarchique infrieur) dcrivant les sous-ensembles
(COMPTEUR4, GENE_3 et DECODEUR).
La hirarchie de notre projet est accessible par dans la fentre en haut gauche (il y a
3 onglets sur cette fentre), le rsultat est le suivant :

OU
Figure III-20 : Affichage de la hirarchie (suivant 2 onglets) [13].

La fentre de Quartus II est compose d'une barre de menus et de boutons (avec


icnes) permettant un accs rapide aux fonctions ; le plan de travail est dcoup en
plusieurs fentres, sur la gauche, on trouve la hirarchie du projet et l'tat
d'avancement des tches, la fentre de droite sert de fentre de travail ; cette dernire
dispose, sur sa gauche d'une colonne d'icnes 'contextuels".
104

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-21 : Fentre de Quartus II [13].

Saisie
Le logiciel permet plusieurs modes de saisie :
Schma : mode de saisie graphique par association de symboles fichiers associs :
*.GDF ou *.BDF.

Figure III-22 : Mode de saisie schmatique [8].

105

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Textuel : AHDL et VHDL fichiers associs : *.TDF et *.VHD [8,13].

Figure III-23 : Mode de saisie Textuel [8].


Langage VHDL
VHDL est labrviation de Very high speed integrated circuits Hardware Description
Langage . Lambition des concepteurs du langage est de fournir un outil de
description homogne des circuits, qui permette de crer des modles de simulation et
de compiler le silicium partir dun programme unique.
Initialement rserv au monde des circuits numriques, VHDL est en passe dtre
tendu aux circuits analogiques

Contrairement C ou PASCAL, VHDL est un

langage qui comprend le paralllisme , cest dire que des blocs dinstructions
peuvent tre excuts simultanment, par opposition squentiellement comme dans
un langage procdural traditionnel. Autant ce paralllisme est fondamental pour
comprendre le fonctionnement dun simulateur logique, et peut tre droutant pour un
programmeur habitu au droulement squentiel des instructions quil crit, autant il
est vident que le fonctionnement dun circuit ne dpend pas de lordre dans lequel ont
t tablies les connexions. Lutilisateur de VHDL gagnera beaucoup en ne se laissant
pas enfermer dans laspect langage de programmation, en se souvenant quil est en

106

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

train de crer un vrai circuit. Les parties squentielles du langage, car il y en a,


doivent, dans ce contexte, tre comprises soit comme une facilit offerte dans
lcriture de certaines fonctions, soit comme le moyen de dcrire des oprateurs
fondamentalement squentiels : les oprateurs synchrones. .
Deux des intrts majeurs du langage sont :
1. Des niveaux de description trs divers: VHDL permet de reprsenter le
fonctionnement dune application tant du point de vue systme que du point de vue
circuit, en descendant jusquaux oprateurs les plus lmentaires. A chaque niveau, la
description peut tre structurelle (portrait des interconnexions entre des sousfonctions) ou comportementale (langage volu).
2. Son aspect non propritaire : le dveloppement des circuits logiques a conduit
chaque fabriquant dvelopper son propre langage de description. VHDL est en passe
de devenir le langage commun de nombreux systmes de CAO, indpendants ou lis
des producteurs de circuits, des (relativement) simples outils daide la
programmation des PALs aux ASICs, en passant par les FPGAs.
La description qui suit est loin dtre exhaustive, hritier dADA, VHDL est un gros
langage. Nous en prsentons un sous-ensemble qui, nous lesprons, doit permettre
un nophyte daborder ses premires ralisations avec un bagage minimum, limit
des constructions synthtisables, et, en principe, portables sur nimporte quel
compilateur [54].

La gestion des librairies


La conception des projets ncessite lutilisation des portes logiques ou des bascules D.
Ils sont disponibles dans diffrentes bibliothques, et doivent tre associs la librairie
propre au projet lorsquils sont utiliss. Voici les deux bibliothques de composants
utilises :
1. La librairie standard dAltra : Quartus propose les composants les plus basiques
comme les portes de la logique combinatoire (ET, NON, OU), mais galement les
bascules de base (D, T) de la logique squentielle.

107

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

2. La librairie spcifie par lutilisateur : Il serait fastidieux dutiliser les


composants de base en ltat. Et il serait surtout contraignant de devoir recrer
toujours les mmes blocs diagrammes. Les nombreuses structures cres lors de la
conception dun schma sont ensuite intgres dans cette bibliothque. Ainsi les
composants nouvellement cres sont directement disponibles pour les projets
suivants.
Il est important de spcifier que lutilisation de ces librairies est propre Quartus, il est
donc impossible lutiliser en dehors de cet environnement. Cest le grand inconvnient
de cette mthode de conceptions.
Pour un exemple, nous allons choisir le schma pour le projet, les megafonctions pour
le compteur, la description textuelle (AHDL) pour le dcodeur et la description
textuelle (VHDL) pour le gnrateur de phases.
La feuille de description du projet est alors la suivante :

Figure III-24 : Exemple dune feuille de description du projet (LOUVIERS.GDF) [4].

Une fois la saisie acheve, il va falloir compiler la conception [4].

108

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.6.6. Compilation
Le Compilateur de Quartus II est constitu dune srie de modules qui vrifient sil ny a pas
derreurs dans le fichier VHDL et gnrent les fichiers pour la simulation, lanalyse
temporelle et la programmation du composant.
1. Compilez le projet en choisissant la commande Start compilation ( ) du menu
Processing.

Figure III-25 : Dbut de processus de compilation [14].


2. Si vous recevez un message indiquant que la compilation est russie et quil ny a pas eu
derreurs, cliquez sur OK sinon corriger votre projet et recommencer une compilation.
Remarque :
Durant la compilation, la fentre Compilation Report apparat automatiquement. Le rapport
procure des informations dtailles sur la compilation. La section Summary permet par
exemple dobtenir de linformation sur :
Le statut final de la compilation
Les requis temporels
Le nom des entits compiles
Le nombre total de cellules logiques, broches, mmoires et de PLL utiliss

109

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-26 : le rapport affich a la fin de processus de compilation [14].


III.6.7. La simulation (La simulation avec Le simulateur Modelsim)
La simulation est ltape qui suit une compilation russie et doit normalement prcder la
programmation du circuit. Elle consiste fabriquer des vecteurs de test (les entres
appliquer au systme), puis lancer la simulation proprement dite. A la fin de celle-ci, le
simulateur affiche la rponse du circuit aux vecteurs de test sous la forme de chronogrammes.
Quartus II contient un simulateur intgr (Qsim tools), mais puisqu'il ne sera plus support
dans les versions futures du logiciel, il est prfrable d'utiliser Modelsim- Altera de Mentor
Graphics pour simuler un design.

110

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

Figure III-27 : Fentre QSim [14].


Modelsim est un logiciel indpendant quon peut aussi mettre en uvre partir de Quartus II.
Il est possible de lancer ce logiciel indpendamment ou non de Quartus II. Dans ce
laboratoire, nous l'utilisons conjointement avec Quartus II. De plus, il est possible de l'utiliser
avec ou sans banc de test (test bench). Toutefois, l'utilisation d'un banc de test facilite
grandement la simulation et c'est donc la mthode que nous prconisons [15,16].

Figure III-28 : Rsultat de la simulation sur le Modelsim [14].


111

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.6.8. Validation de larchitecture de lalgorithme (chip placement FPGA)


Une fois la gnration du systme effectue, vous allez implanter larchitecture sur le circuit.
Cette implantation (abusivement appele compilation ) se dcompose en plusieurs tapes :
1. La synthse logique, qui convertit la description VHDL de larchitecture en un
ensemble de blocs logiques lmentaires, qui correspondent la structure interne du
circuit.
2. Le placement/routage qui va placer ces blocs logiques sur le circuit spcifi, puis qui
les reliera entre eux au moyen du rseau dinterconnexion programmable du circuit.
3. La gnration du fichier de configuration (fichier au format .sof) qui produit un fichier
bitstream qui sera tlcharg dans le FPGA.

Figure III-29 : Les tapes de compilation [9].

112

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

La programmation du circuit se fait via le protocole JTAG (Joint Test Action Group). Pour
cela vrifier que les connections entre le PC et la carte via le module ByteBlaster sont
oprationnelles. Si tout est bon et que la carte Altera est sous tension, lancer le
programmateur. Si le PC ne dtecte pas la carte, une erreur doit apparatre du type Unable to
scan device Chain. Hardware is not connected. Vrifier dans la figure que le fichier .sof est
bien l et que la case Program/Configure est coche, puis cliquer sur Start.
Limplantation se lance par le bouton Start de la barre daction (en haut au milieu). Ici
encore cette tape est assez longue (entre 2 et 4 minutes) [12].

Figure III-30 : Fentre de fin programmation [12].


A ce stade, larchitecture est prte tre teste dans son environnement exprimental, La
dernire tape de validation consiste tester lalgorithme de contrle implant dans son
environnement exprimental et vrifier que les rsultats exprimentaux obtenus rpondent
aux performances souhaites lors de la phase de conception de larchitecture de contrle
[8,9 ,11].

113

CHAPITRE III

Mthodologie de dveloppement dun algorithme


de commande pour l'implantation sur puce FPGA

III.7. Conclusion
La mthodologie dveloppe dans cette travaille de recherche essaie de combler cette lacune :
comment raliser le pont entre d'une part l'algorithme et son architecture d'excution, et
d'autre part les composants hardware de la plateforme qui l'hberge. Le concept
mthodologique adopt est prsent suivi par la description des diffrents lments et outils
dvelopps pour sa mise en uvre (langage de programmation, outil assembleur, modles
virtuel et soft-core).
L'intrt de ce genre d'approche est notamment, comme il a dj t cite, de permettre aux
programmeurs

et

non-programmeurs de concevoir des applications de faon simple et

rapide.
Les mthodes slectionnes pour un projet ne sont pas toujours les bonnes. Il est important
dans ce cas de remettre en question ces choix et dvaluer limpact de la mise en uvre dune
nouvelle stratgie.

114

CHAPITRE IV

Ralisation dun algorithme de


commande pour moteur asynchrone
triphas

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

IV.1. Introduction
Ce chapitre a pour objectif de prsenter comment sont conus les circuits numriques
complexes actuels. Ces systmes peuvent tre de plus autonomes et communicants. Les
systmes embarqus font partie de cette dernire catgorie et lon peut sapercevoir au
quotidien que lon est littralement envahi par eux
De raliser un dispositif de commande numrique base dune puce d'FPGA pour un
onduleur triphas pdagogique pour prouv et pratiqu ce que nous avant tudient dans la
partie thorique, alors on a dbut dans cette partie par voire ce que nous avant comme
matrielle pdagogique, surtout les cartes FPGA dans le laboratoire de facult aprs on va
faire des petits essais sur la carte choisie puis faire tracer la structure gnrale de notre
programme et finalement la simulation de ce dernier.

IV.2.Choix de la carte cible


Pour pouvoir raliser un systme SoPC, on a bien sr besoin de matriels spcifiques... Altera
propose des cartes de dveloppement pour mettre en uvre notamment son offre de codesign.
Ces cartes intgrent toutes un circuit FPGA plus ou moins gros, associ des priphriques
externes (JTAG, SDRAM, interface Ethernet, port srie...). La carte choisie est une carte
moyenne gamme. Le choix sest naturellement port sur Altera qui possde un programme
universitaire pour lenseignement et la recherche. Le choix Xilinx est aussi possible. Cela
permet en fait dutiliser les produits des 2 principaux vendeurs de composants FPGApour
moteur asynchrone [27].

IV.3. Commande dun onduleur triphas


En lectronique de puissance, les onduleurs de puissance deviennent de plus en plus
incontournables. Ils sont prsents dans les domaines d'application les plus varis dont le plus
connu est sans doute celui de la variation de vitesse des machines courant alternatif. Leur
forte volution est appuye, d'une part, sur le dveloppement de composants semiconducteurs entirement commandables, puissantes, robustes et rapides, et autre part, sur
l'utilisation quasi-gnralise des techniques dites de modulation de largeur d'impulsion.
Il existe diffrentes stratgies de commande de modulation. Elles peuvent tres classes
comme suit:
116

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas


Commande en pleine onde.
Modulation de largeur d'impulsion (MU) ou PWM:
o PWM Sinusodale
o PWM Vectorielle ou SVPWM
Dans notre cas, dans ce chapitre, on s'intresse l'tude, la modlisation et la commande de
l'onduleur de tension triphas deux niveaux en utilisant la stratgie du commande vectoriel
(SVpwm).

Figure IV-1 : Les diffrentes stratgies de modulation pour la commande des moteurs [31].

On utilise le logiciel PSIM pour analyser le fonctionnement dun onduleur de tension


commande MLI (modulation de largeur dimpulsions). Le principe dune commande MLI est
tudi sur une structure simple (onduleur monophas 1/2 pont), puis sur un onduleur triphas.
On termine par la simulation de la structure de puissance complte dun variateur de vitesse
pour moteur asynchrone triphas (redresseur + onduleur) [31].

IV.4. PWM Sinusodale


IV.4.1. Etude d'un onduleur monophas 1/2 pont
Le principe dune commande MLI est tudie sur un bras d'onduleur (onduleur monophas
pont), avec une charge passive R, L srie. Cette structure de base permet de comprendre le
117

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas


fonctionnement d'un onduleur MLI et l'influence des grandeurs rglantes. Le schma de
simulation est donn ci-dessous :

Figure IV-2 : Le schma de simulation onduleur monophas pont sur PSIM [28].

Le circuit de puissance comprend :


- une source de tension continue point milieu : Vd1, Vd2.
- la cellule onduleur constitue par les interrupteurs K1 et K2, de type IGBT (insulated gate
bipolar transistor).
- la charge RL, connecte entre le point milieu de la cellule onduleur et celui de la source.
Le circuit de commande comprend :
- un gnrateur sinusodal fournissant le signal de modulation Vm, de frquence 50 Hz.
- un gnrateur triangulaire fournissant la porteuse Vp de frquence 2000 Hz.
- un comparateur qui gnre les signaux de commande de K1 et K2 partir de Vm et Vp.
Les commandes de K1 et K2 sont complmentaires [28].

118

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-3 : Graphes des signaux dentre /sortie comparateur


Vm : signal de modulation Vp : porteuse K1 : commande de K1[28].

IV.4.2. Etude d'un onduleur triphas


Un onduleur triphas est constitu de 3 cellules identiques celle tudie dans la partie 1, les
signaux de modulation gnrant la commande de chaque cellule tant dcals de 2/3. La
porteuse triangulaire est commune aux 3 cellules [28].

119

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

A
B
C

Figure IV-4 : Schma de simulation de l'onduleur triphas [28].

Figure IV-5 : Graphes dune tension entre phases Us et des courants de sortie [28].

120

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

IV.5. PWM Vectorielle ou SVPWM


Cest la mthode qu'on a choisie pour notre projet, le circuit modle d'un onduleur typique
PWM (MLI) triphas est montr sur la Figure IV-4, sont les six interrupteurs qui dterminent
la sortie. Ils sont contrls par les variables a, a'(baratte transistor A), b, b', c et c'. Lorsque un
transistor de la partie suprieure est commut sur ON, c'est-adire quand a, b ou c est 1, la
partie infrieure correspondante est commut sur OFF, autrement dit a', b' ou cest O [31].

Figure IV-6 : Les huit vecteurs tensions de l'onduleur (V 0 to V 7) [31].

121

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Vecteur
tension

Vecteur Switch

V0

V1

V2

V3

V4

V5

V6

V7

a)

b)
Figure IV-7 : a) Tableau switching vecteurs de tension. b) Plans vecteurs [31].

IV.6. Prsentation de la plate-forme de dveloppement (La carte choisie)

CARTE DE DEV DE0 FPGA CYCLONE III

Silicon Fabricant: Altera

Architecture du Coeur: FPGA

Sous-Architecture du coeur: Cyclone

Nombre de noyau de silicium: EP3C

Numro de famille Silicone: Cyclone III

Contenu du kit: Carte de dveloppement pour EPCS4, Cble USB, CD ROM, Capot
Plastique, Alimentation

Caractristiques: Connecteur Carte SD, FPGA 3C16, Transceiver RS-232


122

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas


Quand vous voudrez utiliser la carte, il faudra que vous vrifiiez si lalimentation est branche
et si la carte sallume en pesant le bouton de dmarrage. Lorsque la carte sallume, vous
verrez toutes les DEL clignoter et laffichage hexadcimal incrmenter de 0 jusqu F en
mme temps.
P0037 est une carte de dveloppement et d'enseignement DE0 disposant du FPGA Altera
Cyclone III 3C16, la carte est conue pour une utilisation ducative. Elle est adapte pour une
large gamme d'exercices sur la logique numrique et l'organisation PC, de la simple tache qui
illustre la conception fondamentale aux conceptions complexes. Pour fournir un maximum de
flexibilit pour l'utilisateur, toutes les connexions sont faites via le FPGA Cyclone III.
L'utilisateur peut configurer le FPGA pour complter n'importe quel systme. Livre avec une
configuration pr-charge pour dmontrer quelques caractristiques de la carte, ce qui permet
l'utilisateur de voir si la carte fonctionne. Le panneau de commande permet d'accder de
nombreux composants sur la carte partir d'un ordinateur hte. L'ordinateur communique
avec la carte via une connexion USB et peut tre utilis pour vrifier la fonctionnalit de
composants sur la carte ou comme outil de dbogage lors de dveloppement de code RTL
[29].

FPGA EP3C16F484C6 Cyclone III avec priphrique de configuration srie EPCS4 4Mo

USB Blaster (embarqu) pour programmation et contrle API utilisateur

Sortie Vido (VGA 4 bits CNA)

Port PS/2 souris ou clavier

Embases d'extension (2 embases 40 broches)

8Mo de SDRAM, 4Mo de flash

Emplacement pour carte mmoire SD

4 afficheurs 7 segments

123

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-8 : Carte de dveloppement et d'enseignement DE0 [29].

IV.7. Simulation
La simulation d'un circuit logique reproduit le comportement de ce dernier au sein d'un
environnement contrl, frquemment dnot banc d'essai. Typiquement, il est plus facile de
vrifier le fonctionnement d'un circuit dans un environnement contrl, et d'autre part, la
compilation requise pour raliser une simulation requiert typiquement moins de temps que
celle requise pour raliser un circuit physique.
Loutil ModelSim permet la simulation de circuits dcrits en langages VHDL/Verilog. Afin
de simuler un circuit dcrit schmatiquement, loutil Quartus II permet la conversion
automatique vers une description VHDL [30].

124

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

FPGA
Gnrateur
secteur

Ajustement
frquence

S1

CLK (50Mhz)

Clk

Q1

Marche/Arrt

Clr

Q2

Consigne

Clk

S2

Clr

S3

frquence
Gnrateur
vecteur
SVpwm

Switch

Clk

Sa

Sa

U+

Clr

Sb

Sb

U-

MA/AR

Sc

Sc

V+

Vers

S1

V-

Onduleur

S2

W+

S3

W-

D [015]

clr

Figure IV-9 : l'ensemble de la conception du notre projet SVPWM.

125

CHAPITRE IV Ralisation dun algorithme de commande


command pour moteur asynchrone triphas

Figure IV-10 : Programme crit en VHDL (Quartus II 11.1sp2 Web Edition (32-Bit)).
(32

Figure IV-11
11 : Rapport Compilation du programme VHDL.
VHDL
126

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-12 : Lensemble du projet SVPWM on schma block (.bdf).

Le projet ayant une description VHDL il est possible deffectuer une simulation fonctionnelle.
La simulation fonctionnelle (RTL) sera effectue par rapport au design du concepteur. La
simulation temporelle (GATE) sera effectu par rapport la compilation et loptimisation
des phases danalyse et de synthse.

127

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-13 : Schma RTL (Schma fonctionnel) de la SVPWM.

128

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-14 : la structure logique de block Switch.

129

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-15 : Schma GATE.


130

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

IV.8. Lancement de la simulation


Il est possible de lancer 3 diffrents types de simulations avec ModelSim-Altera depuis
Quartus II. Le premier type de simulation est dit de type RTL (ou fonctionnelle), tandis que
les deux autres sont des simulations au niveau des portes logiques. Il vous sera demand
d'identifier ce qui diffrencie ces types de simulations [30].
Le logiciel ModelSim-Altera sera lanc automatiquement, et les rsultats de simulation
(chronogrammes) devraient tre visibles dans la fentre sur fond noir, illustre la Figure IV16 et 17 .Pour ajuster la vue du chronogramme, cliquez dans l'espace noir et puis appuyez la
touche clavier "F".

CLK (50Mhz)

Arrt de la
commande

Ordre darrt

Les entres
Les sorties

Figure IV-16 : Les rsultats de la simulation sur Modelsim (ModelSim-Altera 10.0c ) du


gnrateur propos SVPWM.
131

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Temps de retard (d'attente)


Dead time

Figure IV-17 : Zoome pour la zone de Dead time (temps mort) et temps dattente entre
secteur.

132

CHAPITRE IV Ralisation dun algorithme de commande


command pour moteur asynchrone triphas

Figure IV-18 : Frquence de commande jusqu 4,27khz (234 us).

Figure IV-19
IV
: Mesure de la priode d'onde 0,02s (50Hz).
(50Hz)

133

CHAPITRE IV Ralisation dun algorithme de commande pour moteur asynchrone triphas

Figure IV-20 : Plan de cblage du FPGA.

IV.9. Conclusion
Ce chapitre prsente la conception et la ralisation simple base de FPGA un algorithme de
commande type SVPWM, une approche de la diffrence, dans lequel le jugement de secteurs
et du calcul de la dure d'activation pour gnrer le SVPWM forme d'onde simple, et aussi
les pertes de commutation est nulle (pas des harmonies indsirable). Le rgime de SVPWM
propos a t conu et mis en uvre avec succs en utilisant carte DE0 Altera FPGA. Il est
simple et sans calculer les angles de chaque secteur afin de dterminer numro de secteur et la
structure de commutation et qu'elle a programm pour FPGA avec succs dans une frquence
porteuse variable jusqu' 4 kHz pour une priode onde de 50 Hz. En outre, ce rgime a
algorithme simple qu'elle peut tre mise en uvre facilement sans baser sur le FPGA mais
dune manire peu difficile.
Le circuit de commande performant bas autour dun FPGA contribue vhiculer une image
moderne et permet une liaison avec les enseignements dlectronique.

134

Conclusion Gnrale

Conclusion gnrale

Conclusion gnrale

L'objectif de ce travail a t de mettre en vidence dune mthode de dveloppement et


dimplantation dun algorithme de commande sur le puce FPGA. Les travaux de recherche
mens au cours de ce mmoire constituent lensemble des tapes indispensables pour
limplantation dun algorithme de commande sur circuit FPGA d'une manire gnrale est sur
la puce FPGA Altera en particulier.
Aprs avoir les gnralits sur les rseaux logiques programmables combinatoires (PAL,
PLA, PROM) et les rseaux logiques programmables squentiels (PLD, FPGA, ASIC) dans
le premier chapitre, une tude sur les circuits FPGAs a t prsente au deuxime chapitre tel
que la structure interne de puce, les principes fabricants et les diffrentes applications de ces
circuits.
Limplantation des algorithmes de contrle dans leur intgralit sur des cibles matrielles
telles que les FPGA est une dmarche qui ncessite une parfaite matrise des processus de
conception et un travail spcifique dadquation entre lalgorithme et larchitecture de
commande intgrer. Donc, un savoir-faire mthodologique est ncessaire aux concepteurs
utilisant les composants du type FPGA afin de satisfaire lensemble des contraintes inhrentes
de limplantation, tout en apportant une flexibilit de dveloppement suffisante. Afin de
rduire la complexit de l'utilisation des solutions FPGA, ce problme est surmont, au
troisime chapitre, un travail mthodique et moins intuitif a t utilise. travers lutilisation
de ce travail qui est bas sur une mthode de dveloppement approprie qui permet de
rpondre aux diffrentes contraintes de conception architecturales des algorithmes de
commande.
Plusieurs mthodologies de dveloppement pour la conception darchitectures matrielles.
Elles ont toutes t conues en ayant comme objectif le dveloppement darchitectures
gnriques et rutilisables afin de pouvoir les rutiliser dans diffrentes applications. La
notion de rutilisabilit est toujours de premire importance tant donn quelle permet de
crer une bibliothque de modules rutilisables appels aussi fonctions IP (Intellectuel
Property). La spcificit de la mthodologie de dveloppement utilise dans ce travail est
quelle est facile apprhender par lingnieur lectrotechnicien sans quil soit expert en
microlectronique. Les tapes de dveloppement de larchitecture implanter sont
principalement effectues via le logiciel Matlab-Simulink ainsi que les outils CAO des
solutions matrielles.
La mthode dont nous les mettons dans notre projet est une collection d'tapes en cascade,
chaque tape est une station, nous pouvons dbuter de toute tape veut et annuler les tapes
avant, cela dpend des donnes que nous avons, les exigences du projet et les objectifs que
nous voulons atteindre.

136

Conclusion gnrale
Le dernier chapitre et un projet bas sur une commande directe (boucle ouverte), une table de
commutation utilisant six vecteurs actifs de londuleur de tension a t synthtise au moyen
de la thorie du mode de commande SVPWM, ce dernier est caractris par une frquence de
commutation variable qui nous donne la possibilit de produit des formes d'onde sinusodale
presque parfaites (forme d'onde courant de sortie onduleur), son implantation sur cible FPGA
permis davoir un temps dexcution rduit a quelques microsecondes par rapport aux autres
solutions, cet avantage nous offre une grande bande de frquences de commutation quelle
que soit la complexit du programme avec des impulsions calculer pour respecter les
capacits des barrettes transistor donduleur (pas des harmonies indsirables), alors une trs
bonne stabilit aux systmes de commande .
Pour russie sur un projet de boucle de commande avec une FPGA il faut utiliser des cartes
qui sont ddis la commande des systmes lectrique pour assur un meilleur rsultat
puisque ces nouvelle cartes FPGA embarquent des parties analogiques, dans la plupart des cas
il sagit de convertisseurs analogiques numriques aux performances limites qui permettent
au composant dvaluer son environnement (temprature, pression etc) , ce qui permet de
connecter directement le FPGA un nombre plus important de sources. Il existe aujourdhui
des FPGA spcialiss sur l'acquisition et le traitement numrique du signal, pour lutilisation
de processeurs embarqus, pour les communications trs haut dbit (GigaBits Ethernet) etc
Les mthodes slectionnes pour un projet ne sont pas toujours les bonnes. Il est important
dans ce cas de remettre en question ces choix et dvaluer limpact de la mise en uvre dune
nouvelle stratgie.
Des volutions ont eu lieu dans le domaine des applications, parmi celles-ci il est noter
limportance croissante des FPGA dans le domaine de la scurit et de la cryptographie
applique. Cette volution a entrain dimportantes questions en ce qui concerne la scurit
des FPGA et de leur configuration, de nombreux travaux sont en cours dans ce domaine.

137

Bibliographie
[1].

Lenseignement des systmes numriques complexes _Patrice Kadionik, Patrice


Nouel,

Ahmed Ben Attitalah, Philippe Dondon _ ENSEIRB-IXL BP 99 33402

TALENCE Cedex kadionik@enseirb.fr.


[2].

La Magazine franaise Electronique N7 juillet_Aut2010.

[3].

NATIONAL INSTRUMENTS,NI-Tutoriel 8043-fr.pdf.

[4].

2011. TH16773.mariani.johanna.pdf.

[5].

Lilian Bossuet, 2010. Les FPGA. Technologie, architecture et utilisation.pdf.

[6].

uuu.enseirb.fr/~nouel/sopc/textes_apex/cournios.pdf.

[7].

Thse prsente par Mouna BAKLOUTI KAMMOUN Mthode de conception rapide


darchitecture massivement parallle sur puce, Ecole Nationale dIngnieurs de Sfax
& Universit Lille 1 Sciences et Technologies.pdf.

[8].

WWW.ALTERA.COM.

[9].

Commande numrique base de composants FPGA dune machine synchrone_Mohamed


Wissem NAOUAR L'UNIVERSITE DE CERGY PONTOISE.pdf.

[10].

WWW.MATHWORK.COM.

[11].

Utilisation du NIOS_ DIIC2-ARC_INSTITUT DE FORMATION Suprieur


dinformatique et de communication. PDF.

[12].

notice de prise en main de logiciel QuartusII.pdf.

[13].

Prsentation du logiciel Quartus II (Altera) ; Version 0.01; J. WEISS, octobre


2001.pdf.

[14].

Quartus II doc dutilisation VHDL.pdf.

[15].

Mini-laboratoire 1: Introduction a Quartus II et Modelsim-Altera _ c automne 2011


Sebastien Roy et Isabelle LaRoche.

[16].

Manuel d'utilisation Chane de synthse Quartus II Simulateur Modelsim _Kit CPLD


iMaxII /carte DE2.

[17].

Thse prsente par Fabio Dias Real de Oliveira_ Conception d'une mthodologie
d'implmentation d'applications de vision dans une plateforme htrogne de type
Smart Camera.
135

[18].

Les FPGAs_ Principes innovants et tendances_ Jean-Luc Danger.

[19].

http://www.ni.com/white-paper/8043/fr/.

[20].

Electronique magazine _ janvier 2004 N 143.

[21].

Logique programmable_ universit Montpellier II.

[22].

Institut Universitaire de Technologie de CRETEIL-VITRY Dpartement de Gnie


lectrique et Informatique Industrielle MC-ENSL1 - Composants programmables
complexes COURS / TP FPGA.

[23].

Thse_ Thoma_chapitre 2.pdf.

[24].

Mise en uvre du SoPC sur composants FPGA Altera et Xilinx_Patrice NOUEL Patrice
KADIONIK_www.enseirb-matmeca.fr/~kadionik.

[25].

Laboratoire 1 : utilisation du logiciel Quartus II daltera.pdf.

[26].

http://www.lembarque.com/le-marche-des-fpga-pourrait-croitre-de-8-5p-par-an-jusquen2019-pour-atteindre-les-9-md$_001151.

[27].

Lenseignement des systmes numriques complexes Patrice Kadionik, Patrice Nouel,


Ahmed Ben Attitalah, Philippe Dondon ENSEIRB-IXL BP 99 33402 TALENCE Cedex
kadionik@enseirb.fr.

[28].

PSIM / TP6 .Etude de la structure de puissance dun variateur pour moteur asynchrone

[29].

http://fr.farnell.com/terasic-technologies/p0037/carte-de-dev-de0-fpga-cyclone
iii/dp/2217597.

[30].

Laboratoire 1 : Utilisation du logiciel Quartus II d'Altera.pdf.

[31].

Prototypage rapide a base de fpga d'un algorithme de controle avanc pour le moteur a
induction par_boubacar housseini_l'universit du qubec trois-rivires.

[32].

Denis Rabast IUFM dAix-Marsielle _ stage de programmation des CPLD et FPGA en


VHDL sous Max+plus II mars 2002.

[33].

https://www.google.fr/search?newwindow=1&q=Mmoires+mortes+et+logique+program
mable.pdf&oq=Mmoires+mortes+et+logique+programmable.pdf.

[34].

Technologies de logique programmable_ http://jacques.weber.pagesperso

orange.fr

/telecharge /circ_prog.pdf.
[35].

http://fr.scribd.com/doc/192476088/Introduction-Circuits-Logiques-Programmablespresentation-2010.

[36].

http://lewebdephilou.free.fr/RESEAUX-TELECOM/Cours Telecom/Transmission
/Electronique-Numerique_EISTI_Guy-Almouzni.pdf.

[37].

http://stigen.branly.amiens.free.fr/fiches%20elec/Lescircuitslogiques programmables.pdf.

[38].

http://www.xilinx.com/.
136

[39].

Magazine electronique N 7 juillet_Aut2010.

[40].

http://dumas.ccsd.cnrs.fr/dumas-00574220/document.

[41].

http://perso.univ-st- etienne.fr

[42].

www.techniques-ingenieur.fr/.

[43].

http://www.ni.com/white-paper/8043/fr/.

[44].

http://sti.discip.ac-caen.fr/sites/sti.discip.ac-caen.fr/IMG/pdf/plds.pdf.

[45].

Magazine electronique N 4.

[46].

http://www.yannthoma.com/research/these/These_Thoma_chap2.pdf.

[47].

http://www.altera.com/devices/fpga/cyclone2/cy2-index.jsp.

[48].

http://www.xilinx.com/products/silicon-devices/fpga/spartan-6.html.

[49].

http://www.techniques-ingenieur.fr/base-documentaire/energies-th4/convertisseurs
electriques-et-applications-42253210/commande-numerique-a-base-de-composantsfpga-d-une-machine-synchrone-d2902/methodologie-de-developpement-d2902niv
10004.html.

[50].

http://www.schneider-electric.fr/documents/enseignement/intersection-guides/GT1998-la-commande-de-moteur-asynchrone.pdf.

[51].

Michel Bensoam_rgulation2000-2001.pdf.

[52].

http://biblioweb.u-cergy.fr/theses/07CERG0344.pdf.

[53].

http://depot-e.uqtr.ca/1885/1/030166253.pdf.

[54].

http://jacques.weber.pagespersoorange.fr/circuits_numeriques/6VHDL_rev_0703.pdf.

[55].

Cyclone II Device Handbook, Volume 1.pdf.

[56].

Introduction aux FPGA_Mickal Dardaillon_M2RTS.pdf.

[57].

Simulation sur Matlab/Simulink et implmentation sur DSP/FPGA de la commande


vectorielle de la machine synchrone aimants permanents (PMSM) aliment par un
onduleur de tension a Modulation vectorielle (SVM).pdf.

137

Vous aimerez peut-être aussi