From 46adb3b9746d46a0a5a09a2ec9b8490947ad01a7 Mon Sep 17 00:00:00 2001 From: Samuel Riedel Date: Thu, 15 Aug 2024 16:46:40 +0200 Subject: [PATCH] [hardware] Adapt MemPool to the new icache interface --- Bender.lock | 4 ++-- Bender.yml | 2 +- hardware/scripts/questa/wave_cache.tcl | 4 ++-- hardware/src/mempool_tile.sv | 5 +++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Bender.lock b/Bender.lock index 4a0517aa3..d03aa7ff6 100644 --- a/Bender.lock +++ b/Bender.lock @@ -16,8 +16,8 @@ packages: - common_verification - tech_cells_generic cluster_icache: - revision: 9520b991d78f95c0384d7d9531c5ae01dd791530 - version: null + revision: 0e1fb6751d9684d968ba7fb40836e6118b448ecd + version: 0.1.1 source: Git: https://github.com/pulp-platform/cluster_icache.git dependencies: diff --git a/Bender.yml b/Bender.yml index 0e6e3baa9..a1c57c4b3 100644 --- a/Bender.yml +++ b/Bender.yml @@ -15,7 +15,7 @@ dependencies: snitch: { path: "hardware/deps/snitch" } tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.2.13 } fpnew: { git: "https://github.com/pulp-platform/cvfpu.git", rev: pulp-v0.1.3 } - cluster_icache: { git: "https://github.com/pulp-platform/cluster_icache.git", rev: 9520b991d78f95c0384d7d9531c5ae01dd791530 } + cluster_icache: { git: "https://github.com/pulp-platform/cluster_icache.git", version: 0.1.1 } workspace: checkout_dir: "./hardware/deps" diff --git a/hardware/scripts/questa/wave_cache.tcl b/hardware/scripts/questa/wave_cache.tcl index ecbcd16cc..7333307d9 100644 --- a/hardware/scripts/questa/wave_cache.tcl +++ b/hardware/scripts/questa/wave_cache.tcl @@ -24,7 +24,7 @@ if {$config == {terapool}} { add wave -noupdate -group cache[$1][$2][$3][$4] -group refill[$i] /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/gen_prefetcher[$i]/i_snitch_icache_l0/* } - add wave -noupdate -group cache[$1][$2][$3][$4] -group lookup /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/i_lookup/* + add wave -noupdate -group cache[$1][$2][$3][$4] -group lookup /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/gen_serial_lookup/i_lookup/* add wave -noupdate -group cache[$1][$2][$3][$4] -group handler /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/i_handler/* add wave -noupdate -group cache[$1][$2][$3][$4] -group handler /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/i_handler/pending_q add wave -noupdate -group cache[$1][$2][$3][$4] -group refill /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/gen_rtl_group/i_group/gen_sub_groups[$2]/gen_rtl_sg/i_sub_group/gen_tiles[$3]/i_tile/gen_caches[$4]/i_snitch_icache/i_refill/* @@ -48,7 +48,7 @@ if {$config == {terapool}} { add wave -noupdate -group cache[$1][$2][$3] -group refill[$i] /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/gen_prefetcher[$i]/i_snitch_icache_l0/* } - add wave -noupdate -group cache[$1][$2][$3] -group lookup /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/i_lookup/* + add wave -noupdate -group cache[$1][$2][$3] -group lookup /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/gen_serial_lookup/i_lookup/* add wave -noupdate -group cache[$1][$2][$3] -group handler /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/i_handler/* add wave -noupdate -group cache[$1][$2][$3] -group handler /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/i_handler/pending_q add wave -noupdate -group cache[$1][$2][$3] -group refill /mempool_tb/dut/i_mempool_cluster/gen_groups[$1]/i_group/gen_tiles[$2]/i_tile/gen_caches[$3]/i_snitch_icache/i_refill/* diff --git a/hardware/src/mempool_tile.sv b/hardware/src/mempool_tile.sv index a51c247c6..f1e083548 100644 --- a/hardware/src/mempool_tile.sv +++ b/hardware/src/mempool_tile.sv @@ -298,7 +298,8 @@ module mempool_tile .FETCH_DW (DataWidth ), .FILL_AW (AddrWidth ), .FILL_DW (AxiDataWidth ), - .FETCH_PRIORITY (0 ), + .FETCH_PRIORITY (1 ), + .MERGE_FETCHES (1 ), .SERIAL_LOOKUP (1 ), .L1_TAG_SCM (1 ), .NUM_AXI_OUTSTANDING(8 ), @@ -316,7 +317,7 @@ module mempool_tile .rst_ni (rst_ni ), .enable_prefetching_i (1'b1 ), .icache_events_o (/* Unused */ ), - .flush_valid_i (1'b0 ), + .flush_valid_i ({NumCoresPerCache{1'b0}}), .flush_ready_o (/* Unused */ ), .inst_addr_i (snitch_inst_addr[c] ), .inst_data_o (snitch_inst_data[c] ),