Changes between Version 34 and Version 35 of ToolsCourseTp5


Ignore:
Timestamp:
Sep 29, 2008, 1:07:27 PM (16 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp5

    v34 v35  
    77Introduction :
    88
    9 Le but de ce TP est le dessin sous '''GRAAL''' d'une cellule inverseuse, d'un buffer et d'une porte Nand à 2 entrées.
     9Le but de ce TP est le dessin sous '''GRAAL''' d'une cellule inverseuse, d'une porte Nand à 2 entrées et d'une porte And à 2 entrées.
    1010
    1111Les notions de cellules précaractérisées, de gabarit et de hiérarchie de cellules seront introduites.
     
    1818'''GRAAL''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''DRUC'''.
    1919
    20 Cette séance a pour objectif de dessiner des cellule en tenant compte des règles de dessin suivantes :
     20Cette séance a pour objectif de dessiner des cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies].
    2121
    22 ftp://asim.lip6.fr/pub/amd2901/symb_rules00-1.pdf
    23 
    24 Il s'agit tout d'abord de la cellule inverseuse '''inv_x1''' sous la forme d'une cellule précaractérisée de la bibliothèque '''sxlib''' en respectant les règles de dessin fournies, puis le Nand2 au gabarit '''sxlib''', et enfin un buffer.
     22Il s'agit tout d'abord de la cellule inverseuse '''inv_x1''' sous la forme d'une cellule précaractérisée de la bibliothèque '''sxlib''' en respectant les règles de dessin fournies, puis le Nand2, et enfin le And2.
    2523
    2624= 2 Environnement technologique =
     
    4038  * les segments : DiffN, DiffP, Poly, Alu1, Alu2 ...
    4139  * le CAluX est utilisé pour désigner une portion possible pour les connecteurs,
    42   * les VIAs ou contacts :ContDiffN, ContDiffP, ContPoly et Via Metal1/Metal2,
     40  * les VIAs ou contacts :ContDiffN, ContDiffP, !ContPoly et Via Metal1/Metal2,
    4341  * les Big VIAs,
    4442  * les transistors : NMOS ou PMOS.
     
    7573{{{
    7674> export MBK_IN_LO=al
    77 
    7875> export YAGLE_BEH_FORMAT=vbe
    7976> yagle -s file1 file2
     
    8380 Avant tout vous devez utiliser la commande :
    8481{{{
    85 >source avt_env.sh
     82> source avt_env.sh
    8683}}}
    8784
     
    9491Cette 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.
    9592'''PROOF''' réalise cette opération entre les description file1.vbe et file2.vbe par la commande :
    96 
    9793{{{
    98 >proof file1 file2
     94> proof file1 file2
    9995}}}
    10096
    101 = 3 Schémas =
     97== 3 Le gabarit sxlib ==
    10298
    103   == 3.1 Inverseur ==
    104 
    105 Le schéma théorique d'un inverseur est présenté dans la figure suivante :
    106 
    107 [[Image(inv_x1.jpg,nolink)]]
    108 
    109   == 3.2 Schéma d'un Nand2 ==
    110 
    111 Le schéma théorique d'un buffer et la hiérarchie utilisée sont présentés dans la figure suivante :
    112 
    113 [[Image(na2.jpg,nolink)]]
    114 
    115 == 4 Le gabarit sxlib ==
     99[[Image(gabarit.jpg,nolink)]]
    116100
    117101  * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda.
     
    120104  * Les transistors P sont placés près du rail Vdd tandis que les transistors N sont placés près du rail Vss.
    121105  * Le caisson N doit avoir une hauteur de 24 lambdas :
    122 [[Image(gabarit.jpg,nolink)]]
    123106  * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la cellule et jouent le rôle de connecteurs "étalés".
    124107    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.
     
    130113    Il faut donc les relier respectivement à Vdd et à Vss.
    131114
     115= 4 Schémas =
     116
     117Les schéma théoriques d'un inverseur et d'un Nand2 sont présentés dans les figures suivantes :
     118
     119||[[Image(inv_x1.jpg,nolink)]]||[[Image(na2.jpg,nolink)]]||
     120
    132121= 5 Travail à effectuer =
    133122
    134123  == 5.1 Réalisation d'un inverseur ==
    135124
    136    * Décrire le comportement de la cellule inverseuse dans un fichier .vbe.
     125   * Décrire le comportement de la cellule inverseuse dans un fichier '''.vbe'''.
    137126   * Dessiner le "stick-diagram" de l'inverseur inv_x1 dont le schéma en transistors est représenté.
    138127   * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié.
    139128   * Valider les règles de dessin symbolique en lançant '''DRUC''' sous '''GRAAL'''.
    140    *  Extraire la netlist de l'inverseur au format .al avec '''COUGAR'''.
     129   * Extraire la netlist de l'inverseur au format '''.al''' avec '''COUGAR'''.
     130  * Extraire le VHDL comportemental avec '''YAGLE'''.
     131  * Effectuer la preuve formelle entre le fichier '''.vbe''' extrait par '''YAGLE''' et le fichier '''.vbe''' de la spécification initiale.
     132  * Automatisez la vérification en écrivant un Makefile.
    141133
    142   == 5.2 Réalisation d'un Nand2 ==
     134  == 5.2 Réalisation d'un Nand2 == 
    143135
    144   * Décrire le comportement de la cellule Nand à 2 entrées dans un fichier .vbe.
     136  * Décrire le comportement de la cellule Nand à 2 entrées dans un fichier '''.vbe'''.
    145137  * Dessiner le "stick-diagram" du Nand2 dont le schéma en transistors est représenté.
    146138  * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié.
    147139  * Valider les règles de dessin symbolique en lançant '''DRUC''' sous '''GRAAL'''.
    148   *  Extraire la netlist de la porte nand2 au format .al avec '''COUGAR'''.
     140  * Extraire la netlist de la porte nand2 au format '''.al''' avec '''COUGAR'''.
     141  * Extraire le VHDL comportemental avec '''YAGLE'''.
     142  * Effectuer la preuve formelle entre le fichier '''.vbe''' extrait par '''YAGLE''' et le fichier '''.vbe''' de la spécification initiale.
     143  * Automatisez la vérification en écrivant un Makefile.
     144
     145  == 5.3 Réalisation d'un And2 ==
     146
     147  * Décrire le comportement de la cellule And à 2 entrées dans un fichier '''.vbe'''.
     148  * Dessiner le "stick-diagram" du And2.
     149  * Définir la hiérarchie à utiliser pour créer cette cellule.
     150  * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié.
     151  * Valider les règles de dessin symbolique en lançant '''DRUC''' sous '''GRAAL'''.
     152  * Extraire la netlist de la porte nand2 au format '''.al''' avec '''COUGAR'''.
     153  * Extraire le VHDL comportemental avec '''YAGLE'''.
     154  * Effectuer la preuve formelle entre le fichier '''.vbe''' extrait par '''YAGLE''' et le fichier '''.vbe''' de la spécification initiale.
     155  * Automatisez la vérification en écrivant un Makefile.
     156
     157= 6 Rapport =
     158
     159Vous rédigerez un compte-rendu d'une page maximum pour ce TP dans lequel vous expliquerez les choix effectués pour la création des cellules, ainsi que la démarche de validation.
     160Vous joindrez les différents fichiers.