<<

SystemC Environment Setup Andreas Gerstlauer

1. Access and Setup

Below are the instructions for accessing and setting up your environment for running SystemC on the Machines in the department:

(a) The SystemC tool set is installed only on the Linux machines in the ECE LRC. All the Linux machines in LRC available for access are listed : http://www.ece.utexas.edu/it/remote-linux You can work on any of the regular 64-bit Linux server. You also won’t need a graphical interface or an X server for running SystemC, so you can work remotely by using a regular ssh clients like “putty”.

(b) You can also SystemC locally on your machines. See http://www.accellera.org/downloads/standards/systemc for the latest SystemC release.

(c) Once you have logged in, set the ‘SYSTEMC_HOME’ to the directory of the SystemC installation located at: /usr/local/packages/systemc-2.3.1 Depending on your (default in LRC is the csh but you can out what you are running through the ‘SHELL’ environment variable, i.e. by typing $SHELL), setting the ‘SYSTEMC_HOME’ variable is done as follows for [t]csh: % setenv SYSTEMC_HOME /usr/local/packages/systemc-2.3.1 or, for [ba]sh: % export SYSTEMC_HOME=/usr/local/packages/systemc-2.3.1

(d) Once the environment variable is set, you can access the SystemC installation by referring to the $SYSTEMC_HOME variable. The standard GNU C++ compiler ‘g++’ is then used to compile SystemC code and it against the SystemC libraries. Since SystemC is just a C++ class , compiled executables can be debugged using any C++ debugger, such as ‘gdb’ or ‘ddd’ (graphical frontend for ‘gdb’).

(e) It is recommended that you create a ‘Makefile’ for compiling your SystemC sources first to object (.o) files and then linking everything together into a final simulation executable.

(f) Some documentation for SystemC is included with the installation and available under $SYSTEMC_HOME/docs/sysc. However, the official reference is the IEEE SystemC Standard Language Reference Manual (IEEE 1666-2011). In addition, there are many tutorials that can be found on the web.

2. Simple FIFO Example

The below procedure walks you through a simple FIFO SystemC example:

(a) sure that your SystemC environment is setup so that the environment variable 'SYSTEMC' is set to the installation directory. The example that we are going to use is the simple FIFO producer/consumer example that is part of the standard SystemC installation.

(b) First create a work directory for the SystemC files. (~) % work Change the current to the newly created directory. (~) % work/ the SystemC source files for the simple_fifo program from the examples directory into the newly created directory (~/work) % –r $SYSTEMC_HOME/examples/sysc/simple_fifo . (~/work) % cp $SYSTEMC_HOME/examples/sysc/Makefile.* . (~/work) % cd simple_fifo (~/work/simple_fifo)% Makefile simple_fifo.cpp simple_fifo.vcproj

(c) You can use the provided ‘Makefile’ to compile the example: (~/work/simple_fifo)% make TARGET_ARCH=linux64 (~/work/simple_fifo)% ls Makefile simple_fifo.cpp simple_fifo.o simple_fifo.vcproj simple_fifo.x

(d) Run the generated binary to simulate the example design: (~/work/simple_fifo)% ./simple_fifo