| 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 | |