Architectures Système sur FPGA Xilinx

publicité
Architectures Système sur FPGA
Xilinx
Frédéric LEGER
[email protected]
Sommaire
●
●
Présentation des composants logiques
programmable et leurs applications
Conception d'une architecture processeur sur
FPGA
●
Bases de l'accélération hardware d'un software
●
Architectures Linux sur FPGA Xilinx
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
2
Présentation des composants logiques
programmable et leurs applications
Les composants logiques programmables sont des
circuits composés de nombreuses cellules logiques
élémentaires librement assemblables. Celles-ci sont
connectées de manière définitive ou réversible par
programmation, afin de réaliser la ou les fonctions
numériques voulues.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
3
Présentation des composants logiques
programmable et leurs applications
Historique
1950 - 1er circuit reconfigurable
«the fuse configurable diode matrix» Harris Semiconductor
1968 - 1er PLA «Read Only Associative Memory», IBM
1983 - 1er GAL effaçable électriquement, Lattice
1984 - 1er FPGA par XILINX (600 portes logiques)
2002 - 1er FPGA intégrant 2 processeurs 32bits câblés, XILINX
2004 - les FPGA investissent l’A380, ACTEL
2006 - 300 millions de portes sur un FPGA, XILINX
2006 aussi.... un AMIGA sur un petit FPGA... le minimig.
2007 - la fréquence des FPGA monte à 600Mhz, ALTERA
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
4
Présentation des composants logiques
programmable et leurs applications
TOPOLOGIE DU FPGA :
Matrice de blocs logiques reliés par un réseau d’interconnexion
programmable complexe
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
5
Présentation des composants logiques
programmable et leurs applications
Chez XILINX le bloc logique unitaire est appelé CLB
(Configurable Logic Block )
Il peut contenir une ou plusieurs slices
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
6
Présentation des composants logiques
programmable et leurs applications
Composition d’une slice
06/11/09
Mémoire programmable de16bits
permettant d’émuler des fonctions
logiques combinatoires de 1 à 4
entrées
( tableau
Karnaugh
Frédéric
LEGER
Systèmes de
sur FPGA
Xilinx )
registre
7
Présentation des composants logiques
programmable et leurs applications
Une LUT peut être utilisée plusieurs façons
:
- Equation logique
- Registre a décalage
- Mémoire RAM
- Mémoire ROM
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
8
Présentation des composants logiques
programmable et leurs applications
Les FPGA : Un marché en pleine expansion
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
9
Présentation des composants logiques
programmable et leurs applications
Les FPGA : Un marché en pleine expansion
Trois lignes directrices de développement du marché:
- le SOPC (System On a Programmable Chip)
- le traitement numérique du signal (DSP)
- le prototypage de SOC (ASIC System On Chip)
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
10
Présentation des composants logiques
programmable et leurs applications
En 10ans, le prix d’une porte logique a été divisé par ~ 200.
Le prix d’une porte logique est divisé de 40% par an.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
11
Présentation des composants logiques
programmable et leurs applications
Amélioration du procédé de fabrication sur 10 ans
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
12
Présentation des composants logiques
programmable et leurs applications
Technologie:
250nm
180nm
90nm
65nm
40nm
Couches métalliques:
5
6
11
12
12
Intégration:
1
1,7
6
9,2
15
2004
2006-2007
Année:
2009
1998
1999
10 ans
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
13
Présentation des composants logiques
programmable et leurs applications
Les FPGA sont de plus en plus utilisés pour intégrer des
architectures numériques complexes.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
14
Présentation des composants logiques
programmable et leurs applications
Aujourd'hui un FPGA peut-etre :
FPGA + processeurs hard et/ou soft dédiés
+ IP complexes Hard + OS temps réel et Linux
PCIe
PCIe
soft
core
MAC
soft
core
Ethernet
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
MAC
Ethernet
15
Présentation des composants logiques
programmable et leurs applications
FPGA + processeur soft
Microprocesseur softcore
Microblaze TM
Bloc de mémoire RAM
Contrôleur Ethernet
Contrôleur d’interruption
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
16
Présentation des composants logiques
programmable et leurs applications
Un processeur sur FPGA, pourquoi faire ?
- Conccurencer un GPU ?
- Garantir un effet vidéo temps-réel ?
- Ajouter des interfaces ?
- Ajouter une fonction inédite ?
- pouvoir créer un coprocesseur ?
- réduire la taille d'un système existant ?
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
17
Présentation des composants logiques
programmable et leurs applications
Un nombre importants de périphériques sont ajourd'hui disponibles librement via
www.OpenCores.org
USB1.1 , I2C , SPI
Ethernet, AES128
UART.....
Certains peuvent avoir été
peu testés ....
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
18
Présentation des composants logiques
programmable et leurs applications
Quelques processeurs parmi les plus performants:
HARD
XILINX IBM PowerPC440, MMU, FPU, 32bits/64bits, 1GMIPS, LINUX.
XILINX IBM PowerPC405, MMU, FPU, 32bits/64bits, 400MIPS, LINUX.
SOFTCORE
XILINX MicroBlaze MMU, FPU, 32bits, de 50 à 300Mhz, LINUX.
ALTERA, NIOS II, 32bits/16bits,MMU, FPU, de 50 à 300Mhz LINUX
GAISLER Research, LEON3 SPARC V8, MMU,FPU, 50 à 200Mhz, LINUX, tolérant aux fautes.
ESA, LEON2 SPARC V8, MMU,FPU, 50 à 200Mhz, LINUX, tolérant aux fautes
OPENCORES, OpenRISC 1200, MMU,FPU, 5 à 100Mhz, LINUX
AEMB et OpenFire, clones libres du Microblaze sans MMU: UcLinux
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
19
Conception d'une architecture
processeur sur FPGA
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
20
Conception d'une architecture
processeur sur FPGA
BRAM
IP1
PowerPC
ou
Microblaze
IP2
PLB v4.6
IP3
06/11/09
Fortement enfoui
Analogie avec petit microcontroleur
ToutLEGER
est Systèmes
danssurleFPGA
FPGA.
Frédéric
Xilinx
21
Conception d'une architecture
processeur sur FPGA
BRAM
OCM
PowerPC
DDR SDRAM
IP1
IP2
MPMC
PLB v4.6
PLB v4.6
IP3
Faible performance
06/11/09
Ethernet
DMA
Video
Frédéric LEGER Systèmes sur FPGA Xilinx
22
Conception d'une architecture
processeur sur FPGA
Et avec un processeur Libre ?
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
23
Conception d'une architecture
processeur sur FPGA
Et avec un processeur Libre ?
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
24
Conception d'une architecture
processeur sur FPGA
Architecture ARMADEUS
Architecture Hybride SoC ARM + custom chip FPGA
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
25
Conception d'une architecture
processeur sur FPGA
Architecture ARMADEUS
+
Architecture Hybride SoC ARM + custom chip FPGA
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
26
Conception d'une architecture
processeur sur FPGA
On peut distinguer 3
étapes :
Flot matériel
Flot logiciel
system.bit
Bitinit +
data2MEM
executable.elf
download.bit
GPIO
MicroBlaze™/
PPC
Arbiter
UART
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
27
Conception d'une architecture
processeur sur FPGA
Par comparaison avec le monde du PC :
MicroBlaze <=> 486DX2, 486DX4 : 25
PowerPC405 <=> 586,Pentium 100 : 200 à 300
Pentium Core2Duo 1,8Ghz
: 3600
Linux ayant été écrit sur 386DX,
les processeurs embarqués
hard et soft conviennent
parfaitement pour le faire fonctionner.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
28
Conception d'une architecture
processeur sur FPGA
Les BogoMips sont une invention de Linus Torwald, le créateur
du système d'exploitation Linux.
le noyau Linux mesure lors du démarrage la vitesse
d'exécution d'une boucle d'instructions déterminée.
Bogo vient de l'américain bogus, qui signifie faux, bidon.
Une vitesse en BogoMips donne donc une indication de la
vitesse d'un microprocesseur, mais l'unité est définie trop peu
scientifiquement pour que l'on puisse l'appeler autrement qu'un
BogoMips.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
29
Conception d'une architecture
processeur sur FPGA
PROBLEMATIQUE DU
SYSTEME SUR FPGA
Cas d'un signal de reset
Commun pour tous les
périphériques du système
processeur
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
30
Conception d'une architecture
processeur sur FPGA
PROBLEMATIQUE DU
SYSTEME SUR FPGA
Cas d'un signal de reset
dupliqué pour tous les
périphériques du système
processeur
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
31
Conception d'une architecture
processeur sur FPGA
PROBLEMATIQUE DU SYSTEME SUR FPGA
L'utilisation d'un FPGA et du flot logiciel automatique
permet d'intégrer le plus souvent très rapidement un
système SOPC même très complexe.
Pour certains systèmes SOPC, le placement automatique
n'est pas le plus performant.
Il est alors nécessaire de placer à la main certains IP
critiques en timing.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
32
Conception d'une architecture
processeur sur FPGA
PROBLEMATIQUE DU SYSTEME SUR FPGA
A l'heure ou les FPGA intègre de plus en plus
fréquemment des SoPC, les techniques de
conception (topologie et placement) se rapprochent
de plus en plus de celles des SoC pour donner des
résultats performants.
Ici, une vue
du processeur Cell
d'IBM
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
33
Bases de l'accélération hardware d'un software
Un traitement
numérique
+
Une ligne a retard
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
34
Bases de l'accélération hardware d'un software
Exemple de conversion de pixel couleur en codage RGB
vers niveaux de gris.
Grayscale = 0,3008*R + 0,5898*G + 0,1094*B
Opération réalisée en 5 cycles d'horloge par un
coprocesseur arithmétique FPU, et en plus d'une
centaine si pas de FPU ............
Opération réalisée en 3 cycles d'horloge par un
coprocesseur Hardware ............
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
35
Bases de l'accélération hardware d'un software
Exemple de conversion de pixel couleur en codage RGB
vers niveaux de gris.
Grayscale = 0,3008*R + 0,5898*G + 0,1094*B
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
36
Bases de l'accélération hardware d'un software
Démo
Périphérique simple de type coprocesseur arithmétique ciblé
« racine carrée »
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
37
Architectures Linux sur FPGA Xilinx
Démo
Système Linux2.6.28 sur Virtex5FX30T PPC440.
Boot en NFS sur root file system déporté (PC)
Transfert de fichiers binaires
Gestion d'un affichage 16 bits RGB 565 type framebuffer VGA.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
38
Architectures Linux sur FPGA Xilinx
Démo
Système Linux2.6.28 sur Virtex5FX30T PPC440.
Boot en NFS sur root file system déporté (PC)
Transfert de fichiers binaires
Gestion d'un affichage 16 bits RGB 565 type framebuffer VGA.
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
39
Architectures Systèmes sur FPGA Xilinx
Pour en savoir plus....
Pour concevoir son premier
système ! ....
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
40
Architectures Systèmes sur FPGA Xilinx
ASSOCIATION
www.armadeus.org
www.armadeus.com
ARM9 + FPGA
IMX31 Spartan3A
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
-
41
Architectures Systèmes sur FPGA Xilinx
Pour en savoir plus :
openpattern.org
(Entreprise)
Projet de routeur sur base free-hardware, free-software
Processeur soft compatible Microblaze
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
42
Architectures Systèmes sur FPGA Xilinx
Pour en savoir plus :
Projet de générateur d'effets visuels temps réel
.www.milkymist.org
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
-
43
Architectures Systèmes sur FPGA Xilinx
Pour en savoir plus :
- site web opencores www.opencores.org
-site web milkymist www.milkymist.org
-site web openpattern openpattern.org
- site web ARMADEUS www.armadeus.org
(Association Francaise qui concoit des kits ARM9 + FPGA)
- le wikipedia du minimig : en.wikipedia.org/wiki/minimig
- site web de l'ESA http://www.esa.int/TEC/Microelectronics/SEMWSWLJC0F_0.html
- site web de digilent (cartes FPGA didactiques) www.digilentinc.com
- Site web XILINX www.xilinx.com
- Site web ALTERA www.altera.com
- Site web ACTEL www.actel.com
- site web de GAISLER RESEARCH http://www.gaisler.com/cms/
06/11/09
-
Frédéric LEGER Systèmes sur FPGA Xilinx
44
Architectures Systèmes sur FPGA Xilinx
Pour en savoir plus :
- site web opencores www.opencores.org
- site web ARMADEUS www.armadeus.org
(Association Francaise qui concoit des kits ARM9 + FPGA)
- site web de l'ESA http://www.esa.int/TEC/Microelectronics/SEMWSWLJC0F_0.html
- site web de digilent (cartes FPGA didactiques) www.digilentinc.com
- Site web XILINX www.xilinx.com
- Site web ALTERA www.altera.com
- Site web ACTEL www.actel.com
- site web de GAISLER RESEARCH http://www.gaisler.com/cms/
-
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
45
Architectures Systèmes sur FPGA Xilinx
Merci pour votre attention.
Avez vous des questions ?
06/11/09
Frédéric LEGER Systèmes sur FPGA Xilinx
46
Téléchargement