Les FPGA et la technologie SOPC sur XILINX FPGA

publicité
Cours FPGA
02/01/2014
L’architecture SOPC
Des FPGAs
PAGE
1
PETITPA
Cours FPGA
02/01/2014
Ce document aborde l’architecture moderne des FPGA et notamment la technologie SOPC (system on programmable chip). Cette
technologie SOPC permet d’associer des structures électroniques matérielles (IPCORE) avec des systèmes microprogrammés
logiciels (softcore ou hardcore) au sein d’un FPGA. On s’attardera plus particulièrement aux solutions apportées par XILINX grâce à
ces architectures que sont les FPGA de la famille VIRTEX, SPARTAN, ZYNQ.
Avant de détailler ces nouvelles architectures il convient de faire un comparatif entre ASIC et FPGA
1) La solution ASIC ou FPGA ?
Les anciennes architectures programmables offrent une flexibilité d’utilisation et de programmation élevée. Toutefois elles pâtissent
de leurs performances moyennes (consommation d’énergie élevée et/ou bien puissance de calcul relativement faible). Les
architectures matérielles dédiées implantés sous la forme de circuits ASIC offrent des performances optimales. Les circuits ASIC sont
des circuits intégrés non programmables conçus pour des besoins spécifiques. Toutefois elles sont peu flexibles, nécessitent de long
processus de développement et de mise en production.
L’avènement des architectures SOPC et les progrès technologiques sur les FPGA a permis de réduire l’écart de performance entre
ASIC et FPGA. Le graphe ci-dessous nous donne cette évolution des FPGA
SOPC
2) L'Evolution des FPGAs
En outre les FPGA ont connu dans cette dernière décennie au-delà du concept SOPC une évolution considérable sur plusieurs
niveaux.
Ces améliorations se traduisent sous forme d’une augmentation du nombre et de la taille des ressources logiques, l’apparition des
opérateurs arithmétiques complexes pour le traitement du signal, des modules de mémoire (RAM), des blocs matériels dédiés, des
éléments de gestion de l’horloge, des entrées/sorties configurables et même des structures microprogrammés. Prenons par exemple le
cas de la famille Virtex-5 de Xilinx, les circuits FPGA peuvent intégrer des blocs matériels dédiés au traitement du signal (DSP bloc ),
au stockage d’informations (block RAM ), aux communications à haut débit (PCI express ) ainsi que des coeurs de processeurs (PPC
power pc ).
Pour Le développement des systèmes numériques complexes certaines sociétés proposent sur le marché des modules connus sous le
nom de modules IP (Intellectual Property ou IP, fonctions mathématiques : DCT, FIR, interfaces bus : PCI, RapidIO, coupleurs divers
: UART, HDLC. . . ).
Toutefois ces approches sont souvent sous optimales à cause des problèmes d’interfaçage des IPs.
L’ensemble de ces ressources permet la conception de systèmes complexes.
PAGE
2
PETITPA
Cours FPGA
02/01/2014
3) Architecture moderne des FPGA: le concept SOPC
La tendance pour les circuits FPGA est la possibilité de réaliser des systèmes sur puce (ou SoC) en utilisant des " composants virtuels
" et de concevoir ainsi des blocs de propriété intellectuelle IP qui sont par exemple des fonctions VHDL/Verilog génériques
réutilisables. Un SoC (System On Chip) est composé de plusieurs modules fonctionnels intégrés dans un même circuit.
Un SOC peut être développé :
 sans utilisation de coeur de processeur,
 autour d’un coeur de processeur
 autour d’une architecture multicore .
L’approche SoC a été empruntée du développement de systèmes complexes sur technologie ASIC. Cependant, elle a été étendue pour
le développement sur cible FPGA. On parlera alors de SoPC (System On Programmable Chip).
Les systèmes de type SoPC peuvent intégrer un ou plusieurs processeurs softcore ou Hardcore avec ses périphériques au sein d’un
unique FPGA.
Le code exécutable correspondant à l’application logicielle déployée sur le ou les processeurs peut être soit mémorisé dans une
mémoire interne au FPGA, soit dans une mémoire externe. Le concept de conception conjointe Matériel/Logiciel propose d’associer
au sein d’un même système
 un ou plusieurs coeurs de processeurs embarqués (softcore) ou matériel avec
 des blocs matériels dédiés: blocs IP costumisable ou des blocs IP propriétaires.
Parmi les processeurs embarqués intégrables dans un système SoPC, on peut citer les solutions softcore MicrBlaze et nios
respectivement développées par Xilinx et Altera ainsi que d’autres processeurs performants (hardcore) issus du monde opensource :
processeurs Leon 2/3, plasma, ARM, Sun...
Les composants FPGA permettent d'implanter deux types de SoPC.
Le premier type de SoPC utilise uniquement des IP soft de processeur Softcore tels que le MicroBlaze et le NIOS.
Un processeur softcore est réalisé à partir de la logique programmable présente sur la puce. Le nombre de processeurs intégrés sur un
même composant dépend des ressources du composant utilisé en logique programmable.
Le deuxième type de FPGA en plus de la logique reconfigurable, implémente en dur un ou plusieurs coeurs de processeurs (PowerPC
pour Xilinx voir figure ci-dessous, ARM pour Altera). Ceci n'empêche en rien l'utilisation de processeurs Soft (netlist). Ces deux
types de SoPC utilisent les mêmes flots de conception.
FPGA XILINX ZINQ
Hardcore
PAGE
3
PETITPA
Cours FPGA
02/01/2014
4) Le Softcore XILINX MICROBLAZE
Le processeur MicroBlaze est paramétrable et permet l’activation sélective de fonctionnalités supplémentaires. Seule la version du
processeur MicroBlaze et les versions suivantes supportent toutes les options . L’architecture interne du MicroBlaze associé au bloc IP propriétaire est donné ci-dessous pour la famille de FPGA Spartan. La figure de droite fait apparaitre
l’architecture interne du softcore MICROBLAZE.
Ce processeur de type softcore a pour avantage de permettre aux concepteurs de systèmes complexes d’intégrer facilement de la
flexibilité dans leurs systèmes. Cette flexibilité est obtenue à l’aide des outils de programmation. Cependant, ce processeur flexible
possède une puissance de calcul assez faible.
Spécialement pour la conception des SoC, Xilinx a proposé le MicroBlaze, un processeur RISC "soft IP" à 3 étages avec une
architecture Harvard et avec 32 registres internes de 32 bits (Figure 1.9). Il dispose d’un bus d'instructions et de données internes et
externes ((ILMB, DLMB, IOPB et DOPB). Le Processeur MicroBlaze, tout comme le NIOS, est très facilement configurable
occupant selon le choix des options de 900 à 2600 éléments logiques et pouvant fonctionner sur une fourchette de fréquences à partir
de 80MHz (exemple : en utilisant une Virtex5-LX50, avec un pipeline à 5 niveaux et sans MMU, le MicroBlaze occupant 1027 LUTs
et fonctionne à 235 MHz).
Le processeur comporte 70 options de configuration permettant à l’utilisateur de sélectionner ou de paramétrer les composants
internes selon ses besoins. Parmi les options configurables, on peut citer :
Un pipeline à 3 ou 5 niveaux,
 Utilisation des multiplieurs câblés du FPGA,
 Opérateur de division,
 Opérateur de décalage (Barrel Shifter),
 FPU (Floating Point Unit),
 Mémoires cache instructions et données,
 Logique de débug (hardware breakpoints).
PAGE
4
PETITPA
Cours FPGA
02/01/2014
Le bus utilisé avec le MicroBlaze est le bus OPB (On-chip Peripheral Bus). C'est un bus IBM Core-Connect utilisé aussi avec les
processeurs PowerPC. Ce bus autorise un maximum de 16 maîtres et un nombre d'esclaves illimité. Il dispose d'une politique
d'arbitrage (Bus multi-maîtres) paramétrable. Dans un système sur puce programmable à base de processeur MicroBlaze, le bus OPB
est utilisé afin de connecter les périphériques dont les besoins en communication sont faibles. Autrement, Xilinx fournit le lien FSL
(Fast Simplex Link) permettant des accès rapides (2 fronts d'horloge) des périphériques vers le MicroBlaze et vice versa (8
connexions FSL par MicroBlaze).
Un autre type de bus LMB (Local Memory Bus) est utilisé pour accéder aux blocs RAM du FPGA. Dans le MicroBlaze, ce bus est
utilisé pour les instructions et les données et il assure des accès rapides à la mémoire (1 front d'horloge).
En plus, de nombreux périphériques sont fournis avec le MicroBlaze, afin de constituer un microcontrôleur complet et
personnalisable. Il y a, entre autres : contrôleur mémoire (SRAM, Flash), contrôleur mémoire SDRAM, UART lite, Timer/compteur
avec fonction PWM, interface SPI, contrôleur d'interruptions, GPIO (entrées-sorties génériques), convertisseurs A/N et N/A DeltaSigma, DMA, etc. Ces différents périphériques sont reliés par le bus
PLB.
5) Les bus sur le softcore Microblaze
Les blocs IP costumisables par l’utilisateur ainsi que ceux fournis par l’industriel sont habituellement attachés au bus PLB (Processor
Local Bus, développé by IBM).Ce bus est utilisé sur les plateformes powerpc de chez motorola. Les nouveux systèmes de FPGA sont
connectés en utilisant le bus AXIS4 (Advanced eXtensible Interface, développé par la société ARM Ltd.).
PAGE
5
PETITPA
Cours FPGA
02/01/2014
6) Le flot de conception XILINX
Chez Xilinx, tout le flot de conception est regroupé sous la forme d'un seul environnement dit Xilinx Platform Studio (XPS).
L’outil ISE
L’outil ISE (Integrated System Evironment) est un logiciel proposé par la société Xilinx. Il est utilisé pour la gestion d’un flot de
conception FPGA Ce logiciel permet de faire une saisie graphique ou une description VHDL/Verilog d’une architecture numérique,
d’en réaliser une simulation afin de valider son fonctionnement et finalement la synthèse et l’implantation sur un circuit FPGA.
L’outils EDK associé à XPS
L’outil Xilinx XPS (Xilinx Platform Studio) comprend une large bibliothèque de blocs IP que l’on pourra intégrer dans le système en
fonction de nos besoins. Ainsi, cet outil va nous permettre de construire un système SoPC à base d’un processeur embarqué (softcore
ou hardcore), de ses périphériques associés comme par exemple les contrôleurs de mémoire SRAM et de mémoire SDRAM,
contrôleur DMA (Direct Memory Access), etc.
On peut également intégrer autant de périphériques que l’on veut, n’étant limité que par le nombre de broches et de cellules logiques
du circuit FPGA. Le mapping mémoire et les interruptions utilisées et leur niveau du design sont fixés durant cette phase de
conception. On peut aussi ajouter au design des accélérateurs matériels spécifiques qui vont être ainsi ajoutés comme étant des blocs
IP externes. L’approche conjointe de codesign apparaît comme la possibilité de développer une partie de l’application avec un
langage de description matériel et une autre partie en logiciel à l’aide du langage C. La répartition entre le développement matériel et
le développement logiciel étant dépendant des choix du concepteur.
L’outil SDK
Dans l’objectif de tester l’environnement matériel par logiciel, Xilinx fournit l’outil SDK (Software Development Kit). Cet outil
permet aux développeurs de faire tourner des applications logicielles écrites en C en générant des exécutables au format ELF
(Executable and Linking Format) qui vont être chargés sur la carte par l’interface JTAG.
PAGE
6
PETITPA
Cours FPGA
02/01/2014
XPS
EDK
PAGE
7
PETITPA
Téléchargement
Study collections