This is a MIPS-I compatible CPU, aiming at compatibility with IDT’s R3000
|1.|| Binary compatible to R3000 series of CPUs.|
|2.|| Kernel/user mode operation as per the architecture definition.|
|3.|| Exception handling compatible to MIPS-I standard.|
|4.|| 4KB direct-mapped code cache.|
|5.|| 4KB direct-mapped, writethrough data cache.|
|6.|| Simplified CP0, mostly compatible to R3000.|
|7.|| All unimplemented opcodes trigger the proper traps.|
|8.|| Includes minimalistic memory handler with interfaces for external SRAM (or FLASH)
on 8- and 16-bit data bus.|
|9.|| Size and speed comparable to other free MIPS cores.|
|10.|| Fully synchronous (rising clock edge only). No latches.|
|11.|| Source HDL is fully vendor independent (Only tested on Xilinx and Altera synthesis
This project inherits heavily from Steve Rhoads' Plasma
, though it is not meant as a replacement or improvement -- the name of this project attempts to convey that idea.
Besides using Plasma as a benchmark and model, I have used parts of Plasma in this project. This includes the multiplier/divider unit and the software simulator, both of which have been extensively modified -- details are covered in the source comments and the documentation.
Please see the included documentation (/doc/ion_project.pdf) for a more detailed explaination of the core features and its current status.
The project ships with a few demos
, including a port of Adventure for a bare-metal system and a SD card bootloader.
While this project may eventually produce a useful MIPS CPU core, and is not bad in area and clock rate performance, the real reason I took all this trouble is that it's lots of fun :)
While the core can already run almost any arbitrary code, it is not mature enough to be of any immediate use in real-life applications. If you are looking for a mature, well supported and well tested MIPS core, you need to look elsewhere.
There's already quite a few MIPS cores out there to choose from, including some in OpenCores.
Though I don't expect this core to be used at all at this early stage, you can contact me with any doubt and/or correction. Bear in mind that neither the source code nor the documentation have ever been reviewed -- all criticism and feedback is welcome!