Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
1cb384d
ci: Bump pulp-platform/pulp-actions from v2 to v2.5.0
DanielKellerM May 18, 2026
fedb3be
ci: Install Python deps via per-job venv in init stage
DanielKellerM May 20, 2026
690adef
backend: Fix error handler valid/ready protocol violations
DanielKellerM Feb 23, 2026
f315ae8
ci: Add branch policy enforcement and PR template
DanielKellerM Jun 10, 2026
84671b0
midend: Sync rt_midend choice FIFO and add mixed-traffic testbench (#…
DanielKellerM Jun 10, 2026
4f92f5e
build: Replace morty with the bender slang pickle (#110)
DanielKellerM Jun 11, 2026
482c0d6
ci: Install Python requirements with uv instead of pip (#111)
DanielKellerM Jun 11, 2026
f2fe499
docs: Add Starlight documentation site with architecture diagrams (#103)
DanielKellerM Jun 11, 2026
6e1aaa0
build: Add per-top trimmed vsim compile scripts (#116)
DanielKellerM Jun 11, 2026
b282f66
ci: Make mirror pipeline jobs interruptible for auto-cancel (#118)
DanielKellerM Jun 11, 2026
acc384d
build: Rename the pickle output directory to target/pickle (#114)
DanielKellerM Jun 11, 2026
c747f10
doc: Regenerate hierarchy graphs from the pickle syntax tree (#117)
DanielKellerM Jun 11, 2026
2557a7d
ci: Manage Python dependencies with pyproject.toml and uv (#121)
DanielKellerM Jun 11, 2026
9219420
frontend: Convert generated register blocks to SystemRDL (PeakRDL) (#73)
micprog Jun 11, 2026
3f063f7
build: Drop setuptools pin and dead regtool make vars (#122)
DanielKellerM Jun 12, 2026
2ab0d4d
ci: Cache the bender git database keyed on the lockfile (#120)
DanielKellerM Jun 12, 2026
27840e9
treewide: Add multi-head capabilities (#85)
thommythomaso Jun 12, 2026
54d8e3a
ci: Clear stale runner locks before checkout in the init pipeline (#124)
DanielKellerM Jun 12, 2026
bee6ed6
ci: Run push CI on mainlines only to stop double-triggering PRs (#125)
DanielKellerM Jun 15, 2026
722f459
backend: Fix multi-head datapath bugs and add verification testbenche…
DanielKellerM Jun 15, 2026
c1bf756
test: Add default arm to writes_in_flight case as defensive guard (#107)
DanielKellerM Jun 15, 2026
48b3fdb
inst64: Update front-end to support streamlined iDMA integration in S…
thommythomaso Jun 15, 2026
f5a8ddb
fix: Break combinational loop in desc64 speculation FIFO (#91)
DanielKellerM Jun 15, 2026
44a3320
backend: Add a BurstLen parameter to the legalizer page splitter (#109)
RiccardoGandolfi Jun 16, 2026
6f8130a
frontend: Drop the duplicate reg tie-off and dead hjson template
DanielKellerM Jun 16, 2026
05d088f
frontend: Remove the duplicate reg tie-off generate block
DanielKellerM Jun 16, 2026
9c7d57c
frontend: Match the reg-block APB address width in the wrapper
DanielKellerM Jun 16, 2026
1d8a3c9
build: Self-bootstrap the uv environment for make idma_hw_all (#128)
DanielKellerM Jun 16, 2026
5808a55
deps: Bump all bender dependencies to latest (#130)
DanielKellerM Jun 16, 2026
2435af6
Add on-the-fly compute support with a transpose engine at the write s…
DanielKellerM Jun 17, 2026
77b6a47
test: Harden transpose testbenches (fatal-on-fail + midend coverage) …
DanielKellerM Jun 18, 2026
6be43a7
frontend: Gate external register read-ack (#134)
DanielKellerM Jun 18, 2026
210982a
frontend: Emit synth-wrapper head ports only for multi-head backends …
DanielKellerM Jun 18, 2026
8d8c9b0
build: Route all RTL generation through uv (single locked env)
DanielKellerM Jun 19, 2026
bf8a7ba
test: Zero the compute option in desc64 golden stimulus
DanielKellerM Jun 19, 2026
a88d675
backend: Fix compute and multi-head transport-layer generation
DanielKellerM Jun 19, 2026
e521aed
backend: Make the transpose engine async reset synthesizable
DanielKellerM Jun 19, 2026
9ddc2d2
hw: Prioritize obi write transactions in idma frontend (#138)
gbellocchi Jun 22, 2026
80989d9
frontend: Widen inst64 strides_t to addr_t for the nd_midend stride a…
DanielKellerM Jun 30, 2026
f5b4c33
hw: Add support for obi events (#145)
gbellocchi Jun 30, 2026
7d34e1d
test: Drop internal codename from multihead TB comments
DanielKellerM Jun 23, 2026
de7e495
test: Drive OBI backend ports with native obi_sim_mem
DanielKellerM Jun 22, 2026
14b8756
hw: Assign obi rsp in all control paths
gbellocchi Jul 3, 2026
1070970
hw: Extend idma busy condition with axi write completion
gbellocchi Jul 3, 2026
d1737bb
frontend: Make the reg-frontend config-bus CPUIF selectable
DanielKellerM Jul 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
20 changes: 20 additions & 0 deletions .github/actions/bender-db-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2026 ETH Zurich and University of Bologna.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Authors:
# - Daniel Keller <dankeller@iis.ee.ethz.ch>

name: Cache Bender database
description: Relocate bender's bare-repo git database to a cached path
runs:
using: composite
steps:
- shell: bash
run: echo "BENDER_DB_DIR=$HOME/.cache/bender-db" >> "$GITHUB_ENV"
- uses: actions/cache@v4
with:
path: ~/.cache/bender-db
key: bender-db-${{ runner.os }}-${{ hashFiles('Bender.lock') }}
restore-keys: |
bender-db-${{ runner.os }}-
3 changes: 3 additions & 0 deletions .github/authors-cfg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ exclude-ext:
- svg
- txt
- json
- toml
- md
- lock
- local
Expand All @@ -38,9 +39,11 @@ allowed-years:
- 2023
- 2024
- 2025
- 2026

allowed-authors:
Axel Vanoni: axvanoni@ethz.ch
Daniel Keller: dankeller@iis.ee.ethz.ch
Michael Rogenmoser: michaero@iis.ee.ethz.ch
Samuel Riedel: sriedel@iis.ee.ethz.ch
Thomas Benz: tbenz@iis.ee.ethz.ch
Expand Down
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!--
Thanks for contributing to iDMA. Please target this PR at `devel`, not
`master`. External PRs against `master` are auto-retargeted to `devel`.
See CONTRIBUTING.md for the branch policy.
-->

## Description

<!-- What does this PR change and why? Link related issues. -->

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Refactor / cleanup
- [ ] Documentation
- [ ] Build / CI

## Checklist

- [ ] This PR targets `devel` (not `master`).
- [ ] Commits follow [Chris Beams style](https://chris.beams.io/posts/git-commit/) (≤100-char imperative subject, optional `area:` prefix).
- [ ] `make idma_hw_all` and the relevant lints pass locally.
- [ ] No AI-attribution lines on commits (e.g. `Co-authored-by:` for AI tools).
- [ ] Related issues are referenced.

## Notes for reviewers

<!-- Anything to call out: tricky areas, follow-ups, dependencies on other PRs. -->
24 changes: 8 additions & 16 deletions .github/workflows/analyze.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,13 @@ jobs:
name: Checkout
uses: actions/checkout@v4
-
name: Install Python
uses: actions/setup-python@v5
name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: '3.9'
cache: 'pip'
-
name: Python Requirements
run: pip install -r requirements.txt
enable-cache: true
-
name: List contributors
run: scripts/list-contributors | tee contributions.txt
run: uv run --locked scripts/list-contributors | tee contributions.txt
-
name: Upload contributions.txt
uses: actions/upload-artifact@v4
Expand All @@ -48,17 +44,13 @@ jobs:
name: Checkout
uses: actions/checkout@v4
-
name: Install Python
uses: actions/setup-python@v5
name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: '3.9'
cache: 'pip'
-
name: Python Requirements
run: pip install -r requirements.txt
enable-cache: true
-
name: List todos
run: scripts/list-todos | tee open_todos.txt
run: uv run --locked scripts/list-todos | tee open_todos.txt
-
name: Upload todos.txt
uses: actions/upload-artifact@v4
Expand Down
37 changes: 14 additions & 23 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,46 +25,37 @@ jobs:
name: Checkout
uses: actions/checkout@v4
-
name: Install Python
uses: actions/setup-python@v5
with:
python-version: 3.9
cache: pip
-
name: Install Python requirements
run: pip install -r requirements.txt
name: Cache Bender database
uses: ./.github/actions/bender-db-cache
-
name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
-
name: Install RISC-V GCC toolchain
uses: pulp-platform/pulp-actions/riscv-gcc-install@v2
uses: pulp-platform/pulp-actions/riscv-gcc-install@v2.5.0
with:
distro: ubuntu-22.04
nightly-date: '2023.03.14'
target: riscv64-elf
-
name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
-
name: Install Bender
uses: pulp-platform/pulp-actions/bender-install@v2
uses: pulp-platform/pulp-actions/bender-install@v2.5.0
with:
version: 0.27.3
-
name: Install Morty
run: |
curl --proto '=https' --tlsv1.2 -sLO https://github.com/pulp-platform/morty/releases/download/v0.9.0/morty-ubuntu.22.04-x86_64.tar.gz
tar -xvf morty-ubuntu.22.04-x86_64.tar.gz morty
rm -f morty-ubuntu.22.04-x86_64.tar.gz
chmod 777 morty
echo "PATH=.:$PATH" >> ${GITHUB_ENV}
version: 0.32.0
-
name: Check clean
run: make idma_clean_all
run: uv run --locked make idma_clean_all
-
name: Check whether clean
run: git status && test -z "$(git status --porcelain --ignore-submodules)"
-
name: Build target
run: make -j9 idma_${{ matrix.target }}_all
run: uv run --locked make -j9 idma_${{ matrix.target }}_all
-
name: Check whether stale
run: git status && test -z "$(git status --porcelain --ignore-submodules)"
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ name: ci

on:
push:
branches-ignore:
- '__deploy__**'
branches:
- devel
- master
pull_request:
branches-ignore:
- '__deploy__**'
Expand Down
29 changes: 10 additions & 19 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,25 @@ jobs:
with:
fetch-depth: 0
-
name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
cache: 'pip'
name: Cache Bender database
uses: ./.github/actions/bender-db-cache
-
name: Python Requirements
run: pip install -r requirements.txt
name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
-
name: Install Bender
uses: pulp-platform/pulp-actions/bender-install@v2
uses: pulp-platform/pulp-actions/bender-install@v2.5.0
with:
version: 0.27.3
-
name: Install Morty
run: |
curl --proto '=https' --tlsv1.2 -sLO https://github.com/pulp-platform/morty/releases/download/v0.9.0/morty-ubuntu.22.04-x86_64.tar.gz
tar -xvf morty-ubuntu.22.04-x86_64.tar.gz morty
rm -f morty-ubuntu.22.04-x86_64.tar.gz
chmod 777 morty
echo "PATH=.:$PATH" >> ${GITHUB_ENV}
version: 0.32.0
-
name: Build hardware
run: make -B idma_hw_all
run: uv run --locked make -B idma_hw_all
-
name: Deploy generated files
run: |
git config user.email "github-ci@iis.ee.ethz.ch"
git config user.name "github-ci"
git fetch --all
python3 util/deploy.py
uv run --locked python3 util/deploy.py
35 changes: 13 additions & 22 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,40 +24,31 @@ jobs:
name: Checkout
uses: actions/checkout@v4
-
name: Install Python
uses: actions/setup-python@v5
with:
python-version: 3.9
cache: pip
-
name: Install Python requirements
run: pip install -r requirements.txt
name: Cache Bender database
uses: ./.github/actions/bender-db-cache
-
name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
-
name: Install RISC-V GCC toolchain
uses: pulp-platform/pulp-actions/riscv-gcc-install@v2
uses: pulp-platform/pulp-actions/riscv-gcc-install@v2.5.0
with:
distro: ubuntu-22.04
nightly-date: '2023.03.14'
target: riscv64-elf
-
name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
-
name: Install Bender
uses: pulp-platform/pulp-actions/bender-install@v2
uses: pulp-platform/pulp-actions/bender-install@v2.5.0
with:
version: 0.27.3
-
name: Install Morty
run: |
curl --proto '=https' --tlsv1.2 -sLO https://github.com/pulp-platform/morty/releases/download/v0.9.0/morty-ubuntu.22.04-x86_64.tar.gz
tar -xvf morty-ubuntu.22.04-x86_64.tar.gz morty
rm -f morty-ubuntu.22.04-x86_64.tar.gz
chmod 777 morty
echo "PATH=.:$PATH" >> ${GITHUB_ENV}
version: 0.32.0
-
name: Build Doc
run: make idma_doc_all
run: uv run --locked make idma_doc_all
-
name: Create publish docs
uses: actions/upload-pages-artifact@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
-
name: Mirror and check
uses: pulp-platform/pulp-actions/gitlab-ci@v2
uses: pulp-platform/pulp-actions/gitlab-ci@v2.5.0
# Skip on forks or pull requests from forks due to missing secrets.
if: >
github.repository == 'pulp-platform/idma' &&
Expand Down
24 changes: 8 additions & 16 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v4
-
name: Check license
uses: pulp-platform/pulp-actions/lint-license@v2
uses: pulp-platform/pulp-actions/lint-license@v2.5.0
with:
license: |
Copyright (\d{4}(-\d{4})?\s)?(ETH Zurich and University of Bologna|lowRISC contributors).
Expand Down Expand Up @@ -119,16 +119,12 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}
-
uses: actions/setup-python@v5
uses: astral-sh/setup-uv@v7
with:
python-version: '3.9'
cache: 'pip'
-
name: Python Requirements
run: python3 -m pip install -r requirements.txt
enable-cache: true
-
name: Lint commits
run: python3 util/lint-commits.py HEAD
run: uv run --locked python3 util/lint-commits.py HEAD

lint-author:
runs-on: ubuntu-latest
Expand All @@ -137,14 +133,10 @@ jobs:
name: Checkout
uses: actions/checkout@v4
-
name: Install Python
uses: actions/setup-python@v5
name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: '3.9'
cache: 'pip'
-
name: Python Requirements
run: pip install -r requirements.txt
enable-cache: true
-
name: Lint authors
run: python3 util/lint-authors.py .github/authors-cfg.yaml
run: uv run --locked python3 util/lint-authors.py .github/authors-cfg.yaml
Loading
Loading