mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-23 05:17:12 -04:00
122 lines
4.4 KiB
YAML
122 lines
4.4 KiB
YAML
# 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
|
|
|