# Copyright lowRISC contributors. # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 # Ibex configurations files, holds the parameter sets that are tested under CI. # Each configuration must specify the same set of parameters # Two-stage pipeline without additional branch target ALU and 3 cycle multiplier # (4 cycles for mulh), resulting in 2 stall cycles for mul (3 for mulh) small: RV32E : 0 RV32M : "ibex_pkg::RV32MFast" RV32B : "ibex_pkg::RV32BNone" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 0 WritebackStage : 0 ICache : 0 ICacheECC : 0 BranchPredictor : 0 PMPEnable : 0 PMPGranularity : 0 PMPNumRegions : 4 # =============================== # * EXPERIMENTAL CONFIGURATIONS * # =============================== # Three-stage pipeline with additional branch traget ALU and 1 cycle multiplier # (2 cycles for mulh) so mul does not stall (mulh stall 1 cycles). This is the # maximum performance configuration. experimental-maxperf: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BNone" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 0 ICacheECC : 0 BranchPredictor : 0 PMPEnable : 0 PMPGranularity : 0 PMPNumRegions : 4 # experimental-maxperf config above plus PMP enabled with 16 regions. experimental-maxperf-pmp: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BNone" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 0 ICacheECC : 0 BranchPredictor : 0 PMPEnable : 1 PMPGranularity : 0 PMPNumRegions : 16 # experimental-maxperf-pmp config above with balanced bitmanip extension experimental-maxperf-pmp-bmbalanced: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BBalanced" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 0 ICacheECC : 0 BranchPredictor : 0 PMPEnable : 1 PMPGranularity : 0 PMPNumRegions : 16 # experimental-maxperf-pmp config above with full bitmanip extension experimental-maxperf-pmp-bmfull: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BFull" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 0 ICacheECC : 0 BranchPredictor : 0 PMPEnable : 1 PMPGranularity : 0 PMPNumRegions : 16 # experimental-maxperf-pmp-bmfull config above with icache enabled experimental-maxperf-pmp-bmfull-icache: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BFull" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 1 ICacheECC : 1 BranchPredictor : 0 PMPEnable : 1 PMPGranularity : 0 PMPNumRegions : 16 # experimental-maxperf with branch predictor switched on. This exists to allow # easy use of Ibex with the branch predictor in particular for CI runs. The # branch predictor will be enabled in all the 'maxperf' configs after further # development. experimental-branch-predictor: RV32E : 0 RV32M : "ibex_pkg::RV32MSingleCycle" RV32B : "ibex_pkg::RV32BNone" RegFile : "ibex_pkg::RegFileFF" BranchTargetALU : 1 WritebackStage : 1 ICache : 0 ICacheECC : 0 BranchPredictor : 1 PMPEnable : 0 PMPGranularity : 0 PMPNumRegions : 4