blob: 4b693d0e66eb983867398f0b3ec15c53ae0d33ea [file] [log] [blame]
Greg Chadwick063e5cc2020-04-07 13:13:07 +01001# Copyright lowRISC contributors.
2# Licensed under the Apache License, Version 2.0, see LICENSE for details.
3# SPDX-License-Identifier: Apache-2.0
4
5# Ibex configurations files, holds the parameter sets that are tested under CI.
6# Each configuration must specify the same set of parameters
7
8# Two-stage pipeline without additional branch target ALU and 3 cycle multiplier
9# (4 cycles for mulh), resulting in 2 stall cycles for mul (3 for mulh)
Philipp Wagner4f735bc2020-05-27 10:33:17 +010010small:
Tom Robertsd14b37a2020-04-20 16:51:18 +010011 RV32E : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020012 RV32M : "ibex_pkg::RV32MFast"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -070013 RV32B : "ibex_pkg::RV32BNone"
Pirmin Vogele3814642020-08-27 12:44:23 +020014 RegFile : "ibex_pkg::RegFileFF"
Tom Robertsd14b37a2020-04-20 16:51:18 +010015 BranchTargetALU : 0
16 WritebackStage : 0
Tom Roberts3a5fdd62020-11-05 11:01:08 +000017 ICache : 0
18 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -070019 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020020 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -070021 DbgTriggerEn : 0
22 SecureIbex : 0
Philipp Wagner4f735bc2020-05-27 10:33:17 +010023 PMPEnable : 0
24 PMPGranularity : 0
25 PMPNumRegions : 4
Timothy Chendb965132022-06-16 08:03:02 -070026 MHPMCounterNum : 0
27 MHPMCounterWidth : 40
Tom Roberts8ae623f2021-08-26 17:00:33 +010028
29# Configuration to match that used in the OpenTitan project
30opentitan:
31 RV32E : 0
32 RV32M : "ibex_pkg::RV32MSingleCycle"
Pirmin Vogel69d8d272021-12-17 09:39:48 +010033 RV32B : "ibex_pkg::RV32BOTEarlGrey"
Tom Roberts8ae623f2021-08-26 17:00:33 +010034 RegFile : "ibex_pkg::RegFileFF"
35 BranchTargetALU : 1
36 WritebackStage : 1
37 ICache : 1
38 ICacheECC : 1
Timothy Chendb965132022-06-16 08:03:02 -070039 ICacheScramble : 1
Tom Roberts8ae623f2021-08-26 17:00:33 +010040 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -070041 DbgTriggerEn : 1
42 SecureIbex : 1
Tom Roberts8ae623f2021-08-26 17:00:33 +010043 PMPEnable : 1
44 PMPGranularity : 0
45 PMPNumRegions : 16
Timothy Chendb965132022-06-16 08:03:02 -070046 MHPMCounterNum : 10
47 MHPMCounterWidth : 32
Greg Chadwick063e5cc2020-04-07 13:13:07 +010048
49# ===============================
50# * EXPERIMENTAL CONFIGURATIONS *
51# ===============================
52
53# Three-stage pipeline with additional branch traget ALU and 1 cycle multiplier
54# (2 cycles for mulh) so mul does not stall (mulh stall 1 cycles). This is the
Philipp Wagner59d08722020-06-22 23:01:21 +010055# maximum performance configuration.
56experimental-maxperf:
57 RV32E : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020058 RV32M : "ibex_pkg::RV32MSingleCycle"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -070059 RV32B : "ibex_pkg::RV32BNone"
Pirmin Vogele3814642020-08-27 12:44:23 +020060 RegFile : "ibex_pkg::RegFileFF"
Philipp Wagner59d08722020-06-22 23:01:21 +010061 BranchTargetALU : 1
62 WritebackStage : 1
Tom Roberts3a5fdd62020-11-05 11:01:08 +000063 ICache : 0
64 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -070065 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020066 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -070067 DbgTriggerEn : 0
68 SecureIbex : 0
Philipp Wagner59d08722020-06-22 23:01:21 +010069 PMPEnable : 0
70 PMPGranularity : 0
71 PMPNumRegions : 4
Timothy Chendb965132022-06-16 08:03:02 -070072 MHPMCounterNum : 0
73 MHPMCounterWidth : 40
Philipp Wagner59d08722020-06-22 23:01:21 +010074
75# experimental-maxperf config above plus PMP enabled with 16 regions.
Philipp Wagner4f735bc2020-05-27 10:33:17 +010076experimental-maxperf-pmp:
Tom Robertsd14b37a2020-04-20 16:51:18 +010077 RV32E : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020078 RV32M : "ibex_pkg::RV32MSingleCycle"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -070079 RV32B : "ibex_pkg::RV32BNone"
Pirmin Vogele3814642020-08-27 12:44:23 +020080 RegFile : "ibex_pkg::RegFileFF"
Tom Robertsd14b37a2020-04-20 16:51:18 +010081 BranchTargetALU : 1
82 WritebackStage : 1
Tom Roberts3a5fdd62020-11-05 11:01:08 +000083 ICache : 0
84 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -070085 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020086 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -070087 DbgTriggerEn : 0
88 SecureIbex : 0
Philipp Wagner4f735bc2020-05-27 10:33:17 +010089 PMPEnable : 1
90 PMPGranularity : 0
91 PMPNumRegions : 16
Timothy Chendb965132022-06-16 08:03:02 -070092 MHPMCounterNum : 0
93 MHPMCounterWidth : 40
Greg Chadwick063e5cc2020-04-07 13:13:07 +010094
Michael Schaffner1a1b94d2020-07-13 19:27:25 -070095# experimental-maxperf-pmp config above with balanced bitmanip extension
96experimental-maxperf-pmp-bmbalanced:
Tom Robertsd14b37a2020-04-20 16:51:18 +010097 RV32E : 0
Pirmin Vogele3814642020-08-27 12:44:23 +020098 RV32M : "ibex_pkg::RV32MSingleCycle"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -070099 RV32B : "ibex_pkg::RV32BBalanced"
Pirmin Vogele3814642020-08-27 12:44:23 +0200100 RegFile : "ibex_pkg::RegFileFF"
Tom Robertsd14b37a2020-04-20 16:51:18 +0100101 BranchTargetALU : 1
102 WritebackStage : 1
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000103 ICache : 0
104 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -0700105 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +0200106 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -0700107 DbgTriggerEn : 0
108 SecureIbex : 0
Philipp Wagner4f735bc2020-05-27 10:33:17 +0100109 PMPEnable : 1
110 PMPGranularity : 0
111 PMPNumRegions : 16
Timothy Chendb965132022-06-16 08:03:02 -0700112 MHPMCounterNum : 0
113 MHPMCounterWidth : 40
Michael Schaffner1a1b94d2020-07-13 19:27:25 -0700114
115# experimental-maxperf-pmp config above with full bitmanip extension
116experimental-maxperf-pmp-bmfull:
117 RV32E : 0
Pirmin Vogele3814642020-08-27 12:44:23 +0200118 RV32M : "ibex_pkg::RV32MSingleCycle"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -0700119 RV32B : "ibex_pkg::RV32BFull"
Pirmin Vogele3814642020-08-27 12:44:23 +0200120 RegFile : "ibex_pkg::RegFileFF"
Michael Schaffner1a1b94d2020-07-13 19:27:25 -0700121 BranchTargetALU : 1
122 WritebackStage : 1
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000123 ICache : 0
124 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -0700125 ICacheScramble : 0
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000126 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -0700127 DbgTriggerEn : 0
128 SecureIbex : 0
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000129 PMPEnable : 1
130 PMPGranularity : 0
131 PMPNumRegions : 16
Timothy Chendb965132022-06-16 08:03:02 -0700132 MHPMCounterNum : 0
133 MHPMCounterWidth : 40
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000134
135# experimental-maxperf-pmp-bmfull config above with icache enabled
136experimental-maxperf-pmp-bmfull-icache:
137 RV32E : 0
138 RV32M : "ibex_pkg::RV32MSingleCycle"
139 RV32B : "ibex_pkg::RV32BFull"
140 RegFile : "ibex_pkg::RegFileFF"
141 BranchTargetALU : 1
142 WritebackStage : 1
143 ICache : 1
144 ICacheECC : 1
Timothy Chendb965132022-06-16 08:03:02 -0700145 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +0200146 BranchPredictor : 0
Timothy Chendb965132022-06-16 08:03:02 -0700147 DbgTriggerEn : 0
148 SecureIbex : 0
Michael Schaffner1a1b94d2020-07-13 19:27:25 -0700149 PMPEnable : 1
150 PMPGranularity : 0
151 PMPNumRegions : 16
Timothy Chendb965132022-06-16 08:03:02 -0700152 MHPMCounterNum : 0
153 MHPMCounterWidth : 40
Michael Schaffner1a1b94d2020-07-13 19:27:25 -0700154
Pirmin Vogele3814642020-08-27 12:44:23 +0200155# experimental-maxperf with branch predictor switched on. This exists to allow
156# easy use of Ibex with the branch predictor in particular for CI runs. The
157# branch predictor will be enabled in all the 'maxperf' configs after further
158# development.
159experimental-branch-predictor:
160 RV32E : 0
161 RV32M : "ibex_pkg::RV32MSingleCycle"
162 RV32B : "ibex_pkg::RV32BNone"
163 RegFile : "ibex_pkg::RegFileFF"
164 BranchTargetALU : 1
165 WritebackStage : 1
Tom Roberts3a5fdd62020-11-05 11:01:08 +0000166 ICache : 0
167 ICacheECC : 0
Timothy Chendb965132022-06-16 08:03:02 -0700168 ICacheScramble : 0
Pirmin Vogele3814642020-08-27 12:44:23 +0200169 BranchPredictor : 1
Timothy Chendb965132022-06-16 08:03:02 -0700170 DbgTriggerEn : 0
171 SecureIbex : 0
Pirmin Vogele3814642020-08-27 12:44:23 +0200172 PMPEnable : 0
173 PMPGranularity : 0
174 PMPNumRegions : 4
Timothy Chendb965132022-06-16 08:03:02 -0700175 MHPMCounterNum : 0
176 MHPMCounterWidth : 40
Pirmin Vogele3814642020-08-27 12:44:23 +0200177