ital modulation, industrial visual inspection, 3D medical image processing, data pro-
cessing, 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 was to provide important specific requirements and contexts
that influenced 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 sys-
tem design on many- and multi-core heterogeneous platforms building a step forward
beyond sequential programming approaches.
The goal of MODELS consists in creating a viable high-level parallel programming
framework that targets as wide a range of parallel processing substrates as possible and
is aimed at stream-processing applications. In order to do this, the project builds on
existing infrastructure and tools, and incrementally adds to and improves on them.
The main improvements over prior art can be summarized as follows:
- Holistic approach to system design in the form of a complete design flow starting
from specifications down to implementations. This will enable developers to take into
account functional and non-functional issues across all layers relevant to the design,
and across all implementation targets.
- High-level parallel programming of a diverse range of platforms, from small embed-
ded devices to high-performance computing environment using an extension of the
RVC-CAL dataflow language. This allows designers to defer system-level decisions
such as those on partitioning and mapping parts of an application to the various pro-
cessing elements in an architecture until late in the design process.
- A unified tool infrastructure based on a formal machine model which allows applica-
tions to be partitioned and implemented flexibly across target architectures, and also
includes a complete range of programming tools (debugger, profiling, analysis, ...) that
help programmers to investigate, optimize, refactor and transform complete applica-
tions irrespective of partitioning and implementation choices, and to gradually inject
implementation decisions and change them easily in order to efficiently explore a wide
range of design alternatives.
- Sophisticated profiling and analysis capabilities that account for the structure of the
computation as well as its quantitative aspects, and that goes beyond processing time
to also include analysis of power consumption, memory use, as well as communication
bandwidth and latency.
- Integration of data encryption at the tool level for increased security with minimal
trouble to the designer.
- Extensive automatic design verification powered by the dataflow model of computa-
tion
71
System Modeling and Design Exploration of Applications for Heterogeneous and Parallel Platforms - System modeling Â˚u Design
exploration Â˚u Heterogeneous and parallel platforms
71