Innovations Syst Softw Eng (2009) 5:49–64 DOI 10.1007/s11334-009-0077-4 ORIGINAL PAPER MDE for SoC design Drago¸ s Tru¸ scan · Torbjörn Lundkvist · Marcus Alanen · Kim Sandström · Ivan Porres · Johan Lilius Received: 1 September 2008 / Accepted: 12 January 2009 / Published online: 18 February 2009 © Springer-Verlag London Limited 2009 Abstract We employ the principles of model-driven engineering to assist the design of system-on-chip (SoC) architectures. As a concrete example, we look at the MICAS architecture, for which we propose a graphical specification language, defined via metamodeling techniques, that models the architecture at different abstraction levels. Model trans- formations are defined to support the refinement of MICAS specification towards implementation. In addition, several libraries are put in place, to enable reuse and automation throughout the design process. Tool support for editing the specifications, enforcing their consistency, and for running the transformations is provided via the Coral modeling frame- work. The approach shows that model-driven engineering can be seen as an enabler in providing computer-aided soft- ware engineering (CASE) tool support and automation for the development of SoC architectures. D. Tru¸ scan (B ) · T. Lundkvist · I. Porres · J. Lilius Department of Information Technologies, Åbo Akademi University, Joukahaisenkatu 3-5B, 20520 Turku, Finland e-mail: dragos.truscan@abo.fi T. Lundkvist e-mail: tlundkvi@abo.fi I. Porres e-mail: iporres@abo.fi J. Lilius e-mail: jolilius@abo.fi M. Alanen Ixonos Plc, Hitsaajankatu 24, P. O. Box 284, 00811 Helsinki, Finland e-mail: marcus.alanen@ixonos.com K. Sandström Nokia Research Centre, Itämerenkatu 11 - 13, 00180 Helsinki, Finland e-mail: kim.q.sandstrom@nokia.com Keywords Model-driven engineering · System on chip · Domain-specific language · Metamodel · Model transformation 1 Introduction Custom architectures, combining the modularity of design with programmability and dedicated hardware accelerators for optimal performance, have become increasingly popu- lar in current times in the attempt to cope with the complex requirements of applications. However, managing the com- plexity of the architectural specifications requires the devel- opment of abstract views that would model the architecture at several levels of detail, starting from logical circuits and continuing with the components of the architecture, each cap- turing only details relevant to a given step of the development. In recent years, the adoption of model-driven engineering (MDE) [2] principles has become more popular in industrial settings as a means to provide abstraction levels, tool sup- port, and automation during the design process. The basic ingredients of MDE are models, languages, and platforms. The main development step in a MDE method transforms a model into a more detailed one, by architecting that model onto a particular platform. In this article, we examine the use of the MDE princi- ples to provide support for designing system-on-chip (SoC) architectures. We experiment our approach on a custom SoC architecture, called MICAS. More concretely, we look at defining a graphical domain-specific language (DSL) for MICAS, accompanied by a collection of transformations that enable the refinement of different MICAS models and by a set of libraries (at different abstraction levels) to provide support for reuse and automation. The libraries are used to store not only component specifications, but also reusable 123