Ibex RISC-V Core Wrapper Technical Specification

RegressionVersionStagesResults
rv_core_ibex3.0.0D1, V0

This IP has been taped out in Earl Grey 1.0.0. The corresponding documentation and regression results can be found here.

rv_core_ibex is currently under active development as CHERIoT support is added, the bitmanip extension is upgraded to the ratified version, and the Zc* compressed ISA extensions are included. This is indicated by the development stages (see rv_core_ibex.hjson and here). As of this the documentation can slightly differ from the current RTL implementation. The documentation for the rv_core_ibex version with design stage D2S and verification stage V2S (v2.1.0) can be found under the Earl Grey v1.0.0 documentation here.

Overview

This document specifies Ibex CPU core wrapper functionality.

Features

  • Instantiation of a Ibex RV32 CPU Core.
  • TileLink Uncached Light (TL-UL) host interfaces for the instruction and data ports.
  • Simple address translation.
  • NMI support for security alert events for watchdog bark.
  • General error status collection and alert generation.
  • Crash dump collection for software debug.
  • Write-once switch between the ePMP and CHERIoT execution modes.

Description

The Ibex RISC-V Core Wrapper instantiates an Ibex RV32 CPU Core, and wraps its data and instruction memory interfaces to TileLink Uncached Light (TL-UL). All configuration parameters of Ibex are passed through, except for the TRVK ports (signals starting with trvk_), which are not yet exposed. BaseIsa is not exposed: it is fixed to the CHERIoT-capable base ISA, and the wrapper holds the execution mode switch that selects between ePMP and CHERIoT mode at runtime. The pipelining of the bus adapters is configurable.

Compatibility

Ibex is a compliant RV32 RISC-V CPU core, as documented in the Ibex documentation.

The TL-UL bus interfaces exposed by this wrapper block are compliant to the TileLink Uncached Lite Specification version 1.7.1.