En quoi la conception des ASIC est-elle différente de la synthèse FPGA HDL?
42
J'ai quelques expériences avec les suites d'outils FPGA / HDL telles que Xilinx ISE, Lattice Diamond, etc. Le flux de travail général consiste à écrire Verilog / VHDL, à simuler, à tester et à programmer le FPGA.
J'ai entendu quelques personnes dire que la conception des ASIC était très différente. Quels sont les jeux d'outils utilisés pour les deux principaux types d'ASIC, l'ASIC au niveau de la porte et le ASIC au niveau du transistor? J'ai étudié des outils de synthèse de haut niveau tels que Catapult C et Cadence C to Silicon, mais je n'ai encore jamais essayé. Pouvez-vous expliquer les différents types d’outils disponibles dans le domaine des ASIC / FPGA qui peuvent changer / accélérer le flux de travail HDL typique?
Généralement, la conception des ASIC est un travail d’équipe en raison de la complexité et de la quantité de travail. Je vais donner un ordre de étapes approximatif, bien que certaines étapes puissent être complétées en parallèle ou dans le désordre. Je vais lister les outils que j'ai utilisés pour chaque tâche, mais ce ne sera pas encyclopédique.
Construire une bibliothèque de cellules. (Alternativement, la plupart des processus ont des bibliothèques de portes disponibles dans le commerce. Je le recommanderais à moins que vous ne sachiez que quelque chose n’est pas disponible.) et toutes les macros telles qu'un multiplicateur de tableau ou une mémoire. Une fois que le schéma de chaque cellule est conçu et vérifié, la structure physique doit être conçue. J'ai utilisé Cadence Virtuoso pour ce processus, ainsi que des simulateurs de circuits analogiques tels que Spectre et HSPICE .
Caractériser la bibliothèque de cellules. (Si vous avez une bibliothèque de porte tierce, cela est généralement fait pour vous.) Chaque cellule de votre bibliothèque doit être simulée pour générer des tables de synchronisation pour l'analyse statique de synchronisation (STA). Cela implique de prendre la cellule finie, d'extraire les parasites de la mise en page à l'aide d' Assura , de Diva ou de Caliber , et de simuler le circuit dans différentes conditions d'entrée et charges de sortie. Ceci crée un modèle de synchronisation pour chaque porte compatible avec votre paquet STA. Les modèles de synchronisation sont généralement au format de fichier Liberty . J'ai utilisé Silicon Smart et Liberty-NCXsimuler toutes les conditions nécessaires. N'oubliez pas que pour que la plupart des logiciels fonctionnent correctement, vous aurez probablement besoin de modèles de synchronisation au «pire des cas», «nominal» et «meilleur des cas».
Synthétisez votre design. Je n'ai pas d'expérience avec les compilateurs de haut niveau, mais à la fin de la journée, le compilateur ou la chaîne de compilateurs doit prendre votre conception de haut niveau et générer une liste réseau au niveau de la porte. Le résultat de la synthèse est le premier aperçu des performances théoriques du système et de la résolution des problèmes de force motrice. J'ai utilisé Design Compiler pour le code RTL.
Placez et dirigez votre projet. Cela prend la netlist au niveau de la porte du synthétiseur et la transforme en une conception physique. Idéalement, cela génère une disposition de type "pad-to-pad" prête à être fabriquée. Il est très facile de configurer votre logiciel P & R pour qu'il génère automatiquement des milliers d'erreurs DRC. Par conséquent, le jeu et les divertissements ne sont pas tous amusants. La plupart des logiciels gèrent les problèmes de force de lecteur et génèrent des arbres d'horloge selon les instructions. Certains logiciels incluent Astro, IC Compiler, Silicon Encounter et Silicon Ensemble. Le résultat final de l'endroit et de l'itinéraire est la liste finale, la mise en page finale et les parasites extraits de la mise en page.
Analyse temporelle statique après la mise en page. Le but ici est de vérifier que votre conception respecte les spécifications de votre minutage et ne pose aucun problème d’installation, de blocage ou de blocage. Si vos exigences de conception sont strictes, vous risquez de passer beaucoup de temps ici à corriger les erreurs et à mettre à jour les correctifs de votre outil de régie numérique et de planification. L’outil final STA que nous avons utilisé était PrimeTime .
Vérification physique de la mise en page. Une fois qu'une présentation a été générée par l'outil P & R, vous devez vérifier que la conception respecte les règles de conception du processus (Contrôle de règle de conception / DRC) et que la présentation correspond au schéma (Présentation par rapport à schématique / LVS). Ces étapes doivent être suivies pour s'assurer que la mise en page est câblée correctement et qu'elle est manufacturable. Encore une fois, certains outils de vérification physique sont Assura , Diva ou Calibre .
Simulation de la conception finale. Selon la complexité, vous pourrez peut-être effectuer une simulation au niveau du transistor avec Spectre ou HSPICE , une simulation "rapide" avec HSIM ou une simulation entièrement numérique avec ModelSim ou VCS . Vous devriez pouvoir générer une simulation avec des délais réalistes à l'aide de votre outil STA ou P & R.
Commencer avec une bibliothèque de portes existante représente un gain de temps considérable, de même que l’utilisation de macros utiles pour votre conception, telles que la mémoire, un microcontrôleur ou d’autres blocs de traitement. La gestion de la complexité de la conception joue également un rôle important: une conception d'horloge unique sera plus facile à vérifier qu'un circuit comportant plusieurs domaines d'horloge.
Depuis que vous avez parlé de Virtuoso, Cadence fournit une chaîne d’outils complète pour la conception (je pense qu’elle s’appelle Opus), où il est possible de partir des schémas, de poser la cellule unique, d’évaluer les effets parasites, de la caractériser puis de la construire au niveau supérieur. .
Clabacchio
1
Je pense que chaque fournisseur majeur propose une chaîne d’outils complète. Nous avons fini par utiliser plusieurs fournisseurs dans notre panoplie d'outils, ce qui nous a permis d'utiliser les outils que nous connaissions le mieux ou dont nous avions la meilleure réputation.
W5VO
1
Il est pratiquement indispensable de choisir des outils pour l’aide d’une bibliothèque ou d’un kit de conception. Si vous n'utilisez pas la version prise en charge d'un logiciel en particulier, certaines incompatibilités peuvent tuer votre conception ou vous donner de fausses lectures. Cela dit, la grande majorité des outils EDA que j'ai vus fonctionnaient sur des systèmes Unix / Linux. La plupart ont des courbes d'apprentissage raides.
W5VO
1
@ MartinThompson Absolument. Plus vous repoussez les limites de votre technologie (ASIC / FPGA), plus ces étapes sont critiques. Cela étant dit, les versions ASIC de ces outils vous donnent beaucoup plus de corde pour que vous ayez des ennuis.
W5VO
1
Notez que 1 et 2 ne font pas partie du design. Ces étapes font partie de la "qualification de processus" et les résultats (bibliothèques entièrement caractérisées) sont fournis par FAB Vendor. Mais certaines entreprises font de la "conception sur mesure complète" et doivent compléter les étapes 1 et 2 par elles-mêmes.
Ale..chenski
7
La réponse de W5VO a tendance à se concentrer sur le back-end, ce qui constitue une différence majeure entre les flux ASIC et FPGA; mais il manque la partie vérification de la conception numérique.
Lorsqu'une conception sur silicium peut coûter un million de dollars et plus, et que vous pouvez placer beaucoup plus de portes utilisables sur un ASIC par rapport à un FPGA, vous passez beaucoup plus de temps à l'écart du laboratoire et des PCB devant des stations de travail exécutant des fermes de simulation. et des émulateurs et des tests d’écriture pour vérifier plus en détail la conception d’un ASIC avant de le publier pour la production. Les concepteurs de FPGA ont tendance à effectuer une grande partie de leurs tests en utilisant le FPGA dans le système dont il fera partie.
J'ajouterais que le flux de travail de base d'un concepteur numérique n'est pas très différent entre ASIC et FPGA, mais que celui-ci offre beaucoup plus de flexibilité en termes d'éléments macro / micro disponibles, de placement et de routage, alors que FPGA est limité à ses blocs logiques préfabriqués. et limité dans la topologie d'interconnexion. Ainsi, les FPGA ne peuvent pas atteindre les niveaux de performance des ASIC et peuvent imposer des solutions de conception légèrement différentes.
Ale..chenski
Bonjour Ali Chen. Si la conception numérique et la vérification numérique sont considérées comme distinctes, le flux pour une conception purement numérique est plus proche du FPGA par rapport au ASIC, mais il existe une grande séparation dans la vérification, comme je l'ai mentionné. :-)
La réponse de W5VO a tendance à se concentrer sur le back-end, ce qui constitue une différence majeure entre les flux ASIC et FPGA; mais il manque la partie vérification de la conception numérique.
Lorsqu'une conception sur silicium peut coûter un million de dollars et plus, et que vous pouvez placer beaucoup plus de portes utilisables sur un ASIC par rapport à un FPGA, vous passez beaucoup plus de temps à l'écart du laboratoire et des PCB devant des stations de travail exécutant des fermes de simulation. et des émulateurs et des tests d’écriture pour vérifier plus en détail la conception d’un ASIC avant de le publier pour la production. Les concepteurs de FPGA ont tendance à effectuer une grande partie de leurs tests en utilisant le FPGA dans le système dont il fera partie.
la source