Introduction
Overview
Welcome to the ApogeoRV Documentation! Whether you are a hardware engineer, software developer, or a newcomer to microprocessor design, this documentation will provide you with valuable insights on how this core works in detail: you will learn the microarchitectural and architectural details, the design choices and the tradeoffs done during design phase.
Important
This is an academic project, it doesn’t aim to replace any of the already existing CPUs, however it can be perfectly used in any open source project as a main scalar core.
ApogeoRV is a synthesizable RISC-V core. It aim to offer high performance with low power, low footprint and high flexibility thanks to the various synthesis configuration parameters.
Features
The main features of ApogeoRV are:
Supports the full base RV32 ISA.
Supports the RISCV extensions M, C, Zicsr, Zba, Zbs, Zfinx.
Supports a subset of Zbb extension.
Disable execution units (MUL, DIV, FPU, BMU) during program execution to reduce power consumption.
9 Pipeline Stages: To reach maximum frequency.
Instruction Prefetch: Benefit from an instruction buffer for enhanced performance.
Branch predictor: A robust branch predictor (GSHARE + BTB) minimizes the impact of conditional and unconditional branches.
Out Of Order Execution: To cover the long latency of complex operations and memory accesses.
Store Buffer: Efficiently handle memory operations by not having to access the memory directly thus avoiding to stall the CPU.
Target Application
ApogeoRV is a versatile RISC-V processor mainly designed to be implemented mainly on low-end / mid-end embedded systems or SoC that needs an efficient CPU core. However because of it’s configurability it’s suitable for a wide range of target applications that needs a fairly amount of performance.
Warning
ApogeoRV has been tested and implemented only in FPGA. With the some source code modifications it will be possible to target ASIC synthesis, however this is not a goal in the short future.
The RISC-V M, Zba, Zbb, Zbs and Zfinx extensions are implemented to handle more complex task with less latency and energy consumption other than lowering the memory usage due to instruction count. With these capabilities, ApogeoRV is well-suited for the following target application systems:
System On Chips
Microcontrollers
IoT Devices
Digital Signal Processing
By accommodating a broad spectrum of applications and offering exceptional configurability, ApogeoRV stands as a versatile solution in the world of RISC-V processors.
Parameters
To meet the system designers demand, ApogeoRV comes with a moltitude of parameters. These parameters play a central role in defining the capabilities and performance of the CPU. Whether you are designing an high-performance SoC or an energy-efficient embedded device, understanding these parameters is essential to ensure that the resulting metrics aligns with your specific requirements. Every parameter is found inside the apogeo_configuration.svh file.
Asyncronous or Syncronous Reset
Instruction Buffer Size
Branch Predictor Table Size
Branch Target Buffer Size
Store Buffer Size
Enable B Extension
Enable Zfinx Extension
Enable Branch Prediction
Multiplier Latency
Warning
Until now, only the base configuration has been tested. In the future all the possible configuration combinations will be validated.