\begin{taskinfo}
\let\BULL\enable
\let\THALES\leader
\let\NAVTEL\enable
\let\ZIED\enable
\end{taskinfo}
%
\begin{objectif}
This task groups the demonstrators of the COACH project.
The demonstrators cover various domains and application types to drive
the specification choices and to check most of the COACH features.
\end{objectif}
%
\begin{workpackage}
  \subtask
    The application that \bull proposes is HPC oriented.
    The domain of the application is the treatment of medical images (image noise
    reduction and segmentation or registration).
    Our expectation from COACH project is to enhance the \bull HPC solutions that
    are currently based on multi-cores and GPUs with fine grain parallelism on FPGA.
    \begin{livrable}
      \itemV{0}{6}{d}{\Sbull}{\bull demonstrator}
        The deliverable is a document that describes the application that will be use as
        demonstrator.
      \itemV{6}{12}{x}{\Sbull}{\bull demonstrator}
        The deliverable is the specification of the demonstrator in COACH input format
        defined in the {\specGenManual} deliverable.
      \itemL{12}{36}{d}{\Sbull}{\bull demonstrator}{2:6:10}
        Validation of the demonstrator, the deliverable is a document
        describing the result of the experimentations.
    \end{livrable}

  \subtask
    The objective of this sub-task is to specify the THALES application and to develop the
    high level code.  This application is in the domain of surveillance of critical
    infrastructures. The objective is to detect and classify the presence of humans in the
    restricted area. The algorithm is based on the work of Viola and
    Jones~\cite{thales-viola}. It implements in particular a cascade of classifiers
    operating on Haar like features, where simple weak classifiers at the beginning of the
    cascade reject a majority of void sub-windows, before more complex classifiers
    concentrate on potential regions of interest. This application is computation
    intensive and also makes an intensive use of binary decision trees to cascade the
    filters, which makes it a good candidate to assess the COACH platform.
    \\
    Moreover, the higher levels of computing can involve tracking and data fusion between
    several camera streams and some other informations.
    The targeted system will be composed of one camera connected to a PC.
    All the computing part of the application is executed on a FPGA board connected to the
    PC.
    \begin{livrable}
      \itemV{0}{6}{d}{\Sthales}{\thales demonstrator (step 1)}
        \setMacroInAuxFile{trtAppSpecification}
        This deliverable is a document that specifies the application.
      \itemL{6}{12}{x}{\Sthales}{\thales demonstrator (step 1)}{4:0:0}
        This deliverable is the code of the application spcecified former
        deliverable (\trtAppSpecification).
    \end{livrable}

  \subtask \TRT will use its internal software environment tool SPEAR DE to describe the
    application. The tool is able to partition and to generate the code for the target. \\
    In this task, we will adapt SPEAR DE to generate the application description input of
    COACH framework. We will also describe the three templates of architecture in order to
    be able to partition the application on the architecture.
    \begin{livrable}
      \itemL{6}{18}{x}{\Sthales}{SPEAR-DE adaptation}{6:7:0}
        \setMacroInAuxFile{trtSpearde}
        Adaptation of SPEAR-DE for COACH framework.
    \end{livrable}

  \subtask 
    In this sub-task, \TRT will evaluate the COACH platform. In particular, \TRT will verify
    its ability to generate a whole VHDL of an embedded system on FPGA for an application
    mixing control and data flow aspects. \TRT will evaluate the performance of the
    generated system in terms of GOPS, and the design time from a high level description.
    \begin{livrable}
      \itemV{18}{24}{d+x}{\Sthales}{\thales demonstrator (step 2)}
        This deliverable is a document describing the result got for the application
        (\trtAppSpecification) with SPEAR-DE (\trtSpearde) using COACH milestone of T0+18.
        The updated code of the application will be also provide.
      \itemV{24}{30}{d+x}{\Sthales}{\thales demonstrator (step 2)}
        This deliverable is a document describing the result got for the application
        (\trtAppSpecification) with SPEAR-DE (\trtSpearde) using COACH milestone of T0+24.
        The updated code of the application will be also provide.
      \itemL{30}{36}{d+x}{\Sthales}{\thales demonstrator (step 2)}{0:5:5}
        This deliverable is a document that validates and evaluates COACH (final release)
        for the \thales demonstrators (\trtAppSpecification).
        The updated code of the application will be also provide.
    \end{livrable}

  \subtask FLEXRAS will design an application based on M-JPEG video standard. 
  	FLEXRAS will propose a SoC architecture integrating an embedded FPGA (eFPGA).
    The architecture is composed essentially of a processor, a bus and several RAMs.
    The embedded FPGA is connected to the bus and communicates with the other components.
    The (eFPGA) works in 2 modes:
    \begin{description}
      \item[Slave mode]
        As a DMA, the processor will send the configuration bitstream
        stored on the RAM to the eFPGA. In this mode, the eFPGA is considered as a
        writeable memory and is configured by the processor.
      \item[Master mode]
        Once the FPGA is programmed, it becomes a coprocessor achieving the aimed task.
    \end{description}
      The top architecture of this SoC based-platform will be generated using COACH
      framework. The application that will be run on the SoC corresponds initially to a
      graph of software tasks. Critical tasks will be identified and transformed
      automatically to hardware tasks using COACH high level synthesis feature. While
      software tasks will be run on the processor, hardware ones will be mapped on eFPGA
      to take advantage of its optimized resources and parallelism. FLEXRAS provides all
      the flow from RTL synthesis to bitstream generation.
    \begin{livrable}
      \itemL{0}{6}{d}{\Szied}{\zied architecture}{2.4:0:0}
        FLEXRAS will use IPs provided by LIP6 (vhdl models of SoCLIB) and its eFPGA IP to
        generate the SoC architecture.
        This deliverable is a document that describes this architecture.
      \itemL{6}{18}{h}{\Szied}{eFPGA/VCI component}{3.6:3.6:0}
        FLEXRAS has to adapt the eFPGA interface to connect it to the VCI bus.
        This deliverable is a VHDL description.
%      \itemL{12}{18}{x}{\Szied}{bitstream loader port}{0:3.6:0}
%        Port of the bitstream loader to the MUTEKH operating system.
      \itemL{18}{24}{x}{\Szied}{\zied demonstrators}{0:2.4:0}
        \zied will propose to test COACH framework and the \zied architecture template
        throught an application based on M-JPEG video standard.
        This applicattion will containt 3 communicating tasks under the COACH format specified
        in {\novers{\specGenManual}} deliverable.
        The first one is a hardware task generated by the HAS tools and transformed into
        a bit stream by the \zied tools.
        The second is a bitstream loader that will load the bitstream of the first task on
        the eFPGA.
        The third is a software task that communicates with the hw task for testing it.
      \itemL{24}{30}{x}{\Szied}{eFPGA characterisation}{0:0:2.4}
        This deliverable is a file under the format defined by the deliverable
        {\specMacroCell} that characterizes the eFPGA. This will allow the COACH HLS tools
        to take into account the eFPGA delays.
      \itemL{30}{36}{d}{\Szied}{\zied evaluation}{0:0:3.6}
        This deliverable is a document that describes the tests, the validation and the
        evaluation of COACH with the \zied architecture and tools.
    \end{livrable}

  \subtask
  The \navtel Embedded Supper Computing (ESC) project is based on simple hardware but tightly
  coupled module between %ARM 
  a embedded processor and an FPGA both on a board.
  By using the COACH environment, \navtel will automatically synthetize two cores: one for software radio 
  through a polyphase resampler and one for an industrial control application through an embedded 
  PID controller.
  The objective is to sequence the cores in realtime in FPGA using partial configuration methods 
  proposed in the COACH project. 
  This will allow us to gain experience on automatic multi core sequencing at system level. The 
  specification for our first work package will concern this aspect. 

  The ESC can function on different topologies: Single, parallel or Grid computing modes for
  industrial and scientific applications.
  %The ARM
  The processor and FPGA configuration also facilitate the co-simulation which allows to  gain
  time on the development and integration phase.
  The architecture consists of a wrapper that encapsules computing units depending on the
  application and a real time kernal for task switching and partial reconfiguration of FPGA
  on run time environment.
  \parlf
  To day \navtel develops these computing units manually.
  \navtel expects to benefit from the COACH project especially the HLS tools for
  generating the computing unit.
  \begin{livrable}
    \itemL{0}{6}{d}{\Snavtel}{\navtel \ganttlf demonstrator specification}{4:0:0}
        \setMacroInAuxFile{navtelSpecification}
        A document that will define the requirements for automatic RTL generation for
        signal processing units of our market sector such as digital communication,
        imaging and industrial control.
        This document will include the description of some already handmade processing units.
    \itemL{6}{18}{h}{\Snavtel}{\navtel \ganttlf wrapper adaptation}{1:1:0}
		The adaptation of our wrapper to support coprocessor generated by COACH.
    \itemL{18}{36}{d}{\Snavtel}{\navtel evaluation}{0:2:4}
		\navtel will test the COACH HLS tools on the processing units that are described
        in the {\navtelSpecification} deliverable.
		A document will be written that describes the results obtained taking into
        account: 1) the performance in terms of space, 2) the performance in terms of
        time, 3) the friendlyness of the environment.
    \end{livrable}
\end{workpackage}
