Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Verilog

Flux de conception ASIC

Un flux de conception typique suit une structure illustrée ci-dessous et peut être décomposé en plusieurs étapes. Certaines de ces phases se déroulent en parallèle et d'autres séquentiellement. Nous examinerons à quoi ressemble un cycle de conception de projet typique dans l'industrie aujourd'hui.

Exigences

Un client d'une entreprise de semi-conducteurs est généralement une autre entreprise qui envisage d'utiliser la puce dans ses systèmes ou ses produits finaux. Ainsi, les exigences du client jouent également un rôle important dans le choix de la conception de la puce. Naturellement, la première étape serait de collecter les besoins, d'estimer la valeur marchande du produit final et d'évaluer le nombre de ressources nécessaires pour réaliser le projet.

Spécifications

L'étape suivante consisterait à collecter des "spécifications" décrivant de manière abstraite la fonctionnalité, l'interface et l'architecture globale de la puce à concevoir. Cela peut être quelque chose comme :

  1. Nécessite une puissance de calcul pour exécuter des algorithmes d'imagerie prenant en charge la réalité virtuelle
  2. Nécessite deux processeurs ARM A53 avec une interconnexion cohérente et doit fonctionner à 600 MHz
  3. Nécessite des interfaces USB 3.0, Bluetooth et PCIe 2e génération
  4. Doit prendre en charge l'affichage 1 920 x 1 080 pixels avec le contrôleur approprié

Architecture

Maintenant, les architectes proposent une vue au niveau du système sur la façon dont la puce devrait fonctionner. Ils décideront quels autres composants sont nécessaires, quelles fréquences d'horloge ils doivent exécuter et comment cibler les besoins en puissance et en performances. Ils décident également de la manière dont les données doivent circuler à l'intérieur de la puce. Un exemple serait le flux de données lorsqu'un processeur récupère les données d'imagerie de la mémoire vive du système et les exécute. Pendant ce temps, le moteur graphique exécutera les données post-traitées du lot précédent déversées dans une autre partie de la mémoire et ainsi de suite.

Conception numérique

En raison de la nature complexe des puces modernes, il n'est pas possible de construire quelque chose à partir de rien et, dans de nombreux cas, de nombreux composants seront réutilisés. Supposons que l'entreprise X ait besoin d'un module FlexCAN pour interagir avec d'autres modules dans une automobile. Ils peuvent soit acheter la conception FlexCAN d'une autre entreprise pour économiser du temps et des efforts, soit dépenser des ressources pour en construire une par eux-mêmes. De plus, il n'est pas pratique de concevoir un tel système à partir de blocs de construction de base tels que des bascules et des transistors CMOS. Au lieu de cela, une description comportementale est développée pour analyser la conception en termes de fonctionnalités, de performances et d'autres problèmes de haut niveau à l'aide d'un langage de description de matériel tel que Verilog ou VHDL. Cela est généralement effectué par un concepteur numérique et ressemble un peu à un programmeur informatique de haut niveau doté de compétences en électronique numérique.

Vérification

Une fois que la conception RTL est prête, elle doit être vérifiée pour son exactitude fonctionnelle. Par exemple, un processeur DSP est censé émettre des transactions de bus pour extraire des instructions de la mémoire, mais comment savons-nous que cela se produira comme prévu ? Ainsi, une vérification fonctionnelle est requise à ce stade, qui est effectuée à l'aide de simulateurs EDA capables de modéliser la conception et de lui appliquer différents stimuli. C'est le travail d'un ingénieur de vérification pré-silicium.

Pour gagner du temps et atteindre la clôture fonctionnelle, les équipes de conception et de vérification opèrent en parallèle lorsque les concepteurs « publient » une version RTL, et l'équipe de vérification développe un environnement de banc d'essai et des cas de test pour tester la fonctionnalité de cette version RTL. Si l'un de ces tests échoue, cela peut indiquer un problème de conception et un "bogue" sera signalé sur cet élément de conception. Ce bogue devra être corrigé dans la prochaine version de la version RTL de l'équipe de conception. Ce processus se poursuit jusqu'à ce qu'il y ait un bon niveau de confiance dans l'exactitude fonctionnelle de la conception.

Synthèse logique

Maintenant que nous sommes satisfaits de la conception, il est temps de convertir cela en schéma matériel avec de vrais éléments comme des portes combinatoires et des bascules. Cette étape est appelée synthèse. Les outils de synthèse logique permettent la conversion de la description RTL en HDL en une netlist au niveau de la porte. Cette netlist n'est rien d'autre qu'une description du circuit en termes de portes et de connexions entre elles. Cela pourrait ressembler à :

  
  
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 logique garantissent que la netlist respecte les spécifications de synchronisation, de zone et de puissance. En règle générale, ils ont accès à différents processus de nœuds technologiques et à des bibliothèques d'éléments numériques et peuvent effectuer des calculs intelligents pour répondre à tous ces différents critères. Ces bibliothèques sont obtenues à partir d'usines de semi-conducteurs qui fournissent des caractéristiques de données pour différents composants comme les temps de montée/descente pour les bascules, le temps d'entrée-sortie pour les portes combinatoires, etc.

Équivalence logique

La netlist au niveau de la porte est ensuite vérifiée pour l'équivalence logique avec la RTL, et parfois une "vérification au niveau de la porte" est effectuée où la vérification de certains éléments est effectuée une fois de plus, la différence étant que cette fois c'est au niveau de la porte et à un niveau inférieur de l'abstraction. Les temps de simulation ont tendance à être plus lents en raison du grand nombre d'éléments impliqués dans la conception à ce stade ainsi que des informations de retard annotées.

Emplacement et routage

La netlist est ensuite entrée dans le flux de conception physique, où le placement et l'itinéraire automatiques (APR ou PnR) sont effectués à l'aide d'outils EDA. Un bon exemple de tels outils est Cadence Encounter et Synopsys IC Compiler. Cela sélectionnera et placera des cellules standard dans des rangées, définira des cartes de balle pour l'entrée-sortie, créera différentes couches métalliques et placera des tampons pour respecter le timing. Une fois ce processus terminé, une mise en page est générée et généralement envoyée pour fabrication. Cette étape est généralement gérée par l'équipe de conception physique qui connaît bien le nœud technologique et les détails de mise en œuvre physique.

Validation

Cela ne s'arrête pas là. Un échantillon de puce sera fabriqué soit par la même entreprise de semi-conducteurs, soit envoyé à une fonderie tierce comme TSMC ou Global Foundries. Cet échantillon passe maintenant par un processus de validation post-silicium où une autre équipe d'ingénieurs exécute différents modèles sur un testeur. Il est beaucoup plus difficile de déboguer dans la validation post-silicium que dans la vérification pré-silicium simplement parce que le niveau de visibilité sur les nœuds internes d'une puce est considérablement réduit. De plus, un million de cycles d'horloge se seraient terminés en une seconde et remonter jusqu'au moment exact de l'erreur prendrait du temps. S'il y a de vrais problèmes ou des bogues de conception trouvés à ce stade, cela devra être corrigé dans RTL, revérifié et toutes les étapes qui suivent devront être effectuées.

Même s'il y a plusieurs étapes dans le flux de conception, une grande partie de l'activité de conception est généralement concentrée sur l'optimisation et la vérification de la description RTL du circuit. Il est important de noter que bien que des outils EDA soient disponibles pour automatiser les processus, une mauvaise utilisation conduira à des conceptions inefficaces et, par conséquent, un concepteur doit faire des choix conscients au cours du processus de conception.


Verilog

  1. Tutoriel Verilog
  2. Concevoir des couches d'abstraction
  3. Les quatre principaux aspects d'une bonne conception du panneau de commande
  4. Bases de conception des boîtiers de commande dans les machines, l'automatisation et l'industrie
  5. Principes de base de la conception du panneau de commande
  6. Des réponses courtes aux grandes questions sur la conception de PCB
  7. Méthodes pour renforcer la capacité anti-interférence dans la conception de PCB
  8. Comment vaincre les interférences dans la conception de PCB
  9. Trois considérations de conception garantissant la compatibilité électromagnétique du circuit imprimé d'un ordinateur portable