\begin{taskinfo} \let\UPMC\leader \let\ALL\enable \end{taskinfo} % \begin{objectif} This task deals with the main features of digital systems. Its objectives are the specification of the designer input, the definition of the hardware architectural templates and of all the features that the HAS tools will share. \end{objectif} % \begin{workpackage} \subtask{Specification of the COACH environment} This \ST specifies the COACH environment for the system designer. In this \ST the COACH framework is a black box. The deliverables are documents specifying: how to feed COACH (the inputs), how to use COACH (use model), what is generated (the outputs). \begin{livrable} \itemV{0}{6}{d}{\Supmc}{Use model specification} This document describes the use modle of COACH. It will be a cooperative work. Its main parts are: \begin{description} \item[General overview] (\Supmc) \item[CSG specification] (\Stima) Here the COACH System Generator Generator is specified: how the task graph is described, the communication schemes and its associated API (Application Programming Interface). The base is the SRL library and the MWMR communication component defined by the SocLib ANR project. Nevertheless, these basic schemes will be enhanced to allow more efficient synthesis. \item[HAS specification] (\Subs) This part focuses to the Hardware Accelerator Synthesis. It specifies how tasks must be written (C/C++ subset) and how communication schemes must be described for coprocessor synthesis. \end{description} \itemL{6}{12}{d}{\Supmc}{Use model specification}{3:0:0} \setMacroInAuxFile{useModelSpecification} The final version of the Use model specification enhanced with the feed-backs of the demonstrator \STs. \OtherPartner{0}{12}{\Slip} {2:0:0} \OtherPartner{0}{12}{\Sirisa} {2:0:0} \OtherPartner{0}{12}{\Stima} {3:0:0} \OtherPartner{0}{12}{\Subs} {3:0:0} \OtherPartner{0}{12}{\Sbull} {2:0:0} \OtherPartner{0}{12}{\Sthales}{2:0:0} \OtherPartner{0}{12}{\Smds} {2:0:0} % \itemV{0}{6}{d}{\Supmc}{Use model specification} \setMacroInAuxFile{specGenManualI} % The first version of the COACH specification. % This document contains the general description of the framework, the use model and the % description of the architectural templates. % It refers to the HAS specification (deliverable {\specHasManual}) and % to the CSG specifcation (deliverable \specCsgManual) for the COACH input % descriptions. % \itemL{6}{12}{d}{\Supmc}{COACH specification}{1:0:0} \setMacroInAuxFile{specGenManual} % The final version of the {\specGenManualI} deliverable updated with the first % feed-backs of the demonstrator \STs. % \OtherPartner{0}{12}{\Sbull} {3:0:0} % \OtherPartner{0}{12}{\Sthales}{1:0:0} % \itemV{0}{6}{d}{\Stima}{CSG specification} \setMacroInAuxFile{specCsgManualI} % The first version of the CSG (COACH System Generator) specification. % It specifies how the task graph is described, the communication schemes and its % associated API (Application Programming Interface). % The base is the SRL library and the MWMR communication component defined by the SocLib % ANR project. % Nevertheless, these basic schemes will be enhanced to allow more efficient % synthesis. % \itemL{6}{12}{d}{\Stima}{CSG specification}{1:0:0} \setMacroInAuxFile{specCsgManual} % The final version of the {\specGenManualI} deliverable updated with the first % feed-backs of the demonstrator \STs. % \itemV{0}{6}{d}{\Subs}{HAS specification} \setMacroInAuxFile{specHasManualI} % The first version of the HAS (Hardware Accelerator Synthesis) specification. % It specifies how tasks must be written (C/C++ subset) and how % communication schemes defined in the {\specCsgManual} deliverable must be described for % coprocessor synthesis. % \itemL{6}{12}{d}{\Subs}{HAS specification}{2:0:0} \setMacroInAuxFile{specHasManual} % The final version of the {\specGenManualI} deliverable updated with the first % feed-backs of the demonstrator \STs. \end{livrable} \subtask{Internal software structure} This \ST specifies the COACH software structure. The deliverable is a document listing all the COACH software components and how they cooperate. \begin{livrable} \itemL{0}{6}{d}{\Supmc}{COACH internal \ganttlf software architecture}{1:0:0} Description of the software list and the data flow among the tools. \end{livrable} \subtask{\xcoach format} This \ST specifies the \xcoach and the \xcoachplus formats. \begin{livrable} \itemV{0}{6}{d+x}{\Slip}{\xcoach format specification} \setMacroInAuxFile{specXcoachDocI} First release of the XML specification of the \xcoach format (DTD) and its associated documentation allowing to start HLS tools development. \itemV{6}{12}{d+x}{\Slip}{\xcoach format specification} \setMacroInAuxFile{specXcoachDocII} Second release of XML specification of the \xcoach format taking into account the corrections and modifications that the developers of HAS tools suggested. \itemL{12}{18}{d+x}{\Slip}{\xcoach format specification}{7:3:0} \setMacroInAuxFile{specXcoachDoc} Last release of XML specification of the \xcoach format enhanced with the expression of loop potential parallelism. \itemV{6}{12}{x}{\Subs}{First release of C2X} \setMacroInAuxFile{specXcoachToCAI} This delivrable groups 2 tools. The first one C2X is a GCC plugin that generates a \xcoach description (defined in {\specXcoachDocI} deliverable) from a C/C++ task description (defined in {\specHasManual} deliverable). The second one X2C regenerates a C description from a \xcoach description. % TACHE INCLUSE mais non decrite; Specification of the GCC driver tool. \itemL{12}{18}{x}{\Subs}{C2X tool}{4:2:0} \setMacroInAuxFile{specXcoachToCA} An updated version of C2X and X2C (\specXcoachToCAI) which supports the \xcoach format defined in the {\specXcoachDoc} deliverable and the HAS input format defined in the {\specHasManual} deliverable. % \itemV{7}{12}{x}{\Subs}{First release of X2C} % \setMacroInAuxFile{specXcoachToCBI} % This second tool X2C regenerates a C description from a \xcoach % description. % \itemL{12}{18}{x}{\Subs}{X2C tool}{2:1:0} % \setMacroInAuxFile{specXcoachToCB} % The same software as the former (\specXcoachToCBI) but for the \xcoach format as defined % in the {\specXcoachDoc} deliverable and HAS input as defined in the {\specHasManual} % deliverable. \itemV{12}{18}{x}{\Supmc}{First release of X2SC} \setMacroInAuxFile{specXcoachToSystemCI} The first release of the software tool X2SC that translates \xcoachplus description to CABA and TLM-DT SystemC module. \itemL{18}{24}{x}{\Supmc}{X2SC tool}{0:2:0} \setMacroInAuxFile{specXcoachToSystemC} Final release of the former software (\specXcoachToSystemCI). \itemV{12}{18}{x}{\Subs}{First release of the X2VHDL} \setMacroInAuxFile{specXcoachToVhdlI} The first release of the software tool X2VHDL that translates \xcoachplus description to synthesizable VHDL description. \itemL{18}{24}{x}{\Subs}{X2VHDL tool}{0:3:0} \setMacroInAuxFile{specXcoachToVhdl} Final release of the former software (\specXcoachToVhdlI) and integration of enhancements proposed in \novers{\specXilinxOptimization} deliverable. \end{livrable} % TACHE INCLUSE SANS X2C & C2X %\subtask This \ST aims to define a tool in order to pilot the GCC/xcoach compiler. % \begin{livrable} % \itemL{0}{3}{d}{\Subs}{GCC driver specification}{1:0:0} % Specification of the GCC driver tool. % \itemV{3}{9}{x}{\Subs}{GCC driver} % First release of the GCC driver tool. % %en T0+18 car va peut etre evoluer en fonction du DSE ยต-archi % \itemL{9}{12}{x}{\Subs}{GCC driver}{3:0:0} % Final release of the GCC driver tool. % \end{livrable} \subtask{Tool for cell library creation} Backend HLS tools use a characterized macro-cell library to build the micro-architecture of a coprocessor. The characterisation of a cell depends on the target device. The role of this \ST is to define the macro-cells and to provite a tool that characterizes them automatically by synthesizing them and by extracting their delays. This is done by using RTL synthesis. \begin{livrable} \itemL{0}{6}{d}{\Subs}{Macro-cell definition}{1:0:0} \setMacroInAuxFile{specMacroCell} Definition of the macro cells and the file format describing them. \itemL{6}{12}{x}{\Subs}{Macro-cell library generator}{2:0:0} Final release of the software tool that generates automatically the characterized macro-cell library for a FPGA device. \end{livrable} \end{workpackage}