Model-Based Programming for Multi-processor Platforms with TTool/DIPLODOCUS and OMC

  • Andrea EnriciEmail author
  • Julien Lallet
  • Renaud Pacalet
  • Ludovic Apvrille
  • Karol Desnos
  • Imran Latif
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 991)


The complexity of today’s multi-processor architectures raises the need to increase the level of abstraction of software development paradigms above third-generation programming languages (e.g., C/C++). Code generation from model-based specifications is considered as a promising approach to increase the productivity and quality of software development, with respect to traditional paradigms where code is used as the main artifact to develop software. In this context, powerful and robust tools are needed in order to accomplish the transition from code-based programming to model-based programming. In this paper we propose a novel approach and tools where system-level models are compiled into standard C code while optimizing the system’s memory footprint. We show the effectiveness of our approach with the model-based programming of UML/SysML diagrams for a 5G decoder. From the compiled C code, we generate both a software implementation for a Digital Signal Processor platform and a hardware-software implementation for a platform based on hardware Intellectual Property (IP) blocks. Our optimizations achieve a memory footprint reduction of 80.07% and 88.93%, respectively.


Model-based engineering MPSoC programming UML/SysML 


  1. 1.
    Schmidt, D.C.: Model-driven engineering. Computer 39, 25–31 (2006)CrossRefGoogle Scholar
  2. 2.
    Lee, E.: Model-based code generation is not a replacement for programming (2003).
  3. 3.
  4. 4.
    Apvrille, L., Muhammad, W., Ameur-Boulifa, R., Coudert, S., Pacalet, R.: A UML-based environment for system design space exploration. In: ICECS, pp. 1272–1275 (2006)Google Scholar
  5. 5.
    Enrici, A., Lallet, J., Latif, I., Apvrille, L., Pacalet, R., Canuel, A.: A model compilation approach for optimized implementations of signal-processing systems. In: Modelsward, pp. 25–35 (2018)Google Scholar
  6. 6.
    Vanderperren, Y., Mueller, W., He, D., Mischkalla, F., Dehaene, W.: Extending UML for electronic systems design: a code generation perspective. In: Nicolescu, G., O’Connor, I., Piguet, C. (eds.) Design Technology for Heterogeneous Embedded Systems, pp. 13–39. Springer, Dordrecht (2012). Scholar
  7. 7.
    Nicolas, A., Penil, P., Posadas, H., Villar, E.: Automatic synthesis over multiple APIs from UML/MARTE models for easy platform mapping and reuse. In: Euromicro DSD, pp. 443–450 (2014)Google Scholar
  8. 8.
    Ciccozzi, F., Cicchetti, A., Sjodin, M.: Full code generation from UML models for complex embedded systems. In: STEW (2012)Google Scholar
  9. 9.
    Bazydlo, G., Adamski, M., Stefanowicz, L.: Translation UML diagrams into Verilog. In: HSI, pp. 267–271 (2014)Google Scholar
  10. 10.
    Moreira, T.G., Wehrmeister, M.A., Pereira, C.E., Petin, G.F., Levrat, E.: Automatic code generation for embedded systems: from UML specifications to VHDL code. In: INDIN, pp. 1085–1090 (2010)Google Scholar
  11. 11.
    Mischkalla, F., He, D., Mueller, W.: Closing the gap between UML-based modeling, simulation and synthesis of combined HW/SW designs. In: DATE, pp. 1201–1206 (2010)Google Scholar
  12. 12.
    Xi, C., JianHua, L., Zucheng, Z., Yaohui, S.: Modeling SystemC design in UML and automatic code generation. In: ASP-DAC, pp. 932–935 (2005)Google Scholar
  13. 13.
    Tan, W.H., Thiagarajan, P.S., Wong, W.F., Zhu, Y., Pilakkat, S.K.: Synthesizable SystemC code from UML models (2004)Google Scholar
  14. 14.
    OMG: UML Profile for MARTE: Modeling and Analysis of Real-time Embedded Systems. Accessed Apr 2018
  15. 15.
    Gamatie, A., et al.: A model driven design framework for high performance embedded systems (2008).
  16. 16.
    DaRTteam: Graphical Array Specification for Parallel and Distributed Computing (GASPARD2). Accessed Apr 2018
  17. 17.
    Mellor, S.J., Balcer, M.J.: Executable and translatable UML. Accessed Apr 2018
  18. 18.
    Mellor, S.J., Balcer, L.: Executable UML: A Foundation for Model-Driven Architecture. Addison Wesley (2002)Google Scholar
  19. 19.
    fUML. Accessed Apr 2018
  20. 20.
    OMG: Action Language for Foundational UML (ALF). Accessed Apr 2018
  21. 21.
    Labview: Labview communications system design. Accessed Apr 2018
  22. 22.
  23. 23.
    Beemster, M., Sugiyama, Y.: Embedded C for high performance DSP programming with the CoSy compiler development system. Accessed Apr 2018
  24. 24.
    Leupers, R., Aguilar, M.A., Eusse, J.F., Castrillon, J., Sheng, W.: MAPS: a software development environment for embedded multicore applications. In: Ha, S., Teich, J. (eds.) Handbook of Hardware/Software Codesign, pp. 917–949. Springer, Dordrecht (2017). Scholar
  25. 25.
    Sheng, W., et al.: A compiler infrastructure for embedded heterogeneous MPSoCs. In: PMAM, pp. 1–10 (2013)Google Scholar
  26. 26.
    Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)Google Scholar
  27. 27.
    Collette, T.: Key Technologies for Many-Core Architectures (2008). Collette.pdf
  28. 28.
    Gerstlauer, A., Haubelt, C., Pimentel, A.D., Stefanov, T.P., Gajski, D.D., Teich, J.: Electronic system-level synthesis methodologies. IEEE TCAD 28, 1517–1530 (2009)Google Scholar
  29. 29.
    Eclipse. Accessed Apr 2018
  30. 30.
    Torczon, L., Cooper, K.: Engineering a Compiler, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2007)zbMATHGoogle Scholar
  31. 31.
    Gerstlauer, A., Gajski, D.D.: System-level abstraction semantics. In: ISSS, pp. 231–236 (2002)Google Scholar
  32. 32.
    IEEE: IEEE Std 1003.1, 2004 Edition. Accessed Apr 2018
  33. 33.
    Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI-The Complete Reference: The MPI Core. MIT Press Cambridge, MA, USA (1998)Google Scholar
  34. 34.
    OpenMP: The OpenMP specification for parallel programming. Accessed Apr 2018
  35. 35.
    Leupers, R., Sheng, W., Castrillon, J.: In: Handbook of Signal Processing Systems, pp. 1215–1257 (2010)CrossRefGoogle Scholar
  36. 36.
    Lee, E.A., Parks, T.M.: Dataflow process network. Proc. IEEE 83, 1235–1245 (1995)Google Scholar
  37. 37.
  38. 38.
  39. 39.
  40. 40.
    Enrici, A., Apvrille, L., Pacalet, R.: A model-driven engineering methodology to design parallel and distributed embedded systems. ACM TODAES 22, 34:1–34:25 (2017)CrossRefGoogle Scholar
  41. 41.
    Enrici, A., Apvrille, L., Pacalet, R.: A UML model-driven approach to efficiently allocate complex communication schemes. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) MODELS 2014. LNCS, vol. 8767, pp. 370–385. Springer, Cham (2014). Scholar
  42. 42.
    Knorreck, D.: UML-Based Design Space Exploration, Fast Simulation and Static Analysis. Ph.D. thesis, Telecom ParisTech (2011)Google Scholar
  43. 43.
    Desnos, K., Pelcat, M., Nezan, J., Aridhi, S.: Memory analysis and optimized allocation of dataflow applications on shared-memory MPSoCs. J. VLSI Sig. Proc. Syst. Signal Image Video Tech. 80, 1–19 (2015)CrossRefGoogle Scholar
  44. 44.
    Desnos, K., Pelcat, M., Nezan, J.F., Aridhi, S.: Distributed memory allocation technique for synchronous dataflow graphs. In: SiPS 2016 (2016)Google Scholar
  45. 45.
    Fabri, J.: Automatic Storage Optimization. Courant Institute of Mathematical Sciences, New York University, New York (1979)Google Scholar
  46. 46.
    Floch, A., et al.: Model-driven engineering and optimizing compilers: a bridge too far? In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 608–622. Springer, Heidelberg (2011). Scholar
  47. 47.
    Verizon: 5G specifications. Accessed Apr 2018
  48. 48.
  49. 49.
    de Greef, E., Catthoor, F., de Man, H.: Array placement for storage size reduction in embedded multimedia systems. In: ASAP, pp. 66–75 (1997)Google Scholar
  50. 50.
    Desnos, K., Pelcat, M., Nezan, J., Aridhi, S.: On memory reuse between inputs and outputs of dataflow actors. ACM TECS 15, 30 (2016)Google Scholar
  51. 51.
    Xilinx: SDx Development Environment. Accessed Apr 2018
  52. 52.
    Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)CrossRefGoogle Scholar
  53. 53.
    Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20, 19–25 (2003)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Andrea Enrici
    • 1
    Email author
  • Julien Lallet
    • 1
  • Renaud Pacalet
    • 2
  • Ludovic Apvrille
    • 2
  • Karol Desnos
    • 3
  • Imran Latif
    • 1
  1. 1.Nokia Bell Labs, Centre de VillarceauxNozayFrance
  2. 2.LTCI, Télécom ParisTech, Université Paris-SaclayParisFrance
  3. 3.INSA Rennes, IETR, UBL, CNRS UMR 6164RennesFrance

Personalised recommendations