Changes between Version 9 and Version 10 of ToolsTp4


Ignore:
Timestamp:
Jan 13, 2010, 1:18:03 PM (15 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsTp4

    v9 v10  
    7676[[Image(preplacement.jpg,nolink)]]
    7777
    78   * L'appler à la méthode ''View'' dans le script python permet de visualiser le placement du chemin de données. Vous pouvez également visualiser ce placement en utilisant '''graal'''.
     78  * L'appel à la méthode ''View'' dans le script python permet de visualiser le placement du chemin de données. Vous pouvez également visualiser ce placement en utilisant '''graal'''.
    7979  * Etudiez le placement choisi : vérifiez entre autres que les colonnes ayant un grand nombre d'interconnexions communes sont ''proches''.
    8080
     
    8383  == 3.1 Préplacement des structures régulières ==
    8484
    85 Introduire les étapes suivantes dans la méthode ''Layout'' du fichier ''am2901_core.py'' décrivant le coeur du circuit AM2091 :
    86   * Placer le chemin de données : fonction ''Place()''.
    87   * Agrandir la boite d'aboutement du coeur : fonction ''!ResizeAb()''.
    88   (Cette étape est utile pour réserver la place nécessaire au placement des cellules de la partie contrôle.
    89   La logique "irrégulière" constituant la partie contrôle n'a pas besoin d'être placée explicitement. Cela sera fait automatiquement par la suite !)
    90   * Placer les rails de rappels d'alimentation dans le coeur : fonctions ''!AlimVerticalRail()'' et ''!AlimHorizontalRail()''.
    91   * Placer les connecteurs du coeur : fonction ''!AlimConnectors()''.
    92   * Modifier l'appel à la fonction ''Generate'' dans le chip de façon à générer la vue physique du coeur.
    93   * Faire appel à la méthode ''View'' pour visualiser.
     85Introduisez les étapes suivantes dans la méthode ''Layout'' du fichier ''am2901_core.py'' décrivant le coeur du circuit AM2091 :
     86
     87  * Placez le chemin de données aux coordonnées (0, 0) : fonction ''Place()''.
     88  * Agrandissez la boite d'aboutement du coeur : fonction ''!ResizeAb()''. Cette étape est utile pour réserver la place nécessaire aux cellules de la partie contrôle qui seront placées de façon automatique par la suite. Vous pouvez par exemple dans un premier temps doubler sa hauteur et modifier votre choix une fois que vous aurez visualisé la partie contrôle placée.
     89  * Placez les rails de rappels d'alimentation dans le coeur : fonctions ''!AlimVerticalRail()'' et ''!AlimHorizontalRail()''.
     90  * Placez les connecteurs du coeur : fonction ''!AlimConnectors()''.
     91  * Modifiez l'appel à la fonction ''Generate'' dans le chip de façon à générer la vue physique du coeur.
     92  * Faites appel à la méthode ''View'' pour visualiser le résultat.
    9493
    9594  == 3.2 Placement du coeur et de la couronne de plots ==
    9695
    97 Dans le fichier ''amd2901_chip.py'' fourni, les plots sont instanciés dans la méthode ''Netlist''.
    98 Il vous faut donc :
     96Introduisez les étapes suivantes dans la méthode ''Layout'' du fichier ''am201çchip.py'' décrivant le circuit AM2901 :
    9997
    100   * Définir la taille de la boîte d'aboutement globale du circuit de façon à ce que les plots puissent être placés à la périphérie : fonction ''!DefAb()''.
    101     (On peut commencer par définir une boite d'aboutement de 4000 par 4000 et essayer ensuite de la réduire)
    102   * Placer le coeur du circuit au centre de la boîte d'aboutement du chip : fonction ''!PlaceCentric()''.
    103   * Définir sur quelle face et dans quel ordre placer les plots, cela se fait à l'aide des 4 fonctions : ''!PadNorth()'', ''!PadSouth()'', ''!PadEast()'' et ''!PadWest()''.
    104   * Visualiser le résultat.
     98  * Définissez la taille de la boîte d'aboutement globale du circuit de façon à ce que les plots puissent être placés à la périphérie : fonction ''!DefAb()''. Vous pouvez commencer par définir une boite d'aboutement de 5000 par 5000 et essayer ensuite de la réduire.
     99  * Placez le coeur du circuit au centre de la boîte d'aboutement du chip : fonction ''!PlaceCentric()''.
     100  * Définissez sur quelle face et dans quel ordre placer les plots, cela se fait à l'aide des 4 fonctions : ''!PadNorth()'', ''!PadSouth()'', ''!PadEast()'' et ''!PadWest()''. Les plots devront être placés en regard des cellules auxquelles ils sont connectés.
     101  * Visualisez le résultat.
    105102
    106103  == 3.3 Routage des alimentations ==
     
    111108  == 3.4 Placement de la logique irrégulière ==
    112109
    113 C'est le placeur '''mistral''' qui se charge de placer automatiquement les cellules non encore placées.
     110C'est le placeur '''mistral''' de la chaîne '''Coriolis''' qui se charge de placer automatiquement les cellules non encore placées.
    114111Il détecte quelles sont les cellules qui n'ont pas été placées et complète le placement en utilisant les zones "vides".
     112Dans votre cas, seules les cellules de la partie contrôle restent à placer.
    115113
    116114[[Image(placement.jpg,nolink)]]
    117115
    118   * Appelez le placeur '''mistral''' : fonction ''!PlaceGlue ()''..
    119    (Attention : Pour pouvoir placer automatiquement la logique "irrégulière", il faut avoir préalablement défini la position des plots d'entrée/sortie sur les 4 faces du circuit. L'outil de placement automatique place les cellules non placées en se basant sur les attirances vers les plots ainsi que vers les cellules déjà placées.)
     116  * Appelez le placeur '''mistral''' : fonction ''!PlaceGlue ()''. Pour pouvoir placer automatiquement la logique "irrégulière", il faut avoir préalablement défini la position des plots d'entrée/sortie sur les 4 faces du circuit car l'outil de placement automatique place les cellules non placées en se basant sur les attirances vers les cellules déjà placées ET vers les plots.
    120117  * Visualisez le résultat.
    121118  * Effectuez le placement automatique de cellules de bourrage : fonction ''!FillCell()''.
     
    129126  == 3.6 Routage des signaux logiques ==
    130127
    131 L'appel au routeur automatique '''nero''' n'est pas encore intégré dans le langage '''Stratus'''.
     128Le routeur automatique de la chaîne '''Coriolis''' n'étant pas encore opérationnel, vous devez utiliser '''nero''', le routeur d' '''Alliance'''.
    132129Pour effectuer le routage de tous les signaux autres que le signal d'horloge et les signaux d'alimentation, il faut lancer '''nero''' de la manière suivante :
    133130{{{