Débogage : n’attendez pas qu’il soit trop tard

Le 07/04/2022 à 10:49 par La rédaction

Bien que l’expression shift-left , ou « décalage vers l’amont », ait pris naissance dans l’industrie du logiciel, son importance se fait souvent sentir dans l’industrie des semi-conducteurs, où le coût des produits finaux (les puces électroniques) explosent. Cette envolée est due à une pénurie mondiale de puces, qui touche notamment l’industrie automobile. Fabriquer une puce fiable est un processus long et itératif qui peut nécessiter de nombreux cycles de modification de la conception.

Dans ce secteur, shift-left signifie détecter et corriger les bogues au début du cycle de développement plutôt que lors de la production, où ils sont jusqu’à 100 fois plus coûteux à éliminer. Appliquer ce décalage à la vérification peut permettre de réduire le nombre de cycles de modification, de rendre les produits plus fiables, d’accélérer la mise sur le marché et de réduire les coûts.

Le processus s’articule autour de deux axes : « trouver les bogues » et « corriger les bogues ». C’est au premier que les ingénieurs chargés de la vérification consacrent le plus de temps. La figure 1 présente des données récentes du Wilson Research Group qui indiquent comment les ingénieurs répartissent leur temps entre leurs différentes tâches. Le graphique montre qu’ils passent l’essentiel de leur temps à planifier des tests, développer des bancs d’essai, exécuter des simulations et déboguer.

Voici des données provenant de deux ensembles d’ingénieurs :

Figure 1 : Répartition du temps de travail des ingénieurs.

(Source : Wilson Research Group et Siemens EDA, étude 2020 consacrée à la vérification fonctionnelle)

À gauche, on peut voir que les ingénieurs ASIC et spécialisés dans la vérification consacrent environ 41 % de leur temps au débogage. À droite, on voit que pour les ingénieurs FPGA ce chiffre est de 46 %. Ces données montrent que le débogage est indispensable pour la réussite de tous les projets.

Il revêt une importance encore plus grande dans le domaine de la vérification des signaux mixtes. Les clients qui intègrent des blocs AMS dans leurs puces numériques disposent généralement d’équipes de conception analogique spécialisées qui créent des blocs de propriété intellectuelle (PI) analogiques ou utilisent des blocs de PI de tiers. Ces blocs analogiques sont conçus à l’aide de schémas et de SPICE et sont vérifiés comme des blocs autonomes à l’aide d’un banc d’essai local. Ces blocs analogiques bien définis sont ensuite livrés en vue de leur intégration au plus haut niveau dans un système.

Selon leurs besoins en matière de vérification, les intégrateurs de systèmes peuvent décider d’utiliser la PI analogique dans sa représentation à transistors pure ou d’utiliser une abstraction plus élevée du bloc. Cette abstraction peut prendre la forme d’un modèle Verilog ou C, moins précis mais rapide et facile à intégrer, ou d’une représentation en Verilog-AMS ou VHDL-AMS, plus précise mais plus difficile à intégrer dans le processus. Les modèles basés sur les nombres réels (RNM) sont en train de devenir le nouvel outil idéal pour la modélisation des blocs analogiques, car ils offrent un compromis équilibré entre performance et précision.

La modélisation RNM est la modélisation fonctionnelle en temps discret des circuits analogiques ou de leur comportement. Comme le montre la figure 2, un véritable signal analogique lisse peut être représenté de façon approximative par une réponse indicielle discrète. Le fait d’être dans le domaine temporel discret permet au modèle de rester dans le processus 100 % numérique, ce qui permet une simulation événementielle très rapide du modèle, potentiellement de 10 à 1 000 fois plus rapide que SPICE. Il n’y a pas de matrice à résoudre, alors que c’est généralement le cas avec la simulation analogique. Toutefois, la précision est limitée, car il s’agit uniquement d’une modélisation de l’analogique basée sur une fonction de transfert. En outre, la modélisation des blocs analogiques dans le domaine fréquentiel est beaucoup plus complexe.

Figure 2 : Modélisation basée sur les nombres réels (RNM).

 

Figure 3 : Fil logique contre fil physique.

Dans ce cas, pourquoi modéliser l’analogique à l’aide des nombres réels ? Pourquoi ne pas utiliser Verilog numérique ou RTL ( register transfer level ) ? Après tout, les SoC de haut niveau sont vérifiés de façon numérique. Les SoC comportent des blocs analogiques et numériques, et le principal défi consiste à modéliser l’échange d’informations entre ces deux domaines. Dans les abstractions Verilog/System Verilog, un fil est considéré comme une connexion logique et ne possède que trois états (0, 1 et X). Il ne peut pas capturer un comportement fonctionnel analogique, ce qui risque d’entraîner une perte d’informations et, au bout du compte, une défaillance fonctionnelle. C’est ce que montre la figure 3, où un fil logique ne peut pas capturer la valeur réelle lors du passage du bloc A au bloc B. Avec la modélisation basée sur les nombres réels, les fils physiques ( nettype wreal ou SV) peuvent transporter une valeur réelle qui permet de modéliser un comportement analogique correct (cas 2 de la figure 3).

L’avantage offert par les modèles RNM en matière de vitesse et de précision facilite le décalage vers l’amont : la vérification peut commencer plus tôt, avant même que les schémas soient terminés, et les modèles sont réutilisables. Le modèle RNM peut également permettre une vérification poussée des signaux mixtes, comme avec UPF et UVM. Enfin, comme nous sommes dans le domaine discret, un seul simulateur – un solveur numérique – est nécessaire.

Cependant, la modélisation RNM présente aussi quelques contraintes. Tout d’abord, les concepteurs doivent connaître le comportement fonctionnel correct de la conception analogique, et sa modélisation nécessite du temps et des compétences supplémentaires. Ensuite, il faut vérifier l’équivalence fonctionnelle du modèle et la précision de la simulation par rapport à la conception schématique.

Les méthodes RNM sont souvent très ad hoc . Mais une bonne méthode améliore la qualité et réduit le travail de débogage. Les trois tâches principales des méthodes RNM sont : construire/mettre à jour le modèle, vérifier le modèle et utiliser le modèle. L’ensemble de ce processus implique une rétro-annotation et une optimisation pour améliorer la qualité des modèles.

Figure 4 : La méthode RNM.

La qualité d’un modèle RNM dépend de sa capacité à refléter le véritable comportement du circuit SPICE. L’exactitude fonctionnelle des simulations schématiques et des simulations RNM doit être constamment comparée et vérifiée. N’oubliez pas qu’un mauvais modèle est pire que « pas de modèle du tout ». L’approche consiste à construire un banc d’essai commun pour le modèle et le schéma, à injecter le même stimulus dans les deux blocs, à exécuter des simulations, à vérifier les résultats et à modifier ou optimiser le modèle.

Figure 5 : RNM contre schématique – exactitude fonctionnelle.

Même si le processus de vérification RNM ou à signaux mixtes fait l’objet d’une attention méticuleuse, des bogues peuvent s’y glisser. Ils peuvent être dus à des erreurs de programmation, telles qu’une affectation illégale. Ce type de bogues est très courant car la méthodologie et les normes RNM continuent d’évoluer. La connexion de modules RNM nécessite une bonne compréhension de concepts complexes, tels que les interconnexions et les nettypes SV. Une mauvaise utilisation de ceux-ci peut entraîner une défaillance fonctionnelle. Les bogues peuvent également résulter d’une mauvaise vérification de l’équivalence du modèle avec son homologue SPICE ou, le plus souvent, d’un mauvais modèle d’utilisation.

Figure 6 : Bogues classiques de la méthode RNM.

Lorsqu’un mauvais modèle d’utilisation est employé, c’est le signe d’un problème de communication entre les parties prenantes. En général, le concepteur du bloc analogique partage les spécifications avec les experts en modélisation, qui créent et testent le modèle. Il se peut que ces experts utilisent un banc d’essai distinct et n’aient pas accès au banc d’essai de niveau supérieur. Des défaillances fonctionnelles sont alors possibles en raison d’une mauvaise communication entre les modélisateurs et l’intégrateur du système.

Par exemple, si l’ordre des ports d’un bloc est interverti, un bogue peut être introduit lors de l’intégration de ce bloc au niveau supérieur. L’expert en modélisation et l’intégrateur de système peuvent chacun avoir raison dans leur propre environnement d’essai, mais ce scénario introduit un bogue qui entraîne un échec fonctionnel.

Figure 7 : Bogues induits par la méthode – un «\~problème de communication\~».

Tous ces scénarios, ainsi que la complexité des problèmes qui se posent à l’interface entre les mondes analogique et numérique, rendent le débogage d’une simulation à signaux mixtes très lourd et fastidieux. Pendant des décennies, les ingénieurs en vérification se sont appuyés sur l’examen manuel des formes d’onde et du code source pour repérer un bogue lié aux signaux mixtes. Ce type d’approche peut avoir un impact considérable sur le cycle de vérification global et sur les calendriers de mise en production ( tapeout ), et donc retarder la mise sur le marché.

L’environnement de débogage Visualizer Debug de Siemens EDA automatise le débogage pour la conception et la vérification numériques des SoC et FPGA complexes actuels. En plus d’être très intuitif et facile à utiliser, Visualizer possède plusieurs fonctionnalités puissantes qui améliorent la productivité du débogage pour SystemVerilog/UVM, le niveau transactionnel, RTL, le niveau porte et les circuits à faible consommation. Et outre, il est désormais étroitement intégré à Questa ™ et à la plateforme à signaux mixtes Symphony pour fournir un ensemble complet de fonctionnalités de débogage RNM et de signaux mixtes, telles que des vues synchronisées, des formes d’onde unifiées et la connectivité des traces. Ces outils de débogage peuvent augmenter votre productivité de 50 % lors de l’établissement d’un processus de vérification RNM ou de signaux mixtes.

La modélisation basée sur les nombres réels contribue sans nul doute à la tendance au décalage vers l’amont dans le domaine de la vérification des signaux mixtes. Cependant, les équipes de vérification doivent disposer d’une méthode RNM fiable pour construire les modèles RNM, les vérifier par rapport à SPICE et les intégrer correctement dans le processus de vérification global. Le débogage joue certainement un rôle crucial dans le déploiement plus efficient de ce processus en production.

Soigner le débogage, c’est-à-dire élaborer très tôt une méthode de débogage fiable, peut réduire le nombre de cycles de débogage gaspillés et vous permettre de respecter les délais de mise en production et d’accélérer la mise sur le marché. Ce qui améliorera l’approvisionnement en puces et aidera l’industrie automobile mondiale, qui souffre de leur pénurie.

 

Sumit Vishwakarma est chef de produit pour la vérification AMS chez Siemens EDA et est responsable des produits de vérification des signaux mixtes. Il possède plus de 18 ans d’expérience dans les secteurs des semi-conducteurs et de l’EDA, où il a occupé des postes allant d’ingénieur de conception et d’application à chef de produit et spécialiste de la vérification. Plusieurs de ses articles ont été publiés dans IEEE, DesignCon, DVCon et DAC. Il a également rédigé de nombreux articles techniques et publications de blogue consacrés aux méthodes de vérification numérique et AMS. Sumit Vishwakarma est titulaire d’un MSEE de l’Arizona State University et d’un certificat en ingénierie et science de la gestion (MS&E) de l’université de Stanford. C’est aussi un artiste numérique prolifique, qui aime enseigner l’art aux jeunes.

POUR EN SAVOIR PLUS

Copy link
Powered by Social Snap