Skip to content
Draft
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
cb117a4
hw: Add Multicast capabilities (#123)
fischeti Jun 17, 2025
22ff9d1
floogen(rdl): Generate arrays (#130)
fischeti Jun 17, 2025
ea35a99
fixup! floogen(rdl): Generate arrays (#130)
fischeti Jun 18, 2025
fb17694
ci: Run on `develop` branch (#132)
fischeti Jul 3, 2025
ff9a1e0
hw: Add collective operation fields in header (#133)
Lura518 Jul 8, 2025
043d58e
hw: Add address to DecodeError message (#137)
colluca Jul 31, 2025
a7c5907
hw: Remove latch in reduction logic (#139)
Lore0599 Sep 17, 2025
360aabf
ci: Fix tests on `develop` branch (#141)
fischeti Sep 17, 2025
a3791b9
ci: Use ruff for python linting instead of pylint (#146)
fischeti Sep 25, 2025
a82cab9
hw(rob): Optimize RoB allocation for B responses (#145)
fischeti Sep 25, 2025
d677bb0
chore: Improve integration of internal PD repository (#147)
fischeti Oct 2, 2025
6b5cabc
floogen: Use `uv` as preferred package manager (#148)
fischeti Oct 13, 2025
b2293d0
floogen(routing): Remove abstract `Id` class
fischeti Sep 19, 2025
05669f8
floogen(utils): Allow nested SV struct rendering
fischeti Sep 19, 2025
8a51196
floogen(routing): Render multicast Sam
fischeti Sep 19, 2025
8399b78
py(lint): Move to `ruff` for linting
fischeti Sep 19, 2025
f2fe6c2
hw(meta_buffer): Fix naming
fischeti Sep 19, 2025
2af01e1
deps: Bump `common_cells` and others
fischeti Sep 25, 2025
1252996
hw(chimney): Update `addr_decode` module
fischeti Sep 25, 2025
ef5a7ef
py: Add `docs` dependencies
fischeti Sep 6, 2024
475774e
doc: Add initial doc flow
fischeti Sep 6, 2024
72c8a46
py: Add `dev` dependencies
fischeti Sep 6, 2024
31c4836
REVERT: publish on feature branch
fischeti Sep 6, 2024
736144d
ci: Correct python version
fischeti Sep 6, 2024
476823b
gh-pages: Try with lower case URL
fischeti Sep 9, 2024
62989e7
Revert "gh-pages: Try with lower case URL"
fischeti Sep 9, 2024
c3dd5f2
docs: Rename `gs.md` to `getting_started.md`
fischeti Sep 9, 2024
5e7da0f
docs: Update README
fischeti Sep 9, 2024
f7ae425
docs: Initial `index.md` file
fischeti Sep 9, 2024
dbcada7
docs: Add repository structure
fischeti Sep 9, 2024
e1aa62b
docs: Initial `docs` directory structure
fischeti Sep 9, 2024
b1afbe5
docs: Add custom color and stylesheet
fischeti Sep 9, 2024
f9c5906
docs: Use custom logo and favicon
fischeti Sep 9, 2024
f5eb937
docs: Use sticky tabs
fischeti Sep 9, 2024
137fc94
docs: Use instant navigation
fischeti Sep 9, 2024
c69bf28
docs: Remove unused options
fischeti Sep 9, 2024
62ce248
docs: Make dedicated "Getting Started" tab
fischeti Sep 9, 2024
b6e53e7
docs: Add Changelog
fischeti Sep 9, 2024
08754d3
docs: Try the `social` plugin
fischeti Sep 9, 2024
8cd34e0
docs: Show revision date and authors
fischeti Sep 9, 2024
4baa548
docs: Add `site_url`
fischeti Sep 9, 2024
59ff7b4
docs: Remove unused config
fischeti Sep 9, 2024
c3c99a1
docs: Fetch entire history
fischeti Sep 9, 2024
b290358
docs: Make license linter happy
fischeti Sep 9, 2024
b33c17f
docs: Update getting started guide
fischeti Sep 10, 2024
3166b9e
docs: Don't use code commiters plugin anymore
fischeti Sep 10, 2024
675f0f2
docs: Use tabbed for code
fischeti Sep 10, 2024
fe07818
docs: Update getting started
fischeti Sep 11, 2024
08ebdb6
docs: Add quick links to Home
fischeti Sep 11, 2024
6b1258d
docs(theme): Don't use automatic dark/lite theme
fischeti Sep 11, 2024
42ae72a
docs(hw): Extend structure
fischeti Sep 11, 2024
e7996b9
docs(hw): Add overview
fischeti Sep 11, 2024
5327efe
docs(hw): Start with link documentation
fischeti Sep 12, 2024
725c8ca
docs(gs): Fix license box
fischeti Sep 14, 2024
76f415a
docs(hw): Rename to flits and add link page
fischeti Sep 14, 2024
01688d6
ci: Uncomment `main` branch trigger
fischeti Sep 14, 2024
500ec9d
docs(hw): Channels & Links update
fischeti Sep 16, 2024
8598ba8
docs(hw): Small update for flit table
fischeti Sep 16, 2024
096334a
docs(hw): Update channel and links
fischeti Sep 18, 2024
0b1dbf7
docs(hw): Update links section
fischeti Sep 28, 2024
19e2862
docs(general): Add empty `CONTRIBUTING.md`
fischeti Sep 28, 2024
55a2887
docs(hw): Write route algos section
fischeti Sep 28, 2024
816a753
docs(hw): Update chimney section
fischeti Oct 22, 2024
5bbb292
doc(hw): Update ID handling
fischeti Mar 29, 2025
9fb0ea6
docs(hw): Update chimney configuration section
fischeti Mar 29, 2025
239ea66
pyproject.toml: Remove duplicate dependencies
fischeti Mar 29, 2025
2f273fd
docs(links): Update arXiV paper link
fischeti Mar 29, 2025
8ead2b9
docs(gs): Fix small error
fischeti Mar 29, 2025
d1ee1ec
docs(floogen): Start floogen documentation
fischeti Mar 29, 2025
fc2a8ed
docs: Add docstrings for floogen
fischeti Sep 25, 2025
52b8bdc
docs(floogen): Track initial utils.md
fischeti Sep 25, 2025
163b585
docs(floogen): Add more docstrings in `utils.py`
fischeti Sep 25, 2025
a8ba737
Update .gitignore
fischeti Sep 26, 2025
3a35f0e
py: Add `mkdocstrings` package
fischeti Sep 26, 2025
a5f0b99
docs(floogen): Update overview page
fischeti Sep 26, 2025
51d6dbf
pyproject.toml: Fix merge conflicts
fischeti Oct 14, 2025
48f0757
uv: Update lock file
fischeti Oct 14, 2025
d9e94cb
docs(floogen): Explain installation with uv
fischeti Oct 14, 2025
6e21465
docs(floogen): Write general section
fischeti Oct 14, 2025
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
25 changes: 23 additions & 2 deletions .github/workflows/floogen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ on:
push:
branches:
- main
- develop

jobs:

unit-test:
unit-test-pip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
Expand All @@ -26,6 +27,26 @@ jobs:
run: |
python -m pip install --upgrade pip
python -m pip install .
python -m pip install --group dev
- name: Run unit tests
run: |
python -m pytest -v

unit-test-uv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Sync project + dev group
run: uv sync --locked --group dev

- name: Run unit tests
run: uv run -m pytest -v
1 change: 1 addition & 0 deletions .github/workflows/gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
push:
branches:
- main
- develop

jobs:
check:
Expand Down
24 changes: 7 additions & 17 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
push:
branches:
- main
- develop

jobs:

Expand Down Expand Up @@ -40,25 +41,14 @@ jobs:
fail_on_error: true
reviewdog_reporter: github-check

##########
# PyLint #
##########
pylint:
########
# Ruff #
########
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies and package
run: |
python -m pip install --upgrade pip
pip install .
- name: Analysing the code with pylint
run: |
pylint $(git ls-files '*.py')
- uses: actions/checkout@v4
- uses: astral-sh/ruff-action@v3

#################
# Check License #
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright 2024 ETH Zurich and University of Bologna.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Author: Tim Fischer <[email protected]>

name: publish-docs

on:
push:
branches:
- main
workflow_dispatch:

jobs:

deploy:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip
- name: Install Python requirements
run: pip install .[docs]
- name: Deploy Documentation
run: mkdocs gh-deploy --force
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ docs/_rst/*
docs/_build/*
cover/*
MANIFEST
site

# Per-project virtualenvs
.venv*/
Expand All @@ -68,6 +69,7 @@ hw/test/jobs

# QuestaSim
work
work_*
work-vsim
modelsim.ini
transcript
Expand Down Expand Up @@ -95,3 +97,6 @@ measurements
*.csv
**/*.log
reviewdog

# Physical design repository
pd
35 changes: 27 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
# Solderpad Hardware License, Version 0.51, see LICENSE for details.
# SPDX-License-Identifier: SHL-0.51

# Author: Tim Fischer <[email protected]>
# Author: Michael Rogenmoser <[email protected]>

variables:
VSIM: questa-2023.4 vsim
QUESTA_SEPP: questa-2025.1
VCS_SEPP: vcs-2025.06
BENDER: bender
PYTHON: /usr/local/anaconda3/bin/python
UV: /home/fischeti/.local/bin/uv

stages:
- init
Expand Down Expand Up @@ -63,12 +65,7 @@ compile-meshes:
- DUT: [axi_mesh, nw_mesh]
ROUTE_ALGO: [xy, src, id]
script:
# Install `floogen`
- $PYTHON -m venv .venv
- source .venv/bin/activate
- pip install .
# Generate sources
- floogen -c floogen/examples/${DUT}_${ROUTE_ALGO}.yml -o generated --no-format
- $UV run floogen -c floogen/examples/${DUT}_${ROUTE_ALGO}.yml -o generated --no-format
# Compile the network
- make compile-sim EXTRA_BENDER_FLAGS="-t ${DUT}" WORK="work_${DUT}_${ROUTE_ALGO}" | tee compile.log 2>&1
- '! grep "\*\* Error" compile.log'
Expand Down Expand Up @@ -125,3 +122,25 @@ morty:
script:
- $BENDER sources -f > source_list.txt
- morty -f source_list.txt

###################
# Physical Design #
###################

init-pd:
stage: init
script:
- make init-pd
artifacts:
paths:
- pd/ci.yml

subpipe:
stage: build
needs:
- init-pd
trigger:
include:
- artifact: pd/ci.yml
job: init-pd
strategy: depend
30 changes: 18 additions & 12 deletions Bender.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ packages:
dependencies:
- common_cells
axi:
revision: 9402c8a9ce0a7b5253c3c29e788612d771e8b5d6
version: 0.39.3
revision: 78831b6feba265d5ee2683bbf42b4150f8a35c43
version: 0.39.8
source:
Git: https://github.com/pulp-platform/axi.git
dependencies:
Expand All @@ -32,22 +32,28 @@ packages:
dependencies:
- common_cells
common_cells:
revision: 0d67563b6b592549542544f1abc0f43e5d4ee8b4
version: 1.35.0
revision: 1d5c6fc3da60f0a920a5113b143624770bc1a279
version: null
source:
Git: https://github.com/pulp-platform/common_cells.git
dependencies:
- common_verification
- tech_cells_generic
common_verification:
revision: 9c07fa860593b2caabd9b5681740c25fac04b878
version: 0.2.3
revision: fb1885f48ea46164a10568aeff51884389f67ae3
version: 0.2.5
source:
Git: https://github.com/pulp-platform/common_verification.git
dependencies: []
floo_noc_pd:
revision: null
version: null
source:
Path: pd
dependencies: []
idma:
revision: 95f366e56f7e772c283fb3c8b343afc4a3978375
version: 0.6.2
revision: 28a36e5e07705549e59fc33db96ab681bc1ca88e
version: 0.6.5
source:
Git: https://github.com/pulp-platform/iDMA.git
dependencies:
Expand All @@ -58,16 +64,16 @@ packages:
- obi
- register_interface
obi:
revision: 1aa411df145c4ebdd61f8fed4d003c33f7b20636
version: 0.1.2
revision: 0155fc34e900c7c884e081c0a1114a247937ff69
version: 0.1.7
source:
Git: https://github.com/pulp-platform/obi.git
dependencies:
- common_cells
- common_verification
register_interface:
revision: ae616e5a1ec2b41e72d200e5ab09c65e94aebd3d
version: 0.4.4
revision: 8e8c209ea559d3b54f45cf30fcce95ce70ff5e49
version: 0.4.6
source:
Git: https://github.com/pulp-platform/register_interface.git
dependencies:
Expand Down
46 changes: 37 additions & 9 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ package:
authors:
- "Michael Rogenmoser <[email protected]>"
- "Tim Fischer <[email protected]>"
- "Lorenzo leone <[email protected]>"

dependencies:
idma: { git: "https://github.com/pulp-platform/iDMA.git", version: 0.6.2 }
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.35.0 }
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", rev: "master" } # Revert to a versioned release once available
common_verification: { git: "https://github.com/pulp-platform/common_verification.git", version: 0.2.3 }
axi: { git: "https://github.com/pulp-platform/axi.git", version: 0.39.3 }
axi: { git: "https://github.com/pulp-platform/axi.git", version: 0.39.7 }
axi_riscv_atomics: { git: "https://github.com/pulp-platform/axi_riscv_atomics.git", version: 0.8.2 }
floo_noc_pd: {path: ./pd}

export_include_dirs:
- hw/include
Expand All @@ -26,19 +28,27 @@ sources:
- hw/floo_fifo.sv
- hw/floo_cdc.sv
- hw/floo_route_select.sv
- hw/floo_route_comp.sv
- hw/floo_id_translation.sv
- hw/floo_vc_arbiter.sv
- hw/floo_wormhole_arbiter.sv
- hw/floo_simple_rob.sv
- hw/floo_rob.sv
- hw/floo_rob_wrapper.sv
- hw/floo_meta_buffer.sv
- hw/floo_reduction_sync.sv
- hw/floo_route_xymask.sv
# Level 2
- hw/floo_route_select.sv
- hw/floo_route_comp.sv
- hw/floo_meta_buffer.sv
- hw/floo_reduction_arbiter.sv
# Level 3
- hw/floo_output_arbiter.sv
# Level 4
- hw/floo_nw_join.sv
- hw/floo_axi_chimney.sv
- hw/floo_nw_chimney.sv
- hw/floo_router.sv
# Level 3 (Wrappers)
# Level 5 (Wrappers)
- hw/floo_axi_router.sv
- hw/floo_nw_router.sv

Expand Down Expand Up @@ -70,6 +80,7 @@ sources:
- hw/test/floo_axi_rand_slave.sv
- hw/test/floo_dma_test_node.sv
- hw/test/axi_reorder_compare.sv
- hw/test/axi_reorder_compare_multicast.sv
- hw/test/axi_reorder_remap_compare.sv
- hw/test/axi_bw_monitor.sv
- hw/test/floo_hbm_model.sv
Expand All @@ -80,19 +91,36 @@ sources:
- hw/tb/tb_floo_router.sv
- hw/tb/tb_floo_rob.sv
- hw/tb/tb_floo_vc_router.sv
- hw/tb/tb_floo_rob_multicast.sv

- target: all(any(floo_test, floo_synth), axi_mesh)
files:
- generated/floo_axi_mesh_noc_pkg.sv
- generated/floo_axi_mesh_noc.sv

- target: all(floo_test, axi_mesh)
include_dirs:
- hw/test/include
files:
- generated/floo_axi_mesh_noc_pkg.sv
- generated/floo_axi_mesh_noc.sv
- hw/tb/tb_floo_axi_mesh.sv

- target: all(any(floo_test, floo_synth), nw_mesh)
files:
- generated/floo_nw_mesh_noc_pkg.sv
- generated/floo_nw_mesh_noc.sv

- target: all(floo_test, nw_mesh)
include_dirs:
- hw/test/include
files:
- generated/floo_nw_mesh_noc_pkg.sv
- generated/floo_nw_mesh_noc.sv
- hw/tb/tb_floo_nw_mesh.sv

- target: all(floo_synth, synthesis)
files:
# Level 0
- hw/synth/floo_synth_params_pkg.sv
# Level 1
- hw/synth/floo_synth_axi_chimney.sv
- hw/synth/floo_synth_nw_chimney.sv
- hw/synth/floo_synth_axi_router.sv
- hw/synth/floo_synth_nw_router.sv
Loading
Loading