Changes between Version 33 and Version 34 of ToolsCourseTp5


Ignore:
Timestamp:
Sep 29, 2008, 11:47:05 AM (16 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp5

    v33 v34  
    11{{{
    22#!html
    3 <h1> TP6 : Dessin de cellules précaractérisées</h1>
     3<h1> TP5 : Dessin de cellules précaractérisées</h1>
    44}}}
    55[[PageOutline]]
     
    77Introduction :
    88
    9 Le but de ce TP est le dessin sous '''GRAAL''' d'une cellule inverseuse et
    10 d'une porte Nand à 2 entrées.
     9Le but de ce TP est le dessin sous '''GRAAL''' d'une cellule inverseuse, d'un buffer et d'une porte Nand à 2 entrées.
    1110
    12 Les notions de cellules précaractérisées, de gabarit
    13 et de hiérarchie de cellules seront introduites.
     11Les notions de cellules précaractérisées, de gabarit et de hiérarchie de cellules seront introduites.
    1412
    15 = 1-Dessin d'un inverseur et d'une porte Nand2 sous GRAAL =
     13= Introduction =
    1614
    17 == Introduction ==
    18 Dans les TP précédents nous avons utilisé des cellules d'une bibliothèque. Cette biblioth
    19 èque peut être enrichie de nouvelles cellules grâce à l'éditeur '''GRAAL'''.
     15Dans les TP précédents nous avons utilisé des cellules d'une bibliothèque.
     16Cette bibliothèque peut être enrichie de nouvelles cellules grâce à l'éditeur '''GRAAL'''.
    2017
    2118'''GRAAL''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''DRUC'''.
    2219
    23 La première partie de cette séance a pour objectif de dessiner une cellule en tenant compte des règles de dessin
     20Cette séance a pour objectif de dessiner des cellule en tenant compte des règles de dessin suivantes :
    2421
    2522ftp://asim.lip6.fr/pub/amd2901/symb_rules00-1.pdf
    2623
     24Il 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.
    2725
    28 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 on dessinera le Nand2 au gabarit '''sxlib'''
     26= 2 Environnement technologique =
    2927
    30 
    31 
    32 === 1.1 Environnement technologique ===
    33 Certains outils utilisent un environnement technologique particulier. Il est désigné
    34 la variable d'environnement '''RDS_TECHNO_NAME''' qui doit être positionnée à
    35 
    36 opt/alliance/etc/cmos.rds :
     28Certains outils utilisent un environnement technologique particulier.
     29Il est désigné la variable d'environnement '''RDS_TECHNO_NAME''' qui doit être positionnée à ''opt/alliance/etc/cmos.rds'' :
    3730
    3831{{{
     
    4033}}}
    4134
    42 === 1.2 GRAAL ===
     35  == 2.1 GRAAL ==
    4336
    44 L'éditeur de layout '''GRAAL''' manipule plusieurs types d'objets différents que l'on peut
    45 créer avec le menu '''CREATE''' :
    46   * Les instances (importation de cellules physiques)
     37L'éditeur de layout '''GRAAL''' manipule plusieurs types d'objets différents que l'on peut créer avec le menu '''CREATE''' :
     38  * les instances (importation de cellules physiques),
     39  * les boîtes d'aboutement qui définissent les limites de la cellule,
     40  * les segments : DiffN, DiffP, Poly, Alu1, Alu2 ...
     41  * 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,
     43  * les Big VIAs,
     44  * les transistors : NMOS ou PMOS.
    4745
    48   * Les boîtes d'aboutement qui définissent les limites de la cellule
    49 
    50   * Les segments : DiffN, DiffP, Poly, Alu1, Alu2 ...
    51 
    52   * Le CAluX est utilisé pour désigner une portion possible pour les connecteurs.
    53 
    54   * Les VIAs ou contacts :ContDiffN, ContDiffP, ContPoly et Via Metal1/Metal2.
    55 
    56   * Les Big VIAs
    57 
    58   * Les transistors : NMOS ou PMOS
    59 
    60 '''GRAAL''' utilise la variable d'environnement '''GRAAL_TECHNO_NAME'''. Elle doit
    61 être positionnée à
    62 /opt/alliance/etc/cmos.graal.
     46'''GRAAL''' utilise la variable d'environnement '''GRAAL_TECHNO_NAME'''.
     47Elle doit être positionnée à ''/opt/alliance/etc/cmos.graal'' :
    6348
    6449{{{
     
    6651}}}
    6752
    68 === 1.3 COUGAR ===
    69 L'outil '''COUGAR''' est capable d'extraire la netlist d'un circuit aux formats .vst ou .al à partir d'une description au format .ap.
     53  == 2.2 COUGAR ==
     54
     55L'outil '''COUGAR''' est capable d'extraire la netlist d'un circuit aux formats '''.vst''' ou '''.al''' à partir d'une description au format '''.ap'''.
    7056
    7157Pour extraire au niveau transistor, la commande à utiliser est :
     
    7460}}}
    7561
    76 '''COUGAR''' utilise les variables d'environnement '''MBK_IN_PH''' et '''MBK_OUT_LO'''
    77 suivant les formats d'entrée et de sortie. Par exemple pour générer une netlist au format
    78 al à partir d'une description ap il faut écrire :
     62'''COUGAR''' utilise les variables d'environnement '''MBK_IN_PH''' et '''MBK_OUT_LO''' suivant les formats d'entrée et de sortie.
     63Par exemple pour générer une netlist au format '''.al''' à partir d'une description '''.ap''' il faut écrire :
    7964{{{
    8065> export MBK_IN_PH=ap
    81 
    8266> export MBK_OUT_LO=al
    83 
    8467> cougar -t file1 file2
    8568}}}
    8669
     70  == 2.3 YAGLE ==
    8771
    88 
    89 === 1.4 YAGLE ===
    90 l'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.''
    91 L'outil '''VASY''' permet de convertir une description VHDL comportementale du format '''.vhd''' au format '''.vbe'''. La commande à utiliser est :
     72l'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''.
     73L'outil '''VASY''' permet de convertir une description VHDL comportementale du format '''.vhd''' au format '''.vbe'''.
     74La commande à utiliser est :
    9275{{{
    9376> export MBK_IN_LO=al
     
    9780> vasy -a -I vhd file1 file2
    9881}}}
     82
    9983 Avant tout vous devez utiliser la commande :
    10084{{{
     
    10589Les documentations pour cet outil se trouvent en :'''/users/soft/AvtTools2003/doc '''.
    10690
    107 === 1.5 PROOF ===
    108 Lorsqu'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''' 2n vecteurs pour les deux descriptions et les comparer.
     91  == 2.4 PROOF ==
     92
     93Lorsqu'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.
    10994Cette 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.
    110 '''PROOF''' réalise cette opération entre les description file1.vbe et file2.vbe par la commande
     95'''PROOF''' réalise cette opération entre les description file1.vbe et file2.vbe par la commande :
     96
    11197{{{
    11298>proof file1 file2
    11399}}}
    114 == 2 Schéma d'un inverseur ==
    115 Le schéma théorique d'un inverseur est présenté
     100
     101= 3 Schémas =
     102
     103  == 3.1 Inverseur ==
     104
     105Le schéma théorique d'un inverseur est présenté dans la figure suivante :
     106
    116107[[Image(inv_x1.jpg,nolink)]]
    117108
    118 == 3 Schéma d'un Nand2 ==
    119 Le schéma théorique d'un buffer et la hiérarchie utilisée sont présentés
     109  == 3.2 Schéma d'un Nand2 ==
     110
     111Le schéma théorique d'un buffer et la hiérarchie utilisée sont présentés dans la figure suivante :
     112
    120113[[Image(na2.jpg,nolink)]]
    121114
     115== 4 Le gabarit sxlib ==
    122116
     117  * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda.
     118  * Les alimentations Vdd et Vss sont réalisées en Calu1 ;
     119    elles ont une largeur de 6 lambdas et sont placées horizontalement en haut et en bas de la cellule.
     120  * Les transistors P sont placés près du rail Vdd tandis que les transistors N sont placés près du rail Vss.
     121  * Le caisson N doit avoir une hauteur de 24 lambdas :
     122[[Image(gabarit.jpg,nolink)]]
     123  * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la cellule et jouent le rôle de connecteurs "étalés".
     124    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.
     125  * Les segments spéciaux TAlux (TAlu1, TAlu2, ...) servent à désigner les obstacles au routeur Lorsque vous voulez protéger des segments AluX,
     126    il faut les recouvrir ou les entourer de TAlux correspondant (même couche).
     127    Les TAluX sont placés sur une grille au pas de 5 lambdas .
     128  * La largeur minimale de CAlu1 est de 2 lambdas, plus 1 lambda pour l'extension.
     129  * Les caissons N et P doivent être polarisés.
     130    Il faut donc les relier respectivement à Vdd et à Vss.
    123131
    124 == 4 Le gabarit sxlib ==
    125   * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda
     132= 5 Travail à effectuer =
    126133
    127   * Les alimentations Vdd et Vss sont réalisées en Calu1 ; elles ont une largeur de 6 lambdas
    128     et sont placées horizontalement en haut et en bas de la cellule
     134  == 5.1 Réalisation d'un inverseur ==
    129135
    130  * Les transistors P sont placés près du rail Vdd tandis que les transistors N sont
    131    placés près du rail Vss
     136   * Décrire le comportement de la cellule inverseuse dans un fichier .vbe.
     137   * Dessiner le "stick-diagram" de l'inverseur inv_x1 dont le schéma en transistors est représenté.
     138   * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié.
     139   * 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'''.
    132141
    133   * Le caisson N doit avoir une hauteur de 24 lambdas
    134     [[Image(gabarit.jpg,nolink)]]
     142  == 5.2 Réalisation d'un Nand2 ==
    135143
    136   * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la
    137     cellule et jouent le rôle de connecteurs "étalés". Ils doivent obligatoirement être
    138     placés sur une grille de 5x5 lambdas et peuvent se trouver n'importe où à l'intérieur de
    139     la cellule
    140 
    141   * Les segments spéciaux TAlux (TAlu1, TAlu2, ...) servent à désigner les obstacles
    142     au routeur Lorsque vous voulez protéger des segments AluX, il faut les recouvrir
    143     ou les entourer de TAlux correspondant (même couche). Les TAluX sont placés
    144     sur une grille au pas de 5 lambdas
    145 
    146   * La largeur minimale de CAlu1 est de 2 lambdas, plus 1 lambda pour l'extension
    147   * Les caissons N et P doivent être polarisés. Il faut donc les relier respectivement 
    148     à Vdd et à Vss
    149 
    150 
    151 == 5 Travail à effectuer ==
    152 === 5.1 Réalisation d'un inverseur ===
    153    * Décrire le comportement de la cellule inverseuse dans un fichier .vbe
    154 
    155    * Dessiner le "stick-diagram" de l'inverseur inv_x1 dont le schéma en transistors
    156   est représenté
    157 
    158    * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié
    159 
    160    * Valider les règles de dessin symbolique en lançant '''DRUC''' sous '''GRAAL'''
    161 
    162   *  Extraire la netlist de l'inverseur au format .al avec '''COUGAR'''
    163 
    164  
    165 
    166 === 5.2 Réalisation d'un Nand2 ===
    167  * Décrire le comportement de la cellule Nand à 2 entrées dans un fichier .vbe
    168 
    169    * Dessiner le "stick-diagram" du Nand2 dont le schéma en transistors
    170   est représenté
    171 
    172    * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié
    173 
    174    * Valider les règles de dessin symbolique en lançant '''DRUC''' sous '''GRAAL'''
    175 
    176   *  Extraire la netlist de la porte nand2 au format .al avec '''COUGAR'''
    177 
    178 
    179 
    180  
    181 N'oubliez pas que les mans existent
    182 
     144  * Décrire le comportement de la cellule Nand à 2 entrées dans un fichier .vbe.
     145  * Dessiner le "stick-diagram" du Nand2 dont le schéma en transistors est représenté.
     146  * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié.
     147  * 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'''.