Skip to content
Merged
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
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
33 changes: 17 additions & 16 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@ variables:
GIT_SUBMODULE_STRATEGY: none
ROOT_DIR: '$CI_PROJECT_DIR'
APPS: "tests"
PATH: '$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/condor/bin:/usr/sepp/bin:$CI_PROJECT_DIR/install/verilator/bin:$HOME/.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_512'
CI_CONFIG: 'cachepool_fpu_4g'
SW_PREFIX: 'test-cachepool-'

default:
Expand All @@ -28,30 +27,31 @@ stages:

# ---------------------------------------------------------------------------
# Build stage: compile RTL and software for CI_CONFIG.
# Parallel jobs within the same pipeline share $HOME, so the toolchain
# installed by make quick-tool is automatically available to all test jobs.
# 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: 4h 30m
script:
- echo "Using CC=$CC"
- echo "Using CXX=$CXX"
- test -x "$CC"
- test -x "$CXX"
- make quick-tool
- python3 -m pip install --quiet dataclasses hjson jsonref jsonschema mako termcolor
- source iis-env.sh
- make init
- make dram-build
- make clean generate vsim config=$CI_CONFIG
- make clean generate update-floonoc bootrom vsim sw config=$CI_CONFIG DEBUG=0 noc_profiling=0
artifacts:
when: always
expire_in: 1 day
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
Expand All @@ -67,29 +67,30 @@ build:
# ---------------------------------------------------------------------------
test:
stage: test
timeout: 1h
needs: [build]
parallel:
matrix:
- KERNEL:
- spin-lock
- load-store_M16
- load-store
- fdotp-32b_M32768
- gemv_M512_N128_K32
- fmatmul-32b_M32_N32_K32
- fmatmul-32b_M64_N64_K64
- fft-32b_M1024_N16
- multi_producer_single_consumer_double_linked_list_M1_N1350_K10
- byte-enable
- multi_producer_single_consumer_double_linked_list_M1_N1350_K10
script:
# The vsim script writes a .rtlbinary marker here; ensure the dir exists.
- mkdir -p sim/bin/logs
# 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 day
expire_in: 1 week
paths:
# Full simulation log
- test_*.log
Expand Down
71 changes: 62 additions & 9 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,24 +97,34 @@ 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: fbabd6a06fd801c960078517ad47f7994130b944
revision: f1cbe54dca0989f025b0450e85c42faf2bf5cbf1
version: null
source:
Git: https://github.com/pulp-platform/Insitu-Cache.git
dependencies:
- 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: f6ea19fb26c8bf992ae51a3e4acd3f2a36c6659f
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/sync-flush-fixes }
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 @@ -57,4 +64,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