Add a dependency
[yari.git] / README
blobcef359138984a869e038e39ad7ee43a0641f6160
1               YARI -- Yet Another RISC Implementation
3 Last update: 2010-09-04
5 INTRODUCTION
7 YARI is an high performance soft core RISC implementation, binary
8 compatible with a subset of MIPS R3000.
10 This README will be out of date at the time you read this, but the
11 implementation currently comprises:
13 - A reference simulator which closely matches the RTL implementation
14   (in fact they co-simulate).
16 - A few regression and tests programs
17 - An RTL (Verilog) implementation
19   Core features:
20   + an eight stage pipeline.
21   + a 4-way associative write-through instruction cache (default 8 KiB)
22   + a 4-way associative write-through data cache (default 16 KiB)
23   + a store buffer
24   + all of the integer user-level instructions supported
26   Peripherals (depending on the target)
27   + Async SRAM interface (32-bit and 16-bit)
28   + Sync burst SRAM interface (32-bit)
29   + Serial in/out
30   + 1024x768x8 video interface
32   Simulation
33   + Enough support to fully simulate the RTL with Icarus Verilog.
34   + Co-simulation against the reference simulator supported
36   Synthesis
37   + Multiple target platforms supported (currently only Altera based)
38   + Runs at 80+ MHz.
40 - A boot loader pre-loaded into the I$ - will load programs over the
41   serial port.
43 - Assorted tools to turn the elf binaries into ROM and RAM images.
47 GETTING STARTED
49 There are a few prerequisites for full YARI enjoyment:
51 - For building any test programs: Cross compilation tool much be built
52   (mips-elf-gcc, etc).  The script xtools/BUILD is what I used to
53   build them
55 - For simulation: Icarus Verilog.  Great stuff.  Get the most recent
56   version from http://www.icarus.com/eda/verilog
58 - For synthesis: currently I've only tested with Quartus 7.2sp1, 8.0,
59   8.0sp1, and 10.0.  Get it for free from http://www.altera.com.
61 With the Icarus Verilog installed you should be able to simply run
63   make rtlsim
65 and see the trace of instructions as the Verilog implementation makes
66 it through a small self-checking regression test.
68 For more interesting workloads, try
70   make -C testcases VERB= PROG=buzzard isasim
72 or try co-simulation
74   make -C testcases VERB= PROG=fib cosim