\begin{taskinfo} \let\IRISA\enable \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}{5:7: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 application and to develop the high level code. The 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 association of CAL with parallelizing tools.\\ 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 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 proposes 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 a basic application. 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 processor and FPGA. The ESC can function on different topologies: Single, parallel or Grid computing modes for industrial and scientific applications. The ARM 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}