The Inextensible RISC-V Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
John Zacarias Jekel c0c98fab8c Major milestone: Bump IRVE Version to 1.0.0! 2 months ago
.github/workflows Fix rvsw issues and drop MSVC support 4 months ago
include 16 Naming cleanup 3 months ago
lib Fix IRVE Linux support in debug mode 2 months ago
rvsw Migrate much of the readme to the wiki, and add screenshots! 2 months ago
screenshots Migrate much of the readme to the wiki, and add screenshots! 2 months ago
scripts FINALLY GET THE S-MODE KERNEL WORKING 3 months ago
src Merge branch 'staging' into personal/seb/primary 3 months ago
templates 16 Code cleanup in IRVE (#47) 3 months ago
tests Bring in more tests to test the UART with! 3 months ago
.gitignore More work on riscvof 10 months ago
.gitmodules Update broken AGI links 4 months ago
CMakeLists.txt Major milestone: Bump IRVE Version to 1.0.0! 2 months ago
Doxyfile More documentation 11 months ago
LICENSE Merge branch 'staging' into personal/seb/primary 3 months ago
README.md Migrate much of the readme to the wiki, and add screenshots! 2 months ago
irve More main.cpp vs lib seperation 1 year ago
irvegdb Make progress with the GDB server 11 months ago
logo.jpg Add a fancy logo :) 11 months ago

README.md

irve

IRVE Smoke Tests IRVE Unit Tests IRVE Integration Tests IRVE RVSW Tests

The Inextensible RISC-V Emulator

IRVE was intended as a "quick and dirty" emulator capable of running the Linux kernel. Since then it has become much more!

Here's a YouTube video of Linux running on the emulator. Yes, IRVE can in fact emulate itself!

Lore

IRVE is the first step on our journey within an overarching project called AGI, the Angry Goose Initiative.

The plan is to use it to better understand the RISC-V architecture (with a focus on Volume 2 in particular). Once we do, we can move on to a hardware implementation in SystemVerilog called LETC!

At some point also we split IRVE test code off into a hardware-independent repo called RVSW.

Keep in mind that IRVE is slow, managing only about 50MHz on a modern Ryzen system even in release mode. The purpose of this was to learn the architecture, not knock the socks off of QEMU or anything :)

Okay enough backstory, I want to try this out!

Awesome!

We recommend starting out with running a "hello world" program. Check out this wiki page to get started!

Want to run Linux on the thing? Check this out.

Information about the IRVE RISC-V environment and its capabilities can be found here.

Screenshots

Booting Linux!

"Have you seen the movie Inception before?"

Licensing

IRVE code

See the LICENSE file for more info

rv32esim

Based in part on JZJ's old rv32esim

I (John Jekel) freely release that old code under the MIT License too!

Anything else

Any other bits of code from other places that didn't make it here will recieve attribution alongside where they're used! :)

IRVE - "Working our way up to stuff!"