Skip to content

YARI is a high performance open source FPGA soft-core RISC implementation, binary compatible with MIPS I. The distribution package includes a complete SoC, simulator, GDB stub, scripts, and various examples.

License

changeyourname/yari

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

              YARI -- Yet Another RISC Implementation

Last update: 2010-09-04

INTRODUCTION

YARI is an high performance soft core RISC implementation, binary
compatible with a subset of MIPS R3000.

This README will be out of date at the time you read this, but the
implementation currently comprises:

- A reference simulator which closely matches the RTL implementation
  (in fact they co-simulate).

- A few regression and tests programs
- An RTL (Verilog) implementation

  Core features:
  + an eight stage pipeline.
  + a 4-way associative write-through instruction cache (default 8 KiB)
  + a 4-way associative write-through data cache (default 16 KiB)
  + a store buffer
  + all of the integer user-level instructions supported

  Peripherals (depending on the target)
  + Async SRAM interface (32-bit and 16-bit)
  + Sync burst SRAM interface (32-bit)
  + Serial in/out
  + 1024x768x8 video interface

  Simulation
  + Enough support to fully simulate the RTL with Icarus Verilog.
  + Co-simulation against the reference simulator supported

  Synthesis
  + Multiple target platforms supported (currently only Altera based)
  + Runs at 80+ MHz.

- A boot loader pre-loaded into the I$ - will load programs over the
  serial port.

- Assorted tools to turn the elf binaries into ROM and RAM images.



GETTING STARTED

There are a few prerequisites for full YARI enjoyment:

- For building any test programs: Cross compilation tool much be built
  (mips-elf-gcc, etc).  The script xtools/BUILD is what I used to
  build them

- For simulation: Icarus Verilog.  Great stuff.  Get the most recent
  version from http://www.icarus.com/eda/verilog

- For synthesis: currently I've only tested with Quartus 7.2sp1, 8.0,
  8.0sp1, and 10.0.  Get it for free from http://www.altera.com.

With the Icarus Verilog installed you should be able to simply run

  make rtlsim

and see the trace of instructions as the Verilog implementation makes
it through a small self-checking regression test.

For more interesting workloads, try

  make -C testcases VERB= PROG=buzzard isasim

or try co-simulation

  make -C testcases VERB= PROG=fib cosim

About

YARI is a high performance open source FPGA soft-core RISC implementation, binary compatible with MIPS I. The distribution package includes a complete SoC, simulator, GDB stub, scripts, and various examples.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 52.4%
  • Java 17.8%
  • C++ 11.6%
  • Makefile 7.4%
  • Roff 2.9%
  • Assembly 2.0%
  • Other 5.9%