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/
The source code for SHaBE can be downloaded from: http://sourceforge.net/projects/shabe/files.
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
.
The development and implementation of SHaBE is described in the Master's thesis of Harry Broeders (december 2010).
If you have any questions about installing or using SHaBE, please do not hesitate to contact me at: mailto:bd@hhs.nl.