Avec le développement de l'industrie électronique, on constate un nombre croissant de projets avec des contraintes matérielles et temporelles de plus en plus élevées, ce qui conduit à l'utilisation de FPGA (Field Programmable Gate Arrays). Pour cela, le concepteur doit avoir une bonne connaissance de la programmation VHDL car cela nécessite beaucoup de formation et de pratique pour maîtriser ces architectures. Mais même pour les spécialistes, le processus de développement prend beaucoup de temps. Par conséquent, le développement d'un outil pour aider les utilisateurs non experts à travailler sur FPGA est nécessaire. Des outils tels que Simulink+HDL coder proposent une interface graphique pour créer un design en posant des blocs sur un tableau et en les connectant. Malheureusement, ce type d’outil souffre de deux défauts. Le premier est qu'il ne prend pas en compte les caractéristiques physiques de l'architecture cible. L'autre est qu'il ne vérifie pas si les flux de données entrant sont traités correctement par le design. Cela oblige le développeur à créer de nombreux tests, ce qui est fastidieux et consommateur en temps. Par conséquent, ce n’est pas une solution adaptée pour produire des applications dans un environnement en temps réel et des contraintes matérielles strictes.
Pour gérer la complexité et la taille croissante des designs, l’abstraction est devenue graduellement essentielle. Des modèles ont émergé afin de représenter un design comme un graphe d’acteurs (c.a.d. de blocs), avec une analyse statique de l’exécution du graphe. Néanmoins, ces modèles sont basés sur une description plus ou moins fidèle du comportement d’architecture réelles telles que les FPGAs.
Dans cette thèse, nous nous concentrons sur l'étude d’un nouveau modèle et d’un nouvel outil logiciel pour aider les utilisateurs non experts à concevoir automatiquement des implémentations correctes de FPGA. Les principales contributions sont résumées comme suit :
1. Les limitations des modèles SDF existants, en particulier ceux du modèle SDF-AP, sont décrites et illustrées par l'analyse d'exemples caractéristiques. Les deux problèmes les plus courants rencontrés dans les implémentations d'assemblages de blocs sont la production de résultats incorrects et la croissance infinie de la taille du tampon.
2. Nous proposons un nouveau modèle appelé « Actors with Stretchable Access Patterns » (ASAP) qui décrit le comportement matériel de façon moins limitée que les approches antérieures. Il s'agit d'une manière originale de résoudre le problème d'ordonnancement des acteurs, adaptée aux FPGAs. Il permet de déterminer l'exactitude mathématique d'une exécution sans lancer de simulations complexes. Il peut non seulement modéliser correctement les comportements des acteurs, mais aussi éviter les inconvénients mentionnés ci-dessus. Des algorithmes implémentant ces principes sont également fournis.
3. Nous avons étudié des stratégies et des algorithmes connexes pour analyser un graphe représentant un design. L’exactitude du traitement peut être analysée par une série d'algorithmes permettant par exemple la vérification de la vitesse des flux et la vérification de la compatibilité des patterns. Il est ainsi possible de calculer la vitesse de décimation ou la longueur de délais à appliquer sur les entrées lorsqu'une erreur de correction est détectée.
4. Un logiciel d’aide à la création de design est également développé. Il est appelé BlAsT (Block Assembly Tool) et vise à compenser les inconvénients des outils similaires tels que Simulink + HDL. Dans BlAsT, les algorithmes du modèle ASAP sont utilisés pour vérifier que pour un flux d'entrée donné, le système peut produire un résultat correct et finalement générer des codes VHDL directement utilisables sur une carte FPGA réelle. De plus, l'outil détermine automatiquement les décimations et les modifications requises. Ainsi, un utilisateur sans aucune compétence de programmation, est capable créer un design pour FPGA.