
**************************************************************************************************************
Work package 1 : Specification de l'architecture logicielle de COACH et outils communs:

TASK-1  LIP6+ALL     Specification de COACH au niveau du concepteur de systeme:
                     COACH est une boite noire, les entres, les sorties, le flot
                     de conception prconis, Dfinition de l'architecture du MP-SoC et ses 3 mappings
   0+6  LIP6         Livrable-1: un document

TASK-2  LIP6+ALL     Structure interne de COACH.
   0+6  LIP6         Livrable: un document

TASK-3  LAB-STIC+ALL Dfinition du language commun annot.
   0+6  LIP          Livrable 1: V0 un document, une dtd
   0+12 LIP          Livrable 1: FI un document, une dtd
   0+12 LAB-STIC     Livrable 2: VO gcc2coach, coach2c
   0+18 LAB-STIC     Livrable 2: FI gcc2coach, coach2c
   0+18 LIP6         Livrable 3: coach2systemc
   0+18 TIMA         Livrable 4: coach2vhdl

TASK-4  LAB-STIC+ALL Dfinition et description des cellules de base et de leur caractristques.
   0+6  LAB-STIC     Livrable 1: un document
   0+12 LAB-STIC     Livrable 2: ?????

**************************************************************************************************************
Work package 2 : Outils de conception systemes:

TASK-1  LIP6         Mutek Operating sytem
   0+12 LIP6         Livrable 1: OS pour Embedded System
   0+30 LIP6         Livrable 2: OS pour HPC (driver PCI/X) et reconfiguration dynamique
TASK-2  TIMA         DNA Operating sytem
   0+12 TIMA         Livrable 1: OS pour Embedded System
   0+30 TIMA         Livrable 2: OS pour HPC (driver PCI/X) et reconfiguration dynamique
TASK-3  LIP6+ALL     Definition de l'entre de CSG (Coach System Generator): la syntaxe
                     d'entre TCG, architecture, les primitives de communication entre tache
                     (variable globale, canaux, tampon ping-pong). 
   0+6  LIP6         Livrable 1: document
   0+12 LIP6         Livrable 2: Executable sans reconfiguration: gestion des 3 architectures.
   0+30 TIMA+LIP6    Livrable 3: CSG avec reconfiguration +++++ Ajouter CDP-2-3

TASK-4 LIP6          Composants matriels de l'architecture SOCLIB
   0+18 LIP6         Livrable 1: VHDL synthetisable des composants MWMR, IRQ.

TASK-5  TIMA         Composants matriels de l'architecture Xilinx
   0+18 TIMA         Livrable 1: modele systemC des composants MWMR, IRQ.
   0+20 TIMA         Livrable 2: VHDL synthetisable des composants MWMR, IRQ.

TASK-6  IRISA        Composants matriels de l'architecture Altera
   0+18 IRISA        Livrable 1: modele systemC des composants MWMR, IRQ.
   0+20 IRISA        Livrable 2: VHDL synthetisable des composants MWMR, IRQ.

**************************************************************************************************************
Work package 3 : Outils de synthese front-end (polyedrique et ASIP)

TASK-1 IRISA  Un compilateur reciblable pour MIPS etendu (software)
TASK-2 IRISA  Definition d'un modele simplifie de micro-architecture MIPS extensible (sofware)
TASK-3 IRISA  Dfinition d'un modele complexe de micro-architecture MIPS extensible  (rapport/software ?)
TASK-4 IRISA  Dfinition d'un modele complexe de micro-architecture MIPS extensible (exploratoire, rapport)

**************************************************************************************************************
Work package 4 : Outils de synthese back-end (UGH, GAUT)

TASK-1  LIP6/TIMA    Adaptation de UGH a COACH (lire du xcoach ecrire du xcoach annote)
   0+18 TIMA         Livrable 1: executable

TASK-2  LIP6/TIMA    Amlioration de UGH.
   0+18 LIP6         Livrable 1: executable UGH qui tient compte des primitives d'IO definies
                                 dans le WP2-T3
   0+?? TIMA         Livrable 2: executable UGH qui peut generer une architecture sans que les assignations
                                 des variables sur les registres soient explicites.

TASK-3  LIP6         Calibrage de la frquence des coprocesseurs
   0+6  LIP6         Livrable 1: document
   0+12 LIP6         Livrable 2: VHDL synthetisable de la FSM calibrable dynamiquement
   0+20 LIP6         Livrable 3: logiciel de calibrage (cote OS et cote PC).


**************************************************************************************************************
Work package 5 : Interlogiciel de communication PC/Acclrateur:

TASK-1  LIP6+ALL     Dfinition des protocoles de communication entre l'application qui
                     tourne sur le PC et le TCG qui tourne sur l'acclrateur.
   0+6  LIP6         Livrable 1: Document.

TASK-2  LIP6         Outils d'aide au bi-partitionnement (mesure de l'efficacit)
   0+12 LIP6         Livrable 1: Librairie C de communication contenant du code permettant
                       d'estimer l'efficacite.

TASK-3  ????         HW pour l'architecture SOCLIB
   0+?? ????         Livrable: VHDL synthetisable d'un pont VCI/Avalon
   0+?? TIMA         Livrable: VHDL synthetisable d'un pont VCI/Bus-xilinx

TASK-4  ????         Sofware pour HPC
   0+?? ????         Livrable 1: driver PCI/X de IP Altera
   0+?? TIMA         Livrable 2: driver PCI/X de IP Xilinx
   0+20 LIP6         Livrable 3: Implantation du protocole deifini en TASK-1 du cote PC/Linux
                                 et SOC.
 

**************************************************************************************************************

---------------------------------------------------------------------------------
Annexe 1
Actions de base determinees lors d'une reunion LIP6/TIMA
---------------------------------------------------------------------------------

            HLS :
UBS+TOUS     *1) Définition des cellules et calibrage en fonction des cibles (WP1-T4)
LIP6         *2) Calibrage de la fréquence des coprocesseurs
TOUS         *3) Définition de la représentation intermédiaire commune (WP1-T3)
TOUS         *4) Définition de la représentation intermédiaire annotée, en vue (WP1-T3)
                 de génération de SystemC et VHDL
UBS          *5) gcc2xml-coach, xml-coach2c (WP1-3)
                 - pilotage du front-end gcc
LIP6         *6) xml-coach2SystemC (WP1-3)
TIMA         *7) xml-coach2VHDL (WP1-3)

            UGH:
LIP6+TIMA    *1) Extension des primitives de communication (WP2-T3)
                 - variables globales, scalaires et tableaux
                 - pipeline lecture/calcul/écriture en utilisant des 
                   primitives genre aio_read/aio_write/aio_return

TIMA         *2) génération automatique du DDP en fonction du comportement
                 relacher un peu les contraintes syntaxiques (WP4-T2)

	      3) n'apparait pas dans les WP inclus implicite dans (WP4-T2 ou T1).
TIMA+LIP6     *3) alléger la dépendance syntaxique entre le C et le DDP
                 - associer un ensemble de variables à un RGF
                 - ajout automatique des registres
TIMA         *4) Utilisation du xml à la place du front-end gcc actuel (WP4-T1)
                 donc en pratique du xml-coach2vpn
LIP6         *5) Génération du xml-coach annoté (WP4-T1)

            CONFIGURATION DYNAMIQUE PARTIELLE:
LIP6+TIMA    *1) Introduction de la notion de conteneur : définition, (WP2-T3)
                 structuration, fusion, ...
                 Bitstream correspondants
TIMA         *2) Gestion de la reconfiguration dynamique partielle pour
                 optimiser l'utilisation des ressources FPGA
TIMA         *3) Définition de la gestion des bitstreams avec des copies
                 locales et stockage dans les hiérarchies mémoires
LIP6+TIMA    *4) Implantation sur DSX : connaissance de la notion de conteneur (WP2-T3-L3)
TIMA+LIP6    *5) Impact sur l'OS (chargement dynamique d'applications ou de
                 tâches) (WP2-T1/T2-L2)

            TOOLING FOR EMBEDDED
            CSG (Coach System Generator) :
TOUS         *1) Définition d'un gabarit architectural (WP1-T1)
TOUS         *2) Définition de 3 mappings possibles : (WP1-T1)
                 soclib vhdl, xilinx et altera (en DSX)
LIP6         *3) Introduire la notion de variables partagées dans DSX (WP2-T3)
                 - qui a le droit d'écrire une variable partagée ?
LIP6+TIMA    *4) Choix et fourniture des OS (WP2-T1/2-L1) et HW (WP2-T4/5/5) qui va avec
+TOUS            - Etude des RAMLOCKS vs LL/SC
                 - Controleur d'interruption
                 - ...

            TOOLING FOR HPC
LIP6         *1) Définition des protocoles entre l'OS du PC et l'OS du SoC (W5-T1)
LIP6         *2) Outil de mesure de l'efficacité d'un bi-partitionnement de (W5-T2)
                 l'application
LIP6+TIMA+   *3) Connexion hw entre PC et SoC : pci-express (WP5-T3)
IRISA               bridge os/pci-express/avalon-plb/vci
                    (nécessite différentes implantations pour les
                     différentes cartes + drivers correspondant)
LIP6         *4) Implantation du protocole et du loader : (WP2-T1/2-L2), WP5-T4-L3
                 lib unix, driver linux, driver os-soc


---------------------------------------------------------------------------------
Annexe 2
---------------------------------------------------------------------------------
____________________________________________________________________________________________________
        |ICU Avalon     |ICU Xilinx     |MWMR Avalon    |MWMR Xilinx    |NIOS           |MICROBLAZE |
________|_______________|_______________|_______________|_______________|_______________|___________|
SystemC |IRISA          |TIMA           |IRISA          |TIMA           |?              |?          |
________|_______________|_______________|_______________|_______________|_______________|___________|   
VHDL    |IRISA          |TIMA           |IRISA          |TIMA           |Altera         |Xilinx     |
________|_______________|_______________|_______________|_______________|_______________|___________|


Franois charot (IRISA) : dveloppeur des composants soclib compatibles Avalon

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