In college, my Machine Organization and Architecture professor is teaching the MIPS architecture. Since it's so simple, I'm building a MIPS simulator and assembler as a project.
It will be compatible with the book we're using for learning assembly language (MIPS Assembly Language Programming by Robert L. Britton). The machine will consist of hypothetical components for I/O.
It will probably be sufficient for use as a initial target test platform for the managed operating system I'm writing as an experiment.