Version 1 (modified by 18 years ago) (diff) | ,
---|
4 Synthèse logique et optimisation structurelle 4.1 Introduction 4.1.1 Synthèse logique La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau bool éen (format .vbe). Plusieurs outils sont disponibles : L'outil BOOM permet l'optimisation de réseau booléen avant synthèse. L'outil BOOG offre la possibilité de synthétiser une netlist en utilisant une biblioth èque de cellules précaractérisées telle que SXLIB. La netlist peut être soit au format .vst soit au format .al. Vérier la variable d'environnement MBK_OUT_LO=vst. Pour plus de renseignements sur ces outils, reportez vous au man. 4.1.2 Résolution des problèmes de fanout (sortance) Les netlists générées contiennent parfois des signaux internes attaquant un nombre important de portes (grand fanout). Ceci se traduit par une détérioration des fronts (rise time et fall time). Il y a alors une perte en performance temporelle. An de ré- soudre ces problèmes, l'outil LOON remplace les cellules ayant un fanout (i.e sortance) trop grand par des cellules plus puissantes ou bien insère des buffers. 4.1.3 Visualisation de la chaîne longue A tout moment, les netlists peuvent être éditées graphiquement. L'outil XSCH permet de visualiser le chemin le plus long grâce aux chiers .xsc et .vst générés à la fois par BOOG et par LOON. T+RC temps de propagation R C i0
La résistance équivalente R de la gure 6 est calculée sur la totalité des transistors du AND appartenant au chemin actif. De même, la capacité C est calculée sur les transistors passants du NOR correspondant au chemin entre i0 et la sortie de la cellule.
4.1.4 Vérication de la netlist La netlist doit être certiée. Pour cela, on dispose du simulateur ASIMUT, mais aussi de l'outil PROOF qui procède à une comparaison formelle de deux descriptions comportementales (.vbe). L'outil FLATBEH permet d'obtenir le nouveau chier comportemental à partir de la netlist.
4.2 Travail à effectuer 4.2.1 Optimisation du réseau booléen Pour analyser l'effet de l'optimisation booléenne : Lancer l'optimisation booléenne avec l'outil BOOM en demandant une optimisation en surface puis en délai ;
boom -V <vbe_source> <vbe_destination> -
Essayer BOOM avec les différents algorithmes -s, -j, -b, -g, -p... Le mode et le niveau d'optimisation sont aussi à changer. Comparer le nombre de littéraux après factorisation. 4.2.2 Mapping sur cellules précaractérisées Pour chacun des réseaux booléens obtenus précédemment : positionner les variables d'environnement ; synthétiser la vue structurelle :
boog <vbe_source> -
lancer BOOG sur les différentes netlists pour observer l'inuence des options de SYF et de BOOM. 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. 4.2.3 Visualisation de la netlist La chaîne longue est décrite dans le chier .xsc produit par BOOG. L'outil XSCH l'utilisera pour colorer son chemin. Pour lancer l'éditeur graphique :
xsch -I vst -l <vst_source> -
La couleur rouge désigne le chemin critique. Si vous utilisez l'option '-slide' qui permet d'afcher un ensemble de netlists, n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos chiers ! 4.2.4 Optimisation de la netlist Pour toutes les vues structurelles obtenues précédemment : Lancer LOON avec la commande :
loon <vst_source> <vst_destination> <lax_param> -
Effectuer une optimisation de fanout en modiant le facteur de fanout dans le chier d'option .lax. Imposer des valeurs de capacités sur les sorties. ACSI M2 12 TP2 Synthèse logique et génération de chemin de données 4.2.5 Vérication de la netlist À effectuer sur la meilleure (justiez votre choix) de vos netlists : 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. Deux précautions valent mieux qu'une ! Faîtes une vérication formelle de votre netlist en la comparant au chier comportemental d'origine issu de SYF :
atbeh <vst_source> <vbe_dest> - proof -d <vbe_origine> <vbe_dest> -
Comparez si les deux chiers sont bien identiques. Mettre les différents résultats (surface/temps/optimisation) dans votre rapport. Quelle est, selon vous, la meilleure des netlists ? Pourquoi ? ACSI M2 13
Attachments (5)
- addaccu.jpg (5.8 KB) - added by 16 years ago.
- genmux.py (443 bytes) - added by 16 years ago.
- mux.py (840 bytes) - added by 16 years ago.
- mux.2.py (1.6 KB) - added by 16 years ago.
- genmux.2.py (483 bytes) - added by 16 years ago.
Download all attachments as: .zip