Changes between Version 1 and Version 2 of MOCCA-TP1-2021


Ignore:
Timestamp:
Sep 20, 2019, 6:29:15 AM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MOCCA-TP1-2021

    v1 v2  
    11{{{
    22#!html
    3 <h1> TP3 : Dessin de cellule </h1>
     3<h1> TP1 : Dessin de cellule </h1>
    44}}}
    55[[PageOutline]]
    66
    7   == Introduction ==
     7== Introduction ==
    88
    99Le but de cet exercice est le dessin sous '''graal''' d'une Nand à 2 entrées.
    1010Les notions de cellules précaractérisées et de de gabarit seront introduites.
    1111
    12 Dans les TP précédents nous avons utilisé des cellules d'une bibliothèque.
    13 Cette bibliothèque peut être enrichie de nouvelles cellules grâce à l'éditeur '''graal'''.
     12Dans les TP suivant nous allons utiliser des cellules de la bibliothèque d'Alliance.
     13Cette bibliothèque peut être enrichie de nouvelles cellules grâce à l'éditeur '''graal''' et nous pouvons même recréer une bibliothèque avec un minimum de cellules.
    1414
    1515'''graal''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''druc'''.
    1616
    17 Cet exercice a pour objectif de dessiner une cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies].
    18 
    19 Vous devez travailler dans l'environnement Allaince. Vérifier que cette variable est bien positionnée :
     17L'objectif du jour est de dessiner une cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies].
     18Vous devez travailler dans l'environnement Alliance. Vérifier que cette variable est bien positionnée :
    2019
    2120{{{
     
    2928}}}
    3029
    31   == Outils utilisés ==
     30== Outils utilisés
    3231
    33     === Graal ===
     32=== Graal
    3433
    3534L'éditeur de layout '''graal''' manipule plusieurs types d'objets différents que l'on peut créer avec le menu '''create''' :
     
    4443'''graal''' utilise la variable d'environnement '''GRAAL_TECHNO_NAME'''. Vérifiez qu'elle est bien positionnée à ''/users/outil/alliance/Linux.SLSoC5x/etc/cmos.graal'' :
    4544
    46     === Cougar ===
     45=== Cougar
    4746
    4847L'outil '''cougar''' est capable d'extraire la netlist d'un circuit aux formats '''.vst''' ou '''.al''' à partir d'une description au format '''.ap'''.
     
    6160}}}
    6261
    63     === Yagle et Proof ===
     62=== Yagle et Proof
    6463
    6564L'outil '''yagle''' est capable d'extraire la description VHDL comportementale d'uncircuit au format '''.vbe''' à partir d'une ''netlist '' au format '''.al''' ''si celle-ci est au niveau transistor''.
     
    7069}}}
    7170
    72     === Proof ===
     71=== Proof
    7372
    7473Lorsqu'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.
     
    7978}}}
    8079
    81   == Le gabarit sxlib ==
     80== Le gabarit sxlib
    8281
    8382  * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda.
    84   * Les alimentations Vdd et Vss sont réalisées en Calu1 (centrés à 3 et 47 lambdas en Y);
    85     elles ont une largeur de 6 lambdas et sont placées horizontalement en haut et en bas de la cellule.
    86   * Les transistors P sont placés près du rail Vdd tandis que les transistors N sont placés près du rail Vss.
     83  * Les alimentations VDD et VSS sont réalisées en **CALU1** (centrés à 3 et 47 lambdas en Y);
     84     elles ont une largeur de 6 lambdas et sont placées horizontalement en haut et en bas de la cellule.
     85  * Attention à ne pas confondre **CALU1** et **ALU1**. Ils sont de même nature (c'est la première couche de métal) mais
     86     le premier à la proprité "connecteur" et il est "visible" du routeur, alors que le second est invisible et sert seulement à la
     87     connectique. Les segments spéciaux CALUX (CALU1, CALU2, CALU3...) forment l'interface de la cellule et jouent le rôle
     88     de connecteurs "étalés".  Ils doivent obligatoirement être   placés sur une grille de 5x5 lambdas et peuvent se trouver
     89     n'importe où à l'intérieur de la cellule.
     90  * La largeur minimale de CALU1 est de 2 lambdas, plus 1 lambda pour l'extension.
     91  * Les transistors P sont placés près du rail VDD tandis que les transistors N sont placés près du rail VSS.
    8792  * Le caisson N doit avoir une hauteur de 24 lambdas (centré à 39 lambdas en Y):
    88   * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la cellule et jouent le rôle de connecteurs "étalés".
    89     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.
    90   * La largeur minimale de CAlu1 est de 2 lambdas, plus 1 lambda pour l'extension.
    9193 
    9294Le schéma de la figure suivante présente un résumé de ces contraintes :
     
    9698  == 1.4 Travail à effectuer ==
    9799
    98 Le schéma théorique du Nand2 est présenté dans la figure suivante :
     100Le schéma théorique du NAND2 est présenté dans la figure suivante :
    99101
    100102[[Image(na2.jpg,nolink)]]
     
    116118= Compte rendu =
    117119
    118 Vous rédigerez un petit compte-rendu pour ce TP dans lequel vous expliquerez :
     120Vous rédigerez un compte-rendu au fomat markdown pour ce TP dans lequel vous expliquerez :
    119121  * les choix effectués pour la création de la cellule Nand ainsi que la démarche de validation,
    120122  * Le Makefile de vérification de votre cellule