Systemc Hierarchy and Behavior Extractor (SHaBE)

© Harry Broeders.

Introduction

SHaBE is a SystemC front-end. It is developed by Harry Broeders while studying at the Delft University of Technology and takes a novel approach to extract the dynamically generated module hierarchy and its behavior from a SystemC model. The module hierarchy is extracted using a GDB debugger which controls and monitors the elaboration phase of the execution of the SystemC model. Additionally, a GCC plug-in is developed to extract the behavior of the model. This plug-in produces abstract syntax trees in static single assignment form which are combined with the module hierarchy. This front-end facilitates the development of SystemC visualization, debugging, static verification, and synthesis tools.

SHaBE transforms an executable SystemC model that includes debug information into an XML document which contains information about the model's module hierarchy and its behavior. The XML format used for this document is called SystemC Model Description Language (SCMDL). More information about SCMDL can be found at: http://shabe.sourceforge.net/systemc-model/

Download

The source code for SHaBE can be downloaded from: http://sourceforge.net/projects/shabe/files.

Compile and Use

You can compile and use SHaBE only on Linux/Unix systems. SHaBE can be compiled by using the make-shabe.sh script provided in the download. To use SHaBE you need GCC 4.5.0 or higher and GDB 7.1 or higher. If you want to use one of the do-demos.sh, do-tests.sh, or do-performance-tests.sh scripts to try SHaBE you need to fill in the proper paths into the SystemC.mk file which is located in the test-programs directory, and you must compile the OSCI SystemC library to include debug info. The OSCI SystemC makefile has defined the make targets debug and pthreads_debug to facilitate this.  

To use SHaBE you need to compile your SystemC program including debug information (g++ -g) and link it with the debug version of the OSCI SystemC library version 2.2.0. You can execute the SHaBE program (created in the directory shabe) on your executable model as follows: shabe your-executable-model. SHaBE will extract the hierachical and behavioral information from your model and will produce an SCMDL document named your-executable-model.xml.

Documentation

The development and implementation of SHaBE is described in the Master's thesis of Harry Broeders (december 2010).

Questions

If you have any questions about installing or using SHaBE, please do not hesitate to contact me at: mailto:bd@hhs.nl.