Les outils, méthodologies et flux en place depuis l’aube de la conception des semi-conducteurs s’effondrent, mais cette fois, il n’y a pas un grand nombre de chercheurs proposant des solutions potentielles. L'industrie est seule à formuler ces idées, et cela nécessitera une grande coopération entre les entreprises d'EDA, les usines de fabrication et les concepteurs, ce qui n'a pas été leur point fort dans le passé.
Il est difficile d'optimiser quelque chose quand on ne peut pas l'analyser, et l'analyse devient beaucoup plus difficile car la plupart des problèmes liés aux grands produits semi-conducteurs sont soit multi-physiques, soit une combinaison de matériel et de logiciel, de système, de carte. , boîtier IC, interposeur, puce et bloc IP. Dans le passé, la méthode consistant à diviser pour mieux régner a été la manière de traiter les problèmes. Parfois, cela se fait de manière hiérarchique, par exemple en vérifiant entièrement un bloc avant son intégration, ou parfois en isolant un problème, par exemple avec le croisement de domaines d'horloge.
Cependant, de plus en plus de problèmes résistent à ce type d’approche, et l’industrie n’a pas encore trouvé de solution simple. Par exemple, des problèmes tels que la sécurité sont des problèmes au niveau du système. Il en va de même pour de nombreux problèmes de performances ou de puissance. Même des problèmes tels que l'alimentation électrique et l'intégrité du signal doivent faire face à une hiérarchie qui s'étend de l'IP au système, à travers une interconnexion complexe de nombreuses couches, dont chacune a traditionnellement été adaptée à un ensemble d'outils différent.
Cela crée une nouvelle série de problèmes de modélisation et nécessite que certains outils existants jouent un rôle beaucoup plus important que par le passé. Alternativement, l’industrie devra prendre au sérieux l’imposition de contraintes sur les conceptions, de manière à ce que l’analyse soit possible. Même si cette industrie commence à prendre conscience des problèmes, elle les aborde aujourd’hui de manière fragmentaire. Jusqu’à présent, personne n’a proposé de solution générale qui s’étendrait à l’avenir.
C'est un jeu de chiffres. "Si l'on prend en compte l'ensemble du système, le nombre de virages explose", déclare Shekhar Kapoor, directeur principal du marketing chez Synopsys. « Aujourd’hui, les approches reviennent toujours à la manière hiérarchique de diviser pour régner et de trouver également des moyens de réduire le nombre de scénarios auxquels vous devez faire face. Sans cela, les besoins en calcul seront énormes. Et pour que vous puissiez vous connecter aux systèmes, le chemin sera beaucoup plus long.
Les approches hiérarchiques sont encore utiles pour certaines choses. « Le principe d'abstraction est utilisé là où la complexité fondamentale de l'analyse est trop complexe », explique Prakash Narain, président et PDG de Real Intent. « En simulation, nous l'utilisons en termes de modèles fonctionnels de bus et d'analyse temporelle statique. Nous l'utilisons en créant des modèles de synchronisation au niveau des E/S, des croisements de domaines d'horloge, des techniques d'approbation statique pour le croisement de domaines d'horloge et des croisements de domaines de réinitialisation. Ce sont tous des endroits où nous utilisons avec succès des techniques hiérarchiques.
La réduction des coins implique souvent des décisions de conception. "Pourquoi ne pas éviter les croisements de domaines", explique Kapoor de Synopsys. « Gardez simplement le design asynchrone, où chacune des pièces est chronométrée de manière indépendante. De cette façon, vous pouvez gérer le nombre de coins pour cette pièce particulière. Ensuite, vous pouvez utiliser des techniques de réduction des coins en plus de cela. Avec des approches hiérarchiques pour l'analyse temporelle, nous chronométrons chaque pièce séparément, puis les deux avec les contraintes, et effectuons la fusion des coins.
Qu'entend-on par chemins qui augmentent partout. « De nombreuses personnes souhaitent analyser des systèmes multi-puces », déclare Mick Posner, directeur principal de HPC IP chez Synopsys. « Les solutions d'intégrité du signal et de l'alimentation se concentraient auparavant sur la puce, en passant par le boîtier, jusqu'au PCB. Maintenant, c'est devenu une matrice, à interposer, à emballer, à PCB. Cela est particulièrement vrai pour les interfaces hautes performances, telles que le 112G, et les interfaces mémoire, pour lesquelles l'accent est mis sur l'impact de cet interposeur, ou de la couche de routage. Nous devons trouver comment regrouper ces informations avec la propriété intellectuelle, ce qui est parfois impossible car nous ne savons pas comment cette propriété intellectuelle est utilisée. Nous pouvons leur fournir un flux de référence qui leur montre comment ils effectuent cette analyse.
Le problème est qu’il est difficile de réaliser certaines des abstractions nécessaires. « Les exigences en matière d'abstraction sont très spécifiques à l'application », explique Narain de Real Intent. « Ils dépendent de la technologie et diffèrent d'un produit à l'autre, même pour cette application. Ils dépendent de la technologie utilisée par chaque produit pour implémenter la fonctionnalité. Ensuite, vous devez considérer le niveau de précision que vous recherchez. Ce sera très spécifique à une application et à une technologie, et les normes suivront plus tard car c’est un processus très difficile à mettre en œuvre.
Posner fournit un exemple spécifique. « Pour HBM3, nous avons élaboré une conception de référence. Il s'agit d'une conception de référence de notre propre puce de test. Nous avons développé un PHY, mais lorsque nous testons une puce, nous devons également développer un interposeur qui se connecte à la pile HBM. Nous devons tout faire de la même manière que ce qu’un client devrait faire. Ils peuvent alors exploiter ce flux. Mais bien sûr, c’était notre puce de test. Ils peuvent réutiliser le flux, mais les données réelles seront spécifiques à la façon dont ils présentent cet interposeur.
Le problème de la modélisation
La raison de ces difficultés est le manque de modèles et de moyens de générer ces modèles. Les modèles sont des compromis entre fidélité, précision et performances. Les modèles de haute précision ont tendance à avoir une bonne fidélité mais s'exécutent lentement, tandis que les modèles qui s'exécutent plus rapidement abandonnent quelque chose en termes de précision, de fidélité ou les deux. Les modèles requis sont à la fois des modèles fonctionnels et non fonctionnels.
Nous traitons le problème dans le domaine fonctionnel depuis un certain temps, mais des travaux supplémentaires sont nécessaires. « Pour la vérification fonctionnelle, nous réalisons quelques modèles », explique Neil Hand, directeur de la stratégie pour la technologie de vérification de la conception chez Siemens EDA. «Nous disposons d'outils précis au cycle, précis au jeu d'instructions, etc. Mais vous voulez avoir un moyen de vous déplacer facilement entre eux. Avec la modélisation hybride, vous disposez de la capacité de ce qu'ils appellent une exécution rapide, puis une exécution précise. À la volée, vous devez pouvoir changer de modèle. Par exemple, quelqu'un pourrait démarrer le système d'exploitation sur un modèle d'exécution moins précis, puis changer l'état de conception en un modèle d'exécution précis. Ils sont désormais capables d’avancer à partir de ce point avec beaucoup plus de granularité et beaucoup plus de fidélité dans le modèle lui-même. Nous devons développer des capacités encore plus grandes pour basculer entre les fidélités lorsque vous en avez besoin.
Aujourd'hui, une méthodologie similaire est utilisée pour la vérification du niveau de bloc et de l'intégration. "Lorsque vous achetez un cœur Arm, vous ne vérifiez pas la fonctionnalité du cœur Arm", déclare Simon Davidmann, fondateur et PDG de Logiciel Imperas. « Vous en vérifiez l’intégration. C’est là qu’interviennent des entreprises comme Breker. Vous avez ces blocages, mais comment vérifier qu’ils se parlent tous gentiment ? Vous ne faites pas cela de la même manière que vous vérifieriez un bloc avec UVM ou Verilog, ce que vous utilisez pour la vérification au niveau du bloc. La hiérarchie en matière de vérification consiste à faire fonctionner tous vos blocs, à les tester individuellement, puis à les rassembler et à se soucier des tests d'intégration. Mais ils nécessitent des méthodologies différentes.
Le problème a toujours été que la création de ces modèles demande du temps et des efforts, et chaque modèle doit être vérifié pour garantir sa cohérence. « Pour l'architecture, vous avez également besoin de propriétés non fonctionnelles, telles que les détails temporels », explique Tim Kogel, ingénieur principal du prototypage virtuel chez Synopsys. « Cela implique beaucoup plus d’efforts pour construire les modèles. Bien que l’industrie ait établi des niveaux d’abstraction plus élevés, elle n’a pas réussi à créer des outils permettant de construire ces modèles de performance non fonctionnels. Par exemple, un logiciel considère les éléments de traitement comme des unités de ressources plus abstraites, et vous pouvez alors disposer de modèles plus détaillés du sous-système d'interconnexion et de mémoire, ou du réseau entre les différentes puces. Arteris et Arm les fournissent pour les réseaux cohérents, pour différents types d'IP d'interconnexion, ainsi que pour les contrôleurs de mémoire, qui sont les éléments clés de l'intégration.
Davantage d'outils de génération de modèles sont nécessaires. "Lorsque vous analysez une conception à l'aide de modèles particuliers, vous avez la possibilité de créer un modèle abstrait", explique Malik Vasirikala, directeur et spécialiste produit chez Ansys. « Par exemple, lorsque j’analyse les composants internes d’une puce, je sais également comment elle se comporte du point de vue de l’interface. Je peux créer un modèle comme si je voyais toute cette partie depuis la périphérie, ou à la frontière de la puce avec le monde extérieur. Ensuite, lors de l’analyse d’une autre puce qui y est connectée, je n’ai pas besoin des détails internes de la puce. Je branche simplement ce modèle comportemental dans cette analyse et j’ai terminé.
Mais il y a des lacunes. "Ce qui manque, c'est une meilleure intégration et un meilleur échange de données entre les mondes physiques et les mondes virtuels", explique Kogel de Synopsys. "Nous avons besoin d'un modèle architectural basé sur des informations de plan d'étage apprises et des géométries apprises, qui, une fois migrées vers le niveau du prototype virtuel, vous aident à valider les performances, la puissance et la chaleur en fonction de l'activité réelle de l'application."
Quand as-tu fini ?
L'achèvement est l'un des problèmes de toute tâche d'analyse. Avez-vous couvert les cas importants ? Des métriques de couverture existent pour la vérification fonctionnelle au niveau des blocs, mais il s'agit encore d'un autre modèle qui doit être migré vers des niveaux d'abstraction plus élevés et vers des domaines non fonctionnels. « Si vous effectuez une partie de votre vérification dans le domaine de RTL, et une partie dans le prototype virtuel, comment fusionner ces éléments de couverture ? » demande la Main de Siemens. "Aujourd'hui, cela se fait via une couverture fonctionnelle, mais il existe une opportunité - en particulier lorsque vous examinez la génération de stimulus, lorsque vous utilisez l'IA du côté de la couverture - de commencer à déduire des informations à partir de différents types de couverture."
Le monde du logiciel a été très laxiste à cet égard. « Je ne pense pas qu’il existe une approche ou une méthodologie standard en matière de couverture », déclare Davidmann d’Imperas. « À ma connaissance, aucune automatisation n’a été réalisée autour des logiciels qui soit équivalente aux points de couverture et aux groupes de couverture en HDL. Des vérificateurs de protocole existent pour la vérification et l’analyse. Et vous pouvez créer des statistiques, où vous pouvez observer les fonctions, ou observer les accès aux variables. Compte tenu du manque de standardisation, nous fournissons l’outillage nécessaire, mais l’utilisateur devra le construire lui-même.
Une fois qu’on a une notion de couverture, il devient alors possible de penser à optimiser la vérification. « Qu’il s’agisse d’un stimulus portable dans sa forme actuelle ou de quelque chose qui s’appuie sur ces notions, nous avons besoin de générer des scénarios au niveau du système », explique Hand. « Pouvons-nous prendre cela et aller un niveau plus haut et utiliser les prototypes virtuels et la modélisation du système et générer des scénarios sur des systèmes robustes ? Cela va devenir de plus en plus important à mesure que les systèmes seront de plus en plus intégrés.
D’autres sont d’accord. "Vous voulez avoir cette continuité entre la vérification au niveau IP, au niveau SoC, puis plus tard sur silicium", explique Kogel. « Les mesures de relance portables sont une approche pour y parvenir. Vous pouvez alors également exécuter ce qui était un cas de test abstrait, comme un programme sur un cœur embarqué, puis dans le prototype virtuel. Dans ce sens large, il s'agit de la vérification du concept architectural. Plus tard, vous exécutez RTL avec un logiciel sur un émulateur, sur un prototype FPGA, et cela peut être utilisé pour valider les performances, car cela ressemble plus à « Ce que vous voyez est ce que vous obtenez. » Ce n'est pas un modèle virtuel de haut niveau. »
Fig. 1 : Plusieurs niveaux de modèles et objectifs de vérification. Source : Synopsis
Une autre façon d’aborder la vérification de l’intégration consiste à passer par la conformité fonctionnelle. "Il y a une tentative dans Arm appelée" système prêt "pour définir ce que signifie être conforme et capable de démarrer un système d'exploitation", déclare Nick Heaton, ingénieur distingué et architecte de vérification SoC chez Cadence. « Si votre implémentation réussit, vous n'aurez pas à modifier les versions du système d'exploitation de Red Hat, ou autre. Ils vont juste démarrer là-dessus. Il s'agit d'un contrat entre le logiciel et le matériel. Le stimulus portable tente de le faire de manière plus généralisée, et nous l'appelons VIP parce qu'il s'agit d'une sorte de contenu prêt à l'emploi que nous proposons, disons, à un niveau de cohérence. Nous testons toutes les permutations de cohérence, et nous pouvons les proposer essentiellement sur n’importe quelle plate-forme, qu’il s’agisse d’Arm ou de RISC-V ou autre.
Le problème du débogage
C'est une chose de pouvoir exécuter un modèle, mais c'est un tout autre niveau de complexité de trouver et de résoudre un problème dans un modèle ou dans la façon dont le modèle est utilisé. "Si vous déboguez un logiciel sur du matériel ou un FPGA, vous obtenez un gdb qui s'y connecte et vous pouvez suivre en une seule étape le flux d'instructions d'un processeur", explique Davidmann. « Mais le problème survient lorsqu’ils disposent de 10 processeurs ou plus et qu’ils ont besoin de savoir quand « ceci » écrit sur « cela », à quoi cela ressemble-t-il ? L'analyse et le débogage doivent être effectués de manière globale afin que vous puissiez tout voir. Cela doit impliquer les piles logicielles afin que vous puissiez examiner le comportement de la plateforme.
Il s’agit d’un ensemble d’exigences différent du simple débogage du matériel. « Alors que nous commençons à passer aux tests d'intégration matériel/logiciel, nous commençons à voir davantage de capacités de débogage logiciel intégrées dans l'environnement de débogage des prototypes virtuels », explique Hand. « Alors que nous commençons à le rendre disponible pour les concepteurs de systèmes, nous avons l'opportunité d'examiner les modèles d'utilisation et quels sont les environnements de conception sur lesquels ces équipes souhaitent travailler ? Comment pouvons-nous intégrer cela? Vous souhaitez que les concepteurs de systèmes interagissent avec les prototypes virtuels d'une manière qui soit significative pour eux. Il s’agit d’identifier les utilisateurs finaux et de leur mapper les modèles d’utilisation. C’est un domaine dans lequel nous pouvons faire beaucoup, et nous devrions faire beaucoup de choses.
Les outils et méthodologies doivent correspondre aux besoins à chaque niveau. « Les personnes qui effectuent la vérification de l'intégration ne sont pas celles qui connaissent chacun des blocs », explique Heaton de Cadence. « Le temps de débogage ou le délai d’exécution devient de plus en plus important. Le nombre de cycles de débogage que vous pouvez exécuter par jour est extrêmement problématique. Si les outils peuvent vous diriger vers le premier lieu de commande, cela peut vous faire gagner des heures de débogage. Nous sommes au début de ce voyage. L’apprentissage est en cours et la façon dont nous utilisons ces outils va s’améliorer.
L’IA peut aider. « Même si les humains disposent du meilleur réseau neuronal, nos E/S restent plus ou moins en série », explique Matt Graham, directeur du groupe d'ingénierie produit chez Cadence. « Peut-être que nous pouvons gérer deux ou trois pistes parallèles, mais certainement pas plus. Les machines peuvent considérer toutes ces choses en parallèle. Ils pourraient utiliser un simple algorithme, ou un simple ensemble d’IA, pour faire quelque chose à travers cette chose massivement parallèle et hautement intégrée. Mais cela est différent de ce que nous sommes capables de faire nous-mêmes. Il s’agit peut-être de choses comme la dernière fois que nous avons eu une révision ou ce qui a changé, ou l’identification des différences de comportement, ou encore les paramètres qui ont été modifiés dans une IP.
Conclusion
La complexité des systèmes dépasse la plupart des outils et méthodologies en place aujourd’hui. Les techniques utilisées dans le passé, bien que toujours utiles, ne suffisent pas. L’industrie a été confrontée à bon nombre de ces problèmes dans le domaine de la vérification fonctionnelle, mais ce n’est que la pointe de l’iceberg. Étant donné le peu de progrès réalisés dans le domaine le mieux compris, les progrès ne seront probablement pas rapides dans de nombreux autres domaines, en particulier ceux liés à l’emballage avancé.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- Capable
- A Propos
- RÉSUMÉ
- Compte
- précision
- Avec cette connaissance vient le pouvoir de prendre
- atteindre
- à travers
- activité
- Avancée
- AI
- algorithme
- Tous
- toujours
- selon une analyse de l’Université de Princeton
- il analyse
- l'analyse
- ainsi que
- Une autre
- Application
- une approche
- approches
- architectural
- architecture
- Réservé
- domaines
- BRAS
- autour
- Automation
- disponibles
- RETOUR
- basé
- En gros
- car
- devenez
- devient
- devenir
- before
- Début
- va
- LES MEILLEURS
- Améliorée
- jusqu'à XNUMX fois
- plus gros
- Block
- Blocs
- planche
- Rupture
- apporter
- vaste
- construire
- Développement
- construit
- bus
- acheter
- Cadence
- Appelez-nous
- appelé
- capacités
- capable
- maisons
- cas
- CEO
- Assurément
- vérifier
- puce
- chips
- COHÉRENT
- combinaison
- comment
- Venir
- Sociétés
- complexe
- complexité
- conformité
- concept
- connecté
- connecte
- Considérer
- contraintes
- contenu
- contrat
- coopération
- Core
- Coin
- coins
- cours
- couverture
- couverture
- couvert
- engendrent
- crée des
- La création
- Courant
- des clients
- cycles
- données
- journée
- affaire
- traitement
- décisions
- livrer
- livrer
- demandes
- dépendant
- Conception
- designers
- Avec nos Bagues Halo
- détail
- détaillé
- détails
- développer
- développé
- J'ai noté la
- différent
- difficile
- problèmes
- Directeur
- Distingué
- faire
- domaine
- domaines
- Ne pas
- down
- entraîné
- chacun
- même
- effort
- non plus
- éléments
- intégré
- ingénieur
- ENGINEERING
- assurer
- Environment
- environnements
- Équivalent
- notamment
- établies
- Pourtant, la
- peut
- exemple
- échange
- exécuter
- existant
- étendre
- externe
- Mode
- RAPIDE
- plus rapide
- few
- fidélité
- figues
- Trouvez
- trouver
- Prénom
- Fixer
- flux
- Flux
- Focus
- suivre
- formulaire
- Avant
- fondateur
- Fondateur et PDG
- fpga
- De
- d’étiquettes électroniques entièrement
- fonctionnel
- fonctions
- fondamental
- avenir
- jeu
- Général
- générateur
- génération
- obtenez
- Donner
- donné
- Go
- Objectifs
- aller
- Bien
- plus grand
- Réservation de groupe
- Groupes
- manipuler
- Matériel
- chapeau
- vous aider
- hiérarchie
- de haut niveau
- haute performance
- augmentation
- très
- holistique
- HEURES
- Comment
- How To
- hpc
- HTTPS
- majeur
- Les êtres humains
- Hybride
- et idées cadeaux
- identifier
- Impact
- Mettre en oeuvre
- la mise en oeuvre
- important
- imposant
- impossible
- in
- intégrer
- croissant
- de plus en plus
- Individuellement
- industrie
- d'information
- des services
- l'intégration
- intégrité
- intention
- interagir
- Interfaces
- interfaces
- interne
- impliquer
- IP
- aide
- vous aider à faire face aux problèmes qui vous perturbent
- IT
- articles
- lui-même
- chemin
- Kapoor
- XNUMX éléments à
- ACTIVITES
- Genre
- Savoir
- spécialisées
- Peindre
- gros
- Nom de famille
- couche
- poules pondeuses
- savant
- apprentissage
- Niveau
- niveaux
- Levier
- Probable
- peu
- plus long
- Style
- ressembler
- Lot
- Les machines
- LES PLANTES
- Fabrication
- gérer
- manière
- de nombreuses
- cartographie
- Stratégie
- massivement
- Match
- largeur maximale
- significative
- veux dire
- Mémoire
- aller
- fusion
- méthodologies
- Méthodologie
- Métrique
- pourrait
- manquant
- modèle
- modélisation statistique
- numériques jumeaux (digital twin models)
- modifier
- PLUS
- (en fait, presque toutes)
- en mouvement
- plusieurs
- nécessaire
- Besoin
- Besoins
- réseau et
- réseaux
- Neural
- Réseau neuronal
- Nouveauté
- Notion
- nombre
- numéros
- ONE
- d'exploitation
- le système d'exploitation
- Opportunités
- Optimiser
- l'optimisation
- de commander
- OS
- Autre
- propre
- paquet
- l'emballage
- Parallèle
- paramètres
- partie
- particulier
- particulièrement
- passes
- passé
- chemin
- motifs
- Personnes
- performant
- objectifs
- Physique
- pièce
- pièces
- Place
- Des endroits
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- des notes bonus
- pool
- possible
- défaillances
- power
- Prakash
- président
- Directeur
- principe
- Problème
- d'ouvrabilité
- processus
- traitement
- processeurs
- Produit
- Produits
- Programme
- Progrès
- propriétés
- proposé
- protocole
- prototype
- prototypes
- prototypage
- fournir
- fournit
- réal
- royaume
- raison
- reconnaître
- Rouge
- Red Hat
- réduire
- Conception de référence
- de Presse
- exigent
- conditions
- Exigences
- a besoin
- chercheurs
- ressource
- robuste
- Rôle
- Courir
- pour le running
- même
- Épargnez
- scénarios
- sécurité
- voir
- recherche
- voit
- semi-conducteur
- supérieur
- sens
- en série
- grave
- set
- devrait
- Spectacles
- signer
- Signal
- similaires
- Simon
- étapes
- simulation
- depuis
- unique
- Lentement
- So
- jusqu'à présent
- Logiciels
- sur mesure
- Solutions
- quelques
- Quelqu'un
- quelque chose
- Identifier
- travées
- spécialiste
- groupe de neurones
- empiler
- Combos
- Standard
- Normes
- Commencer
- Commencez
- Région
- statistiques
- étapes
- Encore
- stimulus
- de Marketing
- courant
- STRONG
- réussi
- Avec succès
- tel
- suffisant
- la quantité
- Interrupteur
- combustion propre
- Système
- Prenez
- prend
- parlant
- Tâche
- équipes
- techniques
- Technologie
- conditions
- tester
- Essais
- tests
- La
- La Région
- El futuro
- leur
- se
- thermique
- chose
- des choses
- trois
- Avec
- Tim
- fiable
- Chronométré
- timing
- pointe
- à
- aujourd'hui
- ensemble
- trop
- les outils
- top
- vers
- traditionnellement
- oui
- types
- compris
- En cours
- unités
- us
- utilisé
- Utilisateur
- utilisateurs
- utilisé
- Utilisant
- VALIDER
- validation
- Précieux
- divers
- Vérification
- vérifié
- vérifier
- vérifier
- VIP
- Salle de conférence virtuelle
- mondes virtuels
- Montres
- façons
- Quoi
- que
- qui
- tout en
- WHO
- sera
- sans
- activités principales
- faire des exercices
- de travail
- world
- monde
- pourra
- écriture
- Votre
- zéphyrnet