2. FPGA, RECONFIGURATION DYNAMIQUE ET CONCEPTION DES
SYSTEMES EMBARQUES
2.0 Introduction
Une architecture reconfigurable est une architecture dont les
ressources (calcul, interconnexions, ...) peuvent être modifiées
pour s'adapter à un traitement. Les FPGAs sont la parfaite illustration
de la reconfigurabilite matérielle au niveau bit d'une architecture. Ces
dernières années sont apparus des FPGAs reconfigurables
dynamiquement et/ou autoreconfigurables. Aujourd'hui, la plupart des
architectures ont un certain degré de reconfigurabilité.
La reconfiguration dynamique implique que le FPGA peut
être partiellement reconfiguré sans perturber le fonctionnement
continu du reste du composant qui n'a pas été reconfiguré.
L'autoreconfiguration est une forme de reconfiguration dynamique. En effet,
elle suppose l'implémentation du contrôle de la reconfiguration
partielle du FPGA sur une partie de ses propres ressources. Ceci n'est possible
que si l'intégrité de la logique de contrôle
implémentée dans le FPGA est assurée durant la
reconfiguration.
Par ailleurs, la croissance continue de la densité
d'intégration des puces électroniques permet de concevoir
aujourd'hui des systèmes électroniques entiers sur une seule
puce. Cette avancée technologique profite au premier chef aux FPGAs qui
en outre ont des fréquences de fonctionnement de plus en plus
élévées, des consommations et des temps de reconfiguration
en baisse constante. Tous ces atouts font aujourd'hui des FPGAs de serieux
concurrents aux solutions « tout ASIC », avec la flexibilté en
plus.
On parle de plus en plus de conception à base de FPGAs,
d'où les acronymes SOPC (SystemOn-a-Programmable-Chip) et rSOC
(reconfigurable-SOC) ; ceci implique clairement que l'utilisation des FPGAs ne
se limite plus comme à ses débuts, au prototypage rapide des
circuits ASICs.
La Figure 1 montre les deux approches qui
prédomineront dans la conceptions des systèmes numériques
sur une seule puce. L'approche SOC (System-On-a-Chip) qui consiste
à intégrer sur une seule puce ASIC des composants
hétérogènes, et l'approche SOPC
(System-On-aProgrammable-Chip) qui consiste à implémenter
presque tout le système entier sur une seule puce programmable de type
FPGA. La première approche permet une plus grande diffusion, alors que
la seconde apporte beaucoup plus de souplesse. La tendance aujourd'hui est
davantage à la conception des circuits FPGAs intégrant des coeurs
de processeurs (hard ou
soft) et autres blocs ASICs dediés au traitement
numérique du signal (additionneurs, multiplieurs, Ram, etc...) et aux
communications (I/Os).
Il est a noter également que le flot de conception des
FPGAs s'est essentiellement appuyé sur celui largement eprouvé
des ASICs.
Figure 1 : Exemple de Systèmes Embarqués
[9]
Figure 2 : Evolution des systèmes électroniques
[17]
Dans ce chapitre, nous présenterons la notion
d'implémentation matérielle et/ou logicielle d'une application,
puis le composant FPGA en nous focalisant sur le Virtex-II Pro, ensuite
l'intérêt des architectures reconfigurables et les differents
scénarii de reconfiguration.
|