With the increase of amount of transistors which can be contained on a chip and the constant expectation for more sophisticated applications, the design of Systems-on-Chip (SoC) is more and more complex. In this paper, we present the use of model transformations in the context of SoC co-design. Both the hardware part and the software part of a SoC can be represented as a model using the MARTE standard from the OMG. We introduce the use of Model-Driven Engineering in order to generate executable code from a self-contained model of SoC. First, we detail the restrictions and extensions we have brought to the MARTE profile in order to permit the complete description of the SoC as a model. The compilation is a sequence of small and maintainable transformations that allows to pass gradually from a high-level description into loser in abstraction to the final model, which is then converted into code. An in-depth view of one of the several transformation chains composing our tool is given. T...