
SimIt-ARM 2.0 currently contains 
a cycle-accurate simulator for the StrongARM architecture. 
The simulator reads ELF32 little-endian arm-linux
binaries and can simulate most of the SPEC Int and SPEC FP benchmarks.
SimIT-ARM does not support the Thumb instruction set so far.

The simulator features:

- Very high simulation speed. 
  On a Pentium III 850MHz desktop, the simulator runs at on average
  1.0 million cycles/second.

- High accuracy.
  The cycle-accudate-simulator is calibrated against
  a linux based IPAQ PDA containing a SA-1100 chip. The timing
  accuracy is within 3% for integer benchmarks according to my measurements.

- FPE support.
  The ARM FPE instructions are emulated by
  the NetWinder FPE library, which reflects the real 
  execution trace on a linux based ARM platform. 

- Cosimulation support.
  Two styles of cosimulation are supported.
  1. Memory mapped coprocessor access:
     The ARM core can communicate with coprocessors by accessing user-defined
     memory locations. Macro COSIM_STUB should be defined when building
     SimIt-ARM to enable such coprocessor support.
  2. Direct coprocessor access:
     The ARM core can communicate with coprocessors directly. For details,
     please see file emulator/external_dev.h.

To install, untar the source by

tar xzvf SimIt-ARM-2.1.tar.gz
cd SimIt-ARM-2.1

then, pick an installation director <prefix>. The default <prefix> is the build/
directory under the current directory

./configure --prefix=<prefix> ( or simply ./configure )
make
make install

The <prefix>/bin directory will contain 3 file:
  ema - ARM instruction set simulator
  ema_count - ARM instruction set simulator, counts instructions of each type
  sima - ARM cycle-accurate simulator

After installation, you can try to test the simulator by
<prefix>/bin/sim_arm test/wc configure
Be sure to run the above command under the SimIt-ARM-2.0b source directory.

On Cygwin platforms, you may have to try 
CONFIG_SHELL=bash ./configure --prefix=<prefix>


One new configuration flag for 2.0.2 and later versions is --enable-mmap.
This will allow the simulator to use 4MB memory pages rather
than 4KB memory ones. The result is a 20% speed up of ema.

The simulator utilizes some important infrastructure code from the
PowerPC emulator by Gilles Mouchard (http://www.microlib.org).

Please send your questions or comments to Wei Qin(wqin@princeton.edu).
