FPGA
Programmation et mise en oeuvre d'électronique programmable
Toute la difficulté de l'apprentissage tient là. On n'écrit pas un programme, on décrit un matériel. VHDL et SystemVerilog ressemblent à des langages de programmation et n'en sont pas : une boucle n'y est pas une répétition dans le temps mais une réplication dans l'espace, et un signal n'est pas une variable. Les débutants qui abordent le VHDL comme du C produisent des circuits qui simulent correctement et ne tiennent pas en timing.
Quand un FPGA se justifie
Trois cas reviennent : le parallélisme réel, quand des dizaines de canaux doivent être traités simultanément ; la latence déterministe, quand une réponse doit tomber en quelques dizaines de nanosecondes, ce qu'aucune interruption logicielle ne garantit ; et les interfaces que le commerce ne propose pas, un protocole propriétaire ou un capteur au format inhabituel.
Hors de ces cas, un microcontrôleur reste plus simple, moins cher et plus rapide à mettre au point. Le FPGA se paie en temps de conception et en consommation.
Décrire, vérifier, intégrer
La conception se fait en VHDL ou en SystemVerilog. SystemC intervient plus haut, pour explorer une architecture avant de figer le RTL.
La vérification pèse souvent plus lourd que la conception elle-même. UVM est la méthodologie standard de l'industrie pour construire des bancs de test réutilisables : un circuit non vérifié n'est pas un circuit terminé.
Enfin la plupart des FPGA actuels embarquent un processeur, soit gravé dans le silicium comme le Cortex-A9 des Zynq et des Cyclone V, soit synthétisé dans la logique comme MicroBlaze, Nios, Mico32 ou un cœur RISC-V. Concevoir pour ces composants, c'est répartir une fonction entre le logiciel et le matériel, et faire dialoguer les deux.
Nos formations
Les bases du langage VHDL (V1) et VHDL avancé pour les FPGA (V2) forment le parcours principal, de la syntaxe à la méthodologie de conception. SystemVerilog (U1) et UVM (U2) couvrent le versant vérification, SystemC (V3) la modélisation de haut niveau, et FPGA Optimization (V4) le travail sur les performances et la surface.
Côté composants, les formations suivent les principaux fondeurs : AMD Zynq (HX5) et MicroBlaze (HX4), Cyclone V Cortex-A9 (ALT1) et Nios (ALT2), Lattice Mico32 (H1) et Diamond (H2), Microchip SmartFusion2 (MSP). Architecture RISC-V (RV1) traite le jeu d'instructions devenu incontournable pour les cœurs synthétisés.
Les travaux pratiques se font sur cartes réelles en présentiel, et à distance sur du matériel accessible à distance ou sur nos outils de simulation. Un problème de timing ne se comprend qu'en le voyant se produire.