Longtemps réservés aux experts en conception électronique, les composants programmables de type FPGA présentent une multitude d'avantages auxquels a accès un nombre croissant d'utilisateurs. Dans le cadre des applications de test, de mesure et de contrôle, ils peuvent effectuer du traitement embarqué “en ligne”, des routines de cadencement et de déclenchement spécifiques, de l'interfaçage aux protocoles numériques, du filtrage, du test RF ou encore du contrôle/commande ultrarapide. Ces composants électroniques présentent trois atouts de poids, notamment face aux circuits Asic et systèmes à base de processeurs: une très importante puissance de calcul (due à leur architecture parallèle), une souplesse extrême (due à une reconfigurabilité infinie) et une fiabilité à toute épreuve. Dans un même temps, les micro-processeurs fournissent idéalement les bases pour la structure des fichiers et la communication avec les périphériques, qui sont utilisés pour de nombreuses tâches, souvent essentielles, telles que l'enregistrement des données sur disque.
“ Nos solutions visent à faire profiter tous les ingénieurs des avantages du FPGA sans se soucier du code à déployer pour les applications de test, de mesure et de contrôle. ” Richard Keromen, ingénieur produits test et RF (National Instruments)
De ce fait, une architecture hybride (parfois appelée architecture hétérogène) a vu le jour au cours de la dernière décennie, sous la forme d'un microprocesseur associé à un FPGA, lui-même connecté ensuite aux entrées/sorties. Cette approche tire profit des avantages liés à ces deux cibles. Récemment des sociétés comme Xilinx, avec sa famille de cibles Zynq, ont adopté cette approche et mis sur le marché des solutions qui combinent le processeur et le FPGA sur le même circuit intégré.
richard keromen Ingénieur produits test et RF chez National Instruments
Ceci dit, le FPGA présente malheureusement deux défauts: il nécessite de savoir concevoir du matériel numérique, mais aussi de disposer de connaissance en langage de description de matériel (VHDL). Car même si des outils de plus haut niveau ont été développés pour aider les utilisateurs, les ingénieurs chargés de développer des systèmes de test, de mesure ou de contrôle sont rarement des experts en électronique numérique. Pour résoudre ce problème, notre approche consiste à donner aux ingénieurs l'accès au FPGA déjà installé sur des matériels électroniques “sur étagère”, développés pour répondre à la plupart de besoins en matière d'E/S. Chez National Instruments, les produits concernés, basés sur une architecture reconfigurable, combinent un processeur, un FPGA, des E/S modulaires, et côté logiciel, un outil de programmation graphique que nombre d'ingénieurs connaissent bien, puisqu'il s'agit de l'environnement de développement graphique NI Labview.
Programmer des FPGA via un langage graphique
L'utilisateur programme le FPGA dans le même langage graphique qu'il connaît, Labview, qui se charge de synthétiser le code embarqué et de le déployer sur du matériel FPGA. Une seule plateforme logicielle permet d'exploiter les FPGA, les processeurs ainsi que les E/S, ce qui accélère le développement des applications qui exploitent plusieurs de ces éléments.
Ainsi, tous les ingénieurs, qu'ils soient automaticiens, mécanicien, physiciens ou encore chimistes, peuvent profiter des avantages du FPGA: la personnalisation, la vitesse de traitement, le déterminisme, la fiabilité… auxquels viennent s'ajouter les avantages d'un déploiement plus rapide, et d'une plus grande facilité d'évolution par rapport à l'approche classique de la conception de cartes spécifiques.
L'utilisation des composants programmable detype FPGA rencontre un grand succès dans des domaines tels que la défense ou l'aérospatial. Ils sont flexibles, fiables et permettent de traiter des flux de données importants.Pourtant,malgré leur popularité, les FPGA restent complexes à concevoir et font appel à des talents bien particuliers de conception et de vérification. C'est là qu'entrent en jeu les solutions de génération automatique de code: au-delà des aspects modélisation et simulation qu'offrent les plateformes telles que Matlab et Simulink, les produits HDL Coder et HDL Verifier permettent de générer automatiquement du code HDL depuis les fonctions Matlab, les modèles Simulink et les machines d'états Stateflow. Le code généré est lisible, synthétisable et portable sur n'importe quelle cible FPGA. Puisque le code généré est correct par construction, les phases de vérification sont considérablement réduites. Au-delà de la génération de code, HDL Coder et HDL Verifier viennent aussi automatiser certaines étapes : passage à l'arithmétique virgule fixe, création et simulation de test benches, tests sur carte FPGA et optimisation des performances sont intégrés. On obtient rapidement un premier prototype, que l'on pourra valider dans son environnement modélisé dans Matlab ou Simulink (modules analogiques, RF,com-posants mécaniques, électriques…), avant de l'intégrer physiquement au reste du système. On gagne ainsi en confiance sur son système et on minimise les problèmes liés à l'interfaçage des composants.
Cynthia Cudicini Ingénieur d'applications chez Mathworks
“ L'utilisation des FPGA se démocratise. Notre objectif est donc de répondre aux besoins des experts comme des débutants. ” Cynthia Cudicini, ingénieur d'applications (Mathworks)
L'utilisation des FPGA se démocratise: dans des domaines tels que l'aérospatial, l'automobile ou le ferroviaire, où les ingénieurs doivent concevoir des systèmes fiables, de plus en plus complexes et en un minimum de temps, mais aussi dans des secteurs moins traditionnels comme la finance ou les neurosciences, avec des ingénieurs qui débutent souvent dans la programmation FPGA. Notre objectif est donc de répondre aux besoins des experts comme des débutants. On voit également apparaître de nouvelles plates-formes FPGA qui intègrent des cœursARM par exem-ple, et font appel à des notions de co-design. Nous suivons de près cette tendance pour offrir à l'utilisateur la possibilité d'exploiter ces nouvelles architectures en partitionnant facilement son design. ¦