Génération de circuits FPGA pour les systèmes critiques
Auteur / Autrice : | Inès Winandy |
Direction : | Pierre-Loïc Garoche, Arnaud Dion |
Type : | Projet de thèse |
Discipline(s) : | Informatique |
Date : | Inscription en doctorat le 01/10/2023 |
Etablissement(s) : | Toulouse, École nationale de l’aviation civile |
Ecole(s) doctorale(s) : | École doctorale Systèmes (Toulouse ; 1999-....) |
Partenaire(s) de recherche : | Laboratoire : ENAC-LAB - Laboratoire de Recherche ENAC |
Résumé
De la même manière qu'il est possible aujourd'hui de générer du code critique à partir de modèle data-flow synchrone Simulink, c'est à dire de compiler les modèles en code C ''embarquable'', d'autres chaînes de compilation proposent de produire du code dans des langages de descriptions matériel, les hardware description languages (HDL) comme VHDL ou Verilog, eg [1]. Ces outils restent souvent très liés au matériel cible comme, par exemple, les FPGA (Field Programmable Gate Array) de Xilinx. Ces plateformes FPGA sont de plus en plus matures mais également accessibles. Elles offrent une formidable opportunité pour redéployer le système dy- namiquement sur le circuit. De plus, leur architecture permet une programmation exploitant le parralélisme et offre ainsi des temps de latence très faible et des consommations énergétiques très basses. L'objectif de cette thèse est d'explorer les possibilités de génération de code HDL, ici VHDL à partir de description de modèles Simulink ou Lustre, tout en y intégrant: des problématiques de performance, de vérification et validation formelles pour des applications de contrôle numérique, essentiellement des fonctions de GNC (Guidance, Navigation and Control) comme des contrôleures linéaires ou des algorithmes plus complexes de type MPC (Model Predictive Control) La performance peut être soutenue de plusieurs façon. D'une part, il est possible d'utiliser les méthodes d'analyse statique et d'interprétation abstraite pour prévoir précisement les ranges de valeur des variables [2] et permettre une compilation extrêmement compacte vers des formats en virgule fixe, tout en minimisant le nombre de portes logiques utilisées dans le FPGA. Les méthodes de vérification formelle [3-8] peuvent également permettre l'optimisation du code HDL produit permettant ainsi des gains de performances significatifs, qui sont aujourd'hui essentiellement obtenu manuellement [9]. Enfin, le production de code HDL à partir de modèle dataflow synchrone peut exploiter plus finement l'ordre partiel des dépendences entre flux, là où les compilations vers des langages impératifs imposent la production d'un code séquentiel. Différents travaux cherchent également à munir les modèles HDL de spécifications (PSL, Prop- erty Specification Language) et d'algorithmes pour les valider. Un autre axe serait d'unifier les méthodes spécification formelle au niveau modèle et les méthodes de vérification au niveau du code impératif ou HDL. Enfin les algorithmes ou systèmes ciblés dans cette thèse sont les algorithmes de contrôle, des algorithmes classiques utilisant essentiellement des calculs simples d'algèbre linéaire, à des algo- rithmes plus sophistiqués [9] qui exécutent des routines d'optimisation convexe, de linéarisation et de discrétisation, en temps réel. Il s'agit donc de proposer des schémas de compilation efficaces pour ces familles d'algorithmes numériques de contrôle. L'objectif est de pouvoir développer une telle chaîne de compilation tout en allant jusqu'à la plateforme FPGA finale; par exemple contrôlant un robot.