A Scriptable Standard-Compliant Reporting and Logging Framework for SystemC

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.

[1]  Sorin Alexander Huss,et al.  Advances in Design and Specification Languages for Embedded Systems , 2007 .

[2]  Roberto Ierusalimschy,et al.  Lua 5.1 Reference Manual , 2006 .

[3]  Kurt Keutzer,et al.  Scripting for EDA tools: a case study , 2001, Proceedings of the IEEE 2001. 2nd International Symposium on Quality Electronic Design.

[4]  Pedro José Marrón,et al.  TinyLTS: Efficient network-wide Logging and Tracing System for TinyOS , 2011, 2011 Proceedings IEEE INFOCOM.

[5]  S Roiser,et al.  The SEAL C++ Reflection System , 2005 .

[6]  Robert Günzel,et al.  Configuration and control of SystemC models using TLM middleware , 2009, CODES+ISSS '09.

[7]  Andreas Grothey,et al.  Euro-Par 2010 Parallel Processing Workshops , 2011 .

[8]  Xiaozhou Li,et al.  Efficient tracing and performance analysis for large distributed systems , 2009, 2009 IEEE International Symposium on Modeling, Analysis & Simulation of Computer and Telecommunication Systems.

[9]  Thomas Schuster,et al.  SoCRocket - A virtual platform for the European Space Agency's SoC development , 2014, 2014 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC).

[10]  Jiri Gaisler A portable and fault-tolerant microprocessor based on the SPARC v8 architecture , 2002, Proceedings International Conference on Dependable Systems and Networks.

[11]  Wael Hassan Simplified Wrapper and Interface Generator , 2000 .

[12]  Luca Fossati,et al.  ReSP: A Nonintrusive Transaction-Level Reflective MPSoC Simulation Platform for Design Space Exploration , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Ulf Schlichtmann,et al.  Accurately timed transaction level models for virtual prototyping at high abstraction level , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[14]  Roberto Ierusalimschy,et al.  Lua 5.2 Reference Manual , 2015 .

[15]  Sandeep K. Shukla,et al.  Introspection in system-level language frameworks: meta-level vs. integrated , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[16]  Sergej Alekseev Algorithms for Optimally Tracing Time Critical Programs , 2006, Software Engineering Research and Practice.

[17]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[18]  Anders Wall,et al.  Trace Recording for Embedded Systems: Lessons Learned from Five Industrial Projects , 2010, RV.

[19]  Jesper Larsson Träff,et al.  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 , 2011, Euro-Par Workshops.

[20]  Wolfgang Klingauf,et al.  Design Structure Analysis and Transaction Recording in SystemC , 2006, FDL.

[21]  Rainer Leupers,et al.  Processor and System-on-Chip Simulation , 2010 .

[22]  O. Cadenas,et al.  TCL/TK for EDA Tools , 2007, 2007 3rd Southern Conference on Programmable Logic.

[23]  O. Bringmann,et al.  CULT: A unified framework for tracing and logging C-based designs , 2012, Proceedings of the 2012 System, Software, SoC and Silicon Debug Conference.

[24]  Sebastian Ohnewald,et al.  Non-Intrusive High-level SystemC Debugging , 2006, FDL.

[25]  Robert Love,et al.  Linux Kernel Development , 2003 .

[26]  Frank Ghenassia,et al.  Transaction Level Modeling with SystemC , 2005 .

[27]  Jan Valdman Log file analysis: technical report no. DCSE/TR-2001-04 , 2001 .

[28]  Rainer Buchty,et al.  Universal Scripting Interface for SystemC , 2015 .

[29]  Guido Araujo,et al.  A computational reflection mechanism to support platform debugging in SystemC , 2007, 2007 5th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[30]  Matthias S. Müller,et al.  Developing Scalable Applications with Vampir, VampirServer and VampirTrace , 2007, PARCO.

[31]  O. Khan,et al.  ACM Transactions on Embedded Computing Systems continued on back cover , 2018 .

[32]  Shan Lu,et al.  Flight data recorder: monitoring persistent-state interactions to improve systems management , 2006, OSDI '06.

[33]  Shih-Hao Hung,et al.  New Tracing and Performance Analysis Techniques for Embedded Applications , 2008, 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[34]  Frank Ghenassia Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems , 2010 .

[35]  Andreas Gerstlauer,et al.  Abstract system-level models for early performance and power exploration , 2012, 17th Asia and South Pacific Design Automation Conference.

[36]  Jan Valdman,et al.  Log File Analysis , 2001 .

[37]  Rainer Buchty,et al.  A scriptable, standards-compliant reporting and logging extension for SystemC , 2015, 2015 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS).