Skip to content

Commit abf847f

Browse files
committed
Update lowrisc_ibex to lowRISC/ibex@19592a1f
Update code from upstream repository https://github.com/lowRISC/ibex.git to revision 19592a1fc7ba7e85427906cd4d86b8356b91a45d * [dv] Fix `u_rst_shadow_cnt` behavior in testbench (Pascal Nasahl) * [rtl] Use `LockstepOffset = 1` (Pascal Nasahl) * [rtl] Expose `LockstepOffset` parameter to `ibex_top` (Pascal Nasahl) * [rtl] Move lockstep comparison MuBi comment (Pascal Nasahl) * [rtl] Scramble lint fix (Marno van der Maas) * [config] Compressed extension parameter added (Marno van der Maas) * [doc] Fixup for bullet list (Marno van der Maas) * [doc] Ibex concierge update (Marno van der Maas) Signed-off-by: Pascal Nasahl <[email protected]>
1 parent 3495f85 commit abf847f

File tree

14 files changed

+183
-73
lines changed

14 files changed

+183
-73
lines changed

hw/vendor/lowrisc_ibex.lock.hjson

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
upstream:
1010
{
1111
url: https://github.com/lowRISC/ibex.git
12-
rev: 75ef275cb34b7cae55325a1d64d8672a0cd72269
12+
rev: 19592a1fc7ba7e85427906cd4d86b8356b91a45d
1313
}
1414
}

hw/vendor/lowrisc_ibex/doc/04_developer/concierge.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ Who is Ibex Concierge today?
2424
The concierge duties rotate between several core developers on a weekly basis.
2525
You can find today's concierge on duty in a `public calendar <https://calendar.google.com/calendar/embed?src=lowrisc.org_s0pdodkddnggdp40jusjij27h4%40group.calendar.google.com>`_.
2626

27-
* Greg Chadwick (`@GregAC <https://github.com/gregac>`_)
27+
Besides the concierge on duty you can also contact the following people for urgent matters:
28+
29+
* Marno van der Maas (`@marnovandermaas <https://github.com/marnovandermaas>`_)
2830
* Rupert Swarbrick (`@rswarbrick <https://github.com/rswarbrick>`_)
29-
* Pirmin Vogel (`@vogelpi <https://github.com/vogelpi>`_)
3031

3132
You can be Ibex Concierge, too.
3233
Please talk to any of the current concierges to discuss!

hw/vendor/lowrisc_ibex/dv/riscv_compliance/ibex_riscv_compliance.core

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ parameters:
4141
paramtype: vlogdefine
4242
description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values."
4343

44+
RV32ZC:
45+
datatype: str
46+
default: ibex_pkg::RV32Zca
47+
paramtype: vlogdefine
48+
description: "Compressed instructions parameter enum. See the ibex_pkg::rv32zc_e enum in ibex_pkg.sv for permitted values."
49+
4450
RegFile:
4551
datatype: str
4652
default: ibex_pkg::RegFileFF
@@ -135,6 +141,7 @@ targets:
135141
- RV32E
136142
- RV32M
137143
- RV32B
144+
- RV32ZC
138145
- RegFile
139146
- ICache
140147
- ICacheECC

hw/vendor/lowrisc_ibex/dv/riscv_compliance/rtl/ibex_riscv_compliance.sv

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@ module ibex_riscv_compliance (
2323
parameter bit RV32E = 1'b0;
2424
parameter ibex_pkg::rv32m_e RV32M = ibex_pkg::RV32MFast;
2525
parameter ibex_pkg::rv32b_e RV32B = ibex_pkg::RV32BNone;
26+
parameter ibex_pkg::rv32zc_e RV32ZC = ibex_pkg::RV32Zca;
2627
parameter ibex_pkg::regfile_e RegFile = ibex_pkg::RegFileFF;
2728
parameter bit BranchTargetALU = 1'b0;
2829
parameter bit WritebackStage = 1'b0;
2930
parameter bit ICache = 1'b0;
3031
parameter bit ICacheECC = 1'b0;
3132
parameter bit BranchPredictor = 1'b0;
3233
parameter bit SecureIbex = 1'b0;
34+
parameter int unsigned LockstepOffset = 1;
3335
parameter bit ICacheScramble = 1'b0;
3436
parameter bit DbgTriggerEn = 1'b0;
3537

@@ -146,6 +148,7 @@ module ibex_riscv_compliance (
146148
.RV32E (RV32E ),
147149
.RV32M (RV32M ),
148150
.RV32B (RV32B ),
151+
.RV32ZC (RV32ZC ),
149152
.RegFile (RegFile ),
150153
.BranchTargetALU (BranchTargetALU ),
151154
.WritebackStage (WritebackStage ),
@@ -154,6 +157,7 @@ module ibex_riscv_compliance (
154157
.BranchPredictor (BranchPredictor ),
155158
.DbgTriggerEn (DbgTriggerEn ),
156159
.SecureIbex (SecureIbex ),
160+
.LockstepOffset (LockstepOffset ),
157161
.ICacheScramble (ICacheScramble ),
158162
.DmBaseAddr (32'h00000000 ),
159163
.DmAddrMask (32'h00000003 ),

hw/vendor/lowrisc_ibex/dv/uvm/core_ibex/tb/core_ibex_tb_top.sv

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ module core_ibex_tb_top;
6868
parameter bit ICacheECC = 1'b0;
6969
parameter bit BranchPredictor = 1'b0;
7070
parameter bit SecureIbex = 1'b0;
71+
parameter int unsigned LockstepOffset = 1;
7172
parameter bit ICacheScramble = 1'b0;
7273
parameter bit DbgTriggerEn = 1'b0;
7374
parameter int unsigned DmBaseAddr = 32'h`DM_ADDR;
@@ -107,6 +108,7 @@ module core_ibex_tb_top;
107108
.ICache (ICache ),
108109
.ICacheECC (ICacheECC ),
109110
.SecureIbex (SecureIbex ),
111+
.LockstepOffset (LockstepOffset ),
110112
.ICacheScramble (ICacheScramble ),
111113
.BranchPredictor (BranchPredictor ),
112114
.DbgTriggerEn (DbgTriggerEn ),
@@ -377,9 +379,10 @@ module core_ibex_tb_top;
377379
end
378380

379381
// Manually set unused_assert_connected = 1 to disable the AssertConnected_A assertion for
380-
// prim_count in case lockstep (set by SecureIbex) is enabled. If not disabled, DV fails.
381-
if (SecureIbex) begin : gen_disable_count_check
382-
assign dut.u_ibex_top.gen_lockstep.u_ibex_lockstep.u_rst_shadow_cnt.
382+
// prim_count in case lockstep (set by SecureIbex) is enabled and the lockstep offset is
383+
// larger than 1. If not disabled, DV fails.
384+
if (SecureIbex && LockstepOffset > 1) begin : gen_disable_count_check
385+
assign dut.u_ibex_top.gen_lockstep.u_ibex_lockstep.gen_reset_counter.u_rst_shadow_cnt.
383386
unused_assert_connected = 1;
384387
end
385388

hw/vendor/lowrisc_ibex/dv/verilator/simple_system_cosim/ibex_simple_system_cosim.core

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ parameters:
3535
paramtype: vlogdefine
3636
description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values."
3737

38+
RV32ZC:
39+
datatype: str
40+
default: ibex_pkg::RV32ZcaZcbZcmp
41+
paramtype: vlogdefine
42+
description: "Compressed instructions parameter enum. See the ibex_pkg::rv32zc_e enum in ibex_pkg.sv for permitted values."
43+
3844
RegFile:
3945
datatype: str
4046
default: ibex_pkg::RegFileFF
@@ -133,6 +139,7 @@ targets:
133139
- RV32E
134140
- RV32M
135141
- RV32B
142+
- RV32ZC
136143
- RegFile
137144
- ICache
138145
- ICacheECC

hw/vendor/lowrisc_ibex/ibex_configs.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ small:
2020
RV32E : 0
2121
RV32M : "ibex_pkg::RV32MFast"
2222
RV32B : "ibex_pkg::RV32BNone"
23+
RV32ZC : "ibex_pkg::RV32Zca"
2324
RegFile : "ibex_pkg::RegFileFF"
2425
BranchTargetALU : 0
2526
WritebackStage : 0
@@ -40,6 +41,7 @@ opentitan:
4041
RV32E : 0
4142
RV32M : "ibex_pkg::RV32MSingleCycle"
4243
RV32B : "ibex_pkg::RV32BOTEarlGrey"
44+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
4345
RegFile : "ibex_pkg::RegFileFF"
4446
BranchTargetALU : 1
4547
WritebackStage : 1
@@ -63,6 +65,7 @@ maxperf:
6365
RV32E : 0
6466
RV32M : "ibex_pkg::RV32MSingleCycle"
6567
RV32B : "ibex_pkg::RV32BNone"
68+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
6669
RegFile : "ibex_pkg::RegFileFF"
6770
BranchTargetALU : 1
6871
WritebackStage : 1
@@ -83,6 +86,7 @@ maxperf-pmp-bmbalanced:
8386
RV32E : 0
8487
RV32M : "ibex_pkg::RV32MSingleCycle"
8588
RV32B : "ibex_pkg::RV32BBalanced"
89+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
8690
RegFile : "ibex_pkg::RegFileFF"
8791
BranchTargetALU : 1
8892
WritebackStage : 1
@@ -109,6 +113,7 @@ maxperf-pmp:
109113
RV32E : 0
110114
RV32M : "ibex_pkg::RV32MSingleCycle"
111115
RV32B : "ibex_pkg::RV32BNone"
116+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
112117
RegFile : "ibex_pkg::RegFileFF"
113118
BranchTargetALU : 1
114119
WritebackStage : 1
@@ -130,6 +135,7 @@ maxperf-pmp-bmfull:
130135
RV32E : 0
131136
RV32M : "ibex_pkg::RV32MSingleCycle"
132137
RV32B : "ibex_pkg::RV32BFull"
138+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
133139
RegFile : "ibex_pkg::RegFileFF"
134140
BranchTargetALU : 1
135141
WritebackStage : 1
@@ -150,6 +156,7 @@ maxperf-pmp-bmfull-icache:
150156
RV32E : 0
151157
RV32M : "ibex_pkg::RV32MSingleCycle"
152158
RV32B : "ibex_pkg::RV32BFull"
159+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
153160
RegFile : "ibex_pkg::RegFileFF"
154161
BranchTargetALU : 1
155162
WritebackStage : 1
@@ -177,6 +184,7 @@ experimental-branch-predictor:
177184
RV32E : 0
178185
RV32M : "ibex_pkg::RV32MSingleCycle"
179186
RV32B : "ibex_pkg::RV32BNone"
187+
RV32ZC : "ibex_pkg::RV32ZcaZcbZcmp"
180188
RegFile : "ibex_pkg::RegFileFF"
181189
BranchTargetALU : 1
182190
WritebackStage : 1
@@ -191,4 +199,3 @@ experimental-branch-predictor:
191199
PMPNumRegions : 4
192200
MHPMCounterNum : 0
193201
MHPMCounterWidth : 40
194-

hw/vendor/lowrisc_ibex/ibex_core.core

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ parameters:
7878
paramtype: vlogdefine
7979
description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values."
8080

81+
RV32ZC:
82+
datatype: str
83+
default: ibex_pkg::RV32ZcaZcbZcmp
84+
paramtype: vlogdefine
85+
description: "Compressed instructions parameter enum. See the ibex_pkg::rv32zc_e enum in ibex_pkg.sv for permitted values."
86+
8187
RegFile:
8288
datatype: str
8389
default: ibex_pkg::RegFileFF

hw/vendor/lowrisc_ibex/ibex_top.core

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ filesets:
1818
- lowrisc:prim:ram_1p_scr
1919
- lowrisc:prim:onehot_check
2020
- lowrisc:prim:onehot
21+
- lowrisc:prim:util
2122
files:
2223
- rtl/ibex_register_file_ff.sv # generic FF-based
2324
- rtl/ibex_register_file_fpga.sv # FPGA
@@ -66,6 +67,12 @@ parameters:
6667
paramtype: vlogdefine
6768
description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values."
6869

70+
RV32ZC:
71+
datatype: str
72+
default: ibex_pkg::RV32ZcaZcbZcmp
73+
paramtype: vlogdefine
74+
description: "Compressed instructions parameter enum. See the ibex_pkg::rv32zc_e enum in ibex_pkg.sv for permitted values."
75+
6976
RegFile:
7077
datatype: str
7178
default: ibex_pkg::RegFileFF

hw/vendor/lowrisc_ibex/ibex_top_tracing.core

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ parameters:
4343
paramtype: vlogdefine
4444
description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values."
4545

46+
RV32ZC:
47+
datatype: str
48+
default: ibex_pkg::RV32ZcaZcbZcmp
49+
paramtype: vlogdefine
50+
description: "Compressed instructions parameter enum. See the ibex_pkg::rv32zc_e enum in ibex_pkg.sv for permitted values."
51+
4652
RegFile:
4753
datatype: str
4854
default: ibex_pkg::RegFileFF
@@ -143,6 +149,7 @@ targets:
143149
- RV32E
144150
- RV32M
145151
- RV32B
152+
- RV32ZC
146153
- RegFile
147154
- ICache
148155
- ICacheECC

0 commit comments

Comments
 (0)