Hexdim is a 8-bit CPU with 16 instructions. Despite its simple instruction set, it is implemented with a 3-stage pipeline structure.
One of the main features is that the project is both an emulator and a hardware description at the same time, which allows most of the debugging and testing to be done at software level.
Also, techniques like typeclasses, lenses and monad transformers grants the project with high extensibility.
Any suggestions are appreciated!