Content-type: text/html Manpage of elab

elab

Section: Misc. Reference Manual Pages (l)
Updated: July 6, 2018
Index Return to Main Contents
 

NAME

elab - Recoding Infrastructure for SystemC (RISC) Dynamic Elaborator  

SYNOPSIS

elab design [ options ]  

DESCRIPTION

elab is a special compiler for the SystemC language. The purpose of elab is to parse, analyze, instrument, and compile a SystemC source program into an executable program for dynamic elaboration. elab is a frontend source-to-source compiler for SystemC built on top of the ROSE compiler infrastructure with GNU or Intel C++ as backend target compiler. As such, elab relies on and supports also most of the ROSE and GNU compiler options.

Using the command syntax shown in the synopsis above, the specified design is compiled. By default, elab reads the SystemC source file, performs preprocessing and builds an internal representation (abstract syntax tree) of the SystemC structural hierarchy. elab then instruments the design model so that its execution stops after the end of the elaboration phase (no actual simulation will take place); the dynamically built hierarchy and instance connectivity data is then dumped into a file design.elab which can be passed to the RISC compiler risc for more precise conflict analysis.

On successful completion, the exit value 0 is returned. In case of errors during processing, an error code with a brief diagnostic message is written to the standard error stream and the compilation is aborted with an exit value greater than zero.

For preprocessing and C++ compilation into an executable file, elab relies on the availability of an external C++ compiler which is used automatically in the background. By default, the GNU C++ compiler g++ is used.  

ARGUMENTS

design
specifies the file name of the input SystemC design model; by default, the base name of design is used as base name for the intermediate and output files;
 

OPTIONS

-h | --help
print the elab elaborator version and a brief usage information message to standard output and quit;
-v | --verbose
increment the verbosity level so that all tasks performed are logged to standard error (default: be silent); at level 1, high-level messages about the tasks performed are displayed; at level 2, additional details such as input and output file names are listed; at level 3, very detailed information about each executed task is printed;
-vv
increment the verbosity level by two counts (same as -v -v );
-vvv
increment the verbosity level by three counts (same as -v -v -v );
-w | --warnings
increment the warning level so that compiler warning messages are enabled (default: warnings are disabled); four levels are supported ranging from only important warnings (level 1) to pedantic warnings (level 4); for most cases, warning level 2 is recommended ( -w -w );
-ww
increment the warning level by two counts (same as -w -w );
-www
increment the warning level by three counts (same as -w -w -w );
-g
add a symbol table suitable for debugging (e.g. using gdb ) to the generated object files and simulation executable (default: no debugging symbols);
-O | -O level
optimize the generated simulation executable for higher execution speed and/or less memory usage (default: no optimization);
-Idir
add the specified dir to the include path (extend the list of directories to be searched for including source files); include directories are searched in the order of their specification; the standard include path ($SYSTEMC_LW_HOME/include or $SYSTEMC_OOP_HOME/include) is automatically appended to this list; by default, only the standard include directories are searched;
-Ldir
add the specified dir to the library path (extend the list of directories to be searched for linker libraries); the library path is searched in the specified order; the standard library path ($SYSTEMC_OOP_HOME/lib) is automatically appended to this list; by default, only the standard library path is searched;
-llib
add the specified lib to the list of libraries for the linker so that the executable is linked against lib; libraries are linked in the specified order; the standard libraries (i.e. -lsystemc) are automatically appended to this list; by default, only standard libraries are used;
-c
perform only the preprocessing, analysis, instrumentation, and compilation tasks; skip the final linking stage so that only an object file is created (default: perform all tasks including linking);
-o output file
specify the name of the final output file explicitly (default: a.out);
-elab:o
specify the name of the elaboration result file with instance connectivity data explicitly (default: design.elab ); this file will be produced when the executable generated by elab is run (after its elaboration phase);
-<rose:option>
pass this option through to the underlying ROSE compiler (default: none);
-<GNU option>
pass this option through to the underlying GNU compiler (default: none);
 

ENVIRONMENT

SYSTEMC_LW_HOME
is used at compile-time to find the RISC light-weight SystemC header files which are expected in directory $SYSTEMC_LW_HOME/include (default: none);
SYSTEMC_OOP_HOME
is used at compile-time to find the RISC out-of-order SystemC header files which are expected in directory $SYSTEMC_OOP_HOME/include, and the RISC out-of-order SystemC library which is expected in directory $SYSTEMC_OOP_HOME/lib (default: none);
 

VERSION

The RISC Dynamic Elaborator is release version 0.6.3.  

AUTHORS

Zhongqi Cheng <zhongqc@uci.edu>, Rainer Doemer <doemer@uci.edu>, Guantao Liu <guantaol@uci.edu>, and Tim Schmidt <schmidtt@uci.edu>.  

COPYRIGHT

(c) 2020 CECS, University of California, Irvine  

LICENSE

Open source BSD license terms apply.  

BUGS, LIMITATIONS

This is an academic proof-of-concept prototype implementation, not commercial-quality software. See the file BUGS in the software packages for known limitations.


 

Index

NAME
SYNOPSIS
DESCRIPTION
ARGUMENTS
OPTIONS
ENVIRONMENT
VERSION
AUTHORS
COPYRIGHT
LICENSE
BUGS, LIMITATIONS

This document was created by man2html, using the manual pages.
Time: 02:47:04 GMT, August 19, 2021