1 <h1>YARI -- Yet Another RISC Implementation
</h1>
5 <p>YARI is an high performance softcore RISC implementation, binary
6 compatible with a subset of MIPS R3000.
</p>
8 YARI is still under active development, but the implementation
13 A reference simulator which can check the RTL implementation through
18 A few regression and tests programs
20 An RTL (Verilog) implementation
24 an eight stage pipeline.
26 a
4-way associative instruction cache (default
8 KiB)
28 a
4-way associative write-through data cache (default
16 KiB)
32 all of the integer user-level instructions supported
35 Peripherals (depending on the target)
36 <ul><li>SRAM interface
37 </li><li>Serial in/out
42 Enough support to fully simulate the RTL with Icarus Verilog.
44 Co-simulation against the reference simulator supported
49 Targeted at the Altera Nios Dev Kit (Cyclone ed.), Cycore, and the LPRP, but more in future.
51 Runs at around
50+ MHz (soon
70+ MHz) in a EP1C20.
54 </li><li>A boot loader pre-loaded into the I$ - will load programs over the
57 </li><li>Assorted tools to turn the elf binaries into ROM and RAM images.
63 <h2>GETTING STARTED
</h2>
65 There are a few prerequisites for full YARI enjoyment:
67 <ul><li>For building any test programs: Cross compilation tool much be built
68 (mips-elf-gcc, etc). The script xtools/BUILD is what I used to
70 </li><li>For simulation: Icarus Verilog. Great stuff. Get the most recent
71 version from http://www.icarus.com/eda/verilog
73 For synthesis: currently I've only tested with Quartus
7.2sp1. Get it
74 for free from http://www.altera.com (alas, only works with Windows,
75 whereas everything else here expects Unix, Linux, or MacOSX).
78 With the Icarus Verilog installed you should be able to simply run
83 and see the trace of instructions as the Verilog implementation makes
84 it through a small self-checking regression test.
<p>
86 For more interesting workloads, try
</p>
89 make -C testcases VERB= PROG=buzzard isasim
95 make -C testcases VERB= PROG=fib cosim