| | 1 | 4 Synthèse logique et optimisation structurelle |
| | 2 | 4.1 Introduction |
| | 3 | 4.1.1 Synthèse logique |
| | 4 | La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau bool |
| | 5 | é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 |
| | 8 | è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 |
| | 13 | 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. An de ré- |
| | 15 | soudre ces problèmes, l'outil LOON remplace les cellules ayant un fanout (i.e sortance) |
| | 16 | trop grand par des cellules plus puissantes ou bien insère des buffers. |
| | 17 | 4.1.3 Visualisation de la chaîne longue |
| | 18 | 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 fois |
| | 20 | par BOOG et par LOON. |
| | 21 | T+RC |
| | 22 | temps de propagation |
| | 23 | R |
| | 24 | C i0 |
| | 25 | |
| | 26 | |
| | 27 | La résistance équivalente R de la gure 6 est calculée sur la totalité des transistors |
| | 28 | du AND appartenant au chemin actif. De même, la capacité C est calculée sur les transistors |
| | 29 | passants du NOR correspondant au chemin entre i0 et la sortie de la cellule. |
| | 30 | |
| | 31 | |
| | 32 | 4.1.4 Vérication de la netlist |
| | 33 | La netlist doit être certiée. Pour cela, on dispose du simulateur ASIMUT, mais |
| | 34 | 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 comportemental |
| | 36 | à partir de la netlist. |
| | 37 | |
| | 38 | 4.2 Travail à effectuer |
| | 39 | 4.2.1 Optimisation du réseau booléen |
| | 40 | Pour analyser l'effet de l'optimisation booléenne : |
| | 41 | Lancer l'optimisation booléenne avec l'outil BOOM en demandant une optimisation |
| | 42 | en surface puis en délai ; |
| | 43 | >boom -V <vbe_source> <vbe_destination> - |
| | 44 | Essayer BOOM avec les différents algorithmes -s, -j, -b, -g, -p... Le mode et le |
| | 45 | 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 |
| | 48 | Pour chacun des réseaux booléens obtenus précédemment : |
| | 49 | positionner les variables d'environnement ; |
| | 50 | synthétiser la vue structurelle : |
| | 51 | >boog <vbe_source> - |
| | 52 | lancer BOOG sur les différentes netlists pour observer l'inuence des options de |
| | 53 | SYF et de BOOM. |
| | 54 | valider le travail de BOOG en resimulant avec ASIMUT les netlists obtenues |
| | 55 | 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 |
| | 58 | l'utilisera pour colorer son chemin. Pour lancer l'éditeur graphique : |
| | 59 | >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 |
| | 64 | Pour toutes les vues structurelles obtenues précédemment : |
| | 65 | Lancer LOON avec la commande : |
| | 66 | >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 |
| | 75 | 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> - |
| | 79 | >proof -d <vbe_origine> <vbe_dest> - |
| | 80 | Comparez si les deux chiers sont bien identiques. |
| | 81 | Mettre les différents résultats (surface/temps/optimisation) dans votre rapport. |
| | 82 | Quelle est, selon vous, la meilleure des netlists ? Pourquoi ? |
| | 83 | ACSI M2 13 |
| | 84 | |
| | 85 | |