Changes between Version 31 and Version 32 of ToolsCourseTp7


Ignore:
Timestamp:
May 10, 2007, 3:17:38 PM (18 years ago)
Author:
anne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp7

    v31 v32  
    44}}}
    55[[PageOutline]]
     6= 1 Outils utilisés =
     7Vous allez utiliser les outils de placement flot Coriolis et le routeur d'Alliance, ainsi
     8que tous les outils de vérification vus dans le TP précédnt.
     9Vous utiliserez aussi lvx, le comparateur de netlists. Lorsque le système est trop complexe
     10il est difficile d'utiliser proof, le comparateur formel (calculs trop long). On utilise
     11alors une comparaison de netlists. Essayez les deux méthodes (proof et lvx).
     12= 2 Environnement technologique =
     13Outre l'environnement technologique de la première partie du TP, vous devez positionner
     14:
     15{{{
     16> export VH_MAXERR=10
     17> export MBK_WORK_LIB=.
     18> export MBK_CATA_LIB=$ALLIANCE_TOP/cells/sxlib
     19> export MBK_CATA_LIB=$MBK_CATA_LIB :$ALLIANCE_TOP/cells/dp_sxlib
     20> export MBK_CATA_LIB=$MBK_CATA_LIB :$ALLIANCE_TOP/cells/pxlib
     21> export MBK_CATA_LIB=$MBK_CATA_LIB :.
     22> export MBK_CATAL_NAME=CATAL
     23> export MBK_IN_LO=vst
     24> export MBK_OUT_LO=vst
     25> export MBK_IN_PH=ap
     26> export MBK_OUT_PH=ap
     27> export CRL_OUT_LO=vst
     28> export CRL_OUT_PH=ap
     29> export PYTHONPATH=/asim/coriolis/lib/python2.3/site-packages/stratus
     30> export PYTHONPATH=/asim/coriolis/lib/python2.3/site-packages/isobar :$PYTHONPATH
     31> export PYTHONPATH=/asim/coriolis/lib/python2.3/site-packages :$PYTHONPATH
     32}}}
     33NB : Ces variables d'environnement sont positionnées par défaut, mais il peut être
     34utile de les vérifier.
     35= 3 Précautions quant au nommage des fichiers =
     36D'une manière générale, les fichiers décrivant une netlist logique doivent porter le
     37même nom que le fichier correspondant décrivant la vue physique. C'est à dire que
     38le fichier amd2901_dpt.vst (vue logique) doit correspondre au fichier amd2901_dpt.ap
     39(vue physique). Il en va de même pour le fichier amd2901_core.
     40= 4 Travail sur le chemin de données : Préplacement des opérateurs =
     41Le TP précédent vous a permis de décrire la netlist hiérarchique du chemin de donn
     42ées. Vous allez maintenant placer les colonnes du chemin de données de manière à
     43profiter de la régularité du chemin de données.
     44Pour réaliser votre placement des opérateurs, vous disposez des fonctions de STRATUS
     45suivantes :
     46 *  !Place()
     47 *  !PlaceRight(), !PlaceTop(), !PlaceLeft(), !PlaceBottom()
     48 *  !SetRefIns()
     49 *  !DefAb(), !ResizeAb()
     50Toutes ces fonctions doivent être utilisées dans la méthode Layout.
     51Reprenons l'exemple du TP précédent, on donne le code suivant pour le fichier circuit.py :
     52{{{
     53#!/usr/bin/env python
     54from stratus import *
     55# definition de la cellule
     56class circuit ( Model ):
     57...
     58def Layout ( self ):
     59Place ( self.instance_nand2_4bits, NOSYM, XY ( 0, 0 ) )
     60PlaceRight ( self.instance_or2_4bits, NOSYM )
     61PlaceRight ( self.instance_add2_4bits, NOSYM )
     62}}}
     63Ensuite pour le fichier test_circuit.py, il faut rajouter l'appel à la méthode Layout :
     64{{{
     65#!/usr/bin/env python
     66from stratus import *
     67from circuit import circuit
     68my_circuit = circuit ( "mon_circuit" ) # creation du circuit
     69my_circuit.Interface() # creation de l’interface
     70my_circuit.Netlist() # creation de la netlist
     71my_circuit.Layout() # creation du layout
     72my_circuit.View() # pour afficher le layout
     73my_circuit.Save ( PHYSICAL ) # sauver les fichiers mon_circuit.vst et mon_circuit.ap
     74}}}
     75
     76Reprenez le fichier amd2901_dpt.py. Pour l'instant, ce fichier ne comporte qu'une
     77description de la netlist. Cela vous a permis de générer une description structurelle
     78sous la forme d'un fichier .vst. Il s'agit maintenant de placer explicitement les colonnes.
     79'''Le placement des colonnes du chemin de données ne doit pas être
     80fait au hasard. La faisabilité et la qualité du routage en dépendent !'''
     81Aidez-vous du manuel de STRATUS :
     82''~file :///asim/coriolis/share/doc/en/html/stratus/index.html''
     83Utilisez STRATUS pour générer le tout :
     84{{{
     85> ./execute_amd2901_dpt.py
     86}}}
     87
    688
    789
     
    30112 = 2 Travail sur le cicuit complet =
    31113
    32   Prenez le fichier amd2901_chip.py et complétez la méthode Layout.
     114  Prenez le fichier [attachment:amd2901_chip.py coeur du circuit] et complétez la méthode Layout.
    33115
    34116== 2.1 Placement de la couronne de plots et du coeur ==