
    $Id: SPECS.txt,v 1.2 2000/05/12 13:38:17 jpc Exp $


    Universit Pierre & Marie Curie (PARIS VI)
    L I P 6   -   D  p a r t e m e n t   A S I M


    S p  c i f i c a t i o n s   d e   D p G e n
    v e r s i o n   0 . 1


    Le 11 mai 2000

    Jean-Paul CHAPUT  <Jean-Paul.Chaput@lip6.fr>

    
    ------------------------------------------------------------------


    S o m m a i r e


    I - I n t r o d u c t i o n

        I.1 - Le Layout.
        I.2 - Impact sur les outils de description des netlists.
        I.3 - Nouvelle interface procdurale.
        I.4 - Vues gnres.


    ------------------------------------------------------------------


    I - I n t r o d u c t i o n
    [ m a d e   b y   P i p o t r o n ]


    I.1 - Le Layout.

      Les technologies  deux niveaux de mtaux imposaient deux gabarits
    de cellules diffrents. D'une part les cellules prcaractrises pour
    les parties de contrle routes en utilisant des canaux. D'autre part
    les cellules de type  chemins de donnes  bien adaptes aux flux de
    donnes unidirectionnels.
      L'avnement des technologies  plus de deux niveaux de mtaux rend
    obsolte cette organisation. Dsormais toutes les cellules ont un
    gabarit unique et sont connectes avec le mme routeur. Il dcoule
    de cette unification deux consquences importantes :

      1. On peut inclure dans le layout d'une partie irrgulire un
         oprateur de chemin de donnes (comme un additionneur o un
         multiplieur).

      2. Certains oprateurs de chemins de donnes ne sont pas suffisament
         rguliers pour pouvoir tre plas automatiquement, il est
         souhaitable de pouvoir le placer grce  un outil externe.

      En revanche, on conserve la capacit  gnrer des placements pour
    les oprateurs rguliers.


    I.2 - Impact sur les outils de description des netlists.

      FpGen  manipulant des netlists de cellules au mme gabarit que GenLib
    et pouvant tre utlises dans GenLib, FpGen n'a plus lieu d'exiter en
    tant que language de description spcifique.
      DpGen doit donc tre vu comme une extention de GenLib. Cette extention
    fournissant un ensemble de macro-cellules (ou oprateurs) utilisable
    soit pour construire un chemin de donnes, soit pour utiliser un
    oprateur complexe dans une netlist  ordinaire .

      Un autre obectif de cette restructuration est de pouvoir offrir  un
    outil de synthse une API en C lui permettant de manipuler des
    oprateurs complexes (cf. SCMAP 2015).
    
    
    I.3 - Nouvelle interface procdurale.

      La principale particularit de FpGen tait de fusionner la gnration
    des modles et leur instantiation. Dans DpGen, on revient  une
    approche classique en deux tapes.
      Exemple :

        FpGen : DP_AND2("mon_and2", ...);

        DpGen : GENLIB_MACRO(DPGEN_AND2, "modele_and2", ...);
                GENLIB_LOINS("modele_and2", "mon_and2", ...);

      La fonction "GENLIB_MACRO()", est l'interface (unique) de tous les
    gnrateurs de DpGen, en interne elle fait elle mme appel  GenLib.
    Nous somme donc ammens  introduire une notion de rcursivit dans
    GenLib d'o la suggestion des fonctions suivantes :

                GENLIB_PUSH()  :  sauvegarde du contexte.
                GENLIB_POP()   :  restauration du contexte.

      Pour l'instant ces fonctions se limitent seulement  empiler et
    dpiler "WORK_LOFIG".
      "GENLIB_MACRO()" est capable de gnrer un placement pour les
    oprateurs rguliers.

      Pour placer un chemin de donnes avec DpGen on utilisera avantageu-
    sement les fonctions traditionnelles "PLACE_RIGHT()" et "PLACE_LEFT()".


    I.4 - Vues gnres.

      FpGen produisait deux vues :

      1. Une description comportementale de l'oprateur (.vbe).

      2. Un layout rout de l'oprateur.

      Les oprateurs de DpGen sont construits  partir de cellules de sxlib
    o dp_sxlib. Toutes ces cellules disposent d'un modle comportemental
    (et d'une caractrisation lectrique). La connectique interne aux opra-
    teurs peut donc tre ralise par le routeur gnrique, ce qui implique
    que DpGen gnre un placement et une description structurelle (connec-
    tique) des oprateurs. Le niveau hierarchique correspondant aux opra-
    teurs devra tre supprim avant le routage.
      Par ailleurs, dans certains cas, on ne souhaite pas avoir de placement
    du tout pour un oprateur.
      Bien que la vue comportementale d'un oprateur ne soit plus ncssaire
    pour utiliser DpGen, on la conserve  des fins de validation de l'outil.

      En rsum DpGen produira :

      1. Une description structurelle de l'oprateur (.vst, netlist en
         portes de sxlib & dp_sxlib).

      2. Un placement (optionnel) des portes.

      3. Une vue comportementale (.vbe) de l'oprateur (uniquement destine
          la procdure de validation de l'oprateur).
