Les FPGA dépassent désormais leur rôle d' "interfaçage d'appoint", qui leur permettait d’apporter une solution à ce que la logique des produits "sur étagère" ne parvenait pas à résoudre. Ils occupent en effet aujourd'hui le devant de la scène grâce à leur capacité à s'intégrer dans des systèmes sur puce entièrement personnalisés, conçus spécifiquement pour une application particulière.
Table des matières
Imaginez qu'un système monocarte puisse satisfaire les besoins de tous vos projets. Imaginez que vous puissiez configurer une carte électronique entière, ou plusieurs cartes d'une même plate-forme, pour répondre aux besoins de tous les éléments d'un système ou même, à tous les besoins d'un système entier. Imaginez que vous puissiez concevoir rapidement des composants matériels système tels que : microprocesseurs, périphériques, filtres, boucles de contrôle, (complétez avec la fonctionnalité souhaitée), ainsi qu'UART, SPI et contrôleurs I2C dans des proportions adéquates, afin de répondre exactement aux besoins de votre application.
Il y a dix ans, toutes ces possibilités auraient semblé fantaisistes, car alors la plupart des blocs logiques standards comme les contrôleurs Ethernet, CAN ou USB, ainsi que les contrôleurs de microprocesseurs et de mémoire, et enfin les UART, étaient encore considérés comme de simples puces "sur étagère" en logique fixe. Or, les FPGA atteignent aujourd'hui des tailles et des prix très compétitifs, à tel point que même un microprocesseur 32 bits ne représente plus qu'une petite partie du coût et de la taille d'un FPGA. Ils sont donc une solution plus viable que jamais pour tous les types d'applications possibles et imaginables, qu'il s'agisse d'intégrer des FPGA dans des matériels, de les utiliser pour tester des machines, ou encore d'employer du matériel à base de FPGA pour contrôler et fabriquer des produits.
Les FPGA sont omniprésents et, grâce à la disponibilité d'un nombre incalculable de blocs d'IP (propriété intellectuelle) ciblant les FPGA, proposés par des fabricants de FPGA, des fournisseurs tiers d'IP et les développeurs de FPGA, vous pouvez transformer une idée sur le papier en un matériel électronique bien plus rapidement que vous ne pouvez l'imaginer. Débarrassé de la nécessité de créer des blocs d'IP non spécifiques à l'application, le travail de création d'un système absolument unique et adapté à vos besoins particuliers s'assimile alors en grande partie au processus d'intégration et d'assemblage. Les fournisseurs de FPGA et les sociétés commercialisant des produits à base de FPGA sont même passés à l'étape supérieure en termes de productivité, introduisant de nouveaux niveaux d'abstraction avec des outils de conception plus performants qui intègrent des composants d'IP et des E/S sous la forme de diagrammes graphiques.
Les FPGA sont non seulement capables de prendre en charge plusieurs applications avec une seule et même carte, mais ils présentent en outre l'intérêt de pouvoir résoudre des problèmes de façon plus souple. Les précédentes solutions sur carte étaient généralement composées d'un microprocesseur fixe ou d'un ASSP (Application-Specific Standard Product) et d’une logique fixe associée, le tout dans une architecture rigide, ce qui limitait les possibilités d'atteindre de hautes performances. Une carte basée sur FPGA présente une architecture pouvant être personnalisée, pour des performances accrues. Les tâches peuvent y être réparties de façon optimale entre matériel et logiciel, et peuvent y être implémentées de manière parallèle en ajoutant des microprocesseurs softcore, en dupliquant les blocs de fonctions matérielles, ou en ajoutant des coprocesseurs directement au microprocesseurs eux-mêmes. L'association de la performance et de la souplesse profite à tous les types d'application quels qu'ils soient : que vous travailliez sur des systèmes embarqués, des équipements de test ou des systèmes de contrôle/commande, les FPGA font désormais partie intégrante de votre monde professionnel.
Les FPGA dans les systèmes embarqués
Il est évident que les FPGA sont aujourd'hui utilisés dans un large éventail d'applications. D'ailleurs, vous envisagez probablement d'intégrer un FPGA dans votre prochain système, pour profiter d’avantages tels que sa souplesse ou sa simplicité d'intégration. Or, à mesure que le catalogue d'IP disponibles continue de croître, les FPGA ressemblent de plus en plus à des systèmes sur puce. En effet, la plupart des systèmes sur puce intégrant désormais un microprocesseur, ce n'est pas une coïncidence si l'une des dernières nouveautés en matière d'IP sur FPGA est le microprocesseur 32 bits embarqué. La création de systèmes embarqués spécifiquement conçus pour une application, avec des FPGA comme technologie de base, gagne actuellement du terrain. Un rapport de la société américaine Gartner Inc. indique que, d'ici à 2010, plus de 40 % des FPGA intégreront un microprocesseur embarqué.
Du point de vue de la vitesse de traitement, avec plus de 200 MHz pour les implémentations sur processeur softcore et plus de 400 MHz pour les implémentations sur processeur hardcore, près de 80 % des applications embarquées nécessitant 32 bits peuvent bénéficier d'une solution FPGA. De plus, intégrer le microprocesseur au FPGA n'implique pas de devoir faire des compromis sur les performances. Par exemple, Xilinx propose un microprocesseur softcore 32 bits appelé MicroBlaze, avec taille d’instructions et de cache configurables, qui inclut une unité de gestion de mémoire (MMU, Memory Management Unit) optionnelle pour la protection des accès à la mémoire. Ce softcore peut être intégré à n'importe lequel des FPGA de Xilinx ; ce dernier commercialise par ailleurs un processeur hardcore PowerPC 32 bits pour sa gamme Virtex de plus haut niveau. Grâce à l'interface bus processeur local (PLB) avec standard ouvert intégré sur ces deux processeurs, ils peuvent bénéficier d’une logique d'accélération ainsi que la connexion à de nombreux périphériques (Voir Figure n°1).
Figure n°1. Intégrer un microprocesseur softcore ou hardcore sur le FPGA permet de pouvoir
connecter directement un grand nombre de périphériques et de fonctions sur une même carte.
Plusieurs raisons justifient l'intégration de fonctionnalités de traitement embarquées sur un FPGA, bien que certaines soient moins évidentes que d'autres. En premier lieu, il n'y a aucune implémentation d'architecture fixe et donc aucune obligation que les fonctions soient réalisées par matériel plutôt que par logiciel. Il existe donc un vaste choix de solutions envisageables pour chaque application, allant des plus générales aux plus spécifiques.
Pour ce qui est des solutions générales, le processeur et les périphériques associés peuvent être configurés sur un bus partagé, avec un seul processeur maître ayant accès à tous les processeurs esclaves. Cette approche est adaptée à la plupart des applications. Ses avantages sont la simplicité de l'architecture du système et la possibilité de répercuter les changements des besoins du système en modifiant tout simplement le code logiciel et en recompilant. Une telle approche présente néanmoins l'inconvénient de laisser au processeur la plus grande partie du travail, comme le transfert des données à travers le système et les calculs ; en outre, la bande passante du bus partagé est utilisée pour chaque échange de données. Cela peut entraîner une saturation très rapide du microprocesseur et du bus, d'autant plus que les besoins du système sont grands.
Pour ce qui est des solutions spécifiques, l'architecture du système peut être adaptée pour satisfaire les besoins spécifiques d'une application, ou peut être mise à l'échelle pour supporter davantage de voies ou un plus haut débit. Ces modifications sont appliquées au FPGA en ajoutant des fonctionnalités matérielles dédiées où nécessaire, sous la forme de bus d'interconnexion, de moteurs d'accès direct à la mémoire (DMA) ou de logiques d'accélération. En option, des blocs entiers de sous-système du microprocesseur peuvent être répliqués dans le FPGA. Quelle que soit l'approche, le résultat est le même : des performances accrues au niveau du système.
Par exemple, pour le traitement TCP/IP, il peut être avisé d'ajouter une fonctionnalité de déchargement assistée par matériel pour effectuer le checksum (somme de contrôle) plutôt que d'obliger le processeur à remplir cette fonction. De plus, l'intégration d'un DMA pour décharger le microprocesseur de ses tâches de transfert de données peut très fortement accroître les performances générales du système et réduire considérablement l'utilisation de la bande passante du processeur.
Certaines architectures adaptées requièrent une topologie différente. Par exemple, il peut être préférable de conserver les données dans un seul emplacement et de prévoir leur traitement in situ, plutôt que de les faire transiter à travers le système lors de chaque étape du traitement. Dans ce cas, un contrôleur de mémoire multiport pourrait convenir en tant que composant de mémoire standard.
De nombreuses applications requièrent un traitement haute précision des entrées et sorties de tensions et de courants sur une large gamme dynamique, à différents niveaux de spécification. Il est approprié d’effectuer ces calculs en virgule flottante ; cependant, allier précision et performance en utilisant l’émulation en virgule flottante n'est pas toujours possible. Il est donc avantageux de pouvoir accélérer à volonté ce type de calculs en utilisant un coprocesseur en virgule flottante, afin de trouver un compromis entre coût et performance. Un processeur softcore peut disposer d'une unité à virgule flottante (FPU, Floating-Point Unit) en couplage étroit avec le processeur, pouvant être intégrée avec une simple option de paramétrage. Une FPU double précision complète est disponible pour le PowerPC.
Une fois la conception adaptée de manière optimale à l’aide d’une carte basée sur du FPGA, il n'y a aucune raison qu'elle conserve la même carte éternellement. Pour de nombreuses applications, vous pouvez utiliser une plate-forme de prototypage plus générale pour les premières étapes de définition, avec l'intention de la remplacer un jour par une plate-forme moins onéreuse, plus performante ou d'un facteur de forme différent. L'un des avantages du cœur d'IP logiciel est la possibilité de changer la cible hôte matérielle, si besoin est. Étant donné que les fournisseurs de FPGA offrent une large gamme de matériels, différents en termes de densité, de performances et de coût, plusieurs options sont généralement proposées pour modifier la cible.
En réalité, la plupart des blocs d’IP proposés par les fournisseurs de FPGA eux-mêmes sont compatibles avec toutes leurs familles de matériels, ce qui élimine la majeure partie du travail de "reciblage". Par ailleurs, en tirant partie des normes ouvertes d’interconnexion pour l’IP spécifique à l'application, les développeurs peuvent améliorer la portabilité de leurs blocs personnalisés. De plus, à mesure que les fournisseurs lancent de nouveaux matériels, ils y ajoutent leurs IP, ce qui implique une approche à long terme et permet de réduire le cycle de conception ainsi que les problèmes d'obsolescence du matériel.
Les FPGA dans les applications de test
Bien que les avantages de l'emploi des FPGA pour la conception de systèmes embarqués semblent évidents, ceux de leur utilisation dans les applications de test peuvent apparaître moins clairement. Or, depuis les tests de validation de la conception jusqu'aux équipements de test automatisé, tous les systèmes de test peuvent profiter du contrôle bas niveau d'E/S et du parallélisme qu'offrent les FPGA.
Lorsque vous évaluez les performances et le fonctionnement d'un appareil sous test (DUT, Device Under Test), la précision du test dépend de celle de votre système de mesure. Or l'utilisation de puces FPGA en tant qu'interfaces primaires dote vos E/S d'une intelligence ultrarapide.
Il est ainsi possible de vérifier matériellement les caractéristiques uniques d'un appareil, et d'ajouter des fonctionnalités de test plus facilement grâce au parallélisme.
Le James Webb Space Telescope, actuellement développé par le Goddard Space Flight Center de la NASA, est un exemple édifiant d'une utilisation optimisée des performances du FPGA. Afin de masquer toute lumière indésirable émise par des systèmes solaires distants, les ingénieurs de la NASA perfectionnent un microsystème électromécanique (MEMS) comportant des milliers de micro-obturateurs positionnés de manière à former une matrice reconfigurable. Les obturateurs s'ouvrent et se ferment en synchronisation avec un champ magnétique traversant, et plus de 500 lignes numériques indexent les obturateurs individuellement sur la matrice.
Figure n°2. L'un des premiers prototypes de la matrice du MEMS, avec 16 x 8 micro-obturateurs représentés sur une photographie rétro-éclairée (les rectangles blancs représentent les obturateurs ouverts, les noirs sont fermés).Photographie publiée avec l'aimable autorisation du Goddard Space Flight Center de la NASA.
Chaque composant du James Webb Space Telescope doit avoir une durée de vie garantie pour les dix ans de la mission spatiale ; la NASA utilise donc du matériel basé sur FPGA pour tester la fiabilité de la puce du MEMS. Un ASIC (circuit intégré à application spécifique) personnalisé ne donnerait pas à la NASA la souplesse nécessaire pour que ses systèmes de test évoluent à mesure que s'améliore la conception. Une approche logicielle, par ailleurs, ne lui fournirait pas la synchronisation bas niveau ni la fiabilité voulues. La NASA a économisé des centaines d'heures de travail et des milliers de dollars en choisissant un matériel "sur étagère" à base de FPGA.
L'utilisation des FPGA dans les équipements de test présente un autre avantage non négligeable : la diversité des options offertes par la mise en œuvre d’interfaces de communication numériques. Vous pouvez programmer les protocoles numériques standards et personnalisés au niveau de la couche physique, avec un contrôle total du cadencement et de la synchronisation. Il existe d'innombrables IP disponibles, depuis les SPI de base jusqu'aux interfaces série haute vitesse PCI Express, dont la plupart ont un code source ouvert et sont donc libres d'utilisation. Lorsque le DUT utilise des bus numériques propriétaires ou confidentiels, les interfaces ASIC fixes ont des difficultés en matière de maintenance et de compatibilité ascendante. En revanche, vous pouvez mettre à jour les FPGA régulièrement sans opérer aucune modification matérielle physique.
Les FPGA dans les systèmes de contrôle
Les systèmes de contrôle permettent également d'illustrer à quel point les FPGA se sont affranchis de leur rôle originel de matériel d’"interfaçage d’appoint". Les systèmes de contrôle en boucle fermée varient d'un secteur d’activité à un autre, mais ils ont souvent en commun un facteur de performance déterminant : la vitesse de la boucle de contrôle. Au niveau le plus fondamental, la vitesse de boucle est le temps total nécessaire pour lire les entrées de capteurs, traiter l'algorithme de contrôle et transmettre les valeurs résultantes aux actionneurs. Une solution matérielle basée sur FPGA présente l'avantage exclusif d'offrir un véritable parallélisme matériel : des boucles de contrôle indépendantes peuvent s'exécuter à des vitesses différentes sans dépendre de ressources partagées qui pourraient ralentir leur temps de réponse (Voir Figure n°3). De multiples boucles de contrôle s'exécutant sur un système basé sur un processeur se retrouvent en concurrence pour la bande passante du processeur, et les différentes parties de l'application peuvent se priver mutuellement de ressources, entraînant une gigue (jitter) dans des tâches prioritaires.
Figure n°3. Plusieurs boucles de contrôle s'exécutent avec un véritable parallélisme matériel
sur les cartes d'E/S à base de FPGA.
La possibilité d'allouer une section particulière du circuit FPGA à une fonction de contrôle spécifique donne aux concepteurs de systèmes la garantie matérielle d'un fonctionnement fiable, sans risque d'indisponibilité des ressources. Tout comme pour les précédents exemples d'applications de conception et de test, les blocs d'IP disponibles pour le contrôle aident les concepteurs de systèmes à se lancer rapidement dans l'utilisation de matériel basé sur FPGA. Qu'il s'agisse de contrôle PID de base ou d'algorithmes avancés comme le contrôle MFA (Model-Free Adaptive), il existe des IP préconstruites afin de simplifier la conception de système FPGA. Vous pouvez ainsi avoir davantage de temps pour travailler sur d'autres aspects de la conception, comme le réglage des valeurs des coefficients mathématiques.
Les exigences des systèmes deviennent plus toujours complexes ; or les FPGA sont évolutifs et permettent d'ajouter des fonctionnalités sans impliquer de modifications pour le reste du système. Une application de contrôle industriel, par exemple, peut exiger l'ajout de capteurs pour surveiller la température du système et les vibrations mécaniques, dans le but de détecter les premiers signes d'une défaillance. Un système à base de FPGA permet d'ajouter cette fonctionnalité sans affecter le contrôle industriel, et même d'aider à l'intégration d'une séquence d'arrêt d'urgence pour ralentir la machine de manière fiable et en toute sécurité.
Avec le temps, certaines parties du système contrôlé sont susceptibles de se modifier, et le contrôleur doit être capable de s'adapter à ces changements. Une approche basée sur du FPGA permet une reconfiguration matérielle, afin d'évoluer avec les besoins de l'application. Grâce au matériel reprogrammable, vous pouvez recompiler le FPGA pour adapter votre système aux nouveaux algorithmes améliorés, aux différents types d'E/S et aux résolutions de bogues, le tout pouvant être réalisé sur le terrain. Éviter de reconcevoir entièrement le matériel permet de réduire les coûts fixes de long terme et les temps d'immobilisation du système.
Les FPGA sont désormais omniprésents et ils apparaissent progressivement dans tous les différents volets de la conception, du test et du contrôle/commande. Leur souplesse et leurs performances, associées au large éventail d'IP qu'ils offrent, permettent une vaste gamme de solutions pour un grand nombre de problèmes, avec une grande marge de liberté, le tout dans un seul et même matériel. Tandis que le choix des composants du système réduit habituellement les options en aval, le choix d'une solution à base de FPGA étend au contraire l'éventail des options qui vous seront offertes. Même avec le temps, ces options continuent d'exister : vous pourrez ainsi facilement mettre à jour le système pour qu'il s'adapte à chaque génération.
- Wayne Marx, Xilinx
- Vineet Aggarwal, National Instruments
Vineet Aggarwal est responsable des produits d'acquisition de données chez National Instruments, avec une spécialisation dans les matériels basés sur FPGA. Il est diplômé en ingénierie électrique à l'université de l'Ohio (The Ohio State University).
Pour en savoir plus sur la technologie FPGA, visionnez cette vidéo explicative.
Cet article a été publié dans le numéro d'avril 2008 du magazine RTC.
<a href="http://www.topradios.fr/" title="Votre radio préférée sur internet">Radios en direct</a>
Législation
Ce tutorial a été développé par National Instruments. Bien qu'un support technique puisse être fourni pour ce tutorial, il n'a pas été complètement testé ni vérifié, et NI ne garantit pas sa
qualité, ni qu'il continuera à être supporté pour les nouvelles versions des produits et drivers qui y sont rattachés. CE TUTORIAL EST FOURNI "EN L'ÉTAT" SANS GARANTIE D'AUCUNE SORTE, ET EST
SUJET À CERTAINES RESTRICTIONS COMME PLUS SPÉCIFIQUEMENT DÉTERMINÉES DANS LES CONDITIONS D'UTILISATION DE NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).

Fedora 12, qui porte le nom de Constantine, vient d’arriver dans sa première alpha. À
ce stade de développement, il vaut encore mieux attendre avant de tester le système à cause de l’instabilité du système, mais le nombre de nouveautés prévues et déjà en place est assez
intéressant.