[338] | 1 | Embedded systems (SoC and MPSoC) have become an inevitable evolution in the microelectronic industry. |
---|
[356] | 2 | The ASIC technology (Application Specific Integrated Circuits) |
---|
[382] | 3 | is not an option for markets with small series of products due to RNE costs. |
---|
[99] | 4 | Fortunately, the new FPGA (Field Programmable Gate Array) components, |
---|
[356] | 5 | such as the Virtex6 family from \xilinx, or the Stratix4 family from \altera can implement a complete |
---|
[99] | 6 | multi-processor architecture on a single device. |
---|
| 7 | But the design of embedded system is a long and complex task that requires expertise in software, |
---|
[356] | 8 | software/hardware portioning, operating system, hardware design, VHDL/Verilog modeling. |
---|
[99] | 9 | Only very few SMEs have these multiple expertises and are present on the embedded system market. |
---|
[356] | 10 | The corresponding development cost is high and it is not compliant with |
---|
| 11 | specification or standard evolution (problem of flexibility). |
---|
[338] | 12 | Furthermore, even small design shops in big companies are facing the same issue. |
---|
[99] | 13 | \begin{center}\begin{minipage}{.8\linewidth}\textit{ |
---|
[297] | 14 | The major objective of COACH is to provide to system designers, an affordable |
---|
| 15 | open-source framework to design embedded systems on FPGA devices. |
---|
[99] | 16 | }\end{minipage}\end{center} |
---|
[97] | 17 | %Current design methodologies provide quite low-level abstraction capabilities, and |
---|
| 18 | %there is an urgent need to leverage system level exploration through the use of a high-level |
---|
| 19 | %specification of the application and design space exploration tools. |
---|
| 20 | %The first system oriented approaches are appearing, among which those |
---|
| 21 | %based on C/C++ and SystemC are the most popular, but few of them are specifically targetting FPGAs. |
---|
[99] | 22 | %%% |
---|
[361] | 23 | % |
---|
[297] | 24 | The COACH project will propose a new design flow based on a small number of architectural templates. |
---|
[237] | 25 | An architectural template is a generic, parameterized architecture, relying on a predefined library |
---|
[97] | 26 | of IP cores. |
---|
| 27 | Besides using a specific collection of general purpose IP cores (such as processors cores, |
---|
| 28 | embedded memory controllers, system bus controllers, I/O and peripheral controllers), each architectural |
---|
| 29 | template can be enriched by dedicated hardware coprocessors, obtained by high level synthesis (HLS) tools. |
---|
| 30 | During this project, the COACH partners will develop three different architectural templates: |
---|
| 31 | \begin{enumerate} |
---|
[311] | 32 | \item An \altera architectural template based on the \altera IP core library, |
---|
| 33 | the AVALON system bus and the NIOS processor. |
---|
| 34 | \item A \xilinx architectural template based on the \xilinx IP core library, the |
---|
| 35 | \xilinxbus system bus and the \xilinxcpu processor. |
---|
[99] | 36 | \item A Neutral architectural template based on the SoCLib IP core library and the VCI/OCP |
---|
[311] | 37 | communication infrastructure. |
---|
[97] | 38 | \end{enumerate} |
---|
[307] | 39 | %The proposed design flow starts from a high level description of the application, specified as a set of |
---|
| 40 | %parallel tasks written in C, without any assumption on the hardware or software implementation |
---|
| 41 | %of these tasks. It lets the system |
---|
| 42 | %designer in charge of expressing the coarse grain parallelism of the application, gives the designer |
---|
| 43 | %the possibility to explore various mapping of the application on the selected template architecture, |
---|
| 44 | %and offers a high predictability of results with respect to cost and performance objectives. |
---|
| 45 | %\\ |
---|
| 46 | %When this interactive, system level, design space exploration is completed (converging to |
---|
| 47 | %a specific mapping on a specific version of the selected architectural template), the rest of the flow |
---|
| 48 | %is fully automated: the synthesizable VHDL models for the various hardware components, as well as the binary |
---|
| 49 | %code for the software running on the embedded processors, and the bit-stream to program the target FPGA |
---|
| 50 | %will be automatically generated by the COACH tools. |
---|
| 51 | %% |
---|
| 52 | %\parlf |
---|
| 53 | %The strength of the COACH approach is the strong integration of the high-level synthesis tools |
---|
| 54 | %in a platform based design flow supporting virtual prototyping and design space exploration. |
---|
| 55 | %Most building blocks already exist (resulting from previous projects): the GAUT |
---|
| 56 | %or UGH synthesis tools, the DNA embedded operating systems, the ASIP technology, |
---|
| 57 | %the DSX exploration tool, the MWMR hardware/software communication middleware, the BEE parallelization tool, |
---|
| 58 | %as well as the SoCLib library of SystemC simulation models. |
---|
| 59 | %They must now be enhanced and integrated in a consistent design flow: this will |
---|
| 60 | %be done in Magillem framework thanks to the IP-XACT standard. |
---|
| 61 | %%The five academic laboratories worked very closely during more than one year (one monthly meeting |
---|
| 62 | %%in Paris from january 2009 to february 2010, to analyse the issues of interfacing and integrating |
---|
| 63 | %%those various technologies, and to define the detailed architecture of the proposed design flow. |
---|
| 64 | %%%% |
---|
[361] | 65 | % |
---|
[297] | 66 | In HPC (High Performance Computing), the targeted application is an existing one |
---|
[99] | 67 | running on a PC. |
---|
[338] | 68 | The COACH framework helps designers to accelerate it by migrating critical parts into a |
---|
[382] | 69 | SoC embedded into an FPGA device plugged to the PC PCI/X bus. |
---|
[310] | 70 | \begin{center}\begin{minipage}{.8\linewidth}\label{HPC:definition}\textit{ |
---|
[297] | 71 | The second objective of COACH is to extend the framework for HPC applications. |
---|
[99] | 72 | }\end{minipage}\end{center} |
---|
[338] | 73 | This will allow SMEs to enter the HPC market for applications that are |
---|
[99] | 74 | unadapted to the current GPU based solutions. |
---|
[307] | 75 | \parlf |
---|
[356] | 76 | COACH generates SoCs which are part of larger systems. Thus it is important to take |
---|
| 77 | into account the existing industrial design flow. For this reason COACH will use the |
---|
[338] | 78 | IP-XACT IEEE 1685 standard for packaging these generated SoCs. |
---|
[307] | 79 | \begin{center}\begin{minipage}{.8\linewidth}\textit{ |
---|
| 80 | The third objective of COACH is to facilitate the integration of generated SoC in global system design flow. |
---|
| 81 | }\end{minipage}\end{center} |
---|
[99] | 82 | %%% |
---|