1 ![logo](https://github.com/AngelTerrones/MUSB/wiki/images/logo_musb.png)
3 __(Currently, this project is not under development. The new MIPS processor (core only): https://github.com/AngelTerrones/antares)__
5 Implementation of the MIPS32 release 1 processor.
7 Based on the [XUM project](https://github.com/grantea/mips32r1_xum) created by Grant Ayers
8 for the eXtensible Utah Multicore (XUM) project at the University of Utah.
12 - Single-issue in-order 6-stage pipeline with full forwarding and hazard detection.
13 - Harvard architecture, with separate instruction and data ports.
14 - A subset of the MIPS32 instruction set. Includes: hardware multiplication, hardware division, MAC/MAS, load
15 linked / store conditional.
17 - No FPU. Only software-base floating point support (toolchain).
18 - Multi-cycle Hardware divider (Disabled by default).
19 - Hardware multiplier (5-stages pipeline, disabled by default).
20 - Hardware is Little-Endian. No support for reverse-endian mode.
21 - Coprocessor 0 allows ISA-compliant interrupts, exceptions, and user/kernel modes.
22 - No address space verification for the instruction port: Code runs always in kernel mode.
23 - Documentation in-source.
24 - Vendor-independent code.
26 The project includes the standalone MIPS32 processor and a basic SoC design with GPIO and UART/hardware bootloader.
27 Tested in Xilinx Spartan-3 (Digilent) and Spartan-6 (XuLA2-LX25) boards.
31 - GPIO module: 4 x 8-bits module, with edge detection (interrupt).
32 - UART module: 115200 baud, 8-N-1.
33 - BRAM internal memory.
40 This repository provides all you need to simulate and synthesize the processor:
42 - Standalone processor.
43 - Hardware bootloader, using UART
44 - Internal memory using BRAM (Vendor-independent code).
45 - Scripts to simulate the processor and other modules.
49 - Software toolchain based on Mentor Graphics Sourcery CodeBench Lite for MIPS ELF (easy way).
50 - Demos written in assembly.
57 │ ├── src/ : Source files (texinfo).
60 │ ├── core/ : Verilog files for the core.
61 │ ├── include/ : Opcodes and processor configuration.
62 │ ├── musoc/ : SoC implementation.
63 │ ├── ram/ : Internal block RAM for synthesis and simulation.
66 │ ├── inputs/ : Demos written in assembly.
67 │ ├── run/ : Scripts to simulate the project using Icarus Verilog.
68 │ ├── testbench/ : Verilog tests.
71 │ ├── Lib/ : Support libraries.
72 │ └── Toolchain\ : MIPS cross-compile toolchain.
79 Copyright (c) 2014 Angel Terrones (<aterrones@usb.ve>).
81 Release under the [MIT License](MITlicense.md).
83 [1]: http://iverilog.icarus.com