Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6e6f615
Add some README for verification env + change for non-IIS machines
FrancescoConti Mar 5, 2026
b00d0b1
Add some (reasonable) waivers + minor cleanup
FrancescoConti Mar 5, 2026
93d3df7
tb: Fix erroneous latency reporting
sermazz Mar 6, 2026
6ea8a88
rtl: :bug: Set independent QoS config for HWPE branch (was same as LIC)
sermazz Mar 6, 2026
7c61e6c
[WIP] Implement LOG and MUX tb
sermazz Feb 27, 2026
f79d065
[WIP] Change structure of tb
sermazz Feb 27, 2026
e5357a0
tb: Remove fifo from app_driver, remove r_valid gen from tcdm, reintr…
sermazz Mar 5, 2026
cfcaf1a
rtl: :bug: Fix r_ready masking in hci_core_split
sermazz Mar 5, 2026
e5bd4f4
src,config: Rewrite app_drivers with FSMs + improve json config make
sermazz Mar 6, 2026
2270590
verif: Implement advanced verification
sermazz Mar 6, 2026
0250399
tb: Fix error in testing of static mux config
sermazz Mar 9, 2026
2719f31
Add support for fractional priority in arbiter
FrancescoConti Mar 6, 2026
5aa6653
add regression test (no CI yet)
FrancescoConti Mar 7, 2026
2674f77
Add basic github/gitlab CI workflow
FrancescoConti Mar 7, 2026
13aa12a
verif: Fix GUI makefile param
sermazz Mar 9, 2026
5a93c8c
tb: Remove end_req signal (only track complete time to response)
sermazz Mar 9, 2026
d6d6537
verif: Rename tb monitors and fix license headers
sermazz Mar 9, 2026
b4d5930
tb: Add support for multiple patterns per master, in different phases
sermazz Mar 9, 2026
414bfb5
ci: Adapt tests to new hw config in workloads
sermazz Mar 9, 2026
afa2bfc
verif: Generate HTML dataflow from stimvectors
sermazz Mar 10, 2026
23362d3
verif: Add framework for benchmarking sweep across different hw configs
sermazz Mar 10, 2026
f38178e
verif/simvectors: Extract html and memory reporting
sermazz Mar 11, 2026
9fed2aa
verif/exploration: Move exploration stuff to subdir
sermazz Mar 11, 2026
bf63bf5
simvectors: Add new mem access patterns, fine-tune idle cycles gen, f…
sermazz Mar 11, 2026
a3e4008
verif: Improve documentation
sermazz Mar 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
29 changes: 29 additions & 0 deletions .github/workflows/gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2022 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: Paul Scheffler <paulsc@iis.ee.ethz.ch>

name: gitlab-ci

on: [ push, pull_request, workflow_dispatch ]

permissions:
# deployments permission to deploy GitHub pages website
deployments: write
# contents permission to update benchmark contents in gh-pages branch
contents: write

jobs:
gitlab-ci:
runs-on: ubuntu-latest
steps:
- name: Check Gitlab CI
uses: pulp-platform/pulp-actions/gitlab-ci@v1
# Skip on forks or pull requests from forks due to missing secrets.
if: github.repository == 'pulp-platform/hci' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
with:
domain: iis-git.ee.ethz.ch
repo: github-mirror/hci
token: ${{ secrets.GITLAB_TOKEN }}

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ target/verif/vsim/compile.tcl
target/verif/vsim/modelsim.ini
target/verif/vsim/transcript
target/verif/vsim/vsim.wlf
target/verif/exploration/results
44 changes: 44 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Copyright 2022 ETH Zurich and University of Bologna.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
#
# Paul Scheffler <paulsc@iis.ee.ethz.ch>

# We initialize the nonfree repo, then spawn a sub-pipeline from it

variables:
GIT_SUBMODULE_STRATEGY: recursive
# Our reference GCC toolchain for reproducible builds

before_script:
- python -V # Print out python version for debugging
- python -m pip install --user virtualenv

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

stages:
- build
- test

build:
stage: build
script:
- make checkout
artifacts:
when: always
expire_in: 3 hours
paths: [ .bender ]

testset:
extends: .base
needs: [ build ]
stage: test
script:
- regr/full_regression.sh
artifacts:
when: always
expire_in: 1 year
paths: [ regr/hci_tests.xml ]
7 changes: 4 additions & 3 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ package:
name: hci
authors:
- "Francesco Conti <f.conti@unibo.it>"
- "Gianna Paulin <pauling@iis.ee.ethz.ch"
- "Gianna Paulin <pauling@iis.ee.ethz.ch>"
- "Tobias Riedener <tobiasri@student.ethz.ch>"
- "Luigi Ghionda <luigi.ghionda2@studio.it>"
- "Arpan Suravi Prasad <prasadar@iis.ee.ethz.ch>"
- "Sergio Mazzola <smazzola@iis.ee.ethz.ch>"

dependencies:
hwpe-stream: { git: "https://github.com/pulp-platform/hwpe-stream.git", version: 1.9.0 }
Expand Down Expand Up @@ -70,8 +71,8 @@ sources:
# Level 1
- target/verif/src/application_driver.sv
- target/verif/src/tcdm_banks_wrap.sv
- target/verif/src/latency_monitor.sv
- target/verif/src/throughput_monitor.sv
- target/verif/src/req_gnt_monitor.sv
- target/verif/src/bandwidth_monitor.sv
# Level 2
- target/verif/src/simulation_report.sv
# Level 3
Expand Down
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,38 @@ The `hci` repository contains the definition of the Heterogeneous Cluster Interc
- https://github.com/pulp-platform/neureka
- https://github.com/pulp-platform/redmule

# Verification flow
The typical full flow is:

```
make checkout # Fetch and check out dependencies via Bender
make config-verif # Generate Makefiles from JSON verification configs
make stim-verif # Generate simulation stimulus vectors (requires Python 3)
make compile-verif # Compile RTL and testbench with QuestaSim
make opt-verif # Optimize the compiled design with vopt
make run-verif # Run the simulation (batch mode by default)
```

To open the simulation in the QuestaSim GUI with waveforms, pass `GUI=1`:

```
make run-verif GUI=1
```

Cleanup targets:

| Target | Effect |
|----------------------|----------------------------------------------------|
| `clean-config-verif` | Remove generated configuration Makefiles |
| `clean-stim-verif` | Remove generated stimulus vectors |
| `clean-sim-verif` | Remove QuestaSim build artifacts (work lib, logs) |
| `clean-verif` | Run all three clean targets above |

**Notes:**
- On IIS machines, defaults to QuestaSim (`questa-2022.3`) (can be overriden with `SIM_QUESTA=<version>`). On non-IIS machines, defaults to QuestaSim available in `PATH`.
- Verification configuration is driven by JSON files under `target/verif/config/`. Edit those before running `config-verif` and `stim-verif`.
- `run-verif` depends on `opt-verif` and `stim-verif`, so after `checkout` and `config-verif` you can jump straight to it.

# Style guide
These IPs use a slightly different style than other PULP IPs. Refer to `STYLE.md` for some indications.

Expand Down
2 changes: 1 addition & 1 deletion bender.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2025 ETH Zurich and University of Bologna.
# Copyright 2026 ETH Zurich and University of Bologna.
# Solderpad Hardware License, Version 0.51, see LICENSE.solderpad for details.
# SPDX-License-Identifier: SHL-0.51
#
Expand Down
31 changes: 31 additions & 0 deletions regr/basic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright (C) 2024 ETH Zurich and University of Bologna
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# SPDX-License-Identifier: Apache-2.0
#
# Author: Francesco Conti (f.conti@unibo.it)
#

hci_tests:
log_fair:
path: .
command: make clean-config-verif clean-stim-verif clean-sim-verif config-verif stim-verif compile-verif run-verif TESTBENCH_JSON=regr/testbench/fair/testbench.json HARDWARE_JSON=regr/hardware/log/hardware.json
hci_fair:
path: .
command: make clean-config-verif clean-stim-verif clean-sim-verif config-verif stim-verif compile-verif run-verif TESTBENCH_JSON=regr/testbench/fair/testbench.json HARDWARE_JSON=regr/hardware/hci/hardware.json
hci_hwpe_prio:
path: .
command: make clean-config-verif clean-stim-verif clean-sim-verif config-verif stim-verif compile-verif run-verif TESTBENCH_JSON=regr/testbench/hwpe_prio/testbench.json HARDWARE_JSON=regr/hardware/hci/hardware.json
hci_log_prio:
path: .
command: make clean-config-verif clean-stim-verif clean-sim-verif config-verif stim-verif compile-verif run-verif TESTBENCH_JSON=regr/testbench/log_prio/testbench.json HARDWARE_JSON=regr/hardware/hci/hardware.json
Loading
Loading