Traduction automatique de code Matlab en HDL synthétisable
Le projet MATH2MAT avait pour finalité la traduction automatique de code source de type Matlab en une description HDL synthétisable afin d’accélérer le traitement. Il s’agit d'un outil logiciel capable, à partir de fonctions et d’expressions de type Matlab de générer des fichiers HDL, de même qu’un banc de test servant à valider automatiquement la description générée par le biais de l’outil.
Le code synthétisable généré par l’outil est du VHDL, tandis que les bancs de test seront produits en SystemVerilog. Ce nouveau langage est effectivement particulièrement adapté à la vérification de circuits. Il offre une palette de possibilités nettement plus vaste que celle proposée par VHDL. Il permet notamment une approche orientée objets, la génération de variables aléatoires, des fonctions de couverture ainsi que des assertions.
Le langage mathématique accepté par l’outil est constitué d'un sous-ensemble du langage Matlab. Il comprend les fonctions arithmétiques standard (+,-,*,/, puissance), les boucles for/while ainsi que les instructions de contrôle if/then/else. La structure du logiciel développé permet cependant d’ajouter aisément de nouvelles fonctions, afin de pouvoir l’étendre en fonction de besoins spécifiques à un domaine ou à un contexte d’application particulier. Le code synthétisable est généré sous une forme structurelle. Une librairie de composants constituée de blocs de base a été développée et offre des implémentations 32 ou 64 bits des opérations de base. Elle pourra évidemment être étendue, comme précédemment suggéré. Une part importante du projet a été dédiée à l’optimisation de la structure matérielle générée. Les notions de pipelining et de parallélisme y ont notamment été exploitées.
Dans la cadre de ce projet, le domaine d’application de MATH2MAT se situe dans le monde du calcul intensif, pour des applications nécessitant des calculs en virguel flottante. Toutefois, toute autre représentation doit pouvoir être envisagée par la suite, la partie d’optimisation structurelle étant indépendante de la représentation des nombres choisie.
Le projet Math2mat dispose à présent d'un site web: http://www.math2mat.ch
Vous trouverez toute la documentation sur ce site, ainsi que le logiciel à télécharger.