Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
7b64060
[SRC] Move the refill xbar into the group level for future scaling.
DiyouS Apr 15, 2026
c61cfbf
[SRC] Move BootROM inside group level for easier scaling.
DiyouS Apr 16, 2026
e6a7663
[Bender] Add FlooNoC as a dependency
DiyouS May 4, 2026
684cd8d
[SRC] Add multi-group support. Cross-group interconnection is WIP.
DiyouS May 4, 2026
04e57ce
[SW][Periph] Change the cache to all-private configuration by default…
DiyouS May 4, 2026
e0c7838
[Bender] Fix a problem with Spatz's path in Bender.lock
DiyouS May 4, 2026
de22ee9
[Runtime] Add missing functions to l1cache functions.
DiyouS May 12, 2026
b3d656f
[SRC][NoC] Add NoC configurations
DiyouS May 14, 2026
61332df
WIP: [SRC] Connect TCDM NoC
DiyouS May 14, 2026
f0f3af4
[MISC] Update wave scripts and bootrom
DiyouS May 14, 2026
af74995
[SRC] Add generated noc package
DiyouS May 14, 2026
e9d3851
[SW] Add print float function
DiyouS May 14, 2026
72df8d5
[Periph] Switch back to fully-shared mode.
DiyouS May 14, 2026
9ffe75f
Code Cleaning.
DiyouS May 14, 2026
c193405
[CFG] Rename configuration
DiyouS May 15, 2026
d748984
[TB][SW] Adjust cache initialization and cache flush flow to avoid da…
DiyouS May 15, 2026
0b7ae6a
[SRC] Clean code.
DiyouS May 15, 2026
e7edb50
[SRC] Clean code.
DiyouS May 15, 2026
a1dd55e
[SW] Fix wrong checks in matmul kernel
DiyouS May 15, 2026
617afa5
[SRC] Reduce offchip AXI ID width.
DiyouS May 19, 2026
658807c
[SRC] Fix a lint issue and add needed cut.
DiyouS May 19, 2026
e3c244e
[SRC] Clean code.
DiyouS May 22, 2026
d663940
[SW] Add bandwidth test.
DiyouS May 22, 2026
beaf3c4
[BootROM] Remove git tracing unnecessary bootrom generated files.
DiyouS May 22, 2026
0782e24
[SRC] Add L2 ICache to the cluster.
DiyouS May 22, 2026
0281808
[CI] Update CI flow.
DiyouS May 22, 2026
5ee3790
[Bender] Update Spatz version.
DiyouS May 26, 2026
f3f4892
[MISC] Update README and fixing some coding style.
DiyouS May 26, 2026
d084c03
[MISC] Update spatz revision and add a test configuration (used to ex…
DiyouS May 26, 2026
c946015
[SRC] Remove a not-yet-merged option for cache controller.
DiyouS May 27, 2026
fc19f10
[SRC] Typo fix.
DiyouS May 27, 2026
730f652
[BUG][SRC] Fix a bug in flushing protection. Add assertion to find il…
DiyouS May 28, 2026
ac62333
[CI] change wget to curl because of CI env change.
DiyouS May 28, 2026
997cb30
[SW] Change cache flushing routine for preventing racing condition an…
DiyouS Jun 1, 2026
073bcf2
[SW][Runtime] Add dram allocation functions in runtime library
DiyouS Jun 1, 2026
c046b94
[Runtime] Change fence implementation and runtime accordingly.
DiyouS Jun 4, 2026
b59ca06
[CFG] Adjust CI configuration to use HBM, and adjust off-chip interco…
DiyouS Jun 4, 2026
529ca4d
[Runtime] Remove unused tests and files.
DiyouS Jun 5, 2026
1be762d
[CFG] Move DRAM type settings into config files, and make refill data…
DiyouS Jun 8, 2026
50d6855
[SW] Remove git tracking on data files, make it generated automatical…
DiyouS Jun 8, 2026
7c843e4
[Makefile] Add missing dependency for data generation.
DiyouS Jun 8, 2026
733686f
[CI] Add needed package.
DiyouS Jun 8, 2026
ee6140e
[Periph] Clean up unused register.
DiyouS Jun 15, 2026
0f01e35
[SW] Remove unused runtime functions
DiyouS Jun 15, 2026
0fe70f2
[Lint] Fix some small linting issues and adjust L2 ICache size.
DiyouS Jun 16, 2026
e6f1a1e
[MISC] Clean up Makefile and change the test size for load-store test.
DiyouS Jun 16, 2026
05e4671
[CFG] Add a 4x4 smaller configuration for faster testing
DiyouS Jun 17, 2026
dc0d74f
[SRC] Major Update: Add L2 Refill NoC.
DiyouS Jun 26, 2026
2f35c7a
[Scripts] Update waveform scripts.
DiyouS Jun 26, 2026
c25b01d
[Makefile] Improve Makefile to separate hw and sw build flow
DiyouS Jun 26, 2026
0e64f68
[SRC] MAJOR UPDATE: WIP: switch to tcdm-based mesh for L2
DiyouS Jul 9, 2026
e41b145
[Util] Update waveform script and bootrom generation script
DiyouS Jul 9, 2026
5e98437
MAJOR UPDATE: Fix performance and functional issues with L2 TCDM NoC
DiyouS Jul 10, 2026
6c4ee4e
[SRC][SW] Clean up code and reduce booting time
DiyouS Jul 14, 2026
785272a
[SRC] Add monitor module for performance analysis.
DiyouS Jul 15, 2026
660063b
[SW] Add more software configuration.
DiyouS Jul 15, 2026
ca5c364
[Dep] Update Spatz and FlooNoC version.
DiyouS Jul 15, 2026
0973ed7
[CFG] Remove 2g configurations since they are no longer working with …
DiyouS Jul 15, 2026
f73ecbf
[Makefile] Fix a legacy depends on 2g configuration
DiyouS Jul 15, 2026
bd4f9d6
[CI] Update CI flow for floogen
DiyouS Jul 15, 2026
3864c9c
[CI] Add DUBUG=0 flag to speed up simulation
DiyouS Jul 15, 2026
a81c063
[SW] Fix some software bugs in loadstore test. Temporarily disable RL…
DiyouS Jul 21, 2026
cf3887d
[Util] Update README.md and add a block diagram.
DiyouS Jul 22, 2026
b446537
[Util] Update License.
DiyouS Jul 22, 2026
55632f8
[SRC][SW] Add the partial barrier support into cluster, and adjust th…
DiyouS Jul 23, 2026
4564168
[SRC][CFG] Rename some configuration and hardware parameters to impro…
DiyouS Jul 27, 2026
68fae0c
[Util] Add NoC visualization tool for performance analysis
DiyouS Jul 27, 2026
2d15016
[Util] Add makefile target to generate data set for vis4mesh
DiyouS Jul 27, 2026
067c15c
[SW] Fix result store buffer issue in gemv kernel.
DiyouS Jul 28, 2026
c38b120
[SRC] Add hardware cuts for peripheral signals for physical design.
DiyouS Jul 24, 2026
2994b2e
[Bug] Fix a bug in L1 NoC that will cause responses always sent in a …
DiyouS Aug 11, 2026
67b28ac
[CI] Add venv in CI to fix the permission issue
DiyouS Aug 11, 2026
203e948
[CI] Upgrade CI python version
DiyouS Aug 11, 2026
7473201
[CI] Add numpy in requirements
DiyouS Aug 11, 2026
2e38d73
[CI] Remove timeout flag in ci yml
DiyouS Aug 11, 2026
5c29a2f
[CI] Remove PATH override in CI yml.
DiyouS Aug 11, 2026
fad5da0
[CI] Further fix on the PATH variable.
DiyouS Aug 11, 2026
6ff2194
[CI][Toolchain] Add the iis-env.sh for envirnment settings and adapt …
DiyouS Aug 11, 2026
ffa35c1
[Util] Update vis4mesh data generation.
DiyouS Aug 11, 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
49 changes: 21 additions & 28 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,34 +1,27 @@
work-dpi/
dw*
site/*
*.ucdb
work/*
# Simulation
transcript
*.ini
*.wlf
*.vstf
wlft*
*nfs*
*.sig
*.dtb
*.dasm
obj_dir/*
/tmp*
*.dasm
build/
trace_*
mems
*log
.bender
.dvt
.settings
*.o
install
.projectBender.lock
Bender.lock
logs
bin
hardware/deps/*
*.tdb
# Toolchain
install
# Vis4Mesh (pinned clone, see util/vis4mesh.version -- not tracked here)
util/vis4mesh
# Utilization logs
util/lint/sg_projects
util/lint/tmp
# Dependency files
.bender
hardware/deps/*
# Bootrom auto-generated files
hardware/bootrom/bootdata.cc
hardware/bootrom/bootdata_bootrom.cc
hardware/bootrom/bootrom.bin
hardware/bootrom/bootrom.dump
hardware/bootrom/bootrom.elf
hardware/bootrom/bootrom.sv
# Configuration auto-generated files
config/cachepool.hjson
*noc_profiling
# CI venv (created by iis-env.sh)
/cachepool
80 changes: 65 additions & 15 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,91 @@ variables:
GIT_SUBMODULE_STRATEGY: none
ROOT_DIR: '$CI_PROJECT_DIR'
APPS: "tests"
PATH: '/home/gitlabci/.cargo/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/condor/bin:/usr/sepp/bin:$CI_PROJECT_DIR/install/verilator/bin:/home/gitlabci/.local/bin'
OBJCACHE: ''
CC: '/usr/pack/gcc-11.2.0-af/linux-x64/bin/gcc'
CXX: '/usr/pack/gcc-11.2.0-af/linux-x64/bin/g++'
CMAKE: 'cmake-3.28.3'
python: 'python3'
python3: 'python3'
# Config to build and test
CI_CONFIG: 'cachepool_fpu_4g'
SW_PREFIX: 'test-cachepool-'

default:
tags: [dolent]
tags: [shared]

stages:
- build
- test

.base:
artifacts:
when: always
expire_in: 1 day

build-vsim:
extends: .base
# ---------------------------------------------------------------------------
# Build stage: compile RTL and software for CI_CONFIG.
# Sources iis-env.sh, which points the toolchain at the prebuilt install dir
# (replaces `make quick-tool`'s symlink) and sets up the venv for code-gen deps;
# test-stage jobs run prebuilt artifacts and don't need either, so iis-env.sh is
# only sourced here.
# ---------------------------------------------------------------------------
build:
stage: build
timeout: 5h
script:
- echo "Using CC=$CC"
- echo "Using CXX=$CXX"
- test -x "$CC"
- test -x "$CXX"
- make quick-tool
- source iis-env.sh
- make init
- make dram-build
- cd util/auto-benchmark
- chmod +x ./run_ci.sh
- ./run_ci.sh
- make clean generate update-floonoc bootrom vsim sw config=$CI_CONFIG DEBUG=0 noc_profiling=0
artifacts:
when: always
expire_in: 2h
paths:
# QuestaSim compiled work library
- sim/work/
# vsim wrapper scripts (exclude sim/bin/logs/ — not needed by test jobs)
- sim/bin/cachepool_cluster.vsim
- sim/bin/cachepool_cluster.vsim.gui
# DPI shared library
- sim/work-dpi/
# Software binaries for all kernels
- software/build/CachePoolTests/
# DRAMSys shared libraries and config files (referenced by vsim at runtime)
- hardware/deps/dram_rtl_sim/dramsys_lib/DRAMSys/build/lib/
- hardware/deps/dram_rtl_sim/dramsys_lib/DRAMSys/configs/

# ---------------------------------------------------------------------------
# Test stage: run each kernel in parallel on a separate runner.
# Each job downloads the build artifacts, runs one simulation, and checks
# the output log for failures.
# ---------------------------------------------------------------------------
test:
stage: test
needs: [build]
parallel:
matrix:
- KERNEL:
- spin-lock
- load-store
- fdotp-32b_M32768
- gemv_M512_N128_K32
- fmatmul-32b_M64_N64_K64
- fft-32b_M1024_N16
- byte-enable
- multi_producer_single_consumer_double_linked_list_M1_N1350_K10
script:
# The vsim script writes a .rtlbinary marker here; monitor logs need the
# core/noc/others subfolders. Build artifacts exclude sim/bin/logs/, so
# these must be recreated in the test job too.
- mkdir -p sim/bin/logs sim/bin/logs/core sim/bin/logs/noc sim/bin/logs/others
- chmod +x sim/bin/cachepool_cluster.vsim
- BIN="${SW_PREFIX}${KERNEL}"
- sim/bin/cachepool_cluster.vsim software/build/CachePoolTests/$BIN 2>&1 | tee test_${KERNEL}.log
- python3 util/auto-benchmark/check-ci.py test_${KERNEL}.log
artifacts:
when: always
expire_in: 1 week
paths:
- util/auto-benchmark/logs
# Full simulation log
- test_*.log
# Performance-monitor trace files written by the simulator
- sim/bin/logs/
69 changes: 61 additions & 8 deletions Bender.lock
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,34 @@ packages:
- common_verification
- tech_cells_generic
axi_riscv_atomics:
revision: 97dcb14ef057cbe5bd70dda2060b5bb9e7e04c6d
version: 0.7.0
revision: 97a1dd2ac643c276880420a0cf8eea697f228aa9
version: 0.8.3
source:
Git: https://github.com/pulp-platform/axi_riscv_atomics.git
dependencies:
- axi
- common_cells
- common_verification
axi_stream:
revision: 54891ff40455ca94a37641b9da4604647878cc07
version: 0.1.1
source:
Git: https://github.com/pulp-platform/axi_stream.git
dependencies:
- common_cells
cluster_icache:
revision: ce0ed94a5b95f5c76b9fa51940303fcce53f56e5
version: null
source:
Git: https://github.com/pulp-platform/cluster_icache.git
dependencies:
- axi
- common_cells
- scm
- tech_cells_generic
common_cells:
revision: 9afda9abb565971649c2aa0985639c096f351171
version: 1.38.0
revision: 9ca8a7655f741e7dd5736669a20a301325194c28
version: 1.39.0
source:
Git: https://github.com/pulp-platform/common_cells.git
dependencies:
Expand All @@ -45,8 +62,27 @@ packages:
Git: https://github.com/pulp-platform/dram_rtl_sim.git
dependencies:
- axi
floo_noc:
revision: 8413d9b044a51f958a7d4ef261e2b01e73db4544
version: null
source:
Git: https://github.com/pulp-platform/FlooNoC.git
dependencies:
- axi
- axi_riscv_atomics
- common_cells
- common_verification
- floo_noc_pd
- fpnew
- idma
floo_noc_pd:
revision: null
version: null
source:
Path: hardware/deps/floo_noc/./pd
dependencies: []
fpnew:
revision: a8e0cba6dd50f357ece73c2c955d96efc3c6c315
revision: e5aa6a01b5bbe1675c3aa8872e1203413ded83d1
version: null
source:
Git: https://github.com/pulp-platform/cvfpu.git
Expand All @@ -61,14 +97,16 @@ packages:
dependencies:
- common_cells
idma:
revision: b31e8f019c657eff4126bc789f0336d403da6766
version: 0.4.2
revision: 28a36e5e07705549e59fc33db96ab681bc1ca88e
version: 0.6.5
source:
Git: https://github.com/pulp-platform/iDMA.git
dependencies:
- axi
- axi_stream
- common_cells
- common_verification
- obi
- register_interface
insitu-cache:
revision: fa761ddebc946f9b46509d84945bf41ee1a9ec49
Expand All @@ -79,6 +117,14 @@ packages:
- axi
- common_cells
- register_interface
obi:
revision: 0155fc34e900c7c884e081c0a1114a247937ff69
version: 0.1.7
source:
Git: https://github.com/pulp-platform/obi.git
dependencies:
- common_cells
- common_verification
register_interface:
revision: 146501d80052b61475cdc333d3aab4cd769fd5dc
version: 0.3.9
Expand All @@ -96,8 +142,15 @@ packages:
dependencies:
- common_cells
- tech_cells_generic
scm:
revision: 1976c7efb4979271eee2abe262fde0f9a20e2557
version: 1.2.1
source:
Git: https://github.com/pulp-platform/scm.git
dependencies:
- tech_cells_generic
spatz:
revision: ed25c78dd72d839db8141287f9516d78ee399b93
revision: 3a6e6bed2a774a449997e426d893d15f84420518
version: null
source:
Git: https://github.com/pulp-platform/spatz.git
Expand Down
19 changes: 14 additions & 5 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ dependencies:
axi_riscv_atomics: { git: "https://github.com/pulp-platform/axi_riscv_atomics.git", version: 0.7.0 }
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.28.0 }
FPnew: { git: "https://github.com/pulp-platform/cvfpu.git", rev: pulp-v0.1.3 }
idma: { git: "https://github.com/pulp-platform/iDMA.git", version: 0.4.2 }
register_interface: { git: "https://github.com/pulp-platform/register_interface.git", version: 0.3.8 }
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git", version: 0.7.0 }
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.2.11 }
Insitu-Cache: { git: "https://github.com/pulp-platform/Insitu-Cache.git", rev: zexin/cachepool_dev }
spatz: { git: "https://github.com/pulp-platform/spatz.git", rev: cachepool-32b }
dram_rtl_sim: { git: "https://github.com/pulp-platform/dram_rtl_sim.git", rev: cachepool }
floo_noc: { git: "https://github.com/pulp-platform/FlooNoC.git", rev: cachepool }
cluster_icache: { git: "https://github.com/pulp-platform/cluster_icache.git", rev: main }
spatz: { git: "https://github.com/pulp-platform/spatz.git", rev: cachepool-32b }

workspace:
checkout_dir: "./hardware/deps"
Expand All @@ -25,6 +26,8 @@ export_include_dirs:

sources:
# Level 0
- hardware/src/reqrsp_to_reg.sv
- hardware/src/reqrsp_w2n_converter.sv
- hardware/src/reqrsp_xbar.sv
- hardware/src/tcdm_cache_interco.sv
- hardware/src/tcdm_id_remapper.sv
Expand All @@ -35,16 +38,20 @@ sources:
- hardware/cachepool_peripheral/cachepool_peripheral.sv
# Bootrom
- hardware/bootrom/bootrom.sv
# Barrier
- hardware/src/cachepool_tile_barrier.sv
- hardware/src/cachepool_cluster_barrier.sv
# Level 1
- hardware/generated/floo_cachepool_noc_pkg.sv
- hardware/src/cachepool_pkg.sv
- hardware/src/cachepool_cc.sv
# Barrier
- hardware/src/cachepool_tile_barrier.sv
- hardware/src/cachepool_cluster_barrier.sv
# ICache
- hardware/src/axi_hier_interco.sv
# Level 2
- hardware/src/cachepool_tile.sv
# Level 3
- hardware/src/cachepool_group.sv
- hardware/src/cachepool_group_noc_wrapper.sv

- hardware/src/cachepool_cluster.sv
# Level 4
Expand All @@ -53,4 +60,6 @@ sources:
- target: cachepool_test
files:
- hardware/tb/axi_uart.sv
- hardware/tb/cachepool_monitor.sv
- hardware/tb/cachepool_noc_profiling.sv
- hardware/tb/tb_cachepool.sv
Loading
Loading