Skip to main content
Log in

Computational reflection and its application to platform verification

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Listing 1
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  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

    Chapter  Google Scholar 

  2. AMBA (2010) http://www.arm.com/system-ip/amaba/

  3. Arne A (2007) AReflection. Website, Jan. 2007. http://www.arneadams.com/reflection_doku/

  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

    Article  MATH  Google Scholar 

  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. Black DC, Donovan J, Bunton B, Keist A (2004) SystemC: from the ground up. Kluwer, New York

    Book  Google Scholar 

  7. Cadence. Website, Jan. 2007. http://www.cadence.com

  8. Chiba S (2007) OpenC++. Website sourceforge, Jan. 2007. http://opencxx.sourceforge.net/

  9. Coware. Website, Jan. 2007. http://www.coware.com

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  12. Forman I, Danforth S (1999) Putting metaclasses to work. Addison-Wesley, Boston

    Google Scholar 

  13. Forman IE (2004) Java reflection in action. Manning Publications, Greenwich

    Google Scholar 

  14. GCC_XML (2008) http://www.gccxml.org

  15. Gnu debugger. Available at http://www.gnu.org/s/gdb

  16. Ghenassia F (2006) Transaction-level modeling with SystemC: TLM concepts and applications for embedded systems. Springer, New York

    Google Scholar 

  17. (ISO Group) dist10. Website, Oct. 2009. ftp://ftp.sunet.se/pub/multimedia/Berkeley/mpeg2/conformance-bitstreams/audio/mpeg2/software/technical_report/

  18. KaSCPar (2010) Karlsruhe SystemC parser suite. http://www.fzi.de/index.php/de/component/content/article/238-ispe-sim/4350-sim-tools-kascpar-examples

  19. Kiczales G, Irwin J, Lamping J, Loingtier J-M, Lopes CV, Maeda C, Mendhekar A (1997) Aspect-oriented programming

  20. King B (2009) GCC_XML. Website, Oct. 2009. http://www.gccxml.org/

  21. Lapalme J, Aboulhamid EM, Nicolescu G (2006) A new efficient EDA tool design methodology. ACM Trans Embed Comput Syst 5(2):408–430

    Article  Google Scholar 

  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. Lombardelli F (2007) CPPReflect. Website SourceForge, Jan. 2007. http://sourceforge.net/projects/cppreflect/

  24. Maes P (1988) Computational reflection. Knowl Eng Rev 3:1–19. doi:10.1017/S0269888900004355

    Article  Google Scholar 

  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

    Chapter  Google Scholar 

  26. Mathaikutty DA, Shukla SK (2008) Mining Metadata for Composability of IPs from SystemC IP Library. Des Autom Embed Syst 12:63–94. http://www.springerlink.com/content/y875270qr501h668

    Article  Google Scholar 

  27. Mentor Graphics. Website, Jan. 2007. http://www.mentor.com

  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

    Article  Google Scholar 

  29. Misera S, Vierhaus HT, Sieber A (2008) Simulated fault injections and their acceleration in SystemC. Microprocess Microsyst 32(5–6):270–278

    Article  Google Scholar 

  30. C++/Python Interfacing: pyplusplus. http://www.language-binding.net

  31. Rogin F, Genz C, Drechsler R, Rilke S (2008) Embedded systems specification and design languages, vol 10. Springer, Amsterdam, pp 59–71. http://www.springerlink.com/content/m5p062761h402n87

    Book  Google Scholar 

  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. SPIRIT consortium (2007). http://www.spiritconsortium.org

Download references

Acknowledgements

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bruno Albertini.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Albertini, B., Rigo, S. & Araujo, G. Computational reflection and its application to platform verification. Des Autom Embed Syst 16, 1–17 (2012). https://doi.org/10.1007/s10617-011-9082-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-011-9082-6

Keywords

Navigation