preyas3359 / riscy

Superscalar OoO RISCV processor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Riscy Build Status

  • Karan Bavishi
  • Mark Mansi
  • Suhas Pai
  • Preyas Shah

The repo for our CS 752 project! 😃

We are building a superscalar OOO RISCV processor optimized for high performance rather than area or energy. In fact, while we tried to keep the core synthesizeable, we are not really sure if it is due to the lack of hardware structures like CAMs and register files in Chisel.

We made a number of hugely simplifying assumptions in order to finish on time:

  • No virtual memory.
  • No interrupts/traps/etc, though we do maintain mispeculation support, so adding these is no big deal.
  • No memory-mapped I/O (simplifies LSQ).
  • Only implementing the RISCV RV64I instructions, excluding memory fences.

Better documentation can be found in doc/doc.tex. To render: pdflatex doc.tex in doc.

A diagram of the whole pipeline can be found in the doc directory.

Our implementation is entirely contained in the riscy subdirectory of this repository.

To build and run module-level tests:

$ cd riscy
$ make test

To build and run top-level tests/benchmarks with the whole pipeline (this takes a huge amount of memory [more than ~6GB]):

$ cd riscy
$ make check

Note that by "build", we mean generate, compile, and run C++ from the Chisel.

About

Superscalar OoO RISCV processor

License:Other


Languages

Language:Scala 94.9%Language:TeX 1.9%Language:Python 1.2%Language:C++ 1.2%Language:Makefile 0.7%Language:C 0.1%