Sulima Instruction Set Simulator

Sulima is an instruction set architecture simulator, originally developed as my undergraduate honours thesis and indented as a research and teaching tool for internal use by the Distributed Systems Group at the University of New South Wales. The name is a Polish coat of arms, used by the Zadarnowski family (among others.) You can download a copy of my thesis at the following address:

The project has been also ported to UltraSPARC by the Fujitsu-sponsored supercomputing group at the Australian National University. To the best of my knowledge, both users of Sulima are now well and truly out of the business of instruction set simulation, so that the code base is no longer maintained and is released only for historical interest. You can obtain the last maintained version, complete with numerous bug fixes by Matt Chapman, from the following address:

To install it, simply untar the above file and run make in the sulima-030910 directory. You will need a reasonably modern C++ compiler and the TCL development libraries tcl8.4-dev package on Debian Linux.) Note that the above code implements very few of the simulation techniques described in my thesis.

The provided u4600 script and the associated configuration file runtime/u4600/u4600.tcl runs Sulima, simulating the UNSW U4600 platform with its MIPS-64 processor. With no arguments, the PMON bootloader is started, as on the real hardware. The optional argument is an ELF file to load instead.

Sulima's simulated DEC Tulip network device uses the TUN/TAP driver to inject packets. On Linux, you may need to run the following commands:

modprobe tun
mkdir /dev/net
mknod /dev/net/tun c 10 200

After running Sulima, you will see a tap0 interface appear; assign it an IP address with ifconfig, e.g.:

ifconfig tap0

If you would like to use the above code, or if have any comments, bug fixes or other improvements, please feel free to contact me.