OpenCores
URL https://opencores.org/ocsvn/mpx/mpx/trunk

Subversion Repositories mpx

[/] [mpx/] [trunk/] [README.md] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 11 ultra_embe
# MPX
2
 
3
Github: [https://github.com/ultraembedded/core_mpx](https://github.com/ultraembedded/core_mpx)
4
 
5
MPX is an open-source CPU which can execute code compiled for MIPS-I ISA (as per the MIPS R2000 / R3000 CPUs).
6
 
7
*Disclaimer: I am not associated with MIPs Technologies Inc.
8
The version of MIPS ISA implemented here is 30+ years old, so undoubtedly any patents related to it will have expired.
9
This core was implemented using only publically available ISA documentation.*
10
 
11
This core is not a good starting point for new designs. You should consider using RISC-V based designs instead, as RISC-V is a cleaned up and more modern RISC ISA that is also open-source.
12
 
13
I have designed multiple RISC-V cores that you should consider instead of MPX;
14
* [https://github.com/ultraembedded/biriscv](https://github.com/ultraembedded/biriscv)
15
* [https://github.com/ultraembedded/riscv](https://github.com/ultraembedded/riscv)
16
 
17
## Rationale
18
So why design this core? Well... There are some interesting real-world products that featured MIPS R3000 CPUs such as the Sony Playstation 1, and there are ongoing efforts to recreate them in modern FPGA technology.
19
 
20
## Overview
21
![](docs/mpx_pipeline.png)
22
 
23
## Features
24
* 32-bit MIPS-I ISA compatible CPU core.
25
* Simple 5-stage pipelined design.
26
* Support for external co-processors (COP1 - 3).
27
* Synthesizable Verilog 2001, Verilator and FPGA friendly.
28
 
29
Note: This core does not have a built-in floating-point unit (COP1), however, one can be implemented and connected to the top-level ports of the design.
30
 
31
## Status
32
This is a very early release of the RTL. There are likely to be bugs!
33
 
34
Known items on the TODO list are;
35
* Implement faults on invalid instructions (RI) and arithmetic overflow (OV).
36
* Optimise the instruction decoder to be smaller and have a shorter critical path.
37
* Re-implement various bugs and quirks found in actual MIPS R2000/3000 designs.
38
* Rework multiply/divide instructions to be non-blocking (the current implementation is faster than the original but blocking).
39
* Rework the co-processor interfaces to reduce the CPU critical path.
40
* More extensive verification is required.
41
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.