Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 2
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 3
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 4
Présentation des composants logiques programmable et leurs applications
Historique
1950 - 1er circuit reconfigurable «the fuse configurable diode matrix» Harris Semiconductor1968 - 1er PLA «Read Only Associative Memory», IBM1983 - 1er GAL effaçable électriquement, Lattice1984 - 1er FPGA par XILINX (600 portes logiques)2002 - 1er FPGA intégrant 2 processeurs 32bits câblés, XILINX2004 - les FPGA investissent l’A380, ACTEL2006 - 300 millions de portes sur un FPGA, XILINX2006 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 5
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 6
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 7
Présentation des composants logiques programmable et leurs applications
Composition d’une slice
registre
Mémoire programmable de16bits permettant d’émuler des fonctions logiques combinatoires de 1 à 4 entrées ( tableau de Karnaugh )
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 8
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 9
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 10
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 11
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 12
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 13
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
Année: 1998 1999 2004 2006-2007 2009
10 ans
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 14
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 15
PCIe PCIe
MAC
Ethernet
MAC
Ethernet
softcore
softcore
Aujourd'hui un FPGA peut-etre :
FPGA + processeurs hard et/ou soft dédiés
+ IP complexes Hard + OS temps réel et Linux
Présentation des composants logiques programmable et leurs applications
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 16
Présentation des composants logiques programmable et leurs applications
Contrôleur Ethernet
Bloc de mémoire RAM
Microprocesseur softcore
Microblaze TM
Contrôleur d’interruption
FPGA + processeur soft
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 17
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 18
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 19
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 20
Conception d'une architecture processeur sur FPGA
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 21
Conception d'une architecture processeur sur FPGA
PowerPCou
MicroblazePLB v4.6
BRAM
IP1 IP2
IP3
Fortement enfouiAnalogie avec petit microcontroleurTout est dans le FPGA.
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 22
Conception d'une architecture processeur sur FPGA
PowerPC MPMCPLB v4.6
PLB
v4.6
EthernetDMA
DDR SDRAMBRAM
OCM IP1 IP2
IP3
VideoFaible performance
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
Et avec un processeur Libre ?
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 25
Conception d'une architecture processeur sur FPGA
Architecture Hybride SoC ARM + custom chip FPGA
Architecture ARMADEUS
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 26
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 27
Conception d'une architecture processeur sur FPGA
Bitinit +data2MEM
download.bit
MicroBlaze™/PPC
UART
Arbiter
GPIO
Flot matériel Flot logiciel
system.bit executable.elf
On peut distinguer 3 étapes :
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 28
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 29
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 30
Conception d'une architecture processeur sur FPGA
PROBLEMATIQUE DU SYSTEME SUR FPGA
Cas d'un signal de resetCommun 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
Cas d'un signal de resetdupliqué pour tous les périphériques du système processeur
PROBLEMATIQUE DU SYSTEME SUR FPGA
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
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 33
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 vuedu processeur Cell d'IBM
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 34
Bases de l'accélération hardware d'un software
Un traitementnumérique
+Une ligne a retard
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
Opération réalisée en 3 cycles d'horloge par un coprocesseur Hardware ............
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 ............
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 36
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 37
Bases de l'accélération hardware d'un software
DémoPériphérique simple de type coprocesseur arithmétique ciblé
« racine carrée »
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 38
Architectures Linux sur FPGA Xilinx
DémoSystème Linux2.6.28 sur Virtex5FX30T PPC440.Boot en NFS sur root file system déporté (PC)Transfert de fichiers binairesGestion d'un affichage 16 bits RGB 565 type framebuffer VGA.
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 39
Architectures Linux sur FPGA Xilinx
DémoSystème Linux2.6.28 sur Virtex5FX30T PPC440.Boot en NFS sur root file system déporté (PC)Transfert de fichiers binairesGestion d'un affichage 16 bits RGB 565 type framebuffer VGA.
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 40
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 41
Architectures Systèmes sur FPGA Xilinx
ASSOCIATION
www.armadeus.org
www.armadeus.com
-
ARM9 + FPGAIMX31 Spartan3A
06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 42
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 43
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 44
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 45
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 46
Architectures Systèmes sur FPGA Xilinx
Merci pour votre attention.
Avez vous des questions ?