Changes between Version 1 and Version 2 of ToolsCourseTp2
- Timestamp:
- May 4, 2007, 3:59:54 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsCourseTp2
v1 v2 1 4 Synthèse logique et optimisation structurelle 2 4.1 Introduction 3 4.1.1 Synthèse logique 1 2 {{{ 3 #!html 4 <h1> TP1 : Synthèse logique et optimisation structurelle </h1> 5 }}} 6 [[PageOutline]] 7 8 = 1. Introduction = 9 = 1.1 Synthèse logique = 10 4 11 La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau bool 5 12 éen (format .vbe). Plusieurs outils sont disponibles : 6 L'outil BOOM permet l'optimisation de réseau booléen avant synthèse. 7 L'outil BOOG offre la possibilité de synthétiser une netlist en utilisant une biblioth 13 14 L'outil BOOM permet l'optimisation de réseau booléen avant synthèse. 15 L'outil BOOG offre la possibilité de synthétiser une netlist en utilisant une biblioth 8 16 èque de cellules précaractérisées telle que SXLIB. La netlist peut être soit au format 9 .vst soit au format .al. Vérier la variable d'environnement MBK_OUT_LO=vst. 10 Pour plus de renseignements sur ces outils, reportez vous au man. 11 4.1.2 Résolution des problèmes de fanout (sortance) 12 Les netlists générées contiennent parfois des signaux internes attaquant un nombre 17 .vst soit au format .al. Vérifier la variable d'environnement MBK_OUT_LO=vst. 18 Pour plus de renseignements sur ces outils, reportez vous au man. 19 20 = 1.2 Résolution des problèmes de fanout (sortance)= 21 22 Les netlists générées contiennent parfois des signaux internes attaquant un nombre 13 23 important de portes (grand fanout). Ceci se traduit par une détérioration des fronts 14 (rise time et fall time). Il y a alors une perte en performance temporelle. A n de ré-24 (rise time et fall time). Il y a alors une perte en performance temporelle. Afin de ré- 15 25 soudre ces problèmes, l'outil LOON remplace les cellules ayant un fanout (i.e sortance) 16 26 trop grand par des cellules plus puissantes ou bien insère des buffers. 17 4.1.3 Visualisation de la chaîne longue 27 28 = 1.3 Visualisation de la chaîne longue = 29 18 30 A tout moment, les netlists peuvent être éditées graphiquement. L'outil XSCH permet 19 de visualiser le chemin le plus long grâce aux chiers .xsc et .vst générés à la fois31 de visualiser le chemin le plus long grâce aux fichiers .xsc et .vst générés à la fois 20 32 par BOOG et par LOON. 21 T+RC22 temps de propagation23 R24 C i025 33 26 34 27 La résistance équivalente R de la gure 6 est calculée sur la totalité des transistors 35 36 La résistance équivalente R de la figure est calculée sur la totalité des transistors 28 37 du AND appartenant au chemin actif. De même, la capacité C est calculée sur les transistors 29 38 passants du NOR correspondant au chemin entre i0 et la sortie de la cellule. 30 39 31 40 32 4.1.4 Vérication de la netlist 33 La netlist doit être certiée. Pour cela, on dispose du simulateur ASIMUT, mais 41 = 1.4 Vérification de la netlist = 42 43 La netlist doit être certifiée. Pour cela, on dispose du simulateur ASIMUT, mais 34 44 aussi de l'outil PROOF qui procède à une comparaison formelle de deux descriptions 35 comportementales (.vbe). L'outil FLATBEH permet d'obtenir le nouveau chier comportemental45 comportementales (.vbe). L'outil FLATBEH permet d'obtenir le nouveau fichier comportemental 36 46 à partir de la netlist. 37 47 38 4.2 Travail à effectuer 39 4.2.1 Optimisation du réseau booléen 48 = 2 Travail à effectuer = 49 50 51 = 2.1 Optimisation du réseau booléen = 52 40 53 Pour analyser l'effet de l'optimisation booléenne : 41 Lancer l'optimisation booléenne avec l'outil BOOM en demandant une optimisation54 Lancer l'optimisation booléenne avec l'outil BOOM en demandant une optimisation 42 55 en surface puis en délai ; 56 {{{ 43 57 >boom -V <vbe_source> <vbe_destination> - 58 }}} 59 44 60 Essayer BOOM avec les différents algorithmes -s, -j, -b, -g, -p... Le mode et le 45 61 niveau d'optimisation sont aussi à changer. 46 Comparer le nombre de littéraux après factorisation. 47 4.2.2 Mapping sur cellules précaractérisées 62 Comparer le nombre de littéraux après factorisation. 63 64 65 = 2.2 Mapping sur cellules précaractérisées = 66 48 67 Pour chacun des réseaux booléens obtenus précédemment : 49 positionner les variables d'environnement ; 50 synthétiser la vue structurelle : 68 positionner les variables d'environnement ; 69 synthétiser la vue structurelle : 70 71 {{{ 51 72 >boog <vbe_source> - 52 lancer BOOG sur les différentes netlists pour observer l'inuence des options de 73 }}} 74 75 76 lancer BOOG sur les différentes netlists pour observer l'influence des options de 53 77 SYF et de BOOM. 54 valider le travail de BOOG en resimulant avec ASIMUT les netlists obtenues78 valider le travail de BOOG en resimulant avec ASIMUT les netlists obtenues 55 79 avec les vecteurs de test qui ont servi à valider le réseau booléen initial. 56 4.2.3 Visualisation de la netlist 57 La chaîne longue est décrite dans le chier .xsc produit par BOOG. L'outil XSCH 80 81 82 = 2.3 Visualisation de la netlist = 83 84 La chaîne longue est décrite dans le fichier .xsc produit par BOOG. L'outil XSCH 58 85 l'utilisera pour colorer son chemin. Pour lancer l'éditeur graphique : 86 87 {{{ 59 88 >xsch -I vst -l <vst_source> - 60 La couleur rouge désigne le chemin critique. 61 Si vous utilisez l'option '-slide' qui permet d'afcher un ensemble de netlists, 62 n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos chiers ! 63 4.2.4 Optimisation de la netlist 89 }}} 90 91 92 La couleur rouge désigne le chemin critique. 93 Si vous utilisez l'option '-slide' qui permet d'afficher un ensemble de netlists, 94 n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos fichiers ! 95 96 = 2.4 Optimisation de la netlist = 97 64 98 Pour toutes les vues structurelles obtenues précédemment : 65 Lancer LOON avec la commande : 99 Lancer LOON avec la commande : 100 {{{ 66 101 >loon <vst_source> <vst_destination> <lax_param> - 67 Effectuer une optimisation de fanout en modiant le facteur de fanout dans le 68 chier d'option .lax. 69 Imposer des valeurs de capacités sur les sorties. 70 ACSI M2 12 71 TP2 Synthèse logique et génération de chemin de données 72 4.2.5 Vérication de la netlist 73 À effectuer sur la meilleure (justiez votre choix) de vos netlists : 74 Valider le travail de LOON en resimulant sous ASIMUT les netlists obtenues 102 }}} 103 104 Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option .lax. 105 Imposer des valeurs de capacités sur les sorties. 106 107 108 = 2.5 Vérification de la netlist = 109 110 111 À effectuer sur la meilleure (justifiez votre choix) de vos netlists : 112 Valider le travail de LOON en resimulant sous ASIMUT les netlists obtenues 75 113 avec les vecteurs de test qui ont servi à valider la vue comportementale initiale. 76 Deux précautions valent mieux qu'une ! Faîtes une vérication formelle de votre 77 netlist en la comparant au chier comportemental d'origine issu de SYF : 78 >atbeh <vst_source> <vbe_dest> - 114 Deux précautions valent mieux qu'une ! Faîtes une vérification formelle de votre 115 netlist en la comparant au fichier comportemental d'origine issu de SYF : 116 117 {{{ 118 >flatbeh <vst_source> <vbe_dest> - 119 }}} 120 121 {{{ 79 122 >proof -d <vbe_origine> <vbe_dest> - 80 Comparez si les deux chiers sont bien identiques. 123 }}} 124 Comparez si les deux fichiers sont bien identiques. 81 125 Mettre les différents résultats (surface/temps/optimisation) dans votre rapport. 82 126 Quelle est, selon vous, la meilleure des netlists ? Pourquoi ? 83 ACSI M2 1384 127 85 128 129