Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -153,16 +153,16 @@ $(SNRT_BOOTINFO_H): $(SCRIPTS_DIR)/generate_bootdata.py $(HJSON_OUT) $(BOOTROM_D

$(BOOTROM_DIR)/bootrom.elf $(BOOTROM_DIR)/bootrom.dump $(BOOTROM_DIR)/bootrom.bin: \
$(BOOTROM_DIR)/bootrom.S $(BOOTROM_DIR)/bootdata_bootrom.cc $(BOOTROM_DIR)/bootrom.ld $(SNRT_BOOTINFO_H)
riscv -riscv64-gcc-9.5.0 riscv64-unknown-elf-gcc \
$(GCC_INSTALL_DIR)/bin/riscv32-unknown-elf-gcc \
-mabi=ilp32 -march=rv32imaf -static -nostartfiles \
-T$(BOOTROM_DIR)/bootrom.ld \
$(BOOTROM_DIR)/bootrom.S \
$(BOOTROM_DIR)/bootdata_bootrom.cc \
-I$(SPATZ_DIR)/hw/ip/snitch_test/src \
-I$(SOFTWARE_DIR)/snRuntime/include \
-o $(BOOTROM_DIR)/bootrom.elf
riscv -riscv64-gcc-9.5.0 riscv64-unknown-elf-objdump -D $(BOOTROM_DIR)/bootrom.elf > $(BOOTROM_DIR)/bootrom.dump
riscv -riscv64-gcc-9.5.0 riscv64-unknown-elf-objcopy -O binary $(BOOTROM_DIR)/bootrom.elf $(BOOTROM_DIR)/bootrom.bin
$(GCC_INSTALL_DIR)/bin/riscv32-unknown-elf-objdump -D $(BOOTROM_DIR)/bootrom.elf > $(BOOTROM_DIR)/bootrom.dump
$(GCC_INSTALL_DIR)/bin/riscv32-unknown-elf-objcopy -O binary $(BOOTROM_DIR)/bootrom.elf $(BOOTROM_DIR)/bootrom.bin

$(BOOTROM_DIR)/bootrom.sv: $(BOOTROM_DIR)/bootrom.bin $(BOOTROM_DIR)/bootdata.cc
${PYTHON} $(SCRIPTS_DIR)/generate_bootrom.py \
Expand Down
12 changes: 8 additions & 4 deletions hardware/src/cachepool_tile.sv
Original file line number Diff line number Diff line change
Expand Up @@ -1342,8 +1342,14 @@ module cachepool_tile
automatic logic sel_found;
automatic int unsigned sel_part_idx;

bank_req[col][bank_sel] = 1'b0;
bank_we[col][bank_sel] = 1'b0;
// Timing (T1.1): bank_we/bank_req are value-identical to direct OR-reduces
// of the part bits (the arbiter always selects a write-part when any
// write exists, else a read-part), so compute them directly off the
// critical path tail (data-bank we -> meta-write clock-gate) instead
// of riding the priority cascade + 4:1 sel_part_idx mux. addr/wdata/
// be still use the mux. Matches gen_unfolded_data_banks (1303-1304).
bank_we[col][bank_sel] = |part_we[col][bank_sel];
bank_req[col][bank_sel] = (|part_we[col][bank_sel]) | (|part_req[col][bank_sel]);
bank_addr[col][bank_sel] = '0;
bank_wdata[col][bank_sel] = '0;
bank_be[col][bank_sel] = '0;
Expand All @@ -1366,8 +1372,6 @@ module cachepool_tile
end

if (sel_found) begin
bank_req[col][bank_sel] = 1'b1;
bank_we[col][bank_sel] = part_we[col][bank_sel][sel_part_idx];
bank_addr[col][bank_sel] = part_addr[col][bank_sel][sel_part_idx];
bank_wdata[col][bank_sel] = part_wdata[col][bank_sel][sel_part_idx];
bank_be[col][bank_sel] = part_be[col][bank_sel][sel_part_idx];
Expand Down
15 changes: 10 additions & 5 deletions software/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,9 @@ add_library(fmatmul-32b fmatmul-32b/kernel/fmatmul.c)


## RLC
add_library(printf_lock multi_producer_single_consumer_double_linked_list/kernel/printf_lock.c)
add_library(llist multi_producer_single_consumer_double_linked_list/kernel/llist.c)
add_library(mm multi_producer_single_consumer_double_linked_list/kernel/mm.c)
add_library(rlc multi_producer_single_consumer_double_linked_list/kernel/rlc.c)
add_library(data_move_vec multi_producer_single_consumer_double_linked_list/kernel/data_move_vec.c)
# (kernel sources are compiled into the test executable via main.c's textual
# #include, so no per-kernel libraries are needed here; rlc.c requires the
# per-variant DATAHEADER define, which a shared library target cannot get.)

# Tests
enable_testing()
Expand Down Expand Up @@ -107,6 +105,13 @@ add_spatz_test_zeroParam(cache-coverage-min cache-coverage-min/main.c)
add_spatz_test_threeParam(multi_producer_single_consumer_double_linked_list multi_producer_single_consumer_double_linked_list/main.c 1 1350 300)
add_spatz_test_threeParam(multi_producer_single_consumer_double_linked_list multi_producer_single_consumer_double_linked_list/main.c 1 1350 100)
add_spatz_test_threeParam(multi_producer_single_consumer_double_linked_list multi_producer_single_consumer_double_linked_list/main.c 1 1350 10)
# TC2 multi-user peak rate: 48 UEs, 800 B packets (data_48_800_*.h)
add_spatz_test_threeParam(multi_producer_single_consumer_double_linked_list multi_producer_single_consumer_double_linked_list/main.c 48 800 300)
add_spatz_test_threeParam(multi_producer_single_consumer_double_linked_list multi_producer_single_consumer_double_linked_list/main.c 48 800 1000)
# TC2 with the payload self-check enabled (src vs tgt compare after the barrier)
add_snitch_test(multi_producer_single_consumer_double_linked_list_M48_N800_K300_sc multi_producer_single_consumer_double_linked_list/main.c)
target_link_libraries(test-${SNITCH_TEST_PREFIX}multi_producer_single_consumer_double_linked_list_M48_N800_K300_sc benchmark spin_lock mcs_lock ${SNITCH_RUNTIME})
target_compile_definitions(test-${SNITCH_TEST_PREFIX}multi_producer_single_consumer_double_linked_list_M48_N800_K300_sc PUBLIC DATAHEADER="data/data_48_800_300.h" RLC_SELF_CHECK=1)

## Vector
### Floating-Point
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading
Loading