Design Automation for Embedded Systems

, Volume 16, Issue 1, pp 1–17 | Cite as

Computational reflection and its application to platform verification



The complexity of modern hardware design has created the need for higher levels of abstraction, where system modeling is used to integrate modules into complex System-on-Chip (SoCs) platforms. SystemC, and its TLM (Transaction Level Modeling) extensions, have been used for this purpose mainly because of their fast prototyping and simulation features, which allow for early design space exploration. This paper proposes an approach to explore and interact with SystemC models by means of an introspection technique known as Computational Reflection. We use reflection to implement a white-box introspection mechanism called ReflexBox. We show that ReflexBox is a fast, non-intrusive technique that can be used to dynamically gather and inject stimuli into any SystemC module, without the need to use a proprietary SystemC implementation, change the SystemC library, instrument or even inspect the module source code. Our approach can be used to support many different verification tasks like platform debugging, performance evaluation and communication analysis. To show ReflexBox effectiveness we used it in three platforms case studies to address tasks like register inspection, performance analysis and signal replaying for testbench reuse. In all cases we assumed no source code availability and measured the impact on the overall platform performance.


Platform-based design Debugging Computational reflection System architecture 



The authors would like to thank CAPES (processes 0018058 and 0326054), CNPq (processes 55.2117/2002-1, 132916/2005-3, and 477457/2006-1), and FAPESP (process 2007/58129) for funding this project.


  1. 1.
    Albertini B, Rigo S, Araujo G, Araujo C, Barros E, Azevedo W (2007) A computational reflection mechanism to support platform debugging in SystemC. In: CODES+ISSS ’07: proceedings of the 5th IEEE/ACM international conference on hardware/software codesign and system synthesis. ACM, New York, pp 81–86 CrossRefGoogle Scholar
  2. 2.
  3. 3.
    Arne A (2007) AReflection. Website, Jan. 2007.
  4. 4.
    Azevedo R, Rigo S, Bartholomeu M, Araujo G, Araujo C, Barros E (2005) The ArchC architecture description language. Int J Parallel Program 33(5):453–484 MATHCrossRefGoogle Scholar
  5. 5.
    Beltrame G, Bolchini C, Fossati L, Miele A, Sciuto D (2008) ReSP: a non-intrusive transaction-level reflective MPSoC simulation platform for design space exploration. In: ASP-DAC ’08: proceedings of the Asia and South Pacific design automation conference. IEEE Computer Society, Los Alamitos, pp 673–678 Google Scholar
  6. 6.
    Black DC, Donovan J, Bunton B, Keist A (2004) SystemC: from the ground up. Kluwer, New York CrossRefGoogle Scholar
  7. 7.
    Cadence. Website, Jan. 2007.
  8. 8.
    Chiba S (2007) OpenC++. Website sourceforge, Jan. 2007.
  9. 9.
    Coware. Website, Jan. 2007.
  10. 10.
    Déharbe D, Medeiros S (2006) Aspect-oriented design in SystemC: implementation and applications. In: SBCCI ’06: proceedings of the 19th annual symposium on integrated circuits and systems design. ACM, New York, pp 119–124 CrossRefGoogle Scholar
  11. 11.
    Ferber J (1989) Computational reflection in class based object-oriented languages. In: OOPSLA ’89: proceedings on object-oriented programming systems, languages and applications. ACM, New York, pp 317–326 CrossRefGoogle Scholar
  12. 12.
    Forman I, Danforth S (1999) Putting metaclasses to work. Addison-Wesley, Boston Google Scholar
  13. 13.
    Forman IE (2004) Java reflection in action. Manning Publications, Greenwich Google Scholar
  14. 14.
    GCC_XML (2008)
  15. 15.
    Gnu debugger. Available at
  16. 16.
    Ghenassia F (2006) Transaction-level modeling with SystemC: TLM concepts and applications for embedded systems. Springer, New York Google Scholar
  17. 17.
  18. 18.
  19. 19.
    Kiczales G, Irwin J, Lamping J, Loingtier J-M, Lopes CV, Maeda C, Mendhekar A (1997) Aspect-oriented programming Google Scholar
  20. 20.
    King B (2009) GCC_XML. Website, Oct. 2009.
  21. 21.
    Lapalme J, Aboulhamid EM, Nicolescu G (2006) A new efficient EDA tool design methodology. ACM Trans Embed Comput Syst 5(2):408–430 CrossRefGoogle Scholar
  22. 22.
    Lee C, Potkonjak M, Mangione-Smith WH (1997) MediaBench: a tool for evaluating and synthesizing multimedia and communicatons systems. In: MICRO 30: proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture. IEEE Computer Society, Washington, pp 330–335 Google Scholar
  23. 23.
    Lombardelli F (2007) CPPReflect. Website SourceForge, Jan. 2007.
  24. 24.
    Maes P (1988) Computational reflection. Knowl Eng Rev 3:1–19. doi: 10.1017/S0269888900004355 CrossRefGoogle Scholar
  25. 25.
    Marcilio G, Santos LCV, Albertini B, Rigo S (2009) A novel verification technique to uncover out-of-order DUV behaviors. In: DAC ’09: proceedings of the 46th annual design automation conference. ACM, New York, pp 448–453 CrossRefGoogle Scholar
  26. 26.
    Mathaikutty DA, Shukla SK (2008) Mining Metadata for Composability of IPs from SystemC IP Library. Des Autom Embed Syst 12:63–94. CrossRefGoogle Scholar
  27. 27.
    Mentor Graphics. Website, Jan. 2007.
  28. 28.
    Metzger M, Anane A, Rousseau F, Vachon J, Aboulhamid E (2009) Introspection mechanisms for runtime verification in a system-level design environment. Microelectron J 40(7):1124–1134 Mixed-technology testing; Rapid system prototyping CrossRefGoogle Scholar
  29. 29.
    Misera S, Vierhaus HT, Sieber A (2008) Simulated fault injections and their acceleration in SystemC. Microprocess Microsyst 32(5–6):270–278 CrossRefGoogle Scholar
  30. 30.
    C++/Python Interfacing: pyplusplus.
  31. 31.
    Rogin F, Genz C, Drechsler R, Rilke S (2008) Embedded systems specification and design languages, vol 10. Springer, Amsterdam, pp 59–71. CrossRefGoogle Scholar
  32. 32.
    Roiser S, Mato P (2004) The SEAL C++ reflection system. In: CHEP ’04: presented in the computing in high energy and nuclear physics congress (CHEP’04), Interlaken, Switzerland, Sept. 2004. CERN Google Scholar
  33. 33.
    SPIRIT consortium (2007).

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.Institute of ComputingUnicampCampinasBrazil

Personalised recommendations