
**************************************************************************************************************
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 entrées, les sorties, le flot
                     de conception préconisé, Définition 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 Définition du language commun annoté (xfg: xlm flow graph)
   0+6  LIP          Livrable 1: V0 un document, une dtd
   0+12 LIP          Livrable 1: V1 un document, une dtd
   0+18              Livrable 1: V2 expression du potentiel des boucles 

   0+12 LAB-STIC     Livrable 2: VO gcc2coach, coach2c
   0+18 LAB-STIC                 FI gcc2coach, coach2c
   0+18 LIP6         Livrable 3: VO coach2systemc
   0+24 LIP6                     FI coach2systemc
	LAB-STIC : Livrable 4: V0  0+18 coach2vhdl
                 V1 : 0+24
                 FI : 0+32

TASK-4  LAB-STIC+ALL Définition et description des cellules de base et de leur caractéristques.
   0+6  LAB-STIC     Livrable 1: un document
   0+12 LAB-STIC     Livrable 2: outil de caractéristion automatique 

**************************************************************************************************************
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'entrée de CSG (Coach System Generator):
					 la syntaxe d'entrée TCG, architecture,
					les primitives de communication entre taches
                     (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 matériels de l'architecture SOCLIB + composants génériques
   0+18 LIP6         Livrable 1: VHDL synthetisable des composants VCI : MWMR, IRQ.
wrapper
   0+18 IRISA?       Livrable 2: wrapper SystemC VCI/AVALON
   0+18 IRISA?       Livrable 3: wrapper VHDL synthé VCI/AVALON
   0+18 TIMA?        Livrable 4: wrapper SystemC VCI/PLB
   0+18 TIMA?        Livrable 5: wrapper VHDL synthé VCI/PLB
  
   0+18 CITI         Livrable 6: VHDL synthetisable d'un composant VCI MWMR++ (DMA intelligent)
   0+18 CITI         Livrable 7: modèle SystemC d'un composant MWMR++ VCI(DMA intelligent)
   0+18 LAB-STICC    Livrable 8: VHDL synthetisable d'un composant spatio-temporel


sans wrapper
   0+18 TIMA         Livrable 2: VHDL synthetisable des composants PLB :MWMR, IRQ.
   0+18 TIMA		 Livrable 3: modèle SystemC des composants PLB :MWMR, IRQ.
   0+18 IRISA?       Livrable 4: VHDL synthetisable des composants AVALON : MWMR, IRQ.
   0+18 IRISA?       Livrable 5: modèle SystemC des composants AVALON :MWMR, IRQ.

   0+18 CITI         Livrable 6: VHDL synthetisable d'un composant VCI MWMR++ (DMA intelligent)
   0+18 CITI         Livrable 6: VHDL synthetisable d'un composant PLB MWMR++ (DMA intelligent)
   0+18 CITI         Livrable 6: VHDL synthetisable d'un composant AVALON MWMR++ (DMA intelligent)
   0+18 CITI         Livrable 6: modèle SystemC d'un composant MWMR++ VCI(DMA intelligent)
   0+18 CITI         Livrable 6: modèle SystemC d'un composant MWMR++ PLB (DMA intelligent)
   0+18 CITI         Livrable 6: modèle SystemC d'un composant MWMR++ AVALON(DMA intelligent)

   0+18 LAB-STICC    Livrable 7: VHDL synthetisable d'un composant spatio-temporel

TASK-5  TIMA         Composants matériels 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 matériels 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  Extraction de motifs et regénération au format COACH annoté
	0+18      		Livrable 1: V0 Intégration manuelle des motifs
    0+24						FI Intégration automatique des motifs (architecture-dépendant)

TASK-2 IRISA  Définition d'un modele simplifie de micro-architecture capable d'éxecuter des motifs issues de la tâche 1
	0+12		Livrable 1: Modèle SystemC du MIPS extensible
	0+18		Livrable 1: Modèle VHDL du MIPS extensible

	0+12		Livrable 2: Modèle SystemC du NIOS extensible
	0+18		Livrable 2: Modèle VHDL NIOS extensible
	
	0+12		Livrable 3: Modèle SystemC du µblaze extensible ??
	0+18		Livrable 3: Modèle µBlaze extensible ???
	
	
TASK-3 IRISA  Définition d'un modele complexe de micro-architecture
	0+24		Livrable 1: Modèle SystemC du MIPS extensible
	0+24		Livrable 1: Modèle VHDL du MIPS extensible
    0+36        Livrable 2: Rapport d'evaluation


TASK-4 LIP-ALL   Exploitation des boucles Polyedriques
    0+12     Outil d'ordonnancement
    0+18     Outil d'exploration des transformations
    0+24     generation du code xfg etendu V1
    0+30     gestion de la memoire et contraction des tableaux
    0+34     generation du code xfg etendu V2

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

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

TASK-2  LIP6/TIMA   évolution 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  LAB-STICC    Adaptation de GAUT a COACH
   0+18				Livrable 1: executable(lire du xcoach)
   0+18				Livrable 2: executable(ecrire du xcoach annote)

TASK-4  LAB-STICC   évolution de GAUT
   0+18             Livrable 1: prise en compte du modèle CDFG 
   0+??             Livrable 2: génération d'architecture multi-clock.
   0+??             Livrable 3: synthése hierachique 

TTASK-5  LIP6        Calibrage de la fréquence 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/Accélérateur:

TASK-1  LIP6+ALL     Définition des protocoles de communication entre l'application qui
                     tourne sur le PC et le TCG qui tourne sur l'accélérateur.
   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 inutile si bridge)
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)

            RECONFIGURATION 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     |
________|_______________|_______________|_______________|_______________|_______________|___________|


François charot (IRISA) : développeur des composants soclib compatibles Avalon

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