Changes between Version 9 and Version 10 of ToolsCourseTp8
- Timestamp:
- Oct 7, 2007, 10:55:33 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsCourseTp8
v9 v10 9 9 = 1 Objectif = 10 10 11 Vous allezutiliser les outils de placement / routage automatique du flot Coriolis/Alliance,11 Le but de ce TP est d'utiliser les outils de placement / routage automatique du flot Coriolis/Alliance, 12 12 ainsi que tous les outils de vérification vus dans les TPs précédents, pour générer le 13 13 dessin des masques du circuit AM2901. … … 16 16 du circuit AM2901. 17 17 18 On va maintenant utiliser le langage '''STRATUS''' pour définir des directives de placement. 18 On va maintenant utiliser le langage '''STRATUS''' pour introduire des directives de placement 19 dans les différents fichiers ''.py'' décrivant la ''net-list''. 20 19 21 Il est par exemple possible d'exploiter la régularité des opérateurs du chemin de données 20 22 pour imposer un placement en colonnes : tous les bits d'un même opérateur sont placés … … 34 36 et les macro-cellules génériques de la bibliothèque '''DP_SXLIB'''. 35 37 36 = 2 Environnement technologique = 38 = 2 Variables d'environnement = 39 37 40 Vous devez positionner les variables d'environnement suivantes : 38 41 … … 58 61 utile de les vérifier. 59 62 60 D'une manière générale, les fichiers décrivant une netlistlogique doivent porter le63 D'une manière générale, les fichiers décrivant une ''net-list'' logique doivent porter le 61 64 même nom que le fichier correspondant décrivant la vue physique. 62 65 63 66 C'est à dire que le fichier am2901_dpt.vst (vue logique) doit correspondre au fichier am2901_dpt.ap 64 (vue physique). Il en va de même pour le fichieram2901_core.65 66 = 2Fonctions de placement fournies par STRATUS =67 (vue physique). Il en va de même pour am2901_core. 68 69 = 3 Fonctions de placement fournies par STRATUS = 67 70 68 71 Pour définir les directives de placement … … 73 76 * !DefAb(), !ResizeAb() 74 77 75 Toutes ces fonctions doivent être utilisées dans la méthode Layout associée au bloc.76 Reprenons l'exemple du TP précédent, on donne le code suivant pour le fichier circuit.py :78 Toutes ces fonctions doivent être utilisées dans la méthode ''Layout'' associée au bloc considéré. 79 A titre d'exemple, on donne le code suivant pour le fichier circuit.py : 77 80 {{{ 78 81 #!/usr/bin/env python 79 82 from stratus import * 80 # definition d e la cellule83 # definition du bloc de nom "circuit" 81 84 class circuit ( Model ): 82 85 ... 86 # on suppose que les instances i1, i2, i3 ont été créées 83 87 def Layout ( self ): 84 Place ( self.instance_nand2_4bits, NOSYM, XY ( 0, 0 ) ) 85 PlaceRight ( self.instance_or2_4bits, NOSYM ) 86 PlaceRight ( self.instance_add2_4bits, NOSYM ) 87 }}} 88 Ensuite pour le fichier test_circuit.py, il faut rajouter l'appel à la méthode Layout : 88 Place ( self.i1, NOSYM, XY ( 0, 0 ) ) 89 PlaceRight ( self.i2, NOSYM ) 90 PlaceRight ( self.i3, NOSYM ) 91 }}} 92 Ensuite pour générer le fichier circuit.ap, il faut rajouter l'appel à la méthode Layout 93 dans le fichier ''test_circuit.py'' : 89 94 {{{ 90 95 #!/usr/bin/env python 91 96 from stratus import * 92 97 from circuit import circuit 93 my_circuit = circuit ( "mon_circuit" ) # creation du circuit 98 99 # creation du circuit 100 my_circuit = circuit ( "mon_circuit" ) 101 102 # creation de l’interface 94 103 my_circuit.Interface() # creation de l’interface 95 my_circuit.Netlist() # creation de la netlist 96 my_circuit.Layout() # creation du layout 97 my_circuit.View() # pour afficher le layout 98 my_circuit.Save ( PHYSICAL ) # sauver les fichiers mon_circuit.vst et mon_circuit.ap 99 }}} 100 101 = 3 Placement explicite des opérateurs du chemin de données du circuit AM2901 = 104 105 # creation de la vue structurelle (netlist) 106 my_circuit.Netlist() 107 108 # creation de la vue physique (placement) 109 my_circuit.Layout() 110 111 # pour afficher le layout 112 my_circuit.View() 113 114 # sauver les fichiers mon_circuit.vst et mon_circuit.ap 115 my_circuit.Save ( PHYSICAL ) 116 117 }}} 118 119 = 4 Placement explicite des opérateurs du chemin de données du circuit AM2901 = 102 120 103 121 Reprenez le fichier amd2901_dpt.py du TP4. Pour l'instant, ce fichier ne comporte qu'une