Les FPGA PolarFire de Microchip se programment en C++ grâce à un outil de synthèse de haut niveau

Microchip Smart HLS

La nécessité de combiner performances et faible consommation d'énergie dans les applications de traitement de données en périphérie (edge computing) a stimulé la demande en systèmes fondés sur des FPGA, utilisés souvent comme accélérateurs de calcul. ...Reste que la très grande majorité des algorithmes de calcul (vision, contrôle industriel, etc.) sont développés nativement en C++ par des développeurs logiciels ayant peu ou pas du tout d’expérience dans les architectures matérielles de type FPGA qui ont leur propres langages de développement (Verilog, SystemVerilog, VHDL...).

C’est pour s'adresser à cette très importante communauté de développeurs, que Microchip propose un workflow de conception de haut niveau (HLS, High Level Synthesis), baptisé SmartHLS, pour ses familles de FPGA PolarFire de milieu de gamme. Objectif : améliorer la productivité et la facilité de conception en permettant aux algorithmes écrits en C++ d'être directement traduits en code RTL optimisé pour les circuits logiques programmables.

SmartHLS est destiné à enrichir la suite d'outils de conception Libero SoC de Microchip afin de rendre les plates-formes FPGA et SoC PolarFire accessibles à une communauté diversifiée de développeurs d'algorithmes, sans qu'ils aient à devenir des experts en matériel FPGA. Associé au kit de développement logiciel de réseau de neurones VectorBlox, cette technologie améliore, selon Microchip, la productivité des concepteurs d’applications de vision embarquée, d'apprentissage automatique, de commande moteur et d'automatisation industrielle en vue de concevoir des accélérateurs matériels sur FPGA.

Reposant sur l'environnement de développement open source Eclipse, la suite de conception SmartHLS utilise du code logiciel C++ pour générer un bloc d’IP écrit en HDL, prêt à être intégré dans les projets Libero. Ce qui permet aux ingénieurs de décrire le comportement du matériel à un niveau d'abstraction plus élevé que ce qui est possible avec les outils RTL FPGA traditionnels. Les temps de développement en sont réduits d’autant grâce à une interface de programmation d'application (API) multithread qui exécute les instructions matérielles simultanément et simplifie l'expression du parallélisme matériel, complexe à programmer.

Selon Microchip, l'outil SmartHLS nécessite jusqu'à 10 fois moins de lignes de code qu'une conception RTL équivalente, le code résultant étant plus facile à lire, à. comprendre, à tester, à déboguer et à vérifier. L'outil simplifie également l'exploration des compromis de conception d’une microarchitecture matérielle et permet aux implémentations logicielles C++ préexistantes d'être désormais mises en œuvre sur les FPGA PolarFire.

A noter enfin que les FPGA des familles SmartFusion2 et Igloo2 de la société sont également pris en charge par cet outil de programmation de haut niveau.

Pour rappel, les technologies de synthèse de haut niveau, dites HLS, sont apparues sur le marché à la fin des années 1990, popularisées notamment par l’outil Catapult lancé en 2004 par Mentor Graphics. Ces solutions captent en entrée du code C ou C++ non “timé” (sans signal d’horloge) et génèrent un code RTL (Register Transfer Level) optimisé pour une synthèse sur les structures matérielles d’un FPGA. Un des avantages de cette approche vient du fait que les modèles développés en C++ sont vérifiés beaucoup plus rapidement et avec des coûts bien moindres que du code RTL. A l’origine du produit SmartHLS avancé aujourd’hui par Microchip se trouve le rachat en 2020 par la firme canadienne LegUp Computing, un spécialiste de l'approche HLS.