Une chaîne d’outils logiciels complète pour le traitement du signal embarqué

Le 21/12/2010 à 18:20

La mise à jour 2010B de Matlab et Simulink de Mathworks fournit de nombreuses fonctions pour le traitement du signal.  Les concepteurs d’équipements communicants peuvent réutiliser leurs modèles tout au long du cycle de développement, depuis la simulation jusqu’à la génération de code, en passant par l’implémentation d’algorithmes sur FPGA.
Télécommunications, multimédia, Défense, contrôle industriel : dans tous les secteurs qui utilisent des systèmes embarqués, on assiste à une explosion du nombre d’équipements communicants. Tous ces appareils partagent globalement la même architecture : une antenne, des composants qui traitent des signaux analogiques et des processeurs qui réalisent des traitements numériques. Pour Ascension Vizinho-Coutry, responsable des ingénieurs d’application chez Mathworks, « chaque partie du système est développée par des équipes de spécialistes, mais celles-ci ont souvent du mal à communiquer car elles utilisent des outils et des langages très différents. Les spécifications doivent être traduites à chaque étape du cycle de développement, ce qui augmente forcément le risque d’erreurs ». C’est pour éviter cela que Mathworks lance plusieurs outils logiciels à destination des concepteurs d’équipements communicants. Passons en revue cette nouvelle chaîne d’outils.

Pour la simulation
Pour les développeurs d’algorithmes, la version 2010B de Matlab dispose d’une nouvelle fonction appelée System Object. Elle offre la possibilité de traiter des flots de données continus (audio, vidéo ou tout autre type de signal continu). « Une fonction très attendue par nos clients, car jusqu’à présent le traitement continu de données ne pouvait être fait que sous Simulink, explique Daniel Martins, ingénieur d’application de l’éditeur. Auparavant, sous Matlab, on divisait le flux de données en paquets que l’on traitait séparément, avant d’envoyer le résultat. Désormais, l’exécution des algorithmes est beaucoup plus rapide (on surcharge moins la mémoire RAM). Elle est aussi beaucoup plus représentative du traitement réel qui sera effectué au final par le processeur programmable (FPGA).»
Autre nouveauté côté Simulink, l’outil SimRF sera utilisé pour modéliser la partie radiofréquence (RF) d’un système. Il permet d’insérer dans les modèles des composants à entrées/sorties multiples (amplificateurs, mixeurs, etc.). Surtout, il prend en compte des notions propres au monde RF telles que la réflexion des signaux, le bruit, les signaux à plusieurs porteuses, etc. Et en travaillant sur l’enveloppe des signaux, il réduit les temps de calcul (d’ordinaire, la simulation de signaux de l’ordre du GigaHertz prend beaucoup de temps).

Pour la migration sur FPGA
Une fois les systèmes de traitement validés en simulation, il s’agit de les implémenter sur les composants FPGA. Pour ce faire, Mathworks lance la version 2.0 de son générateur de code VHDL, Simulink HDL Coder. Grâce à lui, les experts en traitement du signal peuvent générer un code VHDL directement fonctionnel, sans être forcément des experts dans le langage. Des routines d’optimisation ont été intégrées afin de déterminer les chemins critiques (pour réduire la vitesse d’horloge du FPGA) ou le nombre de ressources à prévoir dans le FPGA. « Ce code VHDL, dont la qualité est proche de celle d’un code écrit manuellement, pourra être directement importé dans les environnements de développement de Xilinx et d’Altera», commente Daniel Martins.

La génération de code C
Outre la partie traitement du signal effectuée par les FPGA, les équipements communicants comportent également des processeurs classiques pour effectuer tous les traitements numériques. Mathworks a donc mis à jour son générateur Real-Time Workshop Embedded Coder qui, jusqu’à présent, ne produisait que du code C générique. Désormais, il peut générer du code spécialisé pour un environnement de développement (en l’occurrence Eclipse), un processeur (ARM Cortex A8) et un système d’exploitation temps réel (Linux embarqué). «Nous avons choisi les plateformes les plus couramment utilisées par les développeurs d’équipements sans fil et de bancs de tests, assure Ascension Vizinho-Coutry. Si l’on parle de “code spécialisé”, c’est parce que sous Eclipse ce code pourra être importé de manière automatique ; sur les processeurs ARM il pourra faire appel aux instructions propres à la dernière génération Cortex A8, et sous Linux embarqué il pourra être directement encapsulé dans les tâches du système d’exploitation ».
La dernière nouveauté de la version 2010B est l’ajout d’un générateur de code SystemC. Le langage SystemC permet de concevoir des plateformes virtuelles pour le test d’intégration des System-On-Chip (SoC), couramment employés en électronique embarquée. L’outil EDA Simulator Link est compatible avec le standard TLM 2.0 (bien connu des électroniciens pour la validation des architectures des semiconducteurs). Au final, forts de cette nouvelle chaîne d’outils, les experts du traitement du signal profitent désormais de tous les avantages propres au Model-Based Design.
Frédéric Parisot

Copy link
Powered by Social Snap