Changes between Version 27 and Version 28 of ToolsCourseTp1


Ignore:
Timestamp:
Sep 18, 2008, 10:57:50 AM (16 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp1

    v27 v28  
    3535Par contre dans le cas d'un automate de MEALY, la variation des entrées peut modifier à jour
    3636
    37   == 1.2 SYF et VHDL ==
    38 
    39 Afin de décrire de tels automates, on utilise un style particulier de description VHDL qui définit l'architecture '''"fsm"''' (finite-state machine).
    40 Le fichier correspondant possède également l'extension fsm. A partir de ce fichier, l'outil SYF effectue la synthèse d'automate et transforme cet automate abstrait en un réseau booléen.
     37    === a. SYF et VHDL ===
     38
     39* Afin de décrire de tels automates, on utilise un style particulier de description VHDL qui définit l'architecture '''"fsm"''' (finite-state machine).
     40Le fichier correspondant possède également l'extension fsm.
     41
     42* A partir de ce fichier, l'outil '''SYF''' effectue la synthèse d'automate et transforme cet automate abstrait en un réseau booléen.
    4143'''SYF ''' génère donc un fichier VHDL au format vbe.
    4244Comme la plupart des outils utilisés au laboratoire, il faut positionner certaines variables d'environnement avant d'utiliser '''SYF'''.
    43 Pour les connaître, reportez-vous au man de syf.
    44 
    45   == 1.3 Exemple ==
     45Pour les connaître, reportez-vous au man de '''SYF'''.
     46
     47    === b. Exemple ===
    4648
    4749Afin de se familiariser avec la syntaxe de description d'un fichier .fsm, un exemple
     
    127129}}}
    128130
    129   == 1.4 Synthèse logique ==
    130 
    131 La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau booléen (format .vbe).
     131  == 1.2 Synthèse logique ==
     132
     133La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau booléen (format .vbe).
     134
     135    === a. BOOM et BOOG ===
     136
    132137Plusieurs outils sont disponibles :
    133138
    134139     * L'outil '''BOOM''' permet l'optimisation de réseau booléen avant synthèse.
    135140     * 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'''.
     141
    136142La netlist peut être soit au format '''.vst''' soit au format '''.al'''.
    137143Vérifier la variable d'environnement '''MBK_OUT_LO=vst'''.
    138144Pour plus de renseignements sur ces outils, reportez vous au man.
    139145
    140   == 1.5 Résolution des problèmes de fanout (sortance) ==
     146    === b. Résolution des problèmes de fanout (sortance) ===
    141147
    142148Les netlists générées contiennent parfois des signaux internes attaquant un nombre important de portes (grand fanout).
     
    145151Afin 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.
    146152
    147   == 1.6 Visualisation de la chaîne longue ==
     153    === c. Visualisation de la chaîne longue ===
    148154
    149155A tout moment, les netlists peuvent être éditées graphiquement. L'outil '''XSCH''' permet de visualiser le chemin le plus long grâce aux fichiers '''.xsc''' et '''.vst''' générés à la fois par '''BOOG''' et par '''LOON'''.
     
    154160De 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.
    155161
    156   == 1.7 Vérification de la netlist ==
     162    === d. Vérification de la netlist ===
    157163
    158164La netlist doit être certifiée.
     
    164170     
    165171  * Ecrire la description d'un compteur de cinq "un" successifs sous la forme d'un automate de Moore.
    166   * Positionner les variables d'environnement.
    167172  * Lancer '''SYF''' avec les options de codage '''-a''', '''-j''', '''-m''', '''-o''', '''-r''' et en utilisant les options '''-CEV'''.
     173  Pensez à bien positionner vos variables d'environnement.
    168174
    169175{{{
     
    174180 * Ecrire un fichier de vecteurs de test et simuler sous '''ASIMUT'''.
    175181
    176 Que se passe-t-il si le '''reset''' n'est pas positionné en début de pattern ? Pourquoi ?
     182'''Que se passe-t-il si le reset n'est pas positionné en début de pattern ? Pourquoi ? '''
    177183
    178184  == 2.2 Réalisation d'un automate pour digicode ==
    179185
    180     === a. Spécification de l'automate ===
    181 
    182 L'exemple qui suit servira dans toute la suite du TP.
    183186On veut réaliser une puce pour digicode.
    184187Les spécifications sont les suivantes :
     
    212215 * out alarm
    213216
    214     === b. Travail à faire ===
    215 
    216217* Dessiner le graphe d'états de l'automate. (Les corrections seront distribuées)
    217218* Le décrire au format .fsm .
     
    233234
    234235* Lancer l'optimisation booléenne avec l'outil '''BOOM''' en demandant une optimisation en surface puis en délai.
    235 
    236236{{{
    237237>boom -V <vbe_source> <vbe_destination> -
    238238}}}
    239 
    240239* Essayer '''BOOM''' avec les différents algorithmes '''-s''', '''-j''', '''-b''', '''-g''', '''-p'''...
    241240Le mode et le niveau d'optimisation sont aussi à changer.
    242 
    243241* Comparer le nombre de littéraux après factorisation.
    244242
     
    248246* Positionner les variables d'environnement ;
    249247* Synthétiser la vue structurelle :
    250 
    251248{{{
    252249>boog <vbe_source> -
    253250}}}
    254 
    255251* Lancer '''BOOG''' sur les différentes netlists pour observer l'influence des options de '''SYF''' et de '''BOOM''' ;
    256252* 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.
     
    258254  == 2.5 Visualisation de la netlist ==
    259255
    260 La chaîne longue est décrite dans le fichier '''.xsc''' produit par '''BOOG'''. L'outil '''XSCH''' l'utilisera pour colorer son chemin.
     256* Utiliser l'outil '''XSCH''' pour colorer visualiser le chemin critique.
    261257Pour lancer l'éditeur graphique :
    262 
    263258{{{
    264259>xsch -I vst -l <vst_source> -
    265260}}}
    266 
    267261La couleur rouge désigne le chemin critique.
    268262Si vous utilisez l'option '-slide' qui permet d'afficher un ensemble de netlists, n'oubliez pas d'appuyer sur les touches '+' ou '-' pour éditer vos fichiers !
     
    271265
    272266Pour toutes les vues structurelles obtenues précédemment :
    273 * Lancer '''LOON''' avec la commande :
    274 
     267* Lancer '''LOON'''.
    275268{{{
    276269>loon <vst_source> <vst_destination> <lax_param> -
    277270}}}
    278 
    279271* Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option '''.lax'''.
    280272Imposer des valeurs de capacités sur les sorties.
     
    282274  == 2.7 Vérification de la netlist ==
    283275
    284 À effectuer sur la meilleure  de vos netlists (justifiez votre choix !) :
     276'''Quelle est, selon vous, la meilleure des netlists ? Pourquoi ?'''
     277
     278À effectuer sur cette netlist :
    285279* 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.
    286280* Mettre les différents résultats (surface/temps/optimisation) dans votre rapport.
    287 * Quelle est, selon vous, la meilleure des netlists ? Pourquoi ?
     281
     282= 3. Compte rendu =
     283
     284Vous rédigerez un compte-rendu d'une page maximum pour ce TP, et vous joindrez les fichiers écrits (et uniquement les fichiers écrits, pas ceux générés par les différents outils).
     285Vous ferez attention à bien répondre au question posées ici dans le compte rendu.
     286Vous ferez également attention à joindre votre Makefile de façon à ce que la commande '''make''' effectue les différentes étapes de ce TP de A à Z.