Changes between Initial Version and Version 1 of ToolsTp4-2010


Ignore:
Timestamp:
Dec 8, 2009, 10:58:32 AM (15 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsTp4-2010

    v1 v1  
     1{{{
     2#!html
     3<h1> TP3 : Vue Physique</h1>
     4}}}
     5[[PageOutline]]
     6
     7= 1 Dessin de cellule =
     8
     9  == 1.1 Introduction ==
     10
     11Le but de cet exercice est le dessin sous '''GRAAL''' d'une Nand à 2 entrées.
     12Les notions de cellules précaractérisées et de de gabarit seront introduites.
     13
     14Dans les TP précédents nous avons utilisé des cellules d'une bibliothèque.
     15Cette bibliothèque peut être enrichie de nouvelles cellules grâce à l'éditeur '''GRAAL'''.
     16
     17'''GRAAL''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''DRUC'''.
     18
     19Cet exercice a pour objectif de dessiner une cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies].
     20
     21Remarque : certains outils utilisent un environnement technologique particulier.
     22Il est désigné la variable d'environnement '''RDS_TECHNO_NAME''' qui doit être positionnée à ''opt/alliance/etc/cmos.rds'' :
     23
     24{{{
     25> export RDS_TECHNO_NAME=/opt/alliance/etc/cmos.rds
     26}}}
     27
     28  == 1.2 Outils utilisés ==
     29
     30    === GRAAL ===
     31
     32L'éditeur de layout '''GRAAL''' manipule plusieurs types d'objets différents que l'on peut créer avec le menu '''CREATE''' :
     33  * les instances (importation de cellules physiques),
     34  * les boîtes d'aboutement qui définissent les limites de la cellule,
     35  * les segments : DiffN, DiffP, Poly, Alu1, Alu2 ...
     36  * le CAluX est utilisé pour désigner une portion possible pour les connecteurs,
     37  * les VIAs ou contacts :ContDiffN, ContDiffP, !ContPoly et Via Metal1/Metal2,
     38  * les Big VIAs,
     39  * les transistors : NMOS ou PMOS.
     40
     41'''GRAAL''' utilise la variable d'environnement '''GRAAL_TECHNO_NAME'''.
     42Elle doit être positionnée à ''/opt/alliance/etc/cmos.graal'' :
     43
     44{{{
     45> export GRAAL_TECHNO_NAME=/opt/alliance/etc/cmos.graal
     46}}}
     47
     48    === COUGAR ===
     49
     50L'outil '''COUGAR''' est capable d'extraire la netlist d'un circuit aux formats '''.vst''' ou '''.al''' à partir d'une description au format '''.ap'''.
     51
     52Pour extraire au niveau transistor, la commande à utiliser est :
     53{{{
     54> cougar -t file1 file2
     55}}}
     56
     57'''COUGAR''' utilise les variables d'environnement '''MBK_IN_PH''' et '''MBK_OUT_LO''' suivant les formats d'entrée et de sortie.
     58Par exemple pour générer une netlist au format '''.al''' à partir d'une description '''.ap''' il faut écrire :
     59{{{
     60> export MBK_IN_PH=ap
     61> export MBK_OUT_LO=al
     62> cougar -t file1 file2
     63}}}
     64
     65    === YAGLE ===
     66
     67L'outil ''' YAGLE ''' est capable d'extraire la description VHDL comportementale d'uncircuit au format '''.vhd''' à partir d'une ''netlist '' au format '''.al''' ''si celle-ci est au niveau transistor''.
     68
     69L'outil '''VASY''' permet de convertir une description VHDL comportementale du format '''.vhd''' au format '''.vbe'''.
     70La commande à utiliser est :
     71{{{
     72> export MBK_IN_LO=al
     73> export YAGLE_BEH_FORMAT=vbe
     74> yagle -s file1 file2
     75> vasy -a -I vhd file1 file2
     76}}}
     77
     78Avant tout vous devez utiliser la commande :
     79{{{
     80> source avt_env.sh
     81}}}
     82
     83avec le fichier [attachment:avt_env.sh avt_env.sh].
     84Cette commande permet de mettre en place l'environnement nécessaire à l'utilisation de '''YAGLE'''.
     85
     86Les documentations pour cet outil se trouvent en :'''/users/soft/AvtTools2003/doc '''.
     87
     88    === PROOF ===
     89
     90Lorsqu'on veut prouver l'équivalence de deux descriptions comportementales de type ''dataflow'' d'un même circuit à n entrées, on peut simuler par '''asimut''' des vecteurs pour les deux descriptions et les comparer.
     91Cette solution devient vite coûteuse en temps CPU et il vaut mieux faire appel à un outil de preuve formelle qui effectue la comparaison ''mathématique'' des deux réseaux booléens.
     92'''PROOF''' réalise cette opération entre les description file1.vbe et file2.vbe par la commande :
     93{{{
     94> proof file1 file2
     95}}}
     96
     97  == 1.3 Le gabarit sxlib ==
     98
     99  * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda.
     100  * Les alimentations Vdd et Vss sont réalisées en Calu1 ;
     101    elles ont une largeur de 6 lambdas et sont placées horizontalement en haut et en bas de la cellule.
     102  * Les transistors P sont placés près du rail Vdd tandis que les transistors N sont placés près du rail Vss.
     103  * Le caisson N doit avoir une hauteur de 24 lambdas :
     104  * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la cellule et jouent le rôle de connecteurs "étalés".
     105    Ils doivent obligatoirement être   placés sur une grille de 5x5 lambdas et peuvent se trouver n'importe où à l'intérieur de la cellule.
     106  * Les segments spéciaux TAlux (TAlu1, TAlu2, ...) servent à désigner les obstacles au routeur Lorsque vous voulez protéger des segments AluX,
     107    il faut les recouvrir ou les entourer de TAlux correspondant (même couche).
     108    Les TAluX sont placés sur une grille au pas de 5 lambdas.
     109  * La largeur minimale de CAlu1 est de 2 lambdas, plus 1 lambda pour l'extension.
     110  * Les caissons N et P doivent être polarisés.
     111    Il faut donc les relier respectivement à Vdd et à Vss.
     112
     113Le schéma de la figure suivante présente un résumé de ces contraintes :
     114
     115[[Image(gabarit_sxlib.jpg,nolink)]]
     116
     117  == 1.4 Travail à effectuer ==
     118
     119Le schéma théorique du Nand2 est présenté dans la figure suivante :
     120
     121[[Image(na2.jpg,nolink)]]
     122
     123Réaliser les étapes suivantes :
     124
     125    * Décrire le comportement de la cellule dans un fichier au format '''.vbe'''.
     126    * Dessiner sur papier un stick-diagram.
     127    * Saisir sous '''graal''' le dessin de la cellule en respectant le gabarit SXLIB.
     128        * On utilisera les largeurs suivantes pour les transistors : WN = WP = 10.
     129    * Valider les règles de dessin symbolique en lançant la commande '''DRUC''' sous graal.
     130    * Utilisez la commande '''EQUI''' pour vérifier la connectivité des équipotentielles.
     131    * Extraire la netlist de l'inverseur au format '''.al''' avec '''cougar'''.
     132    * Utiliser les outils '''yagle''' et '''proof''' pour vérifier le comportement.
     133    * Créer un '''Makefile''' pour automatiser les différentes étapes.
     134
     135N'oubliez pas que les mans existent ...
     136
     137= 2 Routage manuel =
     138
     139TODO
     140
     141= 3 Placement de l'addaccu =
     142
     143TODO
     144
     145= 4 Compte rendu =
     146
     147Vous rédigerez un compte-rendu de deux pages maximum pour ce TP dans lequel vous expliquerez les choix effectués pour la création de la cellule Nand ainsi que la démarche de validation.
     148Vous expliquerez également la façon dont vous avez routé l'additionneur.
     149Vous expliquerez enfin la façon dont vous avez placé les colonnes de votre addaccu.
     150
     151Vous joindrez vos fichiers source sans oublier les fichiers Makefile.