Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A Scriptable Standard-Compliant Reporting and Logging Framework for SystemC

Published: 13 October 2016 Publication History

Abstract

With the ever-increasing complexity of digital designs, debugging and evaluation face likewise increasing challenges. While recent advances in hardware/software co-simulation have been made, solutions for corresponding debugging and evaluation did not mature and improve in a similar fashion. In this article, we present a dedicated solution to ease the debugging and evaluation efforts, particularly focusing on full-system simulation. Improving significantly over existing solutions, the presented approach features a standards-compliant powerful and flexible method of deriving, logging, and filtering detailed status information from SystemC-based models. At the core of this approach are flexible scripting capabilities that may change all logging parameters during runtime, thus not requiring re-compiling the to-be-simulated model, as in many competing solutions. The approach is tested and benchmarked with a real-world full-system example, demonstrating the overall benefits. The presented solution is published as open source via github (see text) and, by strictly adhering to existing standards, is generally compatible with existing SystemC simulation environments.

Supplementary Material

a6-meyer-apndx.pdf (meyer.zip)
Supplemental movie, appendix, image and software files for, A Scriptable Standard-Compliant Reporting and Logging Framework for SystemC

References

[1]
0xAX et al. 2015. Linux Inside. GitBook. Retrieved from https://0xax.gitbooks.io/linux-insides/content/.
[2]
Accellera. 2015. Accellera working group for configuration, control and inspection. Retrieved from http://www.accellera.org/activities/committees/systemc-cci/.
[3]
Aeroflex/Gaisler. 2015. Aeroflex/Gaisler IP and manual download. Retrieved from http://www.gaisler.com/index.php/downloads.
[4]
B. Albertini, S. Rigo, G. Araujo, C. Araujo, E. Barros, and W. Azevedo. 2007. A computational reflection mechanism to support platform debugging in SystemC. In Proceedings of the 2007 5th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS). 81--86.
[5]
Sergej Alekseev. 2006. Algorithms for optimally tracing time critical programs. In Proceedings of the International Conference on Software Engineering Research and Practice 8 Conference on Programming Languages and Compilers (SERP’06), vol. 2, 585--591.
[6]
Eric Anderson, Christopher Hoover, Xiaozhou Li, and Joseph Tucek. 2009. Efficient tracing and performance analysis for large distributed systems. In Proceedings of the IEEE International Symposium on Modeling, Analysis 8 Simulation of Computer and Telecommunication Systems (MASCOTS’09). IEEE, 1--10.
[7]
G. Beltrame, L. Fossati, and D. Sciuto. 2009. ReSP: A nonintrusive transaction-level reflective MPSoC simulation platform for design space exploration. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 28, 12 (Dec 2009), 1857--1869.
[8]
Sascha Bischoff and Andreas Hansson. 2013. gem5 Tutorial. University of Southampton (Jul. 2013).
[9]
Boost. 2015. Bracket chaining tutorial. Retrieved from http://www.boost.org/doc/libs/1_55_0/doc/html/program_options/tutorial.html.
[10]
P. Chen, D. A. Kirkpatrick, and K. Keutzer. 2001. Scripting for EDA tools: A case study. In Proceedings of the Quality Electronic Design. IEEE, 87--93.
[11]
Dave Beazley et al. 2015. Simplified wrapper and interface generator. Retrieved from http://www.swig.org.
[12]
F. Doucet, S. Shukla, and R. Gupta. 2003. Introspection in system-level language frameworks: meta-level vs. integrated. In Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, 2003. 382--387.
[13]
Luca Fossati. 2010. TLM 2.0 Standard into Action: Designing Efficient Processor Simulators. In Proceedings of the IP-SoC 2010 Conference.
[14]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
[15]
A. Gerstlauer, S. Chakravarty, M. Kathuria, and P. Razaghi. 2012. Abstract system-level models for early performance and power exploration. In Proceedings of the 2012 17th Asia and South Pacific Design Automation Conference (ASP-DAC). 213--218.
[16]
Frank Ghenassia. 2005. Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems. Springer US. Retrieved from https://books.google.nl/books?id=fUm0jwEACAAJ.
[17]
Google et al. 2014. Google Style guide for C++. Retrieved from https://github.com/google/styleguide/blob/gh-pages/cppguide.html.
[18]
Robert Günzel. 2010. GreenSocket -- Conceptual Details. GreenSocs. Retrieved from http://forge.pole-aquinetic.fr/projects/greenlib_project/repository/revisions/cecb1ab88e7cb245abf70cc48c1dddddc5b0362e/raw/greensocket/doc/gsock_tech.pdf.
[19]
HDF group. 2015. The HDF group. Retrieved from http://www.hdfgroup.org.
[20]
Ruben Heynssens. 2014. Performance analysis and benchmarking of python. Retrieved from http://lib.ugent.be/catalog/rug01:002153626.
[21]
Wei Hong, A. Viehl, N. Bannow, C. Kerstan, H. Post, O. Bringmann, and W. Rosenstiel. 2012. CULT: A unified framework for tracing and logging c-based designs. In Proceedings of the System, Software, SoC and Silicon Debug Conference (S4D), 2012. 1--6.
[22]
Shih-Hao Hung, Shu-Jheng Huang, and Chia-Heng Tu. 2008. New tracing and performance analysis techniques for embedded applications. In Proceedings of the 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’08). IEEE, 143--152.
[23]
IEEE-SA Standards Board. 2011. IEEE standard for standard SystemC language reference manual. IEEE Std 1666-2011 (Revision of IEEE Std 1666-2011) (09 2011).
[24]
Roberto Ierusalimschy, Luiz Henrique De Figueiredo, and Waldemar Celes. 2011. Lua 5.2 reference manual. (2011). Retrieved from http://www.lua.org/manual/5.2/manual.html.
[25]
Jiri Gaisler. 2002. A portable and fault-tolerant microprocessor based on the SPARC v8 architecture. In DSN. 409--415.
[26]
Matthias Jurenz. 2013. TUD-ZIH -- VampirTrace. Retrieved from http://www.tu-dresden.de/zih/vampirtrace.
[27]
Antti Kamppi, Joni-Matti Määttä, Lauri Matilainen, Erno Salminen, and Timo D Hämäläinen. 2012. Kactus2: Extended IP-XACT metadata based embedded system design environment. In Embedded Systems Week/MeCoES: Metamodeling and Code Generation for Embedded Systems Workshop. 17--22.
[28]
Brad King. 2015. GCC-XML. Retrieved from http://www.gccxml.org/HTML/Index.html. (2015).
[29]
Wolfgang Klingauf and Manuel Geffken. 2006. Design structure analysis and transaction recording in systemc designs: A minimal-intrusive approach. In Forum on Specification and Design Languages (FDL).
[30]
Johan Kraft, Anders Wall, and Holger Kienle. 2010. Trace recording for embedded systems: Lessons learned from five industrial projects. In Runtime Verification, Howard Barringer, Ylies Falcone, Bernd Finkbeiner, Klaus Havelund, Insup Lee, Gordon Pace, Grigore Roşu, Oleg Sokolsky, and Nikolai Tillmann (Eds.). Lecture Notes in Computer Science, Vol. 6418. Springer, Berlin, 315--329.
[31]
Rainer Leupers and Olivier Temam. 2010. Processor and System-on-Chip Simulation (1st ed.). Springer, Berlin.
[32]
log4cxx. 2013. Short introduction to Apache log4cxx. Retrieved from http://logging.apache.org/log4cxx/. (2013).
[33]
Robert Love. 2010. Linux Kernel Development. Pearson Education.
[34]
Kun Lu, Daniel Müller-Gritschneder, and Ulf. Schlichtmann. 2012. Accurately timed transaction level models for virtual prototyping at high abstraction level. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE’12). EDA Consortium, San Jose, CA, 135--140.
[35]
J. Aldis M. Berrada. 2007. SystemPython: A python extension to control systemc SoC simulations. In Proceedings of the GreenSocs Meeting Presentation, Design and Test in Europe Conference (DATE).
[36]
R. Meyer, J. Wagner, R. Buchty, and M. Berekovic. 2015. Universal scripting interface for SystemC. In Proceedings of the 2015 DVCon Europe Conference. Retrieved from https://dvcon-europe.org/sites/dvcon-europe.org/files/archive/2015/proceedings/DVCon_Europe_2015_TA3_1_Paper.pdf.
[37]
Matthias S. Müller, Andreas Knüpfer, Matthias Jurenz, Matthias Lieber, Holger Brunst, Hartmut Mix, and Wolfgang E. Nagel. 2007. Developing scalable applications with Vampir, VampirServer and VampirTrace. In PARCO, Vol. 15. Citeseer, 637--644.
[38]
OSCI CCI WG. 2009. Requirements specification for configuration interfaces. Retrieved from http://accellera.org/images/downloads/drafts-review/configuration_requirements-091218.pdf.
[39]
PRQA. 2013. High Integrity C++ Coding Standard Version 4.0. Retrieved from http://www.codingstandard.com/section/index/.
[40]
Frank Rogin, Erhard Fehlauer, Steffen Rülke, Sebastian Ohnewald, and Thomas Berndt. 2007. Advances in Design and Specification Languages for Embedded Systems: Selected Contributions from FDL’06. Springer Netherlands, Dordrecht, Chapter Nonintrusive High-level SystemC Debugging, 131--144.
[41]
Stefan Roiser and P. Mato. 2004. The SEAL C++ reflection system. Computing in High Energy Physics and Nuclear Physics 2004 (2004).
[42]
Robert Sauter, Olga Saukh, Oliver Frietsch, and Pedro José Marrón. 2011. TinyLTS: Efficient network-wide logging and tracing system for TinyOS. In Proceedings of the 2011 Proceedings IEEE INFOCOM. IEEE, 2033--2041.
[43]
Robert Schöne, Ronny Tschüter, Thomas Ilsche, and Daniel Hackenberg. 2011. Euro-Par 2010 Parallel Processing Workshops: HeteroPar, HPCC, HiBB, CoreGrid, UCHPC, HPCF, PROPER, CCPI, VHPC, Ischia, Italy, August 31--September 3, 2010, Revised Selected Papers. Springer, Berlin, 501--511.
[44]
Christian Schröder, Wolfgang Klingauf, Robert Günzel, Mark Burton, and Eric Roesler. 2009. Configuration and control of SystemC models using TLM middleware. In Proceedings of the 7th IEEE/ACM International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS’09). ACM, New York, NY, 81--88.
[45]
T. Schuster, R. Meyer, R. Buchty, L. Fossati, and M. Berekovic. 2014. SoCRocket -- a virtual platform for the European space agency’s SoC development. In Proceedings of the 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC’14). 1--7.
[46]
SoCRocket. 2015. SoCRocket sources. Retrieved from https://github.com/socrocket. (2015).
[47]
Synopsys 2015. VP Explorer User’s Guide. Synopsys.
[48]
Synopsys. 2016. SCML Source Code Kit. Retrieved from https://www.synopsys.com/cgi-bin/slcw/kits/reg.cgi. (2016).
[49]
E. Todorovich and O. Cadenas. 2007. TCL/TK for EDA tools. In Proceedings of the 2007 3rd Southern Conference on Programmable Logic, 2007. SPL’07. 107--112.
[50]
Jan Valdman. 2001. Log file analysis. Department of Computer Science and Engineering (FAV UWB)., Technical Report DCSE/TR-2001-04 (2001). Retrieved from https://www.kiv.zcu.cz/site/documents/verejne/vyzkum/publikace/technicke-zpravy/2001/tr-2001-04.pdf.
[51]
Chad Verbowski, Emre Kiciman, Arunvijay Kumar, Brad Daniels, Shan Lu, Juhan Lee, Yi-Min Wang, and Roussi Roussev. 2006. Flight data recorder: Monitoring persistent-state interactions to improve systems management. In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, Volume 7 (OSDI’06). USENIX Association, Berkeley, CA, 9--9.
[52]
J. Wagner, R. Meyer, R. Buchty, and M. Berekovic. 2015. A scriptable, standards-compliant reporting and logging extension for SystemC. In Proceedings of the 2015 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS). 366--371.

Cited By

View all
  • (2017)A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project $$EMC^2$$Computer Safety, Reliability, and Security10.1007/978-3-319-66284-8_12(127-140)Online publication date: 27-Sep-2017

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 16, Issue 1
Special Issue on VIPES, Special Issue on ICESS2015 and Regular Papers
February 2017
602 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/3008024
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 13 October 2016
Accepted: 01 July 2016
Revised: 01 June 2016
Received: 01 September 2015
Published in TECS Volume 16, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. SystemC
  2. TLM
  3. automation
  4. logging
  5. python
  6. scripting

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • German Federal Ministry of Education and Research (BMBF)
  • ARTEMIS Joint Undertaking

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2017)A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project $$EMC^2$$Computer Safety, Reliability, and Security10.1007/978-3-319-66284-8_12(127-140)Online publication date: 27-Sep-2017

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media