Flot de conception
Un flot de conception est la combinaison explicite des outils de conception assistée par ordinateur (CAO) pour réaliser la conception d'un circuit intégré.
La loi de Moore a été le moteur de flots entiers de conception et d'implémentation de circuits intégrés RTL à GDSII, qui comprennent la synthèse, le placement et les algorithmes de routage pour l'intégration du système et des étapes d'analyse de timing appelées en anglais "design closure". Les défis engendrés par le retard croissant dans les interconnexions ont fait émerger une nouvelle façon de penser et d'intégrer les outils de design closure. Les défis de réduction de la taille des composants comme les fuites de courant, la variabilité et la fiabilité remettront sans cesse en cause l'état de l'art actuel en matière de design closure.
Histoire
[modifier | modifier le code]Le flot RTL à GDSII a subi d'importantes évolutions de 1980 à 2005. La réduction progressive de taille des technologies CMOS a considérablement modifié les objectifs des nombreuses étapes de conception. Le manque d'outils fiables de prédiction des délais a entrainé des changements conséquents dans les flots de conception récents. Les défis tels que les fuites de courant, la variabilité et la fiabilité continueront d'exiger à l'avenir de grands remaniements dans le procédé de design closure.
Plusieurs facteurs expliquent ce qui a amené le flot de conception d'un ensemble d'étapes de conception distinctes à une approche totalement intégrée et que d'autres changements sont à venir pour faire face aux nouveaux défis. Dans son discours intitulé « The Tides of EDA »[1] lors du 40e anniversaire de la conférence "Design Automation Conference" en 2003, Alberto Sangiovanni-Vincentelli distingue trois périodes dans la CAD :
- L'Ère de l'invention : durant la période d'invention, le routage, le placement, l'étude statique de timing et la synthèse logique ont été inventés ;
- L'Ère de l'implémentation : pendant l’Ère de l'implémentation, ces étapes ont été radicalement améliorées grâce à la conception de structures de données sophistiquées et d'algorithmes avancés. Ceci a permis aux outils de chacune des étapes de conception de pouvoir suivre la croissance rapide des tailles de circuits. Néanmoins, en raison de l'absence de bonnes fonctions de coûts prévisionnels, il est devenu impossible d'exécuter un flot de conception par une série d'étapes séparées, quelle que soit la manière dont chacune des étapes a été efficacement mise en œuvre ;
- L'Ère de l'intégration: l'Ere de l'implémentation a mené naturellement à l’Ère de l'intégration où la plupart des étapes de conception sont effectuées dans un environnement intégré, entraîné par un ensemble d'analyseurs de coûts successifs.
La description des différentes étapes de conception des circuits intégrés numériques, analogiques et RF, que l'on retrouve dans les flots actuels de conception, est proposée dans cet article.
Préparer le terrain
[modifier | modifier le code]La première étape est avant tout l'élaboration du Design Kit. Il s'agit d'un kit regroupant toutes les informations relatives à la technologie en question :
- la liste des layers utilisés ;
- des modèles pour effectuer des simulations ;
- une liste de règles de dessin ;
- souvent, quelques briques de base.
Grâce à lui, les concepteurs peuvent créer les éléments dans les outils de CAO.
Les briques de base
[modifier | modifier le code]Ce sont toutes les pièces qui permettent aux outils de faire le lien entre une fonction, et son équivalent sur le silicium.
Les fondations
[modifier | modifier le code]Un certain nombre de cellules élémentaires sont développées, afin de fournir les fonctions élémentaires pour les étapes suivantes. On trouve par exemple :
- les standard cells dont la fonction est d'apporter les opérations logiques de base ;
- les cellules d'IO qui fournissent l'interface entre le circuit et le monde extérieur ;
- les points mémoire pour la création des bancs de mémoire intégrées.
La conception de ces circuits analogiques se fait au niveau transistor, avec validations par simulations électriques.
La caractérisation
[modifier | modifier le code]Lorsque les « briques de base » sont prêtes, elles ne sont cependant pas utilisables par des outils automatiques. Ces derniers étant nécessaires à cause de la taille des circuits actuels, il faut alors une étape de caractérisation pour préparer leur utilisation.
On obtient grâce à cela un modèle simplifié pour chaque cellule, permettant de reproduire le comportement de la cellule au niveau transistor.
Les bibliothèques et IP
[modifier | modifier le code]De manière générale, une bibliothèque regroupe un ensemble de cellules sous forme d'informations pour les outils automatiques. Cela inclut les briques de bases, mais aussi un certain nombre de cellules complexes, qui ont cependant besoin d'être développées au niveau transistor. C'est le cas des circuits analogiques (exemple : convertisseurs analogiques/numériques) et des circuits RF (exemple : boucle à verrouillage de phase).
Les IPs (de l'anglais Intellectual Properties) sont des cellules complexes qui sont développées dans un but précis, tel que par exemple les interfaces de gestion des protocoles standardisés ou des blocs capables d'effectuer des opérations avancées (processeurs, codage/décodage...).
Si les IPs peuvent être livrées sous forme de bibliothèques, celles qui ont une fonction purement numérique peuvent être livrées sous forme de RTL, à la charge de l'utilisateur de les faire passer dans le flot numérique.
La fonction
[modifier | modifier le code]Un circuit est conçu pour remplir une ou plusieurs fonctions, qui sont définies dans un cahier des charges. Alors commence la phase de conception du circuit lui-même, à l'aide du flot RTL-to-Gate, qui est un flot de conception numérique. Étant donné que les circuits analogiques et RF sont conçus au niveau transistor, on passe directement de la conception/simulation du circuit au dessin des masques manuel (pas d'automatisation possible).
Le RTL (Register Transfer Level)
[modifier | modifier le code]Il s'agit de décrire et de valider le comportement du circuit en utilisant un langage de programmation adapté. Ce que l'on appelle RTL est le code source, qui décrit un comportement logique. Une phase de validation importante est effectuée à cause de la nature immuable du circuit intégré lorsqu'il est produit.
La synthèse
[modifier | modifier le code]C'est la première étape qui rattache le circuit en cours de conception à la technologie, et la première aussi qui est automatisée. Le but de la synthèse est de prendre le RTL et d'aller chercher dans les bibliothèques de base les fonctions élémentaires qui la compose. On obtient alors une netlist. Celle-ci sera utilisée par la suite par un outil de conception dans un flot, comme la DFT (Design For Test) de Mentor Graphics.
Le placement et le routage
[modifier | modifier le code]Cette étape nous rapproche cette fois de ce que sera le circuit final. Il s'agit d'effectuer les deux opérations suivantes :
- le placement prend la liste des cellules de base qui font la fonction du circuit, et les répartit géographiquement sur l'empreinte donnée,
- le routage n'a plus alors qu'à tirer les fils pour interconnecter les entrées et les sorties des cellules.
On obtient à la fin une image de ce que sera le circuit sous la forme d'un fichier au format GDSII.
La validation
[modifier | modifier le code]Un certain nombre de vérifications sont faites après le placement et routage pour s'assurer du bon fonctionnement du circuit lorsqu'il sera produit :
- vérification des connexions par rapport au RTL (par un Layout Versus Schematic/LVS et une preuve formelle);
- vérification de la fréquence de fonctionnement du circuit (Timing Analysis);
- vérification des règles de dessin (Design Rule Check/DRC).
Si ce test est correct, le circuit est considéré comme bon et il peut être envoyé en production.
L'implémentation physique
[modifier | modifier le code]Les étapes précédentes ont fourni une image de comment devraient être dessinés les transistors, il faut maintenant les graver dans le silicium.
Les masques
[modifier | modifier le code]Le procédé utilisé étant principalement la photolithographie, il faut générer un certain nombre de masques. À partir du fichier GDSII, un masque est créé pour chaque couche (de l'anglais layer) de matériau.
Les wafers
[modifier | modifier le code]Le silicium utilisé est d'abord rendu pur par cristallisation, puis découpé en tranches fines. Ce sont ces tranches que l'on appelle les wafers et dans lesquelles sont gravés les transistors.
La gravure des transistors peut alors se faire par photolithographie tel que cela est décrit dans la page des circuits intégrés.
Test
[modifier | modifier le code]La taille de gravure des transistors étant relativement réduite, le procédé de fabrication est très sensible aux poussières et aux conditions de gravure. Le bon fonctionnement du circuit doit alors être testé. Cette opération est faite par le tri des plaques.
Notes et références
[modifier | modifier le code]- (en) A. Sangiovanni-Vincentelli, « The tides of EDA », IEEE Design Test of Computers, vol. 20, nᵒ 6, p. 59 ‑ 75, dec. 2003.
Voir aussi
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (fr)
Bibliographie
[modifier | modifier le code]- (en) Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer