Sujet de stage M1 ou M2
lundi 22 novembre 2010
Laboratory : Verimag (http://www-verimag.imag.fr/)
Team : SYNCHRONE (http://www-verimag.imag.fr/SYNCHRONE)
Supervisor : Matthieu Moy <Matthieu.Moy@imag.fr>
The silicon industry is widely adopting a methodology called Transaction-Level Modeling (TLM), that consists essentially in writting abstract, but yet executable models the hardware contained in a Chip.
SystemC is a C++ library used for the description of SoCs at different levels of abstraction, including TLM. It comes with a simulation environment, and became a standard (IEEE 1666). SystemC offers a set of primitives for the description of parallel activities representing the physical parallelism of the hardware blocks. The TLM level of abstraction can be described with SystemC.
Because SystemC was implemented as a library, it is possible to compile a SystemC program with any C++ compiler. But using a general-purpose compiler misses some optimization opportunities.
We are now interested in building a dedicated compiler for SystemC. A SystemC font-end called PinaVM has already been developed in Verimag (based on the LLVM compiler infrastructure). Today, it is only used to generate code for formal verification tools, but not for the execution of the program.
The first step is to write an "Execution" back-end for PinaVM. There are several ways to implement such a back-end: use the Just-In-Time (JIT) capabilities of LLVM, or generate statically an executable file.
Then, the student can chose one or several of the following directions:
Each point requires a bibliographical study, an analysis of the problem, and leads to an implementation.
Matthieu Moy is assistant professor in Verimag and the Ensimag school. He started working on SystemC in 2002 during his Ph. D. Research on SystemC-related subject is still active in the team.