8 | | Nous avons vu comment dessiner entièrement une cellule. Nous allons maintenant réaliser une |
9 | | cellule plus avancée nécessitant un routage manuel "overcell". |
10 | | == 1 Explications == |
11 | | Le but est de créer un compteur de bits tel que décrit ci-dessous. |
| 10 | Nous avons vu dans le TP6 comment dessiner une cellule précaractérisée. |
| 11 | Le but de ce TP7 est de réaliser le dessin des masques d'un bloc combinatoire |
| 12 | résultant de l'intreconnexion d'une quinzaine de cellules de la biblioyhèque '''SXLIB'''. |
| 13 | |
| 14 | On va donc effectuer ''à la main'' (c'est à dire en utilisant l'éditeur interactif '''graal'''), |
| 15 | le placement et le routage de cet opérateur, pour mieux comprendre les problèmes |
| 16 | que doivent résoudre les outils de placement/routage automatiques. |
| 17 | |
| 18 | = 2 Spécification fonctionnelle = |
| 19 | |
| 20 | On souhaite réaliser le décodeur 3 vers 4 tel que décrit ci-dessous. |
| 21 | |
68 | | * Extraire la netlist de l'inverseur au format .al avec '''COUGAR''' |
| 66 | Utiliser le langage '''STRATUS''' pour décrire le schéma proposé ci dessus, et générer le fichier |
| 67 | 'decodeur'.vst'' correspondant à la description structurelle VHDL de cet opérateur. |
| 68 | Valider ce schéma en écrivant quelques stimuli, et en simulant sous '''asimut'''. |
| 69 | |
| 70 | |
| 71 | = 4 Placement / Routage = |
| 72 | |
| 73 | Saisir sous '''graal''' le dessin du bloc ''decoder'' en instanciant les 5 portes inv_x1 et |
| 74 | les 10 portes na3_x1. |
| 75 | Dessiner les fils de routage sous '''graal''', puis vérifier l'absence de violation des règles de dessin. le routage "overcell" |
| 76 | en lançant le vérificateur de règles de dessin '''druc''' sous '''graal'''. |
| 77 | Pour que cette vérification soit significative, il faut préalablement "mettre à plat" |
| 78 | le bloc ''decoder'', en utilisant la commande ''real flat''. |
| 79 | |
| 80 | = 5 Validation du routage = |
| 81 | |
| 82 | Extraire la netlist du bloc ''decoder'' au format .al avec l'outil '''COUGAR''', |
| 83 | mais sans descendre au niveau des transistors : On veut obtenir une ''net-list'' de cellules, |
| 84 | et non une ''net-list'' de transistors. |
| 85 | |
| 86 | Vérifier que les deux net-lists définies par les fichiers decoder.vst et ''decoder.al'' sont isomorphes |
| 87 | en utilisant l'outil '''lvx'''. |