DIPLODOCUS stands for DesIgn sPace exLoration based on fOrmal Description teChniques, Uml and SystemC.

Basically, DIPLODOCUS targets the partitioning of Systems-on-Chip. Partitioning a system means finding the best candidate software and hardware architecture for executing a set of functions. This selection of architecture is thus made according to given criteria, e.g., cost, power consumption, performance, etc..

DIPLODOCUS supports the Y-Chart approach, i.e., the partitioning is done as follows:
  1. Application modeling: functions of the system are first modeled. Functions might later be software or hardware implemented.

  2. Architecture modeling: candidate hardware architectures are modeled in terms of parametrized nodes: execution nodes (CPU, hardware accelerators), communication nodes (buses, bridges) and storage nodes (memories).

  3. Mapping modeling: functions are mapped onto a given candidate architecture, i.e. functions are allocate dto either CPUs or hardware accelerators, and communication between functions are allocated to communication and storage nodes.

Moreover, DIPLODOCUS works at a high level of abstraction, and offers non-deterministic operators: this is thus very fast to model a first system, and evaluate different mappings for these functions. Moreover, all is graphical (UML)! Last but not least, formal proofs and performance evaluation by simulation can be done at the push of a button, directly from UML diagrams.

Short movie presenting DIPLODOCUS


How to start?

  • You may start by reading the tutorial on DIPLODOCUS. Andrea ENRICI (Nokia Bell Labs), Letitia Li (VEDECOM/Telecom ParisTech), and Ludovic Apvrille (Telecom ParisTech)

Technical papers


Examples of DIPLODOCUS models

  • Smart card system modeled with DIPLODOCUS (open the file with TTool)

  • ZigBee modeled with DIPLODOCUS (open the file with TTool). A description explains how to start with this use case.


If you wish to: