Changes between Version 11 and Version 12 of ToolsTp1


Ignore:
Timestamp:
Dec 9, 2009, 10:53:48 AM (15 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsTp1

    v11 v12  
    88= 1 Introduction =
    99
    10 Le but de ce TP est de présenter quelques outils de la chaîne '''ALLIANCE''' dont :
    11   * Les outils de synthèse logique '''SYF''', '''BOOM''', '''BOOG''', '''LOON''' ;
    12   * L'éditeur graphique de netlist '''XSCH''' ;
    13   * Les outils pour la preuve formelle '''FLATBEH''', '''PROOF''' ;
    14   * Le simulateur '''ASIMUT''' ;
     10Le but de ce TP est de présenter quelques outils de la chaîne '''Alliance''' dont :
     11  * Les outils de synthèse logique '''syf''', '''boom''', '''boog''', '''loon''' ;
     12  * L'éditeur graphique de netlist '''xsch''' ;
     13  * Les outils pour la preuve formelle '''flatbeh''', '''proof''' ;
     14  * Le simulateur '''asimut''' ;
    1515Chaque outil possède ses propres options donnant des résultats plus ou moins adaptés suivant l'utilisation que l'on veut faire du circuit.
    1616
     
    1818
    1919Ce TP portera donc sur les méthodes de génération et de validation d’une netlist de cellules précaractérisées.
    20 En effet, même s’il est acquis que les outils de génération d’ '''ALLIANCE''' fonctionnent correctement, la validation de chaque vue générée est indispensable.
     20En effet, même s’il est acquis que les outils de génération d’ '''Alliance''' fonctionnent correctement, la validation de chaque vue générée est indispensable.
    2121Elle permet de limiter le coût et le temps de la conception.
    2222
     
    4949
    5050Afin de décrire de tels automates, on utilise un style particulier de description VHDL qui définit l'architecture fsm.
    51 Le fichier correspondant possède également l'extension '''.fsm'''.
    52 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.
    53 '''SYF ''' génère donc un fichier VHDL au format '''.vbe'''.
    54 
    55 Comme la plupart des outils utilisés au laboratoire, il faut positionner certaines variables d'environnement avant d'utiliser '''SYF'''.
    56 Pour les connaître, reportez-vous au man de '''SYF'''.
     51Le fichier correspondant possède également l'extension ''.fsm''.
     52A partir de ce fichier, l'outil '''syf''' effectue la synthèse d'automate et transforme cet automate abstrait en un réseau booléen.
     53'''syf ''' génère donc un fichier VHDL au format ''.vbe''.
     54
     55Comme la plupart des outils utilisés au laboratoire, il faut positionner certaines variables d'environnement avant d'utiliser '''syf'''.
     56Pour les connaître, reportez-vous au man de '''syf'''.
    5757
    5858    === 1.1.3 Exemple ===
    5959
    60 Afin de se familiariser avec la syntaxe de description d'un fichier '''.fsm''', un exemple
     60Afin de se familiariser avec la syntaxe de description d'un fichier ''.fsm'', un exemple
    6161de compteur de trois "1" successifs est présenté. Sa vocation est de détecter par exemple sur une liaison série une séquence de trois "1" successifs. Le graphe d'états que l'on cherche à décrire est représenté sur la figure .
    6262
     
    148148    === 1.2.1 Synthèse logique ===
    149149
    150 La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau booléen (format '''.vbe''').
     150La synthèse logique permet d'obtenir une netlist de portes à partir d'un réseau booléen (format ''.vbe'').
    151151Plusieurs outils sont disponibles.
    152152
    153 L'outil '''BOOM''' permet l'optimisation de réseau booléen avant synthèse.
    154 
    155 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'''.
    156 La netlist pouvant être soit au format '''.vst''' soit au format '''.al''', pensez à vérifier la variable d'environnement '''MBK_OUT_LO'''.
     153L'outil '''boom''' permet l'optimisation de réseau booléen avant synthèse.
     154
     155L'outil '''boog''' offre la possibilité de synthétiser une netlist en utilisant une bibliothèque de cellules précaractérisées telle que '''sxlib'''.
     156La netlist pouvant être soit au format ''.vst'' soit au format ''.al'', pensez à vérifier la variable d'environnement '''MBK_OUT_LO'''.
    157157
    158158    === 1.2.2 Résolution des problèmes de fanout (sortance) ===
     
    161161Ceci se traduit par une détérioration des fronts (rise time et fall time).
    162162Il y a alors une perte en performance temporelle.
    163 Afin 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.
     163Afin 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.
    164164
    165165    === 1.2.3 Visualisation de la chaîne longue ===
    166166
    167 A 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'''.
     167A 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'''.
    168168
    169169||[[Image(T_RC.jpg,nolink)]]||La résistance équivalente '''R'''  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.||
     
    172172
    173173La netlist doit être certifiée.
    174 Pour cela, on dispose du simulateur '''ASIMUT''', mais aussi de l’outil '''PROOF''' qui procède à une comparaison formelle de deux descriptions comportementales ('''.vbe''').
    175 L’outil '''FLATBEH''' permet d’obtenir le nouveau fichier comportemental à partir de la netlist.
     174Pour cela, on dispose du simulateur '''asimut''', mais aussi de l’outil '''proof''' qui procède à une comparaison formelle de deux descriptions comportementales (''.vbe'').
     175L’outil '''flatbeh''' permet d’obtenir le nouveau fichier comportemental à partir de la netlist.
    176176
    177177= 2. Travail à effectuer =
     
    181181  == 2.1 Réalisation d'un compteur ==
    182182     
    183    * En s'inspirant du compteur de trois "un" présenté, écrire au format '''.fsm''' la description d'un compteur de cinq "un" successifs sous la forme d'un automate de Moore.
    184    * Synthétiser l'automate avec '''SYF''' avec les options de codage '''-a''', '''-j''', '''-m''', '''-o''', '''-r''' et en utilisant les options '''-CEV'''.
     183   * En s'inspirant du compteur de trois "un" présenté, écrire au format ''.fsm'' la description d'un compteur de cinq "un" successifs sous la forme d'un automate de Moore.
     184   * Synthétiser l'automate avec '''syf''' avec les options de codage '''-a''', '''-j''', '''-m''', '''-o''', '''-r''' et en utilisant les options '''-CEV'''.
    185185     Penser à bien positionner les variables d'environnement.
    186186{{{
    187187> syf -CEV -a <fsm_source>
    188188}}}
    189   * Visualiser les fichiers '''.enc'''.
    190   * Ecrire le fichier '''.pat''' de vecteurs de test.
    191   * Simuler avec '''ASIMUT''' toutes les vues comportementales obtenues.
     189  * Visualiser les fichiers ''.enc''.
     190  * Ecrire le fichier ''.pat'' de vecteurs de test.
     191  * Simuler avec '''asimut''' toutes les vues comportementales obtenues.
    192192
    193193'''Que se passe-t-il si le reset n'est pas positionné en début de pattern ? Pourquoi ? '''
     
    229229
    230230  * Dessiner le graphe d'états de l'automate.
    231   * Ecrire au format '''.fsm''' l'automate.
    232   * Synthétiser l'automate avec '''SYF''' en utilisant les options de codage '''-a''', '''-j''', '''-m''', '''-o''', '''-r''' et en utilisant les options '''-CEV'''.
     231  * Ecrire au format ''.fsm'' l'automate.
     232  * Synthétiser l'automate avec '''syf''' en utilisant les options de codage '''-a''', '''-j''', '''-m''', '''-o''', '''-r''' et en utilisant les options '''-CEV'''.
    233233{{{
    234234> syf -CEV -a <fsm_source>
    235235}}}
    236   * Ecrire le fichier '''.pat''' de vecteurs de test.
    237   * Simuler avec '''ASIMUT''' toutes les vues comportementales obtenues.
     236  * Ecrire le fichier ''.pat'' de vecteurs de test.
     237  * Simuler avec '''asimut''' toutes les vues comportementales obtenues.
    238238
    239239'''Quelles sont vos remarques concernant la complexité des expressions (i.e temps) et le nombre de registres (i.e surface) des descriptions comportementales suivant les encodages ?
     
    242242'''Comparez aussi leurs nombres de littéraux.'''
    243243
    244   * Lancer l'optimisation du réseau booléen avec l'outil '''BOOM''' en demandant une optimisation en '''surface''' puis en '''délai'''.
     244  * Lancer l'optimisation du réseau booléen avec l'outil '''boom''' en demandant une optimisation en '''surface''' puis en '''délai'''.
    245245{{{
    246246> boom -V <vbe_source> <vbe_destination>
    247247}}}
    248   * Essayer '''BOOM''' avec les différents algorithmes '''-s''', '''-j''', '''-b''', '''-g''', '''-p'''... Le mode et le niveau d'optimisation sont aussi à changer.
     248  * Essayer '''boom''' avec les différents algorithmes '''-s''', '''-j''', '''-b''', '''-g''', '''-p'''... Le mode et le niveau d'optimisation sont aussi à changer.
    249249  * Comparer le nombre de littéraux après factorisation.
    250250
    251251Pour chacun des réseaux booléens obtenus précédemment, effectuer le mapping sur cellules précaractérisées :
    252   * Synthétiser la vue structurelle (en faisant attention à bien positionner les variables d'environnement) en ancant l'outil '''BOOG'''.
     252  * Synthétiser la vue structurelle (en faisant attention à bien positionner les variables d'environnement) en ancant l'outil '''boog'''.
    253253{{{
    254254> boog <vbe_source>
    255255}}}
    256   * Observer l'influence des options de '''SYF''' et de '''BOOM''' avec les différences netlists obtenues.
    257   * 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.
    258   * Utiliser '''XSCH''' pour visualiser la netlist.
     256  * Observer l'influence des options de '''syf''' et de '''boom''' avec les différences netlists obtenues.
     257  * 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.
     258  * Utiliser '''xsch''' pour visualiser la netlist.
    259259{{{
    260260>xsch -I vst -l <vst_source>
     
    265265
    266266Pour toutes les vues structurelles obtenues précédemment :
    267   * Optimiser la netlist en lancant l'outil '''LOON'''.
     267  * Optimiser la netlist en lancant l'outil '''loon'''.
    268268{{{
    269269> loon <vst_source> <vst_destination> <lax_param>
    270270}}}
    271   * Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option '''.lax'''. Imposer des valeurs de capacités sur les sorties.
     271  * Effectuer une optimisation de fanout en modifiant le facteur de fanout dans le fichier d'option ''.lax''. Imposer des valeurs de capacités sur les sorties.
    272272
    273273'''Quelle est, selon vous, la meilleure des netlists ? Pourquoi ?'''
    274274
    275275À effectuer sur cette netlist :
    276   * 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.
    277 
    278   * Deux précautions valent mieux qu’une ! Faire une vérification formelle de la netlist en la comparant au fichier comportemental d’origine issu de '''SYF'''.
     276  * 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.
     277
     278  * Deux précautions valent mieux qu’une ! Faire une vérification formelle de la netlist en la comparant au fichier comportemental d’origine issu de '''syf'''.
    279279{{{
    280280> flatbeh <vst_source> <vbe_dest>