Updating the README
[MUSB.git] / README.md
blobbb04bdb39c1ecc00503ec04b082debb96d7b5e6c
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.
10 ## Processor Details
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.
16 -  No MMU.
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.
29 ## Peripherals (SoC)
31 -   GPIO module: 4 x 8-bits module, with edge detection (interrupt).
32 -   UART module: 115200 baud, 8-N-1.
33 -   BRAM internal memory.
34 -   Reset generator.
35 -   Clock manager.
38 ## Getting Started
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.
47 ## Software Details
49 -  Software toolchain based on Mentor Graphics Sourcery CodeBench Lite for MIPS ELF (easy way).
50 -  Demos written in assembly.
52 ## Directory Layout
54 ```
55 MUSB
56 ├── Documentation/
57 │   ├── src/                : Source files (texinfo).
58 │   └── makefile
59 ├── Hardware/
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.
64 │   └── README.md
65 ├── Simulation/
66 │   ├── inputs/             : Demos written in assembly.
67 │   ├── run/                : Scripts to simulate the project using Icarus Verilog.
68 │   ├── testbench/          : Verilog tests.
69 │   └── README.md
70 ├── Software/
71 │   ├── Lib/                : Support libraries.
72 │   └── Toolchain\          : MIPS cross-compile toolchain.
73 ├── MITlicense.md
74 └── README.md
75 ```
77 ## License
79 Copyright (c) 2014 Angel Terrones (<aterrones@usb.ve>).
81 Release under the [MIT License](MITlicense.md).
83 [1]: http://iverilog.icarus.com