All Projects → trivialmips → Nontrivial Mips

trivialmips / Nontrivial Mips

Licence: other
NonTrivial-MIPS is a synthesizable superscalar MIPS processor with branch prediction and FPU support, and it is capable of booting linux.

Projects that are alternatives of or similar to Nontrivial Mips

TinyMIPS
The Project TinyMIPS is dedicated to enabling undergraduates to build a complete computer system from scratch.
Stars: ✭ 29 (-93.05%)
Mutual labels:  cpu, fpga, mips
Mips Cpu
A MIPS CPU implemented in Verilog
Stars: ✭ 38 (-90.89%)
Mutual labels:  fpga, cpu, mips
COExperiment Repo
支持 45 条 MIPS 指令的单周期处理器 -- 计算机组成原理实验 NUAA Spring 2017
Stars: ✭ 23 (-94.48%)
Mutual labels:  cpu, mips
Awesome-Retro-Docs
A curated collection of technical documentation for Arcades, Handhelds, Consoles, Computers and MCU’s.
Stars: ✭ 128 (-69.3%)
Mutual labels:  fpga, mips
managed ml systems and iot
Managed Machine Learning Systems and Internet of Things Live Lesson
Stars: ✭ 35 (-91.61%)
Mutual labels:  cpu, fpga
Neorv32
A small and customizable full-scale 32-bit RISC-V soft-core CPU and SoC written in platform-independent VHDL.
Stars: ✭ 106 (-74.58%)
Mutual labels:  fpga, cpu
Biriscv
32-bit Superscalar RISC-V CPU
Stars: ✭ 208 (-50.12%)
Mutual labels:  fpga, cpu
F32c
A 32-bit RISC-V / MIPS ISA retargetable CPU core & SoC, 1.63 DMIPS/MHz
Stars: ✭ 338 (-18.94%)
Mutual labels:  fpga, mips
J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (-84.65%)
Mutual labels:  fpga, cpu
BenEaterVHDL
VHDL project to run a simple 8-bit computer very similar to the one built by Ben Eater (see https://eater.net)
Stars: ✭ 30 (-92.81%)
Mutual labels:  cpu, fpga
community
ROS 2 Hardware Acceleration Working Group community governance model & list of projects
Stars: ✭ 34 (-91.85%)
Mutual labels:  cpu, fpga
Riscboy
Portable games console, designed from scratch: CPU, graphics, PCB, and the kitchen sink
Stars: ✭ 103 (-75.3%)
Mutual labels:  fpga, cpu
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (-81.53%)
Mutual labels:  fpga, cpu
Forth Cpu
A Forth CPU and System on a Chip, based on the J1, written in VHDL
Stars: ✭ 244 (-41.49%)
Mutual labels:  fpga, cpu
Cva6
The CORE-V CVA6 is an Application class 6-stage RISC-V CPU capable of booting Linux
Stars: ✭ 1,144 (+174.34%)
Mutual labels:  fpga, cpu
kianRiscV
KianRISC-V! No RISC-V, no fun! RISC-V CPU with strong design rules and unittested! CPU you can trust! kianv rv32im risc-v a hdmi soc with harris computer architecture in verilog: multicycle, singlecycle and 5-stage pipelining Processor. Multicycle Soc with firmware that runs raytracer, mandelbrot, 3d hdmi gfx, dma controller, etc.....
Stars: ✭ 167 (-59.95%)
Mutual labels:  cpu, fpga
QNICE-FPGA
QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
Stars: ✭ 51 (-87.77%)
Mutual labels:  cpu, fpga
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+149.64%)
Mutual labels:  fpga, cpu
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+154.68%)
Mutual labels:  fpga, cpu
FPGACosmacELF
A re-creation of a Cosmac ELF computer, Coded in SpinalHDL
Stars: ✭ 31 (-92.57%)
Mutual labels:  cpu, fpga

NonTrivialMIPS

NonTrivial-MIPS is a synthesizable superscalar MIPS processor with branch prediction and CP1 (FPU), CP2 (AES accelerator) support, and it is capable of booting fully-functional Linux.

Authors

See AUTHORS for information about the authors of this project.

Directory Structure

  • loongson: files from Loongson, some are adapted
    • cpu_gs232: RTL code of GS232 CPU (not included for copyright reason), packaged as Vivado IP
    • soc_axi_func: Vivado project, RTL code and testbench of functional test (using NonTrivialMIPS CPU)
    • soc_axi_perf: Vivado project, RTL code and testbench of performance test (using NonTrivialMIPS CPU)
    • soc_run_os: Vivado project and RTL code of a whole SoC (using GS232 CPU, upgraded to 2018.3)
    • soft: RAM initialization files used by the projects above
  • src: RTL code of NonTrivialMIPS CPU
  • vivado: Vivado project and block design of NSCSCC SoC
  • testbench: Testbenches of NonTrivialMIPS CPU / NSCSCC Soc
  • report: Design reports (LaTeX srouce code and rendered PDF)

Remark: out-of-order branch contains a toy dual-issue out-of-order processor.

Build Project

Update submodules

We use git submodules to manage external code. Run git submodule update --init after cloning this project to ensure everything is up-to-date.

Compiling options

NonTrivialMIPS CPU has some compiling flags that can control the features that will be enabled and parameters (such as cache size and associativity) that will be used. See src/compile_options.svh for details.

Note that inappropriate changes made to these flags may lead to strange or WRONG behaviors of the CPU.

Generate bitstream

You can generate bitstreams that can be programmed to FPGA by following commands:

# for soc project
/path/to/vivado -mode tcl -source scripts/build_soc.tcl vivado/TrivialMIPS.xpr
# for loongson functional test
/path/to/vivado -mode tcl -source scripts/generate_bitstream.tcl loongson/soc_axi_func/run_vivado/mycpu_prj1/mycpu.xpr
# for loongson performance test
/path/to/vivado -mode tcl -source scripts/generate_bitstream.tcl loongson/soc_axi_perf/run_vivado/mycpu_prj1/mycpu.xpr

Vivado 2018.3 is required.

License

All source code under src/ is released under the MIT License with the following exceptions:

Other directories might contain source code or materials that are proprietary or subject to open source licenses and kept in this repository as-is. Should you use these contents, you are aware that you will bear any corresponding legal responsibility or consequences.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].