Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ef9a65a
RTL building (questasim) correctly with new RedMulE. Untested!
FrancescoConti Feb 11, 2026
d39423c
Fix RedMulE wrapper by using dummy in/out streams
FrancescoConti Feb 11, 2026
b472964
Fix RedMulE target port signal polarity
FrancescoConti Feb 11, 2026
5401e59
Update RedMulE
FrancescoConti Feb 11, 2026
16f8b59
Fix OBI/HCI converters to HCI v2.1
FrancescoConti Feb 12, 2026
0a44030
Tie r_valid properly in l1_spm
FrancescoConti Feb 12, 2026
2d59516
Filter r_id's in magia_redmule_wrap + use 24x8 config
FrancescoConti Feb 12, 2026
f2c3cff
Integration test ok. Restricting test to single tile in RedMulE job, …
FrancescoConti Feb 19, 2026
02f5241
Update Bender.yml to use released hwpe-ctrl, hci
FrancescoConti Feb 19, 2026
ac1fcc9
Tentatively fix CI issue with XIF (which should be untouched here...
FrancescoConti Feb 20, 2026
f6bd8cd
Tentatively fix another CI issue with mesh-level RedMulE test
FrancescoConti Feb 20, 2026
55797fc
Tentatively fix CI yet another issue with XIF (which should be untouc…
FrancescoConti Feb 20, 2026
9202b1f
Update hw/tile/l1_spm.sv
FrancescoConti Feb 20, 2026
4e6808f
Update Makefile
FrancescoConti Feb 20, 2026
a056856
Update hw/tile/l1_spm.sv
FrancescoConti Feb 20, 2026
7cac996
Update RedMule and its parametrization.
FrancescoConti Feb 23, 2026
800f62b
Update RedMule + disable XIF tests in CI
FrancescoConti Feb 24, 2026
f2a2469
Update RedMule to version with ooo mux in streamer
FrancescoConti Mar 3, 2026
9b135eb
Targeting magia-nonfree tag v0.1 for regression
FrancescoConti Mar 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Bender.local
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
overrides:
fpnew : { git: "https://github.com/pulp-platform/cvfpu.git" , rev: a8e0cba6dd50f357ece73c2c955d96efc3c6c315 }
hci : { git: "https://github.com/pulp-platform/hci.git" , rev: 5a48a854573fca5bbabc1cfd4110fa4530a50ed7 }
cv32e40p : { git: "https://github.com/pulp-platform/cv32e40p.git" , rev: 37a82d337ba60129c333d104c29e816d0698b53b }
cv32e40x : { git: "https://github.com/pulp-platform/cv32e40x.git" , rev: a90101211048ba1a16cedbe4db963ab6e12569d7 }
axi : { git: "https://github.com/pulp-platform/axi.git" , version: 0.39.5 }
Expand Down
9 changes: 6 additions & 3 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ package:
- "Luca Balboni (luca.balboni10@studio.unibo.it)"

dependencies:
redmule : { git: "https://github.com/pulp-platform/redmule.git" , rev: 9a1aa14be0b23f0ade84bab57e7e434397ac9876 } # branch: vi/scale_up
redmule : { git: "https://github.com/pulp-platform/redmule.git" , rev: 1eb90a872e813716c505d4cc9a0fcaf7dd3d131c } # branch: fc/ooo-mux
cv32e40x : { git: "https://github.com/pulp-platform/cv32e40x.git" , rev: a90101211048ba1a16cedbe4db963ab6e12569d7 } # branch: vi/redmule_scaleup
cv32e40p : { git: "https://github.com/pulp-platform/cv32e40p.git" , rev: 37a82d337ba60129c333d104c29e816d0698b53b }
idma : { git: "https://github.com/pulp-platform/iDMA.git" , rev: a6b190c7991331432afa9a2899d032bc1b176830 } # branch: vi/redmule_scaleup
hwpe-stream : { git: "https://github.com/pulp-platform/hwpe-stream.git" , version: 1.6 }
hwpe-ctrl : { git: "https://github.com/pulp-platform/hwpe-ctrl.git" , rev: c35d5b0886ab549fb9144c3c14a4682112330e21 } # branch: yt/reqrsp
hci : { git: "https://github.com/pulp-platform/hci.git" , rev: 5a48a854573fca5bbabc1cfd4110fa4530a50ed7 } # branch: vi/redmule_scaleup
hwpe-ctrl : { git: "https://github.com/pulp-platform/hwpe-ctrl.git" , version: 3.0.0 }
hci : { git: "https://github.com/pulp-platform/hci.git" , version: 2.3.0 }
cluster_icache : { git: "https://github.com/pulp-platform/cluster_icache.git" , rev: 917ecbf908bdaa22c5713bbcff277d142506bb16 } # branch: michaero/astral
fpnew : { git: "https://github.com/pulp-platform/cvfpu.git" , rev: "pulp-v0.1.3" }
fpu_ss : { git: "https://github.com/pulp-platform/fpu_ss.git" , rev: 8e2eff774d9d38a1e17a46bd56a0936dac9522f0 } # branch: vi/bender_manifest
Expand Down Expand Up @@ -83,6 +83,7 @@ sources:
- hw/tile/fractal_sync_xif_inst_decoder.sv
- hw/tile/obi_slave_fsync.sv
- hw/tile/core_data_demux_eu_direct.sv
- hw/tile/magia_redmule_wrap.sv
- hw/tile/magia_tile.sv
# MAGIA DV
- target/sim/src/tile/magia_tile_tb_pkg.sv
Expand Down Expand Up @@ -132,6 +133,7 @@ sources:
- hw/tile/fractal_sync_xif_inst_decoder.sv
- hw/tile/obi_slave_fsync.sv
- hw/tile/core_data_demux_eu_direct.sv
- hw/tile/magia_redmule_wrap.sv
- hw/tile/magia_tile.sv
# MAGIA
- hw/mesh/magia.sv
Expand Down Expand Up @@ -180,6 +182,7 @@ sources:
- hw/tile/fractal_sync_xif_inst_decoder.sv
- hw/tile/obi_slave_fsync.sv
- hw/tile/core_data_demux_eu_direct.sv
- hw/tile/magia_redmule_wrap.sv
- hw/tile/magia_tile.sv
# MAGIA
- hw/mesh/noc/floo_axi_mesh_2x2_noc.sv
Expand Down
13 changes: 6 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ BUILD_DIR ?= sim/work
ifneq (,$(wildcard /etc/iis.version))
QUESTA ?= questa-2025.1
BENDER ?= bender
BASE_PYTHON ?= python
else
QUESTA ?=
BENDER ?= ./bender
BASE_PYTHON ?= python3
endif
BENDER_DIR ?= .
ISA ?= riscv
Expand Down Expand Up @@ -60,7 +62,7 @@ compile_script_synth ?= scripts/synth_compile.tcl
compile_flag ?= -suppress 2583 -suppress 13314 -suppress 3009

questa_compile_flag += -t 1ns -suppress 3009
questa_opt_flag += -suppress 3009 -debugdb +acc=npr
questa_opt_flag += -suppress 3009 -debugdb +acc
questa_opt_fast_flag += -suppress 3009
questa_run_flag += -t 1ns -debugDB -suppress 3009
questa_run_fast_flag += -t 1ns -suppress 3009
Expand Down Expand Up @@ -128,7 +130,7 @@ VSIM_LIBS=work
$(STIM_INSTR) $(STIM_DATA): $(BIN)
objcopy --srec-len 1 --output-target=srec $(BIN) $(BIN).s19 && \
scripts/parse_s19.pl $(BIN).s19 > $(BIN).txt && \
python scripts/s19tomem.py $(BIN).txt $(STIM_INSTR) $(STIM_DATA)
$(BASE_PYTHON) scripts/s19tomem.py $(BIN).txt $(STIM_INSTR) $(STIM_DATA)
cd $(TEST_DIR)/$(test) && \
ln -sfn $(ROOT_DIR)/$(INI_PATH) $(VSIM_INI) && \
ln -sfn $(ROOT_DIR)/$(WORK_PATH) $(VSIM_LIBS)
Expand Down Expand Up @@ -159,9 +161,6 @@ IDMA_ADD_IDS ?= rw_axi_rw_obi
# Parameters used for FlooNoC
FLOONOC_ROOT ?= $(shell $(BENDER) path floo_noc)

# Setup python3 venv and install dependencies
BASE_PYTHON ?= python

.PHONY: python_venv python_deps

python_venv:
Expand Down Expand Up @@ -318,7 +317,7 @@ objdump:
$(OBJDUMP) -d -l -s $(BIN) > $(ODUMP)

itb:
python scripts/objdump2itb.py $(ODUMP) > $(ITB)
$(BASE_PYTHON) scripts/objdump2itb.py $(ODUMP) > $(ITB)

OP ?= gemm
fp_fmt ?= FP16
Expand Down Expand Up @@ -367,7 +366,7 @@ hw-all: hw-clean hw-lib hw-compile hw-opt
# Nonfree components
MAGIA_NONFREE_REMOTE ?= git@iis-git.ee.ethz.ch:pulp-restricted/magia-nonfree
MAGIA_NONFREE_DIR ?= nonfree
MAGIA_NONFREE_COMMIT ?= main
MAGIA_NONFREE_COMMIT ?= v0.1

.PHONY: magia-nonfree-init
MAGIA_NONFREE_DEPS ?= 1
Expand Down
8 changes: 4 additions & 4 deletions hw/tile/converters/hci2obi.sv
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ module hci2obi_rsp #(
assign obi_rsp_o.gnt = hci_rsp_i.gnt;
assign obi_rsp_o.rvalid = hci_rsp_i.r_valid;
assign obi_rsp_o.r.rdata = hci_rsp_i.r_data;
assign obi_rsp_o.r.rid = '0;
assign obi_rsp_o.r.err = 1'b0;
assign obi_rsp_o.r.r_optional.ruser = 'b0;
assign obi_rsp_o.r.rid = hci_rsp_i.r_id;
assign obi_rsp_o.r.err = hci_rsp_i.r_opc;
assign obi_rsp_o.r.r_optional.ruser = '0;
assign obi_rsp_o.r.r_optional.exokay = 1'b0;
assign obi_rsp_o.r.r_optional.rchk = 'b0;
assign obi_rsp_o.r.r_optional.rchk = '0;

endmodule: hci2obi_rsp
23 changes: 13 additions & 10 deletions hw/tile/converters/obi2hci.sv
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,22 @@

module obi2hci_req #(
parameter type obi_req_t = logic,
parameter type hic_req_t = logic
parameter type hci_req_t = logic
)(
input obi_req_t obi_req_i,
output hic_req_t hci_req_o
output hci_req_t hci_req_o
);

assign hci_req_o.req = obi_req_i.req;
assign hci_req_o.add = obi_req_i.a.addr;
assign hci_req_o.wen = ~obi_req_i.a.we;
assign hci_req_o.data = obi_req_i.a.wdata;
assign hci_req_o.be = obi_req_i.a.be;
assign hci_req_o.boffs = '0;
assign hci_req_o.lrdy = 1'b1;
assign hci_req_o.user = '0;
assign hci_req_o.req = obi_req_i.req;
assign hci_req_o.add = obi_req_i.a.addr;
assign hci_req_o.wen = ~obi_req_i.a.we;
assign hci_req_o.data = obi_req_i.a.wdata;
assign hci_req_o.be = obi_req_i.a.be;
assign hci_req_o.user = '0;
assign hci_req_o.id = '0;
assign hci_req_o.ecc = '0;
assign hci_req_o.ereq = '0;
assign hci_req_o.r_ready = 1'b1;
assign hci_req_o.r_eready = '1;

endmodule: obi2hci_req
23 changes: 16 additions & 7 deletions hw/tile/l1_spm.sv
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ module l1_spm #(
parameter int unsigned ID_W = 1, // ID width
parameter SIM_INIT = "ones" // Simulation initialization value
)(
input logic clk_i,
input logic rst_ni,
hci_mem_intf.slave tcdm_slave[N_BANK] // Memory interface
input logic clk_i,
input logic rst_ni,
hci_core_intf.target tcdm_slave[N_BANK] // Memory interface
);

for (genvar i = 0; i < N_BANK; i++) begin: gen_tcdm_bank
Expand All @@ -37,9 +37,12 @@ module l1_spm #(
assign rsp_id_d = tcdm_slave[i].id;
assign tcdm_slave[i].r_id = rsp_id_q;

always_ff @(posedge clk_i, negedge rst_ni) begin: rsp_id_register
if (~rst_ni) rsp_id_q <= '0;
else rsp_id_q <= rsp_id_d;
always_ff @(posedge clk_i or negedge rst_ni)
begin
if (~rst_ni)
rsp_id_q <= '0;
else
rsp_id_q <= rsp_id_d;
end

tc_sram #(
Expand All @@ -64,7 +67,13 @@ module l1_spm #(
.rdata_o ( tcdm_slave[i].r_data )
);

assign tcdm_slave[i].gnt = 1'b1;
assign tcdm_slave[i].gnt = 1'b1;
assign tcdm_slave[i].r_valid = '1;
assign tcdm_slave[i].r_user = '0;
assign tcdm_slave[i].r_opc = 1'b0;
assign tcdm_slave[i].r_ecc = '0;
assign tcdm_slave[i].egnt = '0;
assign tcdm_slave[i].r_evalid = '0;
end

endmodule: l1_spm
Loading