Changes between Version 34 and Version 35 of ToolsCourseTp5
- Timestamp:
- Sep 29, 2008, 1:07:27 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsCourseTp5
v34 v35 7 7 Introduction : 8 8 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.9 Le 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. 10 10 11 11 Les notions de cellules précaractérisées, de gabarit et de hiérarchie de cellules seront introduites. … … 18 18 '''GRAAL''' est un éditeur de layout symbolique intégrant le vérificateur de règles de dessin '''DRUC'''. 19 19 20 Cette séance a pour objectif de dessiner des cellule en tenant compte des règles de dessin suivantes :20 Cette séance a pour objectif de dessiner des cellule en tenant compte des [attachment:symb_rules00-1.pdf règles de dessin fournies]. 21 21 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. 22 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, et enfin le And2. 25 23 26 24 = 2 Environnement technologique = … … 40 38 * les segments : DiffN, DiffP, Poly, Alu1, Alu2 ... 41 39 * 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, 43 41 * les Big VIAs, 44 42 * les transistors : NMOS ou PMOS. … … 75 73 {{{ 76 74 > export MBK_IN_LO=al 77 78 75 > export YAGLE_BEH_FORMAT=vbe 79 76 > yagle -s file1 file2 … … 83 80 Avant tout vous devez utiliser la commande : 84 81 {{{ 85 > source avt_env.sh82 > source avt_env.sh 86 83 }}} 87 84 … … 94 91 Cette 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. 95 92 '''PROOF''' réalise cette opération entre les description file1.vbe et file2.vbe par la commande : 96 97 93 {{{ 98 > proof file1 file294 > proof file1 file2 99 95 }}} 100 96 101 = 3 Schémas=97 == 3 Le gabarit sxlib == 102 98 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)]] 116 100 117 101 * Les cellules de la bibliothèque '''sxlib''' ont toutes une hauteur de 50 lambdas et une largeur multiple de 5 lambda. … … 120 104 * 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 105 * Le caisson N doit avoir une hauteur de 24 lambdas : 122 [[Image(gabarit.jpg,nolink)]]123 106 * Les segments spéciaux CAluX (CAlu1, Calu2, CAlu3...) forment l'interface de la cellule et jouent le rôle de connecteurs "étalés". 124 107 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. … … 130 113 Il faut donc les relier respectivement à Vdd et à Vss. 131 114 115 = 4 Schémas = 116 117 Les 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 132 121 = 5 Travail à effectuer = 133 122 134 123 == 5.1 Réalisation d'un inverseur == 135 124 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'''. 137 126 * Dessiner le "stick-diagram" de l'inverseur inv_x1 dont le schéma en transistors est représenté. 138 127 * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié. 139 128 * 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. 141 133 142 == 5.2 Réalisation d'un Nand2 == 134 == 5.2 Réalisation d'un Nand2 == 143 135 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'''. 145 137 * Dessiner le "stick-diagram" du Nand2 dont le schéma en transistors est représenté. 146 138 * Saisir sous '''GRAAL''' le dessin de la cellule en respectant le gabarit spécifié. 147 139 * 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 159 Vous 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. 160 Vous joindrez les différents fichiers.