SID

SID is a framework for building computer system simulations. Specifically, a simulation is composed of a collection of loosely coupled components. Simulated systems may range from a CPU's instruction set to a large multi-processor embedded system.

SID defines a small component interface which serves to tightly encapsulate them. Components may be written in C++, C or Tcl.

A SID simulator can provide powerful tools for both software development and hardware design:

  • Test software for correctness on a model of the hardware it will eventually run on. A component that performs the equivalent function of a GDB remote stub exists to debug software running on a simulated CPU using GDB.
  • Debug software with more facilities than a conventional symbolic debugger can provide -- for example, the simulator can be configured to stop when an interrupt line is asserted.
  • Analyse the dynamic behavior of software with insight not available from the real hardware. Components which model hardware with cycle accuracy can be constructed, if desired.
  • Analyse the performance of hardware given a specific software task.


https://sourceware.org/sid/screenshots/finale.jpg