MODELS, System modeling and design exploration of applications for heterogeneous and parallel platforms
The project will develop an unified environment for the design of system applications on parallel platforms based on CPU, multicore, manycore, FPGA and heterogeneous SoCs. The design tools composing this environment will provide an unified SW/HW specification interface and systematic procedures for composing models at different abstraction levels allowing for the automatic validation, drastically reducing the verification and debugging efforts. The implementation of processing demanding applications can be satisfied by using new multi/many-core processing platforms, but new designs or porting IPs on them is difficult and costly. The integrated design flow of this project intends to provide: portability of IPs, systematic system design explorations, high level synthesis of executables, systematic test-bench generation at different design abstraction levels. All means to achieve cost effectiveness of designs on parallel platforms. The pivotal technical product of this project is a design/development environment consisting of a suite of software tools and associated artifacts (libraries, applications, documentation etc.). It supports a platform-independent programming model geared toward streaming application areas such as signal processing, video compression, digital modulation, industrial visual inspection, 3D medical image processing, data processing, audio processing and many others, and their efficient implementation on a wide range of commercial parallel platforms, from SMP multicores, to manycores, processor arrays, programmable logic devices, and heterogeneous SoCs. The essential features of the approach are: high level platform independent system specification, design space exploration capabilities, automatic synthesis of executables, automated verification and validation of designs at different abstraction levels. Another particular concern in this context is a principled approach to leveraging legacy IP, i.e. the use of existing code and optimized platform-specific modules in the development process. A key role of the industrial project partners is to provide important specific requirements and contexts that will influence the development of the software tools, and then to apply, customize, and re-target them to their respective platforms and applications, adding to the project result. The main project result is the set of SW tools and libraries supporting portable system design on many/multi core heterogeneous platforms building is a step forward beyond sequential programming approaches.