Changes between Version 57 and Version 58 of ToolsCourseTp7
- Timestamp:
- Oct 7, 2008, 4:16:16 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsCourseTp7
v57 v58 11 11 Le but de ce TP est d'utiliser les outils de placement / routage automatique du flot Coriolis/Alliance ainsi que tous les outils de vérification vus dans les TPs précédents, pour générer le dessin des masques du circuit AM2901. 12 12 13 Le TP4 vous apermis d'utiliser le langage '''Stratus''' pour décrire la netlist hiérarchique du circuit AM2901.13 Les TPs 3 et 4 vous ont permis d'utiliser le langage '''Stratus''' pour décrire la netlist hiérarchique du circuit AM2901. 14 14 15 15 On va maintenant utiliser le langage '''Stratus''' pour introduire des directives de placement dans les différents fichiers ''.py'' décrivant la netlist. 16 16 17 Il est par exemple possible d'exploiter la régularité des opérateurs du chemin de données pour imposer un placement en colonnes : tous les bits d'un même opérateur sont placés en colonne, et il est possible d'imposer un placement relatif ndes colonnes les unes par rapport aux autres.17 Il est par exemple possible d'exploiter la régularité des opérateurs du chemin de données pour imposer un placement en colonnes : tous les bits d'un même opérateur sont placés en colonne, et il est possible d'imposer un placement relatif des colonnes les unes par rapport aux autres. 18 18 On va également définir le placement des plots d'entrée/sortie sur la périphérie du circuit. 19 19 … … 58 58 = 3 Fonctions de placement fournies par '''Stratus''' = 59 59 60 Pour définir les directives de placement, le langage '''Stratus''' fournit les fonctions 'suivantes :60 Pour définir les directives de placement, le langage '''Stratus''' fournit les fonctions suivantes : 61 61 * Place() 62 62 * !PlaceRight(), !PlaceTop(), !PlaceLeft(), !PlaceBottom() … … 64 64 * !DefAb(), !ResizeAb() 65 65 66 Vous pouvez consulter le manuel de '' Stratus'' en ligne :66 Vous pouvez consulter le manuel de '''Stratus''' en ligne : 67 67 68 68 https://www-asim.lip6.fr/recherche/coriolis/doc/en/html/stratus/index.html 69 69 70 70 Toutes ces fonctions doivent être utilisées dans la méthode ''Layout'' associée au bloc considéré. 71 A titre d'exemple, on donne le code suivant pour le fichier circuit.py : 71 72 A titre d'exemple, on donne le code suivant pour le fichier circuit.py décrivant la cellule présentée dans le TP4 : 72 73 {{{ 73 74 #!/usr/bin/env python … … 98 99 99 100 Reprendre le fichier ''am2901_dpt.py'' du TP4. Pour l'instant, ce fichier ne comporte qu'une description de la netlist, qui a permis de générer un fichier ''am2901_dpt.vst''. 100 * Placer explicitement les colonnes représentants les différents opérateurs 4 bits du chemin de données les unes par rapport aux autres, en ajoutant une méthode ''Layout'' dans ce fichier. 101 * Après avoir modifié le fichier ''am2901_dpt.py'', générer le fichier de placement ''am2901_dpt.ap'' : 102 {{{ 103 > ./execute_amd2901_dpt.py 104 }}} 101 * Placer explicitement les colonnes représentant les différents opérateurs 4 bits du chemin de données les unes par rapport aux autres, en ajoutant une méthode ''Layout'' dans ce fichier. 102 * Modifier l'appel à la fonction ''Generate'' dans le coeur de façon à créer la vue physique du chemin de données. 103 * Faire appel à la méthode ''View'' pour visulaliser le placement généré. 105 104 106 105 [[Image(preplacement.jpg,nolink)]]