Home

Awesome

Product Brief

The RV12 is a highly configurable single-issue, single-core RV32I, RV64I compliant RISC CPU intended for the embedded market. The RV12 is a member of the Roa Logic’s 32/64bit CPU family based on the industry standard RISC-V instruction set

The RV12 implements a Harvard architecture for simultaneous instruction and data memory accesses. It features an optimizing 6-stage pipeline, which optimizes overlaps between the execution and memory accesses, thereby reducing stalls and improving efficiency.

Optional features include Branch Prediction, Instruction Cache, Data Cache, and Debug Unit. Parameterised and configurable features include the instruction and data interfaces, the branch-prediction-unit configuration, and the cache size, associativity, and replacement algorithms. Providing the user with trade offs between performance, power, and area to optimize the core for the application

RV12 RISC-V Architecture

Documentation

Features

Compatibility

The RV12 is compatible with the following RISC-V Foundation specifications:

Interfaces

Parameters

The following parameters control the feature set of a specific implementation of the RV12:

ParameterTypeDefaultDescription
JEDEC_BANKInteger0x0AJEDEC Bank
JEDEC_MANUFACTURER_IDInteger0x6EJEDEC Manufacturer ID
XLENInteger32Datapath width
PLENIntegerXLENPhysical Memory Address Size
PMP_CNTInteger16Number of Physical Memory Protection Entries
PMA_CNTInteger16Number of Physical Menory Attribute Entries
HAS_USERInteger0User Mode Enable
HAS_SUPERInteger0Supervisor Mode Enable
HAS_HYPERInteger0Hypervisor Mode Enable
HAS_RVMInteger0“M” Extension Enable
HAS_RVAInteger0“A” Extension Enable
HAS_RVCInteger0“C” Extension Enable
HAS_BPUInteger1Branch Prediction Unit Control Enable
IS_RV32EInteger0RV32E Base Integer Instruction Set Enable
MULT_LATENCYInteger0Hardware Multiplier Latency (if “M” Extension enabled)
ICACHE_SIZEInteger16Instruction Cache size in Kbytes
ICACHE_BLOCK_SIZEInteger32Instruction Cache block length in bytes
ICACHE_WAYSInteger2Instruction Cache associativity
ICACHE_REPLACE_ALGInteger0Instruction Cache replacement algorithm 0: Random 1: FIFO 2: LRU
DCACHE_SIZEInteger16Data Cache size in Kbytes
DCACHE_BLOCK_SIZEInteger32Data Cache block length in bytes
DCACHE_WAYSInteger2Data Cache associativity
DCACHE_REPLACE_ALGInteger0Data Cache replacement algorithm 0: Random 1: FIFO 2: LRU
HARTIDInteger0Hart Identifier
PC_INITAddressh200Program Counter Initialisation Vector
MNMIVEC_DEFAULTAddressPC_INIT-‘h004Machine Mode Non-Maskable Interrupt vector address
MTVEC_DEFAULTAddressPC_INIT-‘h040Machine Mode Interrupt vector address
HTVEC_DEFAULTAddressPC_INIT-‘h080Hypervisor Mode Interrupt vector address
STVEC_DEFAULTAddressPC_INIT-‘h0C0Supervisor Mode Interrupt vector address
UTVEC_DEFAULTAddressPC_INIT-‘h100User Mode Interrupt vector address
BP_LOCAL_BITSInteger10Number of local predictor bits
BP_GLOBAL_BITSInteger2Number of global predictor bits
BREAKPOINTSInteger3Number of hardware breakpoints
TECHNOLOGYStringGENERICTarget Silicon Technology

License

Released under the RoaLogic Non-Commercial License

Dependencies

Requires the Roa Logic Memories IPs and AHB3Lite Package. These are included as submodules.

After cloning the RV12 git repository, perform a git submodule init to download the submodules.