Changes between Version 9 and Version 10 of ToolsCourseTp2


Ignore:
Timestamp:
Sep 18, 2008, 1:53:31 PM (16 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp2

    v9 v10  
    22{{{
    33#!html
    4 <h1> TP2 : Synthèse logique et optimisation structurelle </h1>
     4<h1> TP2 : Modélisation structurelle Python </h1>
    55}}}
    66[[PageOutline]]
    77
    8 = 1. Introduction =
    9 == 1.1 Synthèse logique ==
    10 
    11 La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau booléen (format .vbe).
    12 Plusieurs outils sont disponibles :
    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èque
    16        de cellules précaractérisées telle que '''SXLIB'''.
    17    La netlist peut être soit au format  '''.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
    23 important de portes (grand fanout). Ceci se traduit par une détérioration des fronts
    24 (rise time et fall time). Il y a alors une perte en performance temporelle. Afin de ré-
    25 soudre ces problèmes, l'outil '''LOON''' remplace les cellules ayant un fanout (i.e sortance)
    26 trop grand par des cellules plus puissantes ou bien insère des buffers.
    27 
    28 == 1.3 Visualisation de la chaîne longue ==
    29 
    30 A tout moment, les netlists peuvent être éditées graphiquement. L'outil '''XSCH''' permet
    31 de visualiser le chemin le plus long grâce aux fichiers '''.xsc''' et '''.vst''' générés à la fois
    32 par '''BOOG''' et par '''LOON'''.
    33 
    34 [[Image(T_RC.jpg,nolink)]]
     8A venir ...
    359
    3610
    37 
    38 La résistance équivalente R de la figure  est calculée sur la totalité des transistors
    39 du AND appartenant au chemin actif. De même, la capacité C est calculée sur les transistors
    40 passants du NOR correspondant au chemin entre i0 et la sortie de la cellule.
    41 
    42 
    43 == 1.4 Vérification de la netlist ==
    44 
    45 La netlist doit être certifiée. Pour cela, on dispose du simulateur '''ASIMUT'''
    46 
    47  = 2 Travail à effectuer =
    48 
    49 
    50  == 2.1 Optimisation du réseau booléen ==
    51 
    52 Pour analyser l'effet de l'optimisation booléenne :
    53  On utilise le travail fait le TP précédent sur les descriptions des automates
    54 digicode.vbe
    55   * Lancer l'optimisation booléenne avec l'outil '''BOOM''' en demandant une optimisation
    56 en surface puis en délai ;
    57 {{{
    58 >boom -V <vbe_source> <vbe_destination> -
    59 }}}
    60 
    61  * Essayer '''BOOM''' avec les différents algorithmes '''-s''', '''-j''', '''-b''', '''-g''', '''-p'''... Le mode et le
    62 niveau d'optimisation sont aussi à changer.
    63   * Comparer le nombre de littéraux après factorisation.
    64 
    65 
    66  == 2.2 Mapping sur cellules précaractérisées ==
    67 
    68    Pour chacun des réseaux booléens obtenus précédemment :
    69   * positionner les variables d'environnement ;
    70   * synthétiser la vue structurelle :
    71 
    72 {{{
    73 >boog <vbe_source> -
    74 }}}
    75 
    76 
    77   * lancer '''BOOG''' sur les différentes netlists pour observer l'influence des options de
    78 '''SYF''' et de '''BOOM'''.
    79   * valider le travail de '''BOOG''' en resimulant avec '''ASIMUT''' les netlists obtenues
    80 avec les vecteurs de test qui ont servi à valider le réseau booléen initial.
    81 
    82 
    83  == 2.3 Visualisation de la netlist ==
    84 
    85  La chaîne longue est décrite dans le fichier '''.xsc''' produit par '''BOOG'''. L'outil '''XSCH'''
    86 l'utilisera pour colorer son chemin. Pour lancer l'éditeur graphique :
    87 
    88 {{{
    89 >xsch -I vst -l <vst_source> -
    90 }}}
    91 
    92 
    93 La couleur rouge désigne le chemin critique.
    94 Si vous utilisez l'option '-slide' qui permet d'afficher un ensemble de netlists,
    95 n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos fichiers !
    96 
    97  == 2.4 Optimisation de la netlist ==
    98 
    99 Pour toutes les vues structurelles obtenues précédemment :
    100  Lancer '''LOON''' avec la commande :
    101 {{{
    102 >loon <vst_source> <vst_destination> <lax_param> -
    103 }}}
    104 
    105  Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option '''.lax'''.
    106  Imposer des valeurs de capacités sur les sorties.
    107 
    108 
    109 == 2.5 Vérification de la netlist ==
    110 
    111 
    112 À effectuer sur la meilleure (justifiez votre choix) de vos netlists :
    113 Valider le travail de '''LOON''' en resimulant sous '''ASIMUT''' les netlists obtenues
    114 avec les vecteurs de test qui ont servi à valider la vue comportementale initiale.
    115 
    116 Mettre les différents résultats (surface/temps/optimisation) dans votre rapport.
    117 Quelle est, selon vous, la meilleure des netlists ? Pourquoi ?
    118 
    119 
    120