Changes between Version 1 and Version 2 of MOCCA-TP1-2021
- Timestamp:
- Sep 20, 2019, 6:29:15 AM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MOCCA-TP1-2021
v1 v2 1 1 {{{ 2 2 #!html 3 <h1> TP 3: Dessin de cellule </h1>3 <h1> TP1 : Dessin de cellule </h1> 4 4 }}} 5 5 [[PageOutline]] 6 6 7 7 == Introduction == 8 8 9 9 Le but de cet exercice est le dessin sous '''graal''' d'une Nand à 2 entrées. 10 10 Les notions de cellules précaractérisées et de de gabarit seront introduites. 11 11 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''' .12 Dans les TP suivant nous allons utiliser des cellules de la bibliothèque d'Alliance. 13 Cette 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. 14 14 15 15 '''graal''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''druc'''. 16 16 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 : 17 L'objectif du jour est de dessiner une cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies]. 18 Vous devez travailler dans l'environnement Alliance. Vérifier que cette variable est bien positionnée : 20 19 21 20 {{{ … … 29 28 }}} 30 29 31 == Outils utilisés == 30 == Outils utilisés 32 31 33 === Graal === 32 === Graal 34 33 35 34 L'éditeur de layout '''graal''' manipule plusieurs types d'objets différents que l'on peut créer avec le menu '''create''' : … … 44 43 '''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'' : 45 44 46 === Cougar === 45 === Cougar 47 46 48 47 L'outil '''cougar''' est capable d'extraire la netlist d'un circuit aux formats '''.vst''' ou '''.al''' à partir d'une description au format '''.ap'''. … … 61 60 }}} 62 61 63 === Yagle et Proof === 62 === Yagle et Proof 64 63 65 64 L'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''. … … 70 69 }}} 71 70 72 === Proof === 71 === Proof 73 72 74 73 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''' des vecteurs pour les deux descriptions et les comparer. … … 79 78 }}} 80 79 81 == Le gabarit sxlib == 80 == Le gabarit sxlib 82 81 83 82 * 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. 87 92 * 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.91 93 92 94 Le schéma de la figure suivante présente un résumé de ces contraintes : … … 96 98 == 1.4 Travail à effectuer == 97 99 98 Le schéma théorique du N and2 est présenté dans la figure suivante :100 Le schéma théorique du NAND2 est présenté dans la figure suivante : 99 101 100 102 [[Image(na2.jpg,nolink)]] … … 116 118 = Compte rendu = 117 119 118 Vous rédigerez un petit compte-rendupour ce TP dans lequel vous expliquerez :120 Vous rédigerez un compte-rendu au fomat markdown pour ce TP dans lequel vous expliquerez : 119 121 * les choix effectués pour la création de la cellule Nand ainsi que la démarche de validation, 120 122 * Le Makefile de vérification de votre cellule