IMEC introduces a new programming
style for C code called CleanC
that substantially increases the parallelization and optimization potential
for multiprocessor targets. The CleanC adherence analysis plug-ins are freely
available through Eclipse.
IMEC is developing multi-processor system-on-chip design tools to efficiently
distribute applications over multiple processors while taking care of the synchronization
of the tasks and the exchange of data between tasks. IMEC’s mapping technology
tool flow consists of parallelization and memory hierarchy optimization tools.
To allow MPSoC design tools to fully unravel the intricacies of the application
being analyzed, a number of restrictions are imposed on how the application
is coded using the ANSI-C language. Therefore, the input code has to be written
in so called CleanC, which is sequential C code written in a way that it is
To enable software developers to develop code that is suitable for parallelization
and mapping on multiprocessor platforms, IMEC is developing a code re-factoring
toolbox. First, the application code is analyzed and violations of the CleanC
programming style are flagged. To this end, CleanC adherence analysis plug-ins
have been developed. Secondly, user guided code transformations are applied
to the code to make it compliant to the CleanC programming style. To optimize
this process, IMEC is currently developing interactive refactoring tools.
IMEC provides its CleanC adherence analysis plug-ins to the industry for free
which will enable them to efficiently analyze their code. The CleanC tool is
a plug-in for the Eclipse/CDT development environment for C and C++ applications.
It extracts and visualizes the function call graph. The highly interactive CleanC
environment allows for detection of fragments in sequential C code that are
potentially hard to analyze by the MPSoC design tools and would lead to suboptimal
"By offering the CleanC analysis plug-ins to industry for free, we want
to introduce a standard coding style that makes the code analyzable by multiprocessor
parallelization and mapping tools", said Rudy Lauwereins, Vice President
Nomadic Embedded Systems at IMEC. "Such a standard will provide a common
platform for interoperability between EDA tools and application program code".