YAMS is a MIPS32 machine simulator that closely replicates the architecture of the CPU.
If you are looking for a machine simulator that emulates the MIPS32 architecture CPU closely enough, then Yet Another Machine Simulator (YAMS) may be the solution you're looking for.
Features:
YAMS allows cross compilation with standard MIPS32 compiler back-ends and provides a simple device interface to the simulated memory, disks, network interfaces, terminals, and even a real-time clock. The simulator also supports pluggable I/O devices - separate programs that communicate with YAMS over a network or Unix domain socket.
Customization:
The many features of YAMS are configurable. You can configure the number of CPUs, and when the number of CPUs is more than one, YAMS simulates an SMP machine. Devices are also configurable, and various delays for disks, terminals, and network interfaces can be set.
Debugging:
YAMS provides a hardware console that can be used to debug programs, allowing you to set breakpoints and dump the contents of registers, TLBs, and memory. The memory dumping functionality also contains a disassembler.
Performance:
The main purpose of YAMS is to provide a simple yet realistic simulated hardware platform for educational purposes. High performance was not a factor in its implementation, resulting in simulator clock speeds of only a few megahertz. If you are looking for a fast MIPS emulator/simulator, then YAMS may not be for you.
Updates:
The most recent update to YAMS includes better portability with pthreads and printf formatting macros, along with minor bug fixes.
Version 1.3.0: N/A