Giter Site home page Giter Site logo

tommythorn / yari Goto Github PK

View Code? Open in Web Editor NEW
43.0 4.0 9.0 31.57 MB

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: GNU General Public License v2.0

Makefile 7.92% Verilog 0.66% C 54.04% HTML 1.96% Shell 1.24% C++ 12.14% Assembly 2.08% Objective-C 0.21% R 0.01% Logos 0.01% Perl 0.16% M 0.01% Vim Script 0.01% XSLT 0.07% TeX 0.85% Java 18.50% Forth 0.10% Awk 0.01% Pascal 0.04% Scilab 0.01%
fpga-soc fpga mips verilog

yari's Introduction

              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

yari's People

Contributors

andrewgmorgan avatar schoeberl avatar tommythorn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.