Changes between Version 9 and Version 10 of MipsTp2


Ignore:
Timestamp:
Jan 12, 2010, 1:03:59 PM (14 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MipsTp2

    v9 v10  
    55[[PageOutline]]
    66
     7= 1 Schéma du chemin de données =
     8
    79  * Etant donné le fichier de description en vbe du chemin de données fourni lors du TP précédent et des cours présentés, vous devez créer le fichier de description du chemin de données en Stratus :
    810    * Vous avez à disposition un [attachment:mips_r3000_1m_dp.py fichier squelette à compléter]. Ce fichier est à mettre dans le répertoire ''design'' ; le fichier ''.vst'' qui sera obtenu ''remplacera'' le ''.vbe'' que vous aviez à disposition.
    911    * Suivez bien les indications du fichier ''.vbe'' (utilisation de tri-states, de mux à deux entrées ...)
    10     * Vous avez à disposition tous les générateurs de la bibliothèque '''Dpgen''', consultez la documentation fournie : http://www-asim.lip6.fr/recherche/coriolis/doc/en/html/dpgen/index.html.
    11 
    12       Note : Pour le banc de registre, vous pouvez utiliser les générateurs sans décodeur d'adresse DPGENRF2 ou DPGENRF2R0 (non documentés)
    13 
    14       Les générateurs sont utilisables comme suit :
     12    * Vous avez à disposition tous les générateurs de la bibliothèque '''Dpgen''', consultez la documentation fournie : http://www-asim.lip6.fr/recherche/coriolis/doc/en/html/dpgen/index.html. (Note : Pour le banc de registre, vous pouvez utiliser les générateurs sans décodeur d'adresse DPGENRF2 ou DPGENRF2R0 non documentés)
     13    * Les générateurs sont utilisables comme suit :
    1514{{{
    1615    # Génération avec les paramètres voulus
     
    3433                  )
    3534}}}
    36 
    37     Note : Même si le langage offre d'autres possibilités, vous devez dans le cardre de cette UE uniquement utiliser la fonction '''Inst''' pour effectuer les instanciations de cellules ; de plus, même si cela n'est pas obligatoire dans le langage, donnez toujours un nom à L'instance créée en utilisant un attibut de classe (i.e. écrivez '''self.instance = Inst ...''' et non pas '''instance = Inst ...''' ou '''Inst ....'''), cela vous sera utile lors du placement. Donnez des noms les plus significatifs possibles !
     35    * Même si le langage offre d'autres possibilités, vous devez dans le cadre de cette UE uniquement utiliser la fonction '''Inst''' pour effectuer les instanciations de cellules ; de plus, même si cela n'est pas obligatoire dans le langage, donnez toujours un nom à L'instance créée en utilisant un attibut de classe (i.e. écrivez '''self.instance = Inst (...)''' et non pas '''instance = Inst (...)''' ou '''Inst (...)''' tout court), cela vous sera utile lors du placement. Donnez des noms les plus significatifs possibles !
    3836
    3937  * Une fois un fichier ''.vst'' obtenu, modifier le script de test fourni de façon à tester ce fichier.
     38
     39= 2 Placement du chemin de données =
     40
     41L'intérêt de décrire le chemin de données à la main en '''Stratus''' et d'utiliser la bibliothèque '''Dpgen''' est de profiter de la régularité des cellules. Vous devez ici effectuer le placement à la main des différents générateurs '''Dpgen''' que vous avez instancié.
     42
     43  * Créez une méthode '''Layout''' dans la description '''Stratus''' du chemin de données.
     44  * Placez avec les directives fournies par '''Stratus''' ('''Place()''', '''!PlaceRight()''', ....) toutes les colonnes qui ont été instanciées dans la netlist. Vous devez bien réfléchir à votre placement, le routage en dépendra ! N'hésitez pas à faire des schémas pour représenter les connections entre colonnes et placez à proximité les colonnes ayant un grand nombre d'interconnexions communes.
     45  * De façon à avoir une idée de la qualité de votre placement, vous pouvez lancer le script python createCongestion.py inclu dans Stratus, comme suit :
     46{{{
     47> createCongestion.py mips_r3000_1m_dp
     48}}}
     49
     50    Cela peut être fait sur chacun des fichiers représentant le circuit, du moment que les fichiers ''.vst'' et ''.ap'' (avant routage) existent. L'image obtenue permet d'évaluer la congestion (i.e. les endroits susceptibles de poser problème lors du routage) : noir = pas de congestion, rouge = un peu de congestion, jaune / blanc : beaucoup de congestion ...