|
 |
 |


|
 |
 |
Les microcontrôleurs 32 bits sont sous le charme des coeurs Arm
Les multimètres de table
Autosar et UML
Le marché classé de l'électronique
|
 |
|
|





 |
|
Abréviations, expression inédite, évolution du vocabulaire, le lexique d'Electronique International vous explique l'électronique et son environnement !
|
 > tout le lexique |
|

|
|
 |

Les simulateurs pour circuits numériques
François Gauthier
[ DOSSIER ]
Les simulateurs pour circuits numériques
Elément incontournable d'un flot de conception, les simulateurs numériques sont devenus le coeur d'environnements complets de vérification. Ils sont désormais capables pour les plus puissants d'entre eux de gérer plusieurs langages
simultanément, de supporter les assertions ou de faire tourner de manière native un testbench.
François Gauthier
, Electronique Mensuel,
le 16/02/2006 à 07h00
Au même titre que la synthèse ou le placement-routage, la simulation est une des étapes clés d'un flot de conception. C'est à ce niveau que le design d'un circuit au niveau RTL est vérifié d'un point de vue fonctionnel, avant
synthèse. Cette opération, qui a toujours existé en conception électronique, est censée vérifier que les fonctions d'un circuit prévues dans les spécifications sont bien réalisées par la conception écrite dans un langage spécifique (VHDL, Verilog)
au niveau registres. Pour y parvenir, les ingénieurs de vérification écrivent des suites de stimulus, des scénarios de test, qu'ils appliquent au fichier de conception. L'objectif étant ensuite de comparer les réponses obtenues en sortie du
simulateur aux réponses attendues selon la fonction testée.
Cette méthode, toujours largement utilisée, est celle des tests dirigés. Depuis quelques années, ces tests de validation fonctionnelle d'un circuit sont tous écrits dans des langages standard, comme VHDL, Verilog, ou plus récemment
SystemVerilog, voire C/C++ pour des besoins liés à des constructions spécifiques ou pour des raisons de culture d'entreprise. Désormais, l'ensemble des simulateurs du marché supporte un ou plusieurs de ces langages. Ce qui les distingue entre eux,
c'est la capacité d'un petit nombre à simuler de manière native, en une seule fois, les conceptions hétérogènes qui intègrent plusieurs portions d'un circuit associées à des blocs IP écrits dans différents langages. Seuls les simulateurs d'Aldec,
Cadence, Mentor et Synopsys peuvent se targuer d'y parvenir.
Testbench et débogage intégrés indissociables du simulateur
L'hétérogénéité croissante des conceptions actuelles a comme corollaire une très forte augmentation de la complexité des tests à appliquer à ces circuits. En effet, si l'on veut être certain d'être exhaustif, les scénarios de test à
envisager explosent. Il n'est alors plus possible de les écrire
« à la main »
et il faut avoir recours à un outil d'automatisation du testbench. Il s'agit ici d'assister l'ingénieur de vérification dans
la création de tests capables d'explorer différents chemins de l'espace d'un design, décrit au niveau RTL. C'est entre autres dans ce domaine que l'offre en simulation s'est profondément transformée ces dernières années. Avec les générateurs
automatiques de testbench, il est possible de générer des tests aléatoires qui respectent un certain nombre de contraintes définies par l'utilisateur (on parle de
« constraint random test »
), l'objectif
étant d'être beaucoup plus exhaustif qu'avec des tests dirigés. Même si pour l'instant ces technologies associées au simulateur sont plutôt utilisées par les équipes qui conçoivent des circuits haut de gamme, la tendance est à la généralisation
progressive de ce type d'approche.
Parallèlement, l'utilisation des assertions, pour la validation des spécifications d'une conception de manière formelle, est de plus en plus fréquente. Là aussi, le simulateur doit évoluer, en supportant les différents langages
d'écriture des assertions (PSL, SystemVerilog, OVA) et en proposant aux ingénieurs des moyens d'interprétation des assertions mises en défaut : pourquoi l'assertion est-elle en défaut ? Où est la faute à l'origine du problème ? Enfin,
la combinaison de ces différentes technologies et langages impose aux simulateurs d'être livrés avec un environnement de débogage à la hauteur. En effet, rien ne sert d'utiliser un simulateur puissant en termes de vitesse de calcul, si les outils de
diagnostic des résultats sont inefficaces. D'autant plus que, pour les circuits les plus complexes, la taille des fichiers de test dépasse bien souvent la taille du design lui-même, et peut atteindre plusieurs dizaines de milliers de lignes de code.
A ce niveau, l'importance d'un environnement graphique capable de montrer les formes d'ondes des signaux et de naviguer efficacement entre les différentes représentations du code devient primordiale.
Parallèlement à l'environnement de débogage, les outils d'analyse de couverture de code sont au moins aussi importants pour les utilisateurs, puisqu'ils permettent de savoir si les tests réalisés ont bien porté sur la totalité du
code. Mieux, selon les fournisseurs d'environnements de simulation, la tendance est à l'emploi systématique de ce type d'outil, qui devient ainsi une des pièces maîtresses d'un simulateur. Bien que l'on puisse acquérir un outil d'analyse de
couverture de code chez une société tierce (celui de la société Trans-EDA étant le plus réputé sur le marché), les principaux fournisseurs de simulateurs suivent le mouvement et proposent de tels logiciels, plus ou moins sophistiqués, qui vont de la
simple analyse de ligne, de branche ou de signaux de commutation, jusqu'à la couverture fonctionnelle ou la couverture des assertions.
Trois grandes catégories de simulateurs
Cette richesse des solutions de simulation fait qu'aujourd'hui on peut distinguer trois groupes de sociétés impliquées dans ce domaine. Le premier est constitué des trois leaders de la CAO, qui proposent chacun une offre complète de
vérification basée sur leur moteur de simulation : Synopsys avec son simulateur VCS, Cadence dont le simulateur NC SIM est désormais intégré au sein de la plate-forme de vérification Incisive et enfin Mentor avec ModelSim.
De ces trois sociétés, Synopsys est actuellement celle qui fournit l'offre la plus intégrée et la plus cohérente, avec un test bench compilé de manière native au sein du noyau de simulation de VCS, apportant ainsi des performances
élevées.
Cadence de son côté, en rachetant Verisity, s'est hissé au niveau de son rival. En effet, pendant plusieurs années, la solution OpenVera de Synopsys et l'outil Specman Elite de Verisity ont été des concurrents directs. Néanmoins,
Cadence doit désormais faire face à deux défis : d'une part, intégrer la technologie de Verisity dans son environnement de simulation/vérification Incisive et, d'autre part, gérer le langage
« e »
en cours de normalisation auprès de l'IEEE et développé à l'origine par Verisity pour l'écriture des testbenchs.
Mentor de son côté, du fait de sa très forte implication sur le marché des FPGA et contrairement à Cadence et Synopsys, possède sans aucun doute le simulateur le plus utilisé dans le monde : qui n'a jamais entendu parler de
ModelSim ? En effet, la plupart des vendeurs majeurs de FPGA, Xilinx, Altera ou Actel, proposent une version OEM de ModelSim, fournie gratuitement avec le flot de conception des fondeurs. Bien que limitée en performances, cette version du
simulateur numérique de Mentor incite les concepteurs de FPGA à poursuivre leurs développements sur la même technologie, en faisant l'acquisition des versions plus musclées de ModelSim. D'où une base installée très conséquente. Pour les circuits
complexes, Mentor ne pouvait cependant laisser le champ libre à ses concurrents d'autant plus que, pour les FPGA de dernière génération, les problèmes de vérification et de simulation rencontrés par les ingénieurs sont très similaires à ceux du
monde de l'Asic. En introduisant en juin dernier son environnement QuestaSim, la société a rattrapé une partie de son retard en proposant là aussi une solution complète de vérification avancée, autour du langage SystemVerilog, avec un générateur
automatique de testbench. Le handicap de Mentor, pour l'instant, par rapport à Synopsys et Cadence, est que ce testbench développé au sein de QuestaSim ne peut tourner de manière native dans le noyau de simulation.
A ce groupe de trois sociétés en pointe, il faut ajouter Aldec qui, ces dernières années, se pose en compétiteur crédible des solutions de Mentor sur le marché des FPGA. La société offre en effet avec ses produits Active HDL et
Riviera des environnements de simulation multilangage très complets, capables de répondre à un très grand nombre de situations rencontrées par les concepteurs, pour des prix de licence très compétitifs.
Le deuxième groupe de sociétés est composé par les jeunes compagnies qui se lancent sur ce marché avec des technologies qu'elles estiment novatrices. C'est le cas par exemple du batave Adveda, qui propose avec son outil Univers RTSIM,
un simulateur
« basé cycles »
extrêmement rapide, capable de supporter des designs en VHDL et/ou Verilog et doté d'un environnement de débogage de haut niveau. On peut aussi citer la société américaine
Symphony EDA qui commercialise VHDL Simili, un simulateur VDHL en mode interprété, doté de capacités élevées d'analyse de couverture de code.
Le troisième groupe de simulateurs du marché est constitué des solutions qui sont fournies en Open Source, c'est-à-dire libres de droits d'exploitation. Dans ce domaine, contrairement aux logiciels de synthèse ou de placement-routage,
l'offre Open Source est loin d'être négligeable. D'ailleurs, certains d'entre eux, comme Icarus ou VeriWell (issu de la société WellSpring, versé depuis dans le domaine Open Source), sont très connus des développeurs. Certes, aucun de ces
simulateurs ne peut rivaliser avec les offres des grands éditeurs de CAO, en particulier au niveau des outils de génération de testbench, de débogage ou d'analyse de couverture de code. Néanmoins, ces solutions sont très utiles lorsqu'on travaille
sur des blocs homogènes, écrits dans un seul langage, et permettent de simuler efficacement certaines parties d'une conception sans bourse délier. Bien entendu, ces simulateurs ne sont jamais multilangages et l'on trouve plus fréquemment des
solutions pour les designs écrits en Verilog (langage dominant aux Etats-Unis) qu'en VHDL (plutôt dominant en Europe).
|
|
 |
|