Microsemi-logo

Débogage FPGA en circuit Microsemi

Produit de débogage FPGA Microsemi-In-Circuit

Informations sur le produit

Caractéristiques

  • Type d'appareil : Microsemi SmartFusion2 SoC FPGA
  • Date de sortie : mai 2014
  • Capacités de débogage : débogage FPGA en circuit, analyseur logique intégré
  • Fréquence maximale de capture de données : jusqu'à 100 MHz

Abstrait
Les FPGA sont des éléments de conception puissants dans les systèmes embarqués avec de nombreux avantages de conception.tages, mais ces dispositifs peuvent présenter des conceptions complexes, avec des problèmes de conception complexes nécessitant un débogage. Identifier les problèmes de conception tels que les erreurs de définition, les problèmes d'interaction système et les erreurs de synchronisation système peut s'avérer complexe. L'intégration de fonctionnalités de débogage en circuit dans un FPGA peut considérablement améliorer le débogage matériel et éviter d'innombrables heures de frustration. Cet article décrit plusieurs approches de débogage en circuit pour les FPGA, identifie les compromis clés et, grâce à une analyse,ampLa conception, destinée à un dispositif FPGA Microsemi SmartFusion®2 SoC, montrera comment de nouvelles fonctionnalités peuvent être utilisées pour accélérer le débogage et les tests.

Introduction

Les FPGA sont des éléments de conception omniprésents et puissants, présents désormais dans la quasi-totalité des systèmes embarqués. Avec l'augmentation de leurs capacités, l'intégration de blocs fonctionnels complexes sur puce et d'interfaces série avancées, ces dispositifs peuvent également présenter des problèmes de conception complexes nécessitant un débogage. La détection de problèmes tels que les erreurs de définition fonctionnelle (au niveau du FPGA ou du système), les problèmes d'interaction système fonctionnelle, les problèmes de synchronisation système et les problèmes de fidélité du signal entre les circuits intégrés (bruit, diaphonie ou réflexions) devient beaucoup plus complexe avec l'utilisation de FPGA avancés. La simulation est certes d'une grande aide pour identifier de nombreux problèmes de conception, mais de nombreuses interactions réelles n'apparaissent qu'une fois la conception implémentée au niveau matériel. Plusieurs techniques de débogage de problèmes de conception complexes ont été développées pour simplifier le processus. Une compréhension approfondie de chacune de ces techniques clés, y compris leurs différents avantages, est essentielle.tages et désavantagetages, est utile pour déterminer quelle technique ou combinaison de techniques convient à une conception particulière.
Un exampLa conception FPGA, destinée à un dispositif FPGA Microsemi SmartFusion2 SoC, peut être utilisée pour démontrer certains des avantagestages et désavantagetagCes techniques standard, ainsi que les capacités de débogage en circuit les plus récentes, sont présentées ici à titre illustratif.ampnous montrerons comment ces différentes techniques peuvent être utilisées pour accélérer l'identification et l'élimination des problèmes matériels lors du débogage du matériel.

Pourquoi le débogage FPGA est-il un aspect critique de la conception et du développement du système ?
Les FPGA présentent deux principaux modèles d'utilisation qui les différencient des autres éléments de conception. Ils peuvent être utilisés en production ou comme support de développement pour valider ou prototyper un concept de production. Utilisés comme support de production, les FPGA offrent une plus grande flexibilité que les supports de production basés sur ASIC ou CPU. Ceci est particulièrement important pour une nouvelle conception, non encore implémentée matériellement. Des conceptions avec différentes options architecturales peuvent être facilement créées et testées afin d'identifier la conception optimale. Les FPGA avec processeurs intégrés (FPGA SoC) permettent également de concilier traitement basé sur CPU et fonctions d'accélération assistées par matériel. Ces avantagestagIls peuvent réduire considérablement le temps nécessaire à la conception, à la validation, aux tests et à l’analyse des défaillances pour le développement de nouveaux produits.
Lorsqu'il est utilisé pour le prototypage d'une conception, par exemple pour un ASIC de production, la flexibilité des FPGA est un avantage clé. Une plateforme matérielle réelle, même non fonctionnelle, facilite grandement l'obtention de mesures détaillées des performances système, de données d'analyse de débit et de résultats de validation de principe de l'architecture. La prise en charge par les FPGA des implémentations renforcées de bus standard (tels que PCIe®, Gigabit Ethernet, XAUI, USB, CAN, etc.) simplifie les tests associés à ces interfaces. Les nouvelles familles de FPGA avec processeurs ARM intégrés (FPGA SoC) facilitent le prototypage d'implémentations avec des processeurs embarqués. Le code processeur précédemment développé peut être porté vers le prototype et le nouveau code créé parallèlement à la conception matérielle.

Cette combinaison d'un processeur standard et de bus d'interface standard permet d'exploiter le vaste écosystème de bibliothèques de code, de pilotes, d'API fonctionnelles, de systèmes d'exploitation temps réel et même de systèmes d'exploitation complets disponibles pour créer beaucoup plus rapidement un prototype fonctionnel. De plus, une fois la conception finalisée, le prototype FPGA peut être utilisé pour capturer des jeux de tests de simulation complets (stimulus et réponses) reflétant les données réelles du système. Ces jeux de données peuvent s'avérer précieux pour créer les simulations finales d'un ASIC ou d'une autre implémentation de production. L'avantagetagL'utilisation d'un FPGA comme prototype de conception peut réduire considérablement le temps de conception, de validation, de test et d'analyse des défaillances pour la mise en œuvre du produit final.
Dans ces deux modèles d'utilisation courants du FPGA, la flexibilité du FPGA en tant que cible de conception est un avantage clé.tage. Cela signifie que de nombreuses modifications et itérations de conception seraient la norme, et donc la capacité à corriger rapidement les erreurs de conception serait essentielle pour permettre autant d'options de conception que possible. Sans une capacité de débogage efficace, une grande partie des avantagestagLa flexibilité de conception des FPGA sera réduite par le temps de débogage supplémentaire requis. Heureusement, les FPGA offrent également des fonctionnalités matérielles supplémentaires qui simplifient considérablement le débogage en temps réel. Avant d'aborder ces fonctionnalités, examinons les problèmes les plus courants rencontrés par les conceptions FPGA afin d'avoir les connaissances nécessaires pour évaluer l'efficacité et les compromis associés des différents outils de débogage.

Problèmes courants lors du débogage des conceptions FPGA

Outre les capacités étendues des FPGA modernes, la complexité accrue qui en découle complique la création de conceptions sans erreur. On estime d'ailleurs que le débogage peut occuper plus de 50 % du cycle de conception d'un système embarqué. Face à la pression des délais de mise sur le marché qui continue de comprimer le cycle de développement, le débogage matériel du système initial est relégué au second plan, présumant trop souvent que la vérification (elle-même un pourcentage important)tage du calendrier de développement) détectera tous les bugs avant la mise en service initiale du système. Examinons quelques types de problèmes système courants pour mieux comprendre les défis auxquels une conception typique sera confrontée lors de la mise en service initiale du système.

Les erreurs de définition fonctionnelle peuvent être doublement difficiles à détecter, car le concepteur a mal compris une exigence particulière, de sorte que l'erreur peut être négligée même en examinant attentivement les détails de la conception.ampUne erreur courante de définition fonctionnelle se produit lorsqu'une transition de machine à états ne se termine pas dans l'état correct. Des erreurs peuvent également apparaître dans les interfaces système, comme un problème d'interaction. La latence d'interface, par exemple,ample, peut être spécifié de manière incorrecte, ce qui entraîne un dépassement ou un sous-dépassement de tampon inattendu.
Les problèmes de synchronisation au niveau du système constituent une autre source fréquente d'erreurs de conception. Les événements asynchrones, en particulier, sont une source fréquente d'erreurs lorsque les effets de synchronisation ou de croisement de domaines temporels ne sont pas soigneusement pris en compte. En fonctionnement rapide, ces types d'erreurs peuvent être très problématiques et se produire très rarement, parfois uniquement lorsque des modèles de données spécifiques se manifestent. De nombreuses violations de synchronisation courantes entrent dans cette catégorie et sont généralement très difficiles, voire impossibles à simuler.

Les violations de synchronisation peuvent également résulter d'une faible fidélité du signal entre les circuits intégrés, notamment dans les systèmes comportant plusieurs rails d'alimentation pour chaque circuit. Une faible fidélité du signal peut entraîner du bruit, de la diaphonie, des réflexions, une charge excessive et des problèmes d'interférences électromagnétiques (EMI), souvent associés à des violations de synchronisation. Les problèmes d'alimentation, tels que les transitoires (notamment au démarrage ou à l'arrêt du système), les variations de charge et les fortes contraintes de dissipation de puissance, peuvent également entraîner des erreurs mystérieuses, souvent difficiles à relier à la source d'alimentation. Même avec une conception parfaitement correcte, des problèmes de fabrication de la carte peuvent entraîner des erreurs. Des soudures défectueuses et des connecteurs mal fixés, par exemple,ampLe problème peut être source d'erreurs et dépendre de la température ou de l'emplacement de la carte. L'utilisation de techniques de packaging FPGA avancées peut compliquer la détection des signaux sur le circuit imprimé, rendant ainsi l'accès au signal souhaité souvent problématique. Souvent, de nombreux problèmes de conception ne génèrent pas d'erreur immédiate et doivent se répercuter sur la conception jusqu'à ce que l'erreur se manifeste. Retracer l'origine de l'erreur initiale peut s'avérer une tâche frustrante, difficile et chronophage.

Par exempleampAinsi, un seul bit erroné dans une table de traduction peut n'entraîner une erreur que plusieurs cycles plus tard. Certains outils que nous aborderons plus loin dans cet article, utilisant du matériel de débogage intégré dédié, visent spécifiquement à accélérer et simplifier ces recherches de bugs. Avant d'entrer dans le détail de ces outils, examinons d'abord une simulation de technique de débogage logicielle courante afin de mieux comprendre leurs avantages.tages et désavantagetages d'utilisation de la simulation pour le débogage.

Utilisation de la simulation pour le débogage
Généralement, lors d'une simulation de conception, tous les composants réels, internes et externes à la conception, sont modélisés mathématiquement sous forme de processus logiciels exécutés séquentiellement sur un processeur standard. Appliquer une large gamme de stimuli à la conception et comparer les résultats attendus avec ceux des simulations permet de détecter facilement les erreurs de conception les plus évidentes. La figure 1 ci-dessous illustre une simulation typique. Les avantages évidentstagL'avantage de la simulation par rapport au débogage matériel réside dans le fait que la simulation peut être réalisée directement dans le logiciel ; aucune conception matérielle ni banc d'essai n'est nécessaire. La simulation permet de détecter rapidement de nombreuses erreurs de conception, notamment celles liées à des spécifications incorrectes, à une mauvaise compréhension des exigences d'interface, à des erreurs fonctionnelles et à de nombreux autres types d'erreurs « grossières » facilement détectables grâce à de simples vecteurs de stimulation.

Débogage FPGA en circuit microsemi-conducteur (1)

La simulation est particulièrement efficace lorsque le concepteur dispose de nombreuses combinaisons de stimuli et que les résultats obtenus sont bien connus. Dans ce cas, elle permet de réaliser des tests quasi exhaustifs d'une conception. Malheureusement, la plupart des conceptions ne disposent pas facilement de suites de tests complètes, et leur création peut être très chronophage. Créer une suite de tests couvrant 100 % de la conception est quasiment impossible pour les grandes conceptions basées sur FPGA ; des raccourcis doivent être utilisés pour tenter de couvrir les éléments clés de la conception. Une autre difficulté de la simulation réside dans son imprécision quant à sa mise en œuvre « réelle » et son incapacité à détecter les événements asynchrones, les interactions système rapides ou les violations de synchronisation. Enfin, le processus de simulation peut être très lent et, si de nombreuses itérations sont nécessaires, la simulation devient rapidement la partie la plus chronophage et souvent la plus coûteuse du processus de développement.

En guise d'alternative (ou, plus précisément, en complément de la simulation), les concepteurs de FPGA ont découvert qu'ils pouvaient intégrer du matériel de débogage à leur conception afin d'observer et de contrôler les signaux clés du dispositif. Ces techniques, initialement développées comme des approches ad hoc, ont progressivement évolué vers une stratégie de débogage matériel standard. L'utilisation de capacités de débogage intégrées offre des avantages considérables.tages pour les conceptions basées sur FPGA et la section suivante explorera les trois stratégies les plus courantes et leurs divers avantagestages et désavantagetaget.

Approches courantes de débogage en circuit pour les FPGA
Les techniques les plus courantes pour implémenter des capacités de débogage en circuit dans les FPGA utilisent soit un analyseur logique embarqué, un équipement de test externe, soit une sonde de signal dédiée intégrée à la structure FPGA. L'analyseur logique embarqué est généralement implémenté à l'aide de la structure FPGA et intégré à la conception. Le JTAG Le port permet d'accéder à l'analyseur et d'afficher les données capturées sur un PC. En cas d'utilisation d'un équipement de test externe, la conception FPGA testée est modifiée afin que les signaux FPGA internes sélectionnés soient acheminés vers les broches de sortie. Ces broches peuvent ensuite être observées via l'équipement de test externe. L'utilisation d'une sonde de signal dédiée permet de lire en temps réel une large gamme de signaux internes. Certaines implémentations de sondes permettent même d'écrire dans des registres ou des emplacements mémoire, améliorant ainsi les capacités de débogage. Examinons plus en détail les avantages.tages et désavantagetagde chacune de ces techniques, puis examinez un exempleampla conception pour voir comment ces différentes approches peuvent avoir un impact sur le temps de débogage global.

Analyseur logique intégré pour débogage FPGA en circuit
Le concept d'analyseur logique embarqué est issu directement des capacités de débogage en circuit ad hoc mises en œuvre par les concepteurs lors de l'utilisation des FPGA. Ces analyseurs ont apporté de nouvelles fonctionnalités et ont éliminé la nécessité pour le concepteur de développer son propre analyseur. La plupart des FPGA offrent ces fonctionnalités, et des tiers proposent des analyseurs standard (Identify®, de Synopsys, est un exemple populaire).ample) qui peut facilement s'interfacer avec des outils de niveau supérieur pour améliorer encore la productivité.

La fonctionnalité d'analyseur logique est intégrée à la conception, utilisant une matrice FPGA et des blocs mémoire embarqués comme tampons de traces, comme illustré à la figure 2. Des ressources de déclenchement sont également créées pour faciliter la sélection et la capture d'interactions de signaux complexes. L'accès à l'analyseur pour le contrôle et le transfert de données s'effectue généralement via le J standard.TAG pour simplifier les exigences d'interface. Les données capturées peuvent être affichées sur un PC à l'aide d'un port standard. viewlogiciel de simulation et reflète généralement une sortie de forme d'onde de simulateur logique viewstyle de jeu.

Débogage FPGA en circuit microsemi-conducteur (2)

L'avantagetagLes avantages de cette approche sont qu'aucune broche d'E/S FPGA supplémentaire n'est utilisée, juste le J standardTAG Signaux. Les cœurs IP des analyseurs logiques embarqués sont généralement relativement peu coûteux et peuvent, dans certains cas, constituer une alternative aux outils de synthèse ou de simulation FPGA existants. Dans certains cas, l'analyseur logique embarqué peut également fournir des sorties supplémentaires sur les E/S inutilisées, si cela est plus pratique. L'un des inconvénientstagL'un des inconvénients de cette approche est qu'elle requiert une quantité importante de ressources FPGA. En particulier, l'utilisation de tampons de trace réduira le nombre de mémoires de blocs disponibles. L'utilisation d'un tampon large constituera également un compromis en termes de profondeur mémoire (l'utilisation d'une mémoire plus large se traduisant par une profondeur mémoire plus faible), ce qui constitue un inconvénient majeur.tage lors de l'utilisation de dispositifs plus petits. Le principal inconvénient de cette technique est peut-être la nécessité de recompiler et de reprogrammer la conception à chaque ajustement du positionnement des sondes. Avec un dispositif de grande taille, ce processus peut être très long. En raison du positionnement des sondes de signal dans la conception, il peut être difficile de corréler les relations temporelles des signaux. De plus, les délais entre les sondes de signal ne sont pas cohérents, ce qui rend les relations temporelles difficiles à comparer. Ceci constitue une difficulté particulière lors de la comparaison de signaux asynchrones ou de signaux provenant de domaines temporels différents.

Débogage FPGA en circuit – Équipement de test externe
L'utilisation d'un code de débogage intégré, associé à un équipement de test externe, s'est imposée naturellement lorsqu'un analyseur logique externe était déjà disponible pour tester les systèmes. En créant un code de débogage simple pour identifier et sélectionner les signaux de test internes et les appliquer aux E/S du FPGA, comme illustré à la figure 3, il a été possible d'exploiter les fonctionnalités avancées de l'analyseur (telles que les tampons de traces volumineux, les séquences de déclenchement complexes et les multiples view(options de déclenchement) pour créer des environnements de débogage simples mais performants. Des fonctionnalités intégrées plus complexes pour des options de déclenchement avancées peuvent minimiser le nombre de sorties nécessaires. Par exempleample fait de sélectionner des adresses spécifiques sur un bus large peut être prohibitif si des broches externes sont nécessaires.
L'utilisation d'une logique FPGA interne réduit considérablement les besoins en E/S et permet même de rechercher des modèles d'adresses spécifiques (par exemple, une séquence d'appel et de retour) pour déboguer des problèmes plus complexes. La disponibilité d'une interface utilisateur commune simplifie l'apprentissage et améliore la productivité.

Débogage FPGA en circuit microsemi-conducteur (3)

L'avantagetagL'avantage de cette approche est qu'elle optimise le coût de l'équipement de test externe, évitant ainsi tout coût supplémentaire lié aux outils. Certains cœurs IP de circuits de débogage sont disponibles auprès des fabricants d'équipements ou de FPGA, et peuvent être très économiques, voire gratuits. La quantité de ressources FPGA nécessaires à la mise en œuvre de la logique de sélection du signal est très faible, et comme la fonction de traçage est réalisée à l'aide de l'analyseur logique externe, aucune mémoire de bloc n'est nécessaire. La logique de sélection étant peu coûteuse, un grand nombre de canaux avec un déclenchement large peut également être pris en charge. L'analyseur logique peut fonctionner en mode temporel et en mode d'état, ce qui permet d'isoler certains problèmes de synchronisation.
Le désavantagetagLes avantages de cette approche peuvent inclure l'achat d'un analyseur logique, si celui-ci n'est pas déjà affecté au projet. Cet inconvénienttagDans de nombreux cas, cela peut suffire à décourager cette approche. Il convient toutefois de noter que des analyseurs logiques à faible coût utilisent désormais un PC ou une tablette comme écran, ce qui rend cette option beaucoup plus rentable pour les besoins de débogage simples.
Le nombre de broches FPGA consommées peut être un autre inconvénienttage et si des bus larges doivent être observés, une planification importante de la disposition des cartes et l'ajout de connecteurs de débogage sont nécessaires. Cette exigence est généralement difficile à prévoir dès le début de la phase de conception et constitue une complexité supplémentaire indésirable. Similaire à l'approche de l'analyseur logique embarqué, la stratégie de test externe nécessite la recompilation et la reprogrammation d'une conception, à chaque nouvelle expérience.

L'inconvénient communtagLes avantages de ces deux techniques — l'utilisation de ressources sur puce (qui peuvent également impacter les performances temporelles de la conception et créer des exigences de débogage supplémentaires), la nécessité de recompiler et de reprogrammer la conception (ce qui peut ajouter des heures, voire des jours, au calendrier de débogage), la planification en amont nécessaire pour identifier les scénarios de test probables et l'utilisation de ressources d'E/S de puce supplémentaires — ont créé le besoin d'une approche sans ces inconvénients. Une réponse a été l'ajout d'une logique de débogage dédiée dans la structure FPGA sur certains appareils. Le débogage en circuit à l'aide de sondes matérielles en a résulté.

Débogage FPGA en circuit – Sondes matérielles
L'utilisation de sondes matérielles simplifie considérablement les techniques de débogage en circuit des FPGA. Implémentée comme fonctionnalité de sonde en direct sur les FPGA SmartFusion2®SoC et IGLOO®2, cette technique ajoute des lignes de sonde dédiées à la structure FPGA pour observer la sortie de chaque bit de registre d'élément logique. Comme le montre le schéma fonctionnel de la figure 4, les sondes matérielles sont disponibles sur deux canaux de sonde, A et B.

Débogage FPGA en circuit microsemi-conducteur (3)

Les sorties de registre sélectionnées (points de sonde), comme celle indiquée en bas de la figure, sont acheminées au-dessus des deux canaux de sonde et, si elles sont sélectionnées, peuvent être appliquées au canal A ou B. Ces signaux de canal en temps réel peuvent ensuite être envoyés aux broches dédiées des sondes A et B du dispositif. Les signaux des sondes A et B peuvent également être acheminés en interne vers un analyseur logique intégré.

Notez que les caractéristiques temporelles des broches de la sonde sont régulières et présentent un écart négligeable d'un point à l'autre, ce qui facilite grandement la comparaison des caractéristiques temporelles des signaux en temps réel. Les données peuvent être capturées jusqu'à 100 MHz, ce qui convient à la plupart des conceptions de cibles.
Plus important encore, les emplacements des points de sonde, n'étant pas sélectionnés lors de la conception (ils le sont via un matériel dédié pendant l'exécution de la conception sur le FPGA), peuvent être rapidement modifiés par simple envoi des données de sélection au dispositif. Aucune recompilation ni reprogrammation de la conception n'est nécessaire.
Pour simplifier encore plus l'utilisation de la fonction Live Probe, l'outil logiciel de débogage associé a accès à tous les emplacements des signaux de sonde via un outil de débogage généré automatiquement. fileComme illustré à la figure 5, le nom du signal peut être sélectionné dans la liste et appliqué au canal souhaité. Cette opération est possible même pendant l'exécution de la conception, ce qui garantit une analyse fluide et très efficace.

Débogage FPGA en circuit microsemi-conducteur (5)

Dans de nombreux cas, la capacité de sonde matérielle, comme Live Probe, peut être utilisée en conjonction avec l'analyseur logique intégré décrit précédemment et les techniques de test externes.

Comme le montre la figure 6, la fonctionnalité Live Probe permettant de sélectionner des signaux à la volée permet de modifier rapidement et facilement les signaux observés sans recompiler la conception. Un analyseur logique externe ou un oscilloscope peut facilement observer les signaux sondés, comme illustré en haut à droite de la figure sur les broches de sortie dédiées de la sonde. Alternativement (ou peut-être même en complément) l'analyseur logique interne (le bloc d'identification ILA, illustré sur la figure) peut être utilisé pour observer les broches de la sonde. Les signaux de la sonde peuvent être capturés par l'ILA et observés dans la fenêtre de forme d'onde. L'emplacement des sondes peut être modifié sans recompiler la conception cible.
Notez que les fonctionnalités supplémentaires de déclenchement et de traçage peuvent être utilisées pour améliorer les fonctionnalités de la sonde, ce qui facilite la détection des problèmes de conception même complexes.

Débogage FPGA en circuit microsemi-conducteur (6)

Des fonctionnalités de débogage matériel supplémentaires sont également disponibles sur les FPGA SmartFusion2 SoC et IGLOO2. L'une de ces fonctionnalités, appelée Active Probe, permet de lire ou d'écrire de manière dynamique et asynchrone sur n'importe quel bit de registre d'élément logique. Une valeur écrite est conservée pendant un cycle d'horloge, permettant ainsi la poursuite du fonctionnement normal, ce qui en fait un outil de débogage très précieux. Active Probe est particulièrement utile pour observer rapidement un signal interne (par exemple, simplement pour vérifier qu'il est actif ou dans l'état souhaité, comme un signal de réinitialisation), ou pour tester rapidement une fonction logique en écrivant sur un point de sonde.
(peut-être pour initier une transition de machine d'état en définissant rapidement une valeur d'entrée pour isoler un problème de flux de contrôle).

Microsemi propose également une fonctionnalité de débogage : le débogage mémoire. Cette fonctionnalité permet au concepteur de lire ou d'écrire de manière dynamique et asynchrone dans un bloc SRAM de la matrice FPGA. Comme l'illustre la capture d'écran de l'outil de débogage (Figure 7), lorsque l'onglet « Blocs mémoire » est sélectionné, l'utilisateur peut sélectionner la mémoire à lire, effectuer une capture instantanée de la mémoire, modifier les valeurs de la mémoire, puis réécrire ces valeurs dans le dispositif. Cette fonctionnalité est particulièrement utile pour vérifier ou configurer les tampons de données utilisés dans les ports de communication pour les blocs-notes orientés calcul, ou même pour le code exécuté par un processeur embarqué. Le débogage des erreurs complexes liées aux données est nettement plus rapide et plus simple lorsque les mémoires peuvent être observées et contrôlées aussi rapidement.

Débogage FPGA en circuit microsemi-conducteur (7)

Une fois la conception déboguée, il peut être judicieux de désactiver les fonctions de débogage du matériel afin de protéger les informations sensibles. Un attaquant pourrait utiliser ces mêmes fonctions pour lire des informations critiques ou modifier les paramètres système, ce qui faciliterait l'accès à des parties sensibles du système. Microsemi a ajouté des fonctionnalités permettant au concepteur de sécuriser le dispositif une fois le débogage terminé. Par exempleampL'accès aux sondes actives et en direct peut être verrouillé afin de désactiver complètement la fonction et de prévenir toute attaque (cela élimine même la possibilité que l'activité de la sonde crée des schémas dans le courant d'alimentation, susceptibles d'être utilisés pour observer indirectement les données de la sonde). L'accès à certaines parties de la conception peut également être verrouillé afin d'empêcher l'accès à ces sections uniquement. Cela peut s'avérer pratique si seule une partie de la conception doit être sécurisée, laissant le reste accessible pour les tests sur le terrain ou l'analyse des erreurs.

Tableau comparatif de débogage en circuit
Maintenant qu'une re détailléeview des trois principales techniques de débogage du matériel en circuit ont été décrites, un tableau récapitulatif, comme illustré dans la figure 8, a été créé qui détaille les différents avantagestages et désavantagetages de chaque méthode. N'oubliez pas que certaines techniques peuvent être utilisées conjointement (Live Probe et Internal Logic Analyzer (ILA), comme Synopsys Identify, par exemple).amp(le), nous pouvons voir les principaux atouts et faiblesses de chaque technique. L'ensemble des fonctionnalités de débogage matériel embarqué (Live Probe, Active Probe et Memory Debug, collectivement appelées SmartDebug), est plus faible que les autres techniques en termes de nombre total de sondes disponibles (cercle rouge) et plus faible que les meilleures (cercle jaune) si l'on considère la vitesse de capture (un équipement de test externe peut être plus rapide).
Les techniques basées sur ILA, comme Synopsys Identify, sont les plus faibles par rapport aux autres techniques et compte tenu des besoins en ressources du FPGA. Les techniques basées sur des équipements de test externes sont les plus faibles sur plusieurs points, notamment le coût, l'impact sur le temps de conception et la surcharge liée au déplacement des sondes (due à la nécessité de recompiler la conception). La solution optimale pourrait être une combinaison de SmartDebug et d'une autre technique, afin de réduire la faiblesse de SmartDebug en termes de nombre de canaux et de limiter le déplacement des points de sonde.tagLes autres techniques ont également été réduites.

Débogage FPGA en circuit microsemi-conducteur (8)

Classifications des signaux
Il est utile d'établir une distinction entre les types de signaux les plus courants, ce qui peut faciliter la planification d'une approche de débogage. Par exempleampLes signaux qui ne changent pas, sauf au démarrage du système, comme la réinitialisation du système, la réinitialisation des blocs ou les registres d'initialisation, peuvent être classés comme des signaux statiques. L'accès à ces types de signaux est plus efficace grâce à un outil permettant de les observer et de les contrôler facilement, sans nécessiter un long cycle de recompilation. Active Probe est un excellent outil pour le débogage des signaux statiques. De même, les signaux qui changent plus fréquemment, mais restent statiques la plupart du temps, peuvent être classés comme pseudo-statiques et sont également plus efficacement débogués avec Active Probe. Les signaux qui changent fréquemment, comme les signaux d'horloge, peuvent être classés comme dynamiques et ne sont pas aussi facilement accessibles via Active Probe. Live Probe est un meilleur choix pour observer ces signaux.

Cas d'utilisation de débogage simple

Maintenant que nous avons une meilleure compréhension des différentes options de débogage en circuit, examinons un exemple de conception simple.ampLa figure 9 illustre le fonctionnement de ces techniques. L'exemple suivant illustre une conception FPGA simple dans un composant FPGA SoC SmartFusion2. Le sous-système microcontrôleur (MSS) est réinitialisé par le bloc CoreSF2Reset Soft IP. Les entrées de ce bloc sont : réinitialisation à la mise sous tension, réinitialisation de la matrice utilisateur et réinitialisation externe. Les sorties sont : réinitialisation de la matrice utilisateur, réinitialisation du MSS et réinitialisation du M3. L'erreur se manifeste par une absence d'activité sur les E/S, même si le composant quitte l'état POR avec succès. Les trois options de débogage de cette erreur sont également illustrées dans la figure : le cadre bleu (intitulé ETE) correspond à la méthode de l'équipement de test externe ; le cadre vert (intitulé ILA) à la méthode de l'analyseur logique interne ; et le cadre orange (intitulé AP) à la méthode de la sonde active. Nous supposerons que les causes potentielles de l'erreur sont des entrées de réinitialisation incorrectement validées sur le bloc CoreSF2Reset Soft IP.

Débogage FPGA en circuit microsemi-conducteur (9)

Examinons maintenant le processus de débogage pour trois des méthodes en circuit décrites précédemment.

Équipement de test externe
Avec cette méthode, on suppose que l'équipement de test est disponible et non utilisé par un projet prioritaire. De plus, il est important d'anticiper afin que des E/S FPGA soient disponibles et puissent être facilement connectées à l'équipement de test. Par exemple, un connecteur sur le circuit imprimé est nécessaire.ampCela serait très utile et réduirait le temps passé à identifier et à connecter un « suspect probable » ou à éviter un court-circuit potentiel des broches lors du sondage. La conception devra être recompilée pour sélectionner les signaux à analyser. Espérons que nous n'aurons pas à « récupérer l'oignon » et à sélectionner des signaux supplémentaires pour une analyse plus approfondie, car notre première investigation ne fait souvent que soulever davantage de questions. Quoi qu'il en soit, le processus de recompilation et de reprogrammation peut prendre beaucoup de temps, et s'il entraîne des violations de timing, une refonte est nécessaire (nous savons tous combien il peut être frustrant de résoudre des problèmes de fermeture de timing, en particulier lorsqu'il s'agit de modifier la conception pour trouver un bug ; le processus complet peut prendre de quelques minutes à quelques heures) ! Il est également important de garder à l'esprit que si la conception ne dispose pas d'E/S utilisateur libres, cette méthode ne peut pas être implémentée. De plus, cette méthode est structurellement intrusive pour la conception, et les bugs liés au timing peuvent disparaître ou réapparaître entre les itérations.

Analyseur logique interne
Avec cette méthode, l'ILA doit être inséré dans la conception à l'aide des ressources de la structure, puis recompilé. Notez que si l'ILA a déjà été instancié, les signaux à analyser peuvent ne pas avoir été instrumentés, ce qui nécessiterait également une recompilation. Ce processus risque de modifier la conception d'origine et de violer les contraintes de temps. Si le temps est respecté, la conception doit être reprogrammée et réinitialisée. Ce processus peut prendre plusieurs minutes, voire plusieurs heures, si les temps de recompilation sont longs et nécessitent plusieurs passes. Cette approche est structurellement intrusive et peut entraîner des problèmes similaires à ceux décrits avec la méthode ci-dessus.

Sonde active
Grâce à cette méthode, la sonde active peut être pointée vers la source des différents signaux de réinitialisation, tous issus des sorties de registre (comme c'est souvent le cas dans toute bonne pratique de conception numérique). Les signaux sont sélectionnés un par un, à partir du menu de la sonde active illustré à la figure 10 ci-dessous. Les valeurs des signaux sélectionnés peuvent être lues et affichées dans la fenêtre de données de la sonde active. Toute erreur d'assertion est facilement identifiée. Ce test est réalisable immédiatement, sans recompilation ni reprogrammation du composant, et n'est pas intrusif, ni structurellement ni procéduralement. L'ensemble du processus ne prend que quelques secondes. Cette méthode permet également une contrôlabilité (modification asynchrone des valeurs), ce que les deux autres méthodes ne permettent pas. Dans cet exemple particulier,ample signal de réinitialisation provenant d'un registre peut être facilement sondé et découvert comme étant maintenu dans un état actif.

Le basculement momentané du signal de réinitialisation peut être obtenu en manipulant de manière asynchrone le registre générant les signaux de repos.

Débogage FPGA en circuit microsemi-conducteur (10)

Cas d'utilisation de débogage plus complexe
La conception ci-dessus était très simple et est utile comme introduction à l'utilisation des techniques de conception décrites, mais une ex plus complexeampCela pourrait être encore plus illustratif. Souvent, le signal d'intérêt n'est pas statique, comme c'était le cas dans notre exemple simple.ampLe signal dynamique est un signal dynamique courant, utilisé notamment pour synchroniser une connexion série. La figure 11 illustre une telle conception avec le cœur IP utilisateur, ici une interface série personnalisée connectée au bus APB du système. Les symptômes d'erreur sont l'absence d'activité sur l'interface série personnalisée de l'utilisateur et, lorsqu'un maître du bus APB émet une transaction pour accéder à l'interface série, une exception signale une connexion incorrecte. Ces conditions semblent exclure une cause statique, comme un signal de réinitialisation incorrect, car la machine à états de la transaction ne semble pas fonctionner à la fréquence attendue, ce qui provoque l'exception. La cause première serait le générateur de fréquence d'horloge du cœur IP utilisateur.

Si le système ne fonctionne pas à la fréquence correcte, les erreurs décrites peuvent se produire.

Débogage FPGA en circuit microsemi-conducteur (11)

Dans ce cas, il est probablement plus judicieux de remplacer la sonde active par la sonde active. Ceci est illustré dans la figure ci-dessus par la boîte LP orange, avec le symbole J.TAG signal pour la sélection de la source de la sonde.

Équipement de test externe
Dans ce cas, la méthodologie est très similaire à l'exemple simple décrit précédemment.ampLe signal d'horloge utilisateur est envoyé au point de test (idéalement via un en-tête) et une recompilation fastidieuse est nécessaire. Il peut également être utile d'utiliser un signal de référence, par exemple une horloge système utilisée pour cadencer l'adresse IP de l'utilisateur, comme signal de comparaison. Nous serons à nouveau confrontés à la nécessité de recompiler et de reprogrammer, ce qui peut s'avérer très long.

Analyseur logique interne
Ce cas est très similaire au cas simpleampLe ILA doit être inséré, ou le signal souhaité défini, puis un cycle de recompilation et de reprogrammation doit être exécuté. Tous les problèmes décrits précédemment entraînent néanmoins un temps de cycle de débogage important. Cependant, une complexité supplémentaire s'ajoute : l'horloge qui pilote l'ILA doit être synchrone, et idéalement beaucoup plus rapide que celle observée depuis le cœur de l'IP logicielle de l'utilisateur. Si ces horloges sont asynchrones ou ne présentent pas les bonnes relations temporelles, la capture des données sera imprévisible et une source potentielle de confusion pour le processus de débogage.
Notez que si l'horloge IP logicielle de l'utilisateur n'est pas générée sur la puce (elle est peut-être récupérée à partir de l'interface série), le concepteur peut avoir besoin d'ajouter un module d'horloge pour générer une horloge ILA plus rapide en utilisant des ressources supplémentaires et en créant éventuellement une violation de synchronisation.

Sonde en direct
Grâce à cette méthode, la sonde en temps réel peut être rapidement pointée vers la source de l'horloge utilisateur et toute autre source d'horloge d'un registre afin de déterminer la cause de l'erreur. La sonde en temps réel affiche les sorties de signaux sélectionnées en temps réel, ce qui facilite grandement la détermination de la relation temporelle entre les signaux. L'ensemble du processus ne prend que quelques secondes.

Autres fonctionnalités de débogage pour les interfaces série
Il est également important de souligner qu'il existe de nombreuses capacités de débogage supplémentaires dans les périphériques SmartFusion2 SoC FPGA et IGLOO2 FPGA qui peuvent être utilisées sur des interfaces série, comme celle de l'exemple précédent.ampla conception où les erreurs sont encore plus compliquées. SERDES Debug, par exempleampLe logiciel offre des fonctionnalités de débogage spécifiques pour les interfaces série haut débit dédiées. Parmi les fonctionnalités de débogage de SERDES, on trouve la prise en charge des tests PMA (comme la génération de modèles PRBS et les tests de bouclage), la prise en charge de plusieurs configurations de test SERDES avec reconfiguration au niveau des registres pour éviter d'utiliser l'intégralité du flux de conception pour modifier la configuration, ainsi que des rapports textuels présentant les protocoles configurés, les registres de configuration SERDES et les registres de configuration des voies. Ces fonctionnalités simplifient considérablement le débogage de SERDES et peuvent être utilisées conjointement avec Live Probe et Active Probe pour accélérer le débogage des circuits complexes.
L'outil Memory Debug décrit précédemment peut également être utilisé conjointement avec SERDES Debug pour accélérer les tests. L'inspection et la modification rapide et aisée des tampons mémoire avec Memory Debug permettent de créer rapidement des « paquets de test » et d'observer les résultats des communications en boucle ou intersystèmes. Le concepteur peut exploiter ces fonctionnalités et ainsi minimiser le recours à des « harnais de test » spécialisés, qui consomment davantage de ressources FPGA et peuvent impacter la synchronisation des puces.

Conclusion
Cet article décrit en détail plusieurs approches de débogage en circuit pour les FPGA et les FPGA SoC : l'utilisation d'un analyseur logique intégré, d'équipements de test externes et de circuits de sonde dédiés intégrés à la structure FPGA. L'ajout de circuits de sonde spécialisés et dédiés, comme les sondes actives et actives proposées par Microsemi sur les FPGA SoC SmartFusion2 et IGLOO2, s'est avéré considérablement plus rapide et plus simple. La possibilité de modifier rapidement la sélection des signaux internes (sans exécuter un cycle de recompilation et de reprogrammation fastidieux) et de sonder les signaux internes (sans recourir à la structure FPGA et sans risquer d'introduire des violations de synchronisation) s'est avérée être un avantage majeur.tages lors du débogage des conceptions FPGA. De plus, l'utilisation de plusieurs méthodologies, pouvant fonctionner ensemble pour offrir une capacité de débogage encore plus complète, a été décrite. Enfin, deux exemplesampDes cas d'utilisation de débogage ont été donnés pour illustrer les compromis entre les méthodes décrites.

Pour en savoir plus

  1. FPGA IGLOO2
  2. FPGA SoC SmartFusion2

Microsemi Corporation (Nasdaq : MSCC) propose un portefeuille complet de solutions de semi-conducteurs et de systèmes pour les marchés des communications, de la défense et de la sécurité, de l'aérospatiale et de l'industrie. Les produits comprennent des circuits intégrés à signaux mixtes analogiques hautes performances et résistants aux rayonnements, des FPGA, des SoC et des ASIC ; produits de gestion de l'alimentation ; dispositifs de chronométrage et de synchronisation et solutions de temps précis, établissant la norme mondiale en matière de temps ; dispositifs de traitement de la voix ; solutions RF ; composants discrets ; technologies de sécurité et anti-t évolutifampMicrosemi propose des produits ; des circuits intégrés et des midspans Power over Ethernet ; ainsi que des capacités et des services de conception sur mesure. Microsemi, dont le siège social est situé à Aliso Viejo, en Californie, compte environ 3,400 XNUMX employés dans le monde. Pour en savoir plus, rendez-vous sur www.microsemi.com.

© 2014 Microsemi Corporation. Tous les droits sont réservés. Microsemi et le logo Microsemi sont des marques déposées de Microsemi Corporation. Toutes les autres marques commerciales et marques de service sont la propriété de leurs propriétaires respectifs.

Siège social de Microsemi

FAQ

  • Q : Quelle est la fréquence maximale de capture de données de l'appareil ?
    R : L'appareil prend en charge la capture de données jusqu'à 100 MHz, adapté à la plupart des conceptions cibles.
  • Q : Dois-je recompiler la conception lorsque j'utilise des circuits de sonde pour le débogage ?
    R : Non, les emplacements des points de sonde peuvent être rapidement modifiés sans nécessiter de recompilation ou de reprogrammation de la conception.

Documents / Ressources

Débogage FPGA en circuit Microsemi [pdf] Instructions
Débogage FPGA en circuit, débogage FPGA, débogage

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *