| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 0 |
| PMPGranularity : 0 |
| PMPNumRegions : 4 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # Configuration to match that used in the OpenTitan project |
| opentitan: |
| RV32E : 0 |
| RV32M : "ibex_pkg::RV32MSingleCycle" |
| RV32B : "ibex_pkg::RV32BOTEarlGrey" |
| RegFile : "ibex_pkg::RegFileFF" |
| BranchTargetALU : 1 |
| WritebackStage : 1 |
| ICache : 1 |
| ICacheECC : 1 |
| ICacheScramble : 1 |
| BranchPredictor : 0 |
| DbgTriggerEn : 1 |
| SecureIbex : 1 |
| PMPEnable : 1 |
| PMPGranularity : 0 |
| PMPNumRegions : 16 |
| MHPMCounterNum : 10 |
| MHPMCounterWidth : 32 |
| |
| # =============================== |
| # * 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 0 |
| PMPGranularity : 0 |
| PMPNumRegions : 4 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 1 |
| PMPGranularity : 0 |
| PMPNumRegions : 16 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 1 |
| PMPGranularity : 0 |
| PMPNumRegions : 16 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 1 |
| PMPGranularity : 0 |
| PMPNumRegions : 16 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 0 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 1 |
| PMPGranularity : 0 |
| PMPNumRegions : 16 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |
| # 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 |
| ICacheScramble : 0 |
| BranchPredictor : 1 |
| DbgTriggerEn : 0 |
| SecureIbex : 0 |
| PMPEnable : 0 |
| PMPGranularity : 0 |
| PMPNumRegions : 4 |
| MHPMCounterNum : 0 |
| MHPMCounterWidth : 40 |
| |