Flux de conception ASIC complet : des exigences à la production
Un flux de conception typique suit une structure décomposable en plusieurs étapes. Certaines phases se déroulent en parallèle, d'autres séquentiellement. Examinons un cycle de conception de projet typique dans l'industrie actuelle.
Exigences
Un client d'une firme de semi-conducteurs est généralement une autre entreprise qui prévoit d'utiliser la puce dans ses systèmes ou produits finaux. Les exigences du client jouent donc un rôle important dans la conception de la puce. La première étape consiste à recueillir les exigences, estimer la valeur marchande du produit final et évaluer les ressources nécessaires.
Spécifications
L'étape suivante consiste à collecter les "spécifications" décrivant abstraitement la fonctionnalité, l'interface et l'architecture globale de la puce à concevoir. Cela peut ressembler à :
- Puissance de calcul pour exécuter des algorithmes d'imagerie pour la réalité virtuelle
- Deux processeurs ARM A53 avec interconnect cohérent fonctionnant à 600 MHz
- Interfaces USB 3.0, Bluetooth et PCIe 2e génération
- Support d'affichage 1920x1080 pixels avec contrôleur approprié
Architecture
Les architectes définissent une vue système du fonctionnement de la puce. Ils décident des composants requis, de leurs fréquences d'horloge, et comment cibler les exigences de puissance et performance. Ils définissent aussi le flux de données à l'intérieur de la puce. Exemple : flux de données quand un processeur récupère des données d'imagerie de la RAM système et les exécute, pendant que le moteur graphique traite les données post-traitées du lot précédent.
Conception numérique
Du fait de la complexité des puces modernes, il n'est pas possible de construire depuis zéro ; de nombreux composants sont réutilisés. Une entreprise peut acheter un design FlexCAN ou le développer elle-même. Au lieu de concevoir depuis des blocs de base comme bascules et transistors CMOS, on développe une description comportementale pour analyser la conception en termes de fonctionnalité, performance et autres aspects haut niveau en utilisant un HDL comme Verilog ou VHDL. C'est le travail d'un concepteur numérique, similaire à un programmeur haut niveau avec des compétences en électronique numérique.
Vérification
Une fois le design RTL prêt, il doit être vérifié pour sa correction fonctionnelle. Par exemple, un processeur DSP doit émettre des transactions de bus pour récupérer des instructions de la mémoire ; comment savoir si cela se passera comme prévu ? La vérification fonctionnelle est nécessaire, réalisée avec des simulateurs EDA capables de modéliser le design et d'appliquer différents stimuli. C'est le rôle d'un ingénieur de vérification pré-silicium.
Pour gagner du temps, les équipes de conception et vérification travaillent en parallèle : les concepteurs "libèrent" une version RTL, et l'équipe de vérification développe l'environnement de test et les cas de test. Si des tests échouent, un "bug" est signalé et doit être corrigé dans la prochaine version RTL. Ce processus se répète jusqu'à atteindre un bon niveau de confiance.
Synthèse logique
Une fois le design validé, on le convertit en schéma matériel avec de vrais éléments comme portes combinatoires et bascules. Cette étape s'appelle la synthèse. Les outils de synthèse logique convertissent la description RTL en HDL vers une netlist au niveau portes. Cette netlist décrit le circuit en termes de portes et connexions. Exemple :
and_2_0 u_and2_0 ( .in_a (_net_112), .in_b (_net_56), .out (_net_222));
ff_lt u_ff_lt_122 (.d (_net_222), .clk (_net_11), .q (_net_76));
Les outils de synthèse assurent que la netlist respecte les spécifications de timing, surface et puissance. Ils accèdent à différents nœuds de technologie et bibliothèques d'éléments numériques pour faire des calculs intelligents. Ces bibliothèques proviennent des fonderies qui fournissent les caractéristiques de données pour différents composants.
Équivalence logique
La netlist au niveau portes est vérifiée pour l'équivalence logique avec le RTL, et parfois une "vérification au niveau portes" est effectuée à un niveau d'abstraction inférieur. Les temps de simulation sont plus lents en raison du grand nombre d'éléments et des informations de délai back-annotées.
Placement et routage
La netlist entre dans le flux de conception physique, où le placement et routage automatique (APR ou PnR) est fait avec des outils EDA comme Cadence Encounter et Synopsys IC Compiler. Cela sélectionne et place les cellules standard en rangées, définit les maps de broches pour les entrées/sorties, crée les couches métalliques, et place des tampons pour respecter le timing. Une fois terminé, un layout est généré et envoyé pour fabrication. Cette étape est gérée par l'équipe de conception physique.
Validation
Ce n'est pas fini. Un échantillon de puce sera fabriqué soit par la même firme, soit envoyé à une fonderie tierce comme TSMC ou Global Foundries. Cet échantillon passe par la validation post-silicium où une équipe d'ingénieurs exécute différents patterns sur un testeur. Le débogage est plus difficile qu'en pré-silicium car la visibilité sur les nœuds internes est drastiquement réduite. De plus, un million de cycles d'horloge s'écoulent en une seconde, rendre le traçage de l'erreur chronophage. Si des bugs réels sont trouvés, il faut corriger le RTL, reverifier et refaire toutes les étapes suivantes.
Bien qu'il y ait de nombreuses étapes, l'activité de conception se concentre surtout sur l'optimisation et la vérification de la description RTL. Il est important de noter que bien que les outils EDA automatisent les processus, une mauvaise utilisation mène à des conceptions inefficaces ; le concepteur doit faire des choix conscients.
Verilog
- Maîtriser Verilog : Tutoriel complet pour la conception de circuits numériques
- Couches d'abstraction de conception : Guide clair de l'architecture de puce
- 4 facteurs clés pour une conception efficace de tableau de contrôle
- Principes de Conception Essentiels pour les Enceintes de Contrôle en Automatisation Industrielle
- Maîtriser la conception d'armoires de commande électriques : principes clés et meilleures pratiques
- Réponses d'expert aux questions essentielles de conception PCB
- Améliorer le design PCB : stratégies éprouvées pour booster la performance anti-interférence
- Maîtriser l'atténuation des interférences PCB : guide professionnel pour assurer la conformité CEM
- Trois stratégies clés de conception pour une CEM optimale dans les PCB d'ordinateurs portables