Changes between Version 57 and Version 58 of ToolsCourseTp7


Ignore:
Timestamp:
Oct 7, 2008, 4:16:16 PM (16 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp7

    v57 v58  
    1111Le but de ce TP est d'utiliser les outils de placement / routage automatique du flot Coriolis/Alliance ainsi que tous les outils de vérification vus dans les TPs précédents, pour générer le dessin des masques du circuit AM2901.
    1212
    13 Le TP4 vous a permis d'utiliser le langage '''Stratus''' pour décrire la netlist hiérarchique  du circuit AM2901.
     13Les TPs 3 et 4 vous ont permis d'utiliser le langage '''Stratus''' pour décrire la netlist hiérarchique  du circuit AM2901.
    1414
    1515On va maintenant utiliser le langage '''Stratus''' pour introduire des directives de placement dans les différents fichiers ''.py'' décrivant  la netlist.
    1616
    17 Il est par exemple possible d'exploiter la régularité des opérateurs du chemin de données pour imposer un placement en colonnes : tous les bits d'un même opérateur sont placés en colonne, et il est possible d'imposer un placement relatifn des colonnes les unes par rapport aux autres.
     17Il est par exemple possible d'exploiter la régularité des opérateurs du chemin de données pour imposer un placement en colonnes : tous les bits d'un même opérateur sont placés en colonne, et il est possible d'imposer un placement relatif des colonnes les unes par rapport aux autres.
    1818On va également définir le placement des plots d'entrée/sortie sur la périphérie du circuit.
    1919
     
    5858= 3 Fonctions de placement fournies par '''Stratus''' =
    5959
    60 Pour définir les directives de placement, le langage '''Stratus''' fournit les fonctions' suivantes :
     60Pour définir les directives de placement, le langage '''Stratus''' fournit les fonctions suivantes :
    6161 * Place()
    6262 * !PlaceRight(), !PlaceTop(), !PlaceLeft(), !PlaceBottom()
     
    6464 * !DefAb(), !ResizeAb()
    6565
    66 Vous pouvez consulter le manuel de ''Stratus'' en ligne :
     66Vous pouvez consulter le manuel de '''Stratus''' en ligne :
    6767
    6868https://www-asim.lip6.fr/recherche/coriolis/doc/en/html/stratus/index.html
    6969
    7070Toutes ces fonctions doivent être utilisées dans la méthode ''Layout'' associée au bloc considéré.
    71 A titre d'exemple, on donne le code suivant pour le fichier circuit.py :
     71
     72A titre d'exemple, on donne le code suivant pour le fichier circuit.py décrivant la cellule présentée dans le TP4 :
    7273{{{
    7374#!/usr/bin/env python
     
    9899
    99100Reprendre le fichier ''am2901_dpt.py'' du TP4. Pour l'instant, ce fichier ne comporte qu'une description de la netlist, qui a permis de générer un fichier ''am2901_dpt.vst''.
    100   * Placer explicitement les colonnes représentants les différents opérateurs 4 bits du chemin de données les unes par rapport aux autres, en ajoutant une méthode ''Layout'' dans ce fichier.
    101   * Après avoir modifié le fichier ''am2901_dpt.py'', générer le fichier de placement ''am2901_dpt.ap'' :
    102 {{{
    103 > ./execute_amd2901_dpt.py
    104 }}}
     101  * Placer explicitement les colonnes représentant les différents opérateurs 4 bits du chemin de données les unes par rapport aux autres, en ajoutant une méthode ''Layout'' dans ce fichier.
     102  * Modifier l'appel à la fonction ''Generate'' dans le coeur de façon à créer la vue physique du chemin de données.
     103  * Faire appel à la méthode ''View'' pour visulaliser le placement généré.
    105104
    106105[[Image(preplacement.jpg,nolink)]]