Changes between Version 30 and Version 31 of ToolsCourseTp1
- Timestamp:
- Sep 18, 2008, 1:37:05 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsCourseTp1
v30 v31 28 28 == 1.1 Synthèse d'automates d'états finis == 29 29 30 === 1.1.1 Introduction === 31 30 32 Un circuit combinatoire pur ne dispose pas de registres internes. 31 33 De ce fait, ses sorties ne dépendent que de ses entrées primaires. … … 36 38 [[Image(ex_digicode.jpg,nolink)]] 37 39 40 === 1.1.2 Automates de MOORE et de MEALY === 41 38 42 L'automate de MOORE voit l'état de ses sorties changer uniquement sur front d'horloge. 39 43 Les entrées peuvent donc bouger entre deux fronts sans modifier les sorties. … … 44 48 [[Image(automate.jpg, nolink)]] 45 49 46 === 1.1. 1SYF et VHDL ===50 === 1.1.3 SYF et VHDL === 47 51 48 52 * Afin de décrire de tels automates, on utilise un style particulier de description VHDL qui définit l'architecture fsm. … … 54 58 Pour les connaître, reportez-vous au man de '''SYF'''. 55 59 56 === 1.1. 2Exemple ===60 === 1.1.4 Exemple === 57 61 58 62 Afin de se familiariser avec la syntaxe de description d'un fichier .fsm, un exemple … … 174 178 = 2. Travail à effectuer = 175 179 180 Les différentes parties seront automatisées à l'aide d'un fichier '''Makefile'''. 181 176 182 == 2.1 Réalisation d'un compteur == 177 183 … … 184 190 * Visualiser les fichiers '''.enc'''. 185 191 * Ecrire un fichier de vecteurs de test et simuler sous '''ASIMUT'''. 186 * Ecrire un fichier '''Makefile''' pour automatiser les différents appel d'outil avec les différentes options.187 192 188 193 '''Que se passe-t-il si le reset n'est pas positionné en début de pattern ? Pourquoi ? ''' 189 194 190 == 2.2 Réalisation d'un automate pourdigicode ==195 == 2.2 Réalisation d'un digicode == 191 196 192 197 On veut réaliser une puce pour digicode. … … 223 228 }}} 224 229 230 === 2.2.1 Réalisation de l'automate === 231 225 232 * Dessiner le graphe d'états de l'automate. (Les corrections seront distribuées) 226 233 * Le décrire au format '''.fsm'''. … … 229 236 >syf -CEV -a <fsm_source> - 230 237 }}} 231 * Ecrire le fichier .patde vecteurs de test.238 * Ecrire le fichier '''.pat''' de vecteurs de test. 232 239 * Simuler avec '''ASIMUT''' toutes les vues comportementales obtenues. 233 * Adapter le '''Makefile''' pour qu'il couvre tous les encodages possibles.234 240 235 241 '''Quelles sont vos remarques concernant la complexité des expressions (i.e temps) et le nombre de registres (i.e surface) des descriptions comportementales suivant les encodages ? 236 En déduire les deux groupes d'encodage. 237 Comparez aussi leurs nombres de littéraux.''' 238 239 == 2.3 Optimisation du réseau booléen == 240 241 * Lancer l'optimisation booléenne avec l'outil '''BOOM''' en demandant une optimisation en surface puis en délai. 242 En déduire les deux groupes d'encodage.''' 243 244 '''Comparez aussi leurs nombres de littéraux.''' 245 246 === 2.2.2 Optimisation du réseau booléen === 247 248 * Lancer l'optimisation booléenne avec l'outil '''BOOM''' en demandant une optimisation en '''surface''' puis en '''délai'''. 242 249 {{{ 243 250 >boom -V <vbe_source> <vbe_destination> - … … 246 253 * Comparer le nombre de littéraux après factorisation. 247 254 248 == 2.4 Mapping sur cellules précaractérisées==255 === 2.2.3 Mapping sur cellules précaractérisées === 249 256 250 257 Pour chacun des réseaux booléens obtenus précédemment : 251 * Positionner les variables d'environnement ; 252 * Synthétiser la vue structurelle : 258 * Synthétiser la vue structurelle (en faisant attention à bien positionner les variables d'environnement) : 253 259 {{{ 254 260 >boog <vbe_source> - 255 261 }}} 256 * Lancer '''BOOG''' sur les différentes netlists pour observer l'influence des options de '''SYF''' et de '''BOOM''';257 * Valider le travail de '''BOOG''' en resimulant avec '''ASIMUT''' les netlists obtenues avec les vecteurs de test qui ont servi à valider le réseau booléen initial .258 259 == 2.5 Visualisation de la netlist==262 * Observer l'influence des options de '''SYF''' et de '''BOOM''' avec les différences netlists obtenues ; 263 * Valider le travail de '''BOOG''' en resimulant avec '''ASIMUT''' les netlists obtenues avec les vecteurs de test qui ont servi à valider le réseau booléen initial ; 264 265 === 2.2.4 Visualisation de la netlist === 260 266 261 267 * Utiliser '''XSCH''' pour colorer visualiser le chemin critique. … … 267 273 Si vous utilisez l'option '-slide' qui permet d'afficher un ensemble de netlists, n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos fichiers ! 268 274 269 == 2.6 Optimisation de la netlist==275 === 2.2.5 Optimisation de la netlist === 270 276 271 277 Pour toutes les vues structurelles obtenues précédemment : … … 276 282 * Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option '''.lax'''. Imposer des valeurs de capacités sur les sorties. 277 283 278 == 2.7 Vérification de la netlist==284 === 2.2.6 Vérification de la netlist === 279 285 280 286 '''Quelle est, selon vous, la meilleure des netlists ? Pourquoi ?''' … … 282 288 À effectuer sur cette netlist : 283 289 * Valider le travail de '''LOON''' en resimulant sous '''ASIMUT''' les netlists obtenues avec les vecteurs de test qui ont servi à valider la vue comportementale initiale. 284 * Mettre les différents résultats (surface/temps/optimisation) dans votre rapport.285 290 286 291 = 3. Compte rendu = 287 292 288 293 Vous rédigerez un compte-rendu d'une page maximum pour ce TP, et vous joindrez les fichiers écrits (et uniquement les fichiers écrits, pas ceux générés par les différents outils). 289 Vous ferez attention à bien répondre au question posées ici dans le compte rendu .290 Vous ferez également attention à joindre votre Makefilede façon à ce que la commande '''make''' effectue les différentes étapes de ce TP de A à Z.294 Vous ferez attention à bien répondre au question posées ici dans le compte rendu, vous y inclurez les différents résultats obtenus surface/temps/optimisation). 295 Vous ferez également attention à joindre les différents Makefile créés de façon à ce que la commande '''make''' effectue les différentes étapes de ce TP de A à Z.