No description
  • SystemVerilog 87.2%
  • Tcl 11.2%
  • Makefile 1.6%
Find a file
2026-05-19 18:52:29 +02:00
constraints vga output 2026-05-14 00:36:02 +02:00
doc update images 2026-04-24 20:37:19 +02:00
include feature: fdiv 2026-04-20 16:25:13 +02:00
pkg byte/short loads 2026-05-06 16:49:51 +02:00
rtl simplify load/store 2026-05-19 18:52:29 +02:00
tests add minimal tolerance to rounding until rounding mode support 2026-04-25 16:56:00 +02:00
.gitattributes Initial commit 2026-01-13 01:19:38 +01:00
.gitignore refactor directory structure 2026-04-14 22:44:17 +02:00
LICENSE Initial commit 2026-01-13 01:19:38 +01:00
Makefile more float tests 2026-04-25 16:46:46 +02:00
module_template.sv refactor directory structure 2026-04-14 22:44:17 +02:00
ravine_0_1.bit v0.1: RV32I_zicsr_zicntr 2026-04-19 00:42:02 +02:00
ravine_0_1_1.bit added v0.1.1 bitstream 2026-04-19 17:11:21 +02:00
ravine_0_1_2.bit save v0.1.2 bitstream 2026-04-23 17:34:20 +02:00
ravine_0_1_3.bit version 0.1.3 2026-04-24 00:04:55 +02:00
ravine_0_1_4.bit Ravine Version 0.1.5 2026-05-05 12:39:51 +02:00
ravine_0_1_5.bin Ravine Version 0.1.5 2026-05-05 12:39:51 +02:00
ravine_0_1_6.bin added latest bitstream 2026-05-10 14:43:41 +02:00
ravine_0_1_7.bin vga output 2026-05-14 00:36:02 +02:00
README.md update progress in readme 2026-05-07 06:25:00 +02:00

Ravine

RISC-V SIMT Engine

A pipelined multicore SIMT (Single Instruction, Multiple Threads) RISC-V architecture designed for parallel computing without architectural compromises.

Architecture Overview

Ravine implements a pipelined SIMT execution model with independent warp scheduling and implicit reconvergence. From the start, configurability was a focus. The hierarchical modular design theoretically allows scaling up to large core counts and wide SIMD paths. The choice of implementing SIMT with separate parallel hardware threads for each SIMT worker thread instead of RISCV-Vector-Extension vector lanes was made deliberately to reduce necessary vectorization complexity from compilers.

Core Diagram

Key Features

  • No Compromises: RISC-V binary compatible — no necessary custom instructions or modifications.
  • Performance First: Pipelined architecture optimized for high throughput.
  • Parallel Execution: multi-lane SIMT execution pipeline delivering massively parallel instruction processing.
  • Independent Thread Scheduling: Each thread can be scheduled independently from thread group for maximal utilization and flexibility.
  • Implicit Reconvergence: Automatic thread synchronization without explicit reconvergence points, simplifying the programming model.
  • Scalable Design: Target design supports up to 80 cores.
  • ML-Accelerated: A custom RISC-V extension for MX microscaling tiny-float operations is planned.

RISC-V ISA

Ravine implements the RISC-V ISA with multiple standard extensions for floating-point, atomic, and bit manipulation operations.

Base ISA

  • RV32I: 32-bit RISC-V Base Integer Instruction Set

Standard Extensions

Extension Description Status
F Single-precision floating-point
A Atomic instructions
Zfinx Floating-point values in integer registers
Zba Bit manipulation for address generation *
Zbb Basic bit manipulation *
Zicond Conditional operations
Zicntr Performance counters
Zihpm Hardware performance monitoring
Zilsd Load/store pair operations

*: disabled by default

Combined ISA: RV32IZfinx_Zicond_Zicntr

Default System Configuration

  • SIMT Width: 8 lanes per warp
  • Warp Count: 16 warps (thread groups) per core
  • Core Count: 1

Compliance

The current implementation is very much non-compliant. Ravine Version will stay at v0.1.x until full compliance with current RISC-V Instruction Set Manual is achieved. Only then version number will be bumped to v0.2.0.

currently missing features:

  • Unprivileged ISA:
    • floats:
      • float rounding: specified rounding modes are ignored
      • subnormals: subnormal inputs and outputs of computation are flushed to zero.
      • div, sqrt: currently only approximations are implemented. A fully compliant scalar implementation is planned, where the approximate mode can be enabled programmatically.
      • nan, infinity: not fully implemented
      • fcsr: not implemented
    • fence: not implemented
  • Machine-Level ISA:
    • trap handling

Roadmap

Ravine can be simulated with Verilator or synthesized with Yosys and Vivado. Vivado synthesis has successfully been tested on the Arty A7 35T FPGA development board. But beside the features missing for compliance, some other stuff is still planned:

TODO Description
DDR3 RAM connect with dev-board ram
true cache associativity, victim cache, request buffer, etc
scratchpad block-local memory

LLM

No AI/LLM generated code is present in this repository.