Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
246b52f
Initial commit
shirohasuki Feb 13, 2026
bc858f7
feat: Add initial project structure with core functionality
shirohasuki Feb 13, 2026
a418d8d
feat: Add bbdev CLI package and update overlays for Python dependencies
shirohasuki Feb 13, 2026
ac36fad
fix: Preserve symlinks during installation and handle broken links in…
shirohasuki Feb 13, 2026
9adbf21
refactor: Update bbdev script to use pnpm instead of npx and adjust w…
shirohasuki Feb 13, 2026
85cbf51
fix: fix bug when bbdev used in buckyball
shirohasuki Feb 13, 2026
653103a
refactor: removing threading in bbdev
shirohasuki Feb 15, 2026
988d989
fix: increase max retries and suppress stderr in bbdev server startup
shirohasuki Feb 15, 2026
3551e22
fix: clean up stale BullMQ/Redis data and improve process termination…
shirohasuki Feb 25, 2026
2c6eabc
feat: faster verilator build process with lld and ccache support
shirohasuki Mar 5, 2026
dd2d10c
fix: correct optimization level in verilator command for improved bui…
shirohasuki Mar 5, 2026
f8f6cd1
chore: remove outdated comment regarding optimization level in verila…
shirohasuki Mar 6, 2026
07f97a3
feat: add yosys synthesis steps for area estimation, feat: add openst…
shirohasuki Mar 6, 2026
d114e0d
feat: add coverage reporting functionality to sardine steps
shirohasuki Mar 6, 2026
3e58d57
fix: update verilator coverage command syntax for consistency
shirohasuki Mar 6, 2026
60bc5a5
feat: add hierarchical area breakdown reporting in yosys synthesis.
shirohasuki Mar 7, 2026
3d13326
feat: add pegasus
shirohasuki Mar 12, 2026
30ec0f6
refactor: streamline verilator API steps
shirohasuki Mar 12, 2026
b7d445d
refactor: patch fesvr includes in Verilator build steps and streamlin…
shirohasuki Mar 12, 2026
098309e
fix: update verilator command to use correct elaboration target
shirohasuki Mar 12, 2026
a02abd7
refactor: enhance verilator command options and update log file namin…
shirohasuki Mar 20, 2026
e3b4780
refactor: add simulation metadata handling and update logging paths
shirohasuki Mar 20, 2026
4c07c71
fix: correct error reports in verilog generation (#3)
TangYixin333777 Apr 2, 2026
3b9e021
feat: rebase motia-1.0-migration onto main (#6)
shirohasuki Apr 2, 2026
4c41382
fix: remove used wait_ function
shirohasuki Apr 2, 2026
606a8b6
fix: add missing features
shirohasuki Apr 2, 2026
0c06369
feat: add pegasus
shirohasuki Apr 13, 2026
3598610
fix: correct buildbitstream event name, which leads to step can't be …
shirohasuki Apr 13, 2026
96e09aa
fix: update default top module name in buildbitstream event
shirohasuki Apr 13, 2026
6a31cac
fix: update kernel step to align new buckyball directory
shirohasuki Apr 14, 2026
ba4d1c2
fix: fix bugs to pass flashbitstream
shirohasuki Apr 14, 2026
cac473b
fix: enhance build process by clearing previous output and updating e…
shirohasuki Apr 15, 2026
6d80bd8
fix: update workload event description and logging to reflect DDR usage
shirohasuki Apr 17, 2026
90e2563
feat: add PCIe device detection and driver management in flashbitstre…
shirohasuki Apr 21, 2026
88d9b5e
feat: add dc command and workflow to bbdev (#8)
Mikemy666 Apr 22, 2026
9bff5da
refactor: simplify dc command arguments and refactor configuration ma…
shirohasuki Apr 22, 2026
5df58c0
del: remove palladium verilog API and related event handling from bbdev
shirohasuki Apr 22, 2026
2af8332
fix: add yosys workflow and commands to bbdev, including run, verilog…
shirohasuki Apr 22, 2026
f505a3e
feat: spilt preparation functions for Verilog source management acros…
shirohasuki Apr 22, 2026
8426485
fix: update workload argument in sardine run test to include ctest op…
shirohasuki Apr 23, 2026
4165179
del: remove unused ddr and tsi code from chipyard
shirohasuki Apr 24, 2026
cd5dadb
[compiler] refactor: update new compiler path
shirohasuki Apr 27, 2026
f757093
feat: add P2E workflow with new API and event steps for cleaning and …
shirohasuki Apr 29, 2026
2e2e82f
feat: implement bin to hex conversion in build step for p2e to load i…
shirohasuki May 3, 2026
107340d
feat: add enumeratefpgas API and fix out-of-date steps for FireSim
shirohasuki May 11, 2026
800a41d
feat: integrate FireSim environment setup across multiple event steps
shirohasuki May 12, 2026
af4435c
fix: update AU280 board_part version in FireSim TCL script for Vivado…
shirohasuki May 12, 2026
ff249ea
feat: add bebop and verilator workflows with new API and event steps …
shirohasuki May 13, 2026
89ba55a
refactor: simplify output directory management in bebop P2E buildbits…
shirohasuki May 13, 2026
4a084c8
feat: fix p2e runworkload api
shirohasuki May 14, 2026
360df0b
fix: update p2e runworkload command to include output path configuration
shirohasuki May 14, 2026
0680ddd
refactor: change optimization level from debug to release in Verilato…
shirohasuki May 17, 2026
4cdfe22
feat: add result-query-api to retrieve task results by trace_id
shirohasuki May 18, 2026
efbf84a
feat: implement batch regression workflows for bebop bemu and p2e, in…
shirohasuki May 19, 2026
aff28fe
chore: uncomment and include additional test files for API regression…
shirohasuki May 19, 2026
9046562
feat: add workload-tohex functionality with API and event steps for c…
shirohasuki May 19, 2026
aee61f9
fix: correct bin_to_hex logic in kenel generation
shirohasuki May 20, 2026
57fdf0c
fix: enforce required config input in Verilator event steps
shirohasuki May 20, 2026
d5e7e5d
del: remove unused image.bin
shirohasuki May 22, 2026
62ce453
fix: update worker port range for server and script modes
shirohasuki May 22, 2026
4abcca1
del: remove sardine test framework and related API steps
shirohasuki May 24, 2026
98aa0e6
refactor: replace quantization tests with fp2int and int2fp tests in …
shirohasuki May 25, 2026
6989a7b
feat: add new minimal and fp2int tests to workload configurations for…
shirohasuki May 25, 2026
0ce488b
refactor: update search path and add new workload tests for bemu and …
shirohasuki May 26, 2026
95cb22a
feat: add new stride tests and update configurations for bemu and ver…
shirohasuki May 27, 2026
60fdee8
feat: add model test into workload and bemu
shirohasuki May 27, 2026
367bea4
fix: correct workload build
shirohasuki May 27, 2026
acd99ab
feat: add new convolutional tests to workloads for bemu and pk
shirohasuki May 27, 2026
05d2b2c
feat: enhance runworkload command with wave options and update worklo…
shirohasuki May 29, 2026
034a63d
feat: add trace for lenet
May 29, 2026
6aa37d8
refactor: remove trace functionality from workload build and related …
shirohasuki May 30, 2026
dd6ee0d
feat: update kernel build command with hart count parameters validation
shirohasuki May 31, 2026
12886fe
feat: enhance yosys commands and logging functionality with log direc…
shirohasuki May 31, 2026
657aa83
feat: add multicore kernel build and runworkload commands with multi-…
shirohasuki Jun 3, 2026
6777517
feat: extend kernel build command to include model parameter and vali…
shirohasuki Jun 4, 2026
09ff747
refactor: remove deprecated Design Compiler API steps and update rela…
shirohasuki Jun 5, 2026
bf646d1
feat: add DPI-C source filtering in DC Verilog preparation and log sk…
shirohasuki Jun 5, 2026
69f3351
fix: harden bbdev cleanup and run workflow
shirohasuki Jun 8, 2026
d432115
feat: add new TLB test cases to workloads for baremetal singlecore
shirohasuki Jun 21, 2026
2c217dd
feat: update fw_payload_name function to include model parameter for …
shirohasuki Jun 21, 2026
728e131
feat: add new matrix multiplication test case for baremetal singlecore
shirohasuki Jun 23, 2026
a9b492e
refactor: update to latest bebop API
shirohasuki Jun 26, 2026
06afc92
feat: implement model trace cleanup and Perfetto generation in bebop …
shirohasuki Jun 30, 2026
da83306
feat: enhance bebop workflow commands and add UVM simulation support
shirohasuki Jul 3, 2026
e7a138e
refactor: reorganize bebop bemu and yosys scripts, moving common func…
shirohasuki Jul 4, 2026
9524372
fix: update UVM API steps
shirohasuki Jul 4, 2026
9c23d8c
refactor: replace validate_bemu_chip with bemu_chip_inst in bebop API…
shirohasuki Jul 5, 2026
440ed20
fix: update test names in bebop workload configuration files for cons…
shirohasuki Jul 5, 2026
51119d6
feat: add chip parameter to workload build API and update related con…
shirohasuki Jul 5, 2026
23b5a45
feat: add multiple new linear algebra test cases
shirohasuki Jul 5, 2026
140625b
chore: disable slow tests in workload configurations
shirohasuki Jul 6, 2026
9c205a1
fix: update p2e to 0.0.1 api
shirohasuki Jul 9, 2026
bab6f8f
feat: add workload clean API and enhance bebop batch regression with …
shirohasuki Jul 9, 2026
d1921b3
feat: enhance bebop batch regression by adding chip parameter and upd…
shirohasuki Jul 9, 2026
a2c7c92
fix: don't allow --batch to build
shirohasuki Jul 19, 2026
93502bc
fix: delete unused verify
shirohasuki Jul 19, 2026
0634f0f
update: bump dramsim2 to dramsim3
shirohasuki Jul 23, 2026
b325fa5
refactor: replace bemu_chip_inst with bemu_manifest in API steps for …
shirohasuki Jul 29, 2026
3f75f3f
feat: enhance bebop verilator API with improved error handling and su…
shirohasuki Jul 30, 2026
731d26b
refactor: remove unused bebop_dir variable from API steps to streamli…
shirohasuki Aug 1, 2026
1b289a9
feat: update test cases to use new toy binary for bebop and verilator…
shirohasuki Aug 2, 2026
4349cd9
feat: introduce MCP package with core functionality and tools for buc…
shirohasuki Aug 2, 2026
cf5e47f
feat: refactor common API to use submit function for asynchronous tas…
shirohasuki Aug 3, 2026
5a19d9b
feat: enhance workflow commands and API to support rushB backend for …
shirohasuki Aug 9, 2026
fcbc9aa
feat: add rushB parameter support across bebop and verilator batch pr…
shirohasuki Aug 9, 2026
1fcc155
feat: enhance compiler API to support core and chip parameters, impro…
shirohasuki Aug 9, 2026
50c7868
feat: extend build command in compiler API to include additional targ…
shirohasuki Aug 9, 2026
76922e9
feat: implement task cancellation API and process management for impr…
shirohasuki Aug 10, 2026
6400616
feat: add Bebop bank difftest workflow
daiyongyuan Aug 10, 2026
e5d3fa3
refactor: make difftest workflow backend-oriented
daiyongyuan Aug 10, 2026
262878c
feat: select difftest backend explicitly
daiyongyuan Aug 10, 2026
5620cec
refactor: integrate difftest into Bebop Verilator run
daiyongyuan Aug 11, 2026
7d2a4dc
feat: add IP replacement API and enhance workflow commands for behavi…
shirohasuki Aug 11, 2026
5bb69b7
feat: add Bebop bank difftest workflow
daiyongyuan Aug 10, 2026
70e06a9
refactor: make difftest workflow backend-oriented
daiyongyuan Aug 10, 2026
f4c3241
feat: select difftest backend explicitly
daiyongyuan Aug 10, 2026
ade31fd
refactor: integrate difftest into Bebop Verilator run
daiyongyuan Aug 11, 2026
e655a58
feat: add Bebop difftest batch workflow
daiyongyuan Aug 11, 2026
21a8165
feat: implement DC synthesis and power analysis workflows with API in…
shirohasuki Aug 12, 2026
cd4b306
refactor: update VCS build and simulation steps to improve configurat…
shirohasuki Aug 12, 2026
079f54e
feat: add model layout and CMake configuration for various models in …
shirohasuki Aug 12, 2026
67577a1
refactor: remove Verilator batch simulation option (#11)
daiyongyuan Aug 13, 2026
787a6a2
fix: resolve Verilator difftest runtime manifests (#12)
daiyongyuan Aug 20, 2026
40b1e5f
feat: enhance Bebop and P2E workflows with new command options and as…
shirohasuki Aug 23, 2026
4dbf61c
refactor: streamline Bebop and Verilator workflows by consolidating c…
shirohasuki Aug 25, 2026
6dd077d
refactor: improve module loading and error handling in build steps fo…
shirohasuki Aug 25, 2026
d58c12f
chore: add protobuf to system tools in flake.nix
shirohasuki Aug 25, 2026
812230b
chore: remove protobuf from system tools in flake.nix
shirohasuki Aug 26, 2026
7e5b4ed
feat: add support for ctest and mlirtest flags in workload build and …
shirohasuki Aug 27, 2026
7148682
fix: update simulation command to include LD_LIBRARY_PATH for proper …
shirohasuki Aug 27, 2026
a45cfa1
feat: add MATADD support in core_ball_isa_defines for enhanced functi…
shirohasuki Aug 27, 2026
837ddb9
feat: add dynamic bank number definitions for chip profiles in worklo…
shirohasuki Aug 28, 2026
4b88d1a
refactor: remove dynamic bank number definitions from workload instal…
shirohasuki Aug 29, 2026
45160ae
fix: select RushB RTL through bbdev (#14)
daiyongyuan Aug 31, 2026
79a3aa7
feat: introduce SRAM macro generation and replacement APIs (#15)
shirohasuki Sep 1, 2026
02de97b
feat: update build and simulation steps to support tapeout output dir…
shirohasuki Sep 3, 2026
6bd07c0
fix: update execution command for motia worker in bbdev and config.ya…
shirohasuki Sep 3, 2026
c45d8fe
refactor: streamline workload directory cleanup process by consolidat…
shirohasuki Sep 3, 2026
444dce5
refactor: enhance path handling in workload cleanup by introducing wo…
shirohasuki Sep 4, 2026
f1782ac
chore: update .gitignore to exclude lc_output.txt and enhance tapeout…
shirohasuki Sep 4, 2026
0dc29ce
refactor: enhance UVM and Verilator workflows by updating parameter h…
shirohasuki Sep 5, 2026
b00d582
fix: align per-chip build and P2E runtime paths (#16)
daiyongyuan Sep 10, 2026
1eca7c4
feat: add VCS support to Bebop workflow with new APIs for verilog gen…
shirohasuki Sep 11, 2026
ce235c2
feat: add support for dynamic bank entries configuration in UVM simul…
shirohasuki Sep 11, 2026
450869a
feat: implement server startup locking mechanism in bbdev and enhance…
shirohasuki Sep 11, 2026
bb22ad8
fix: update server start lock path in bbdev to use dynamic directory …
shirohasuki Sep 11, 2026
f79bc12
feat: add ball_params mapping to BallIdMapping in proto and update JS…
shirohasuki Sep 13, 2026
7ac9189
refactor: improve code readability and consistency in bebop regressio…
shirohasuki Sep 13, 2026
d278e45
feat: update runworkload command to include chip parameter and improv…
shirohasuki Sep 13, 2026
cd95ebd
fix: modularize image resolution logic by moving it to a new script a…
shirohasuki Sep 14, 2026
1226a0e
fix: re-import firesim step
shirohasuki Sep 14, 2026
ea81545
refactor: remove unused smatmul_accumulator_filename function and sim…
shirohasuki Sep 14, 2026
274eb16
fix: enhance subprocess handling in load_host_environment by adding s…
shirohasuki Sep 14, 2026
62da7d4
fix: improve error detail extraction in subprocess handling by captur…
shirohasuki Sep 14, 2026
469ecc2
fix: update runworkload command to include fpga-location parameter an…
shirohasuki Sep 16, 2026
8cc740c
fix: add trace-config parameter to workload build commands and improv…
shirohasuki Sep 16, 2026
dae3178
feat: add BoomCoreConfig and related validation logic to JSON to prot…
shirohasuki Sep 16, 2026
d887ed2
feat: enhance UVM simulation support by adding IP parameter handling …
shirohasuki Sep 19, 2026
950dbf0
[node/p2e] Support P2E bank DiffTest (#17)
daiyongyuan Sep 22, 2026
46d39f6
refactor: update path handling for bbdev and related components in co…
shirohasuki Sep 22, 2026
3ab66f9
refactor: clean up bbdev configuration and improve logging handling
shirohasuki Sep 22, 2026
cc83f05
refactor: update bebop bemu batch regression descriptions and remove …
shirohasuki Sep 22, 2026
7dd6562
refactor: update batch regression descriptions and remove unused next…
shirohasuki Sep 22, 2026
137e8c4
refactor: streamline test cases by removing unused regression scripts…
shirohasuki Sep 23, 2026
5cc4c1e
fix: pass P2E build environment through Nix
daiyongyuan Sep 23, 2026
8f591f9
fix: improve server lock handling in bbdev and streamline IP build pr…
shirohasuki Sep 24, 2026
2b7568e
fix: terminate detached descendants on bbdev cancellation
daiyongyuan Sep 24, 2026
d372dd9
test: move process cleanup unit tests out of API examples
daiyongyuan Sep 24, 2026
1faa8f0
fix: run P2E workloads with waveform tools available
daiyongyuan Sep 24, 2026
055ab64
Capture BEMU run output in log directory (#23)
daiyongyuan Sep 25, 2026
3e4b176
Refresh P2E runtime before workloads (#22)
daiyongyuan Sep 25, 2026
77940eb
feat: Enhance BEMU and model simulation workflows
shirohasuki Sep 29, 2026
a0bba72
fix: clean up object directory before build in Verilator step
shirohasuki Sep 29, 2026
2b1cc6a
fix(p2e): pass diff mode to bitstream build
daiyongyuan Sep 29, 2026
9ff49f1
feat: update performance reporting and P2E workflow management
shirohasuki Oct 4, 2026
44b3ed8
refactor: remove cold load case validation from P2E workload steps
shirohasuki Oct 4, 2026
789a335
refactor: streamline BEMU workflow by removing chip emulation checks …
shirohasuki Oct 4, 2026
1d29975
feat: add support for configurable job count in BEMU and Verilator steps
shirohasuki Oct 4, 2026
9594839
feat: add CMake build type option to model build process
shirohasuki Oct 5, 2026
4028a4d
refactor: remove cpu-tests option from BEMU batch regression steps an…
shirohasuki Oct 5, 2026
266f014
feat: enhance Bebop P2E and BEMU workflows with itrace and mtrace sup…
shirohasuki Oct 6, 2026
cd7227c
feat: add support for SoC test workloads in build process and update …
shirohasuki Oct 6, 2026
4b1f87b
refactor: remove resume-post-route handling from P2E build steps and …
shirohasuki Oct 6, 2026
ec925ff
refactor: enhance parameter derivation logic and update hart visibili…
shirohasuki Oct 6, 2026
b5ac982
refactor: update command arguments and validation in Bebop workflows …
shirohasuki Oct 9, 2026
8dd7935
feat: extend Rocket CPU configuration with additional parameters and …
shirohasuki Oct 9, 2026
e2264f9
refactor: simplify artifact cleanup logic in Bebop batch regression s…
shirohasuki Oct 9, 2026
4b8e01b
feat: sync to buckyball 0.2.1-a
shirohasuki Oct 26, 2026
08ef1c6
feat: sync to buckyball 0.2.1-a
shirohasuki Oct 26, 2026
49421e3
feat: clean up to buckyball 0.2.1-a
shirohasuki Oct 26, 2026
1753563
feat: sync to buckyball 0.2.1-a
shirohasuki Oct 26, 2026
98b040b
feat: sync to buckyball 0.2.1-a
shirohasuki Oct 26, 2026
56a42b1
fix: restore CI dependency registration and proxy setup
shirohasuki Oct 26, 2026
4d47387
style: apply Python formatting required by CI
shirohasuki Oct 26, 2026
99924dc
fix: prepare CI dependencies before simulation builds
shirohasuki Oct 26, 2026
e6d7208
feat: sync to buckyball 0.2.1-a
shirohasuki Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .agents/mcps
21 changes: 13 additions & 8 deletions .github/scripts/ci_repo_lock.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,31 @@ repo_reset() {
cd "${repo}"

# Initialize the compiler in stack and its LLVM dependency explicitly.
git fetch --force --prune origin "${want_sha}"
git fetch --no-recurse-submodules --force --prune origin "${want_sha}"
git checkout --detach --force "${want_sha}"
git reset --hard "${want_sha}"
git clean -ffd

rm -rf arch/out
rm -rf stack/compiler/thirdparty/buddy-mlir/llvm/build
rm -rf stack/compiler/thirdparty/buddy-mlir/build
# Generated outputs (CMake caches, RTL, workloads) are ignored by git clean
# and keep stale source paths; every run starts from a fresh output tree.
rm -rf examples/designs/*/output
rm -rf stack/thirdparty/buddy-mlir/llvm/build
rm -rf stack/thirdparty/buddy-mlir/build

git submodule sync
git submodule update --init --force

# submodules in submodules we used need update by hands
git -C arch/thirdparty/rocket-chip submodule sync -- dependencies/cde
git -C arch/thirdparty/rocket-chip submodule update --init --force -- dependencies/cde
git -C examples/prefab/cores/rocket/thirdparty/rocket-chip submodule sync -- dependencies/cde
git -C examples/prefab/cores/rocket/thirdparty/rocket-chip submodule update --init --force -- dependencies/cde

git -C stack submodule sync
git -C stack submodule update --init --force -- compiler/thirdparty/buddy-mlir
git -C stack/compiler/thirdparty/buddy-mlir submodule sync
git -C stack/compiler/thirdparty/buddy-mlir submodule update --init --force -- llvm
git -C stack submodule update --init --force -- os/linux thirdparty/buddy-mlir
git -C stack submodule update --init --depth 1 --single-branch --recommend-shallow -- \
os/thirdparty/linux os/thirdparty/busybox os/thirdparty/opensbi
git -C stack/thirdparty/buddy-mlir submodule sync
git -C stack/thirdparty/buddy-mlir submodule update --init --force -- llvm

git submodule foreach 'git clean -ffd'
have_sha="$(git rev-parse HEAD)"
Expand Down
8 changes: 7 additions & 1 deletion .github/scripts/setproxy.sh
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
export ALL_PROXY=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export https_proxy="$http_proxy"
export HTTP_PROXY="$http_proxy"
export HTTPS_PROXY="$https_proxy"
export ALL_PROXY="$http_proxy"
export no_proxy=localhost,127.0.0.1,::1
export NO_PROXY="$no_proxy"
2 changes: 1 addition & 1 deletion .github/workflows/README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
push/PR 到 `main` 会自动触发 `check.yaml`:

1. **pre-commit**:拉代码, 并校验格式
2. **chip-check**:通过后,matrix 并行跑各 chip(共享同一个 `~/Code/buckyball` 环境,基于 `ci_repo_lock.sh` 协调)
2. **design-check**:通过后,matrix 并行跑各 design(共享同一个 `~/Code/buckyball` 环境,基于 `ci_repo_lock.sh` 协调)

`regression.yml` 是 reviewer 的可选测试。注意:Environment `regression` 必须在仓库 Settings → Environments 里打开 Required reviewers,否则会直接跑。
也可以在 Actions → regression → Run workflow 中选择任意分支手动启动,测试触发时该分支的最新 commit。
83 changes: 40 additions & 43 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
cd "${root}"

# fetch first to ensure if we modify ci_repo_lock.sh, we still use the old version to checkout.
git fetch --force --prune origin "${CHECKOUT_SHA}"
git fetch --no-recurse-submodules --force --prune origin "${CHECKOUT_SHA}"
git show "${CHECKOUT_SHA}:.github/scripts/ci_repo_lock.sh" | bash -s -- \
prepare "${CHECKOUT_SHA}" "${root}" "${CHECKOUT_REF}"

Expand All @@ -59,6 +59,7 @@ jobs:
- name: Check pre-commit
shell: zsh {0}
run: |
set -euo pipefail
root=~/Code/buckyball
source "${root}/.github/scripts/setproxy.sh"
cd "${root}"
Expand All @@ -72,35 +73,40 @@ jobs:
cd "${root}"
nix develop -c bbdev config --install

chip-check:
name: ${{ matrix.chip }}
design-check:
name: ${{ matrix.design }}
needs: pre-commit
runs-on: check
strategy:
fail-fast: false
matrix:
include:
- chip: toy
- design: toy
config: ToyVerilatorConfig
run_bemu_tests: true
run_verilator_tests: true
- chip: pebble
- design: pebble
config: PebbleVerilatorConfig
run_bemu_tests: true
run_verilator_tests: true
- chip: goban
- design: goban
config: GobanVerilatorConfig
run_bemu_tests: true
run_verilator_tests: true
- chip: poly
- design: poly
config: PolyVerilatorConfig
run_bemu_tests: true
run_verilator_tests: true
- chip: multi-rocket
- design: multi-rocket
config: MultiRocketVerilatorConfig
run_bemu_tests: true
run_verilator_tests: true
env:
BB_ROOT: ~/Code/buckyball
steps:
- name: Print information
run: |
echo "chip=${{ matrix.chip }}"
echo "design=${{ matrix.design }}"
echo "event=${{ github.event_name }}"
echo "sha=${CHECKOUT_SHA}"
echo "ref=${CHECKOUT_REF}"
Expand All @@ -112,7 +118,7 @@ jobs:
root="${BB_ROOT/#\~/$HOME}"
source "${root}/.github/scripts/setproxy.sh"
cd "${root}"
git fetch --force --prune origin "${CHECKOUT_SHA}"
git fetch --no-recurse-submodules --force --prune origin "${CHECKOUT_SHA}"
git show "${CHECKOUT_SHA}:.github/scripts/ci_repo_lock.sh" | bash -s -- \
enter "${CHECKOUT_SHA}" "${root}" "${CHECKOUT_REF}"

Expand All @@ -130,9 +136,9 @@ jobs:
set -euo pipefail
root="${BB_ROOT/#\~/$HOME}"
cd "${root}"
nix develop -c bbdev compiler --build '--chip ${{ matrix.chip }}'
nix develop -c bbdev workload --clean '--chip ${{ matrix.chip }}'
nix develop -c bbdev workload --build '--chip ${{ matrix.chip }}'
nix develop -c bbdev stack --build '--design ${{ matrix.design }} --device ${{ matrix.config }}'
nix develop -c bbdev workload --clean '--design ${{ matrix.design }} --device ${{ matrix.config }}'
nix develop -c bbdev workload --build '--design ${{ matrix.design }} --device ${{ matrix.config }}'

- name: bemu tests
if: matrix.run_bemu_tests
Expand All @@ -141,9 +147,11 @@ jobs:
set -euo pipefail
root="${BB_ROOT/#\~/$HOME}"
cd "${root}"
nix develop -c bbdev bebop-bemu --batch '--chip ${{ matrix.chip }} --test bare-tests --jobs 16 --clean-before'
nix develop -c bbdev kernel --build '--chip ${{ matrix.chip }}'
nix develop -c bbdev bebop-bemu --batch '--chip ${{ matrix.chip }} --test linux-tests --jobs 16'
# Other design jobs share this checkout; drop only this config's old batch runs.
rm -rf "${root}"/log/*-${{ matrix.design }}-bebop-bemu-device-${{ matrix.config }}-*(N)
nix develop -c bbdev bebop-bemu --batch "--design ${{ matrix.design }} --device ${{ matrix.config }} --test bare-tests --jobs 16"
nix develop -c bbdev kernel --build '--design ${{ matrix.design }} --device ${{ matrix.config }}'
nix develop -c bbdev bebop-bemu --batch "--design ${{ matrix.design }} --device ${{ matrix.config }} --test linux-tests --jobs 16"

- name: verilator tests
if: matrix.run_verilator_tests
Expand All @@ -152,44 +160,33 @@ jobs:
set -euo pipefail
root="${BB_ROOT/#\~/$HOME}"
cd "${root}"
nix develop -c bbdev bebop-verilator --clean '--chip ${{ matrix.chip }}'
nix develop -c bbdev bebop-verilator --verilog '--chip ${{ matrix.chip }} --diff'
nix develop -c bbdev bebop-verilator --build '--jobs 100 --chip ${{ matrix.chip }} --diff'
nix develop -c bbdev bebop-verilator --batch '--chip ${{ matrix.chip }} --test bare-tests --diff --jobs 16 --clean-before'

- name: Detect bebop JUnit files
if: always() && (matrix.run_bemu_tests || matrix.run_verilator_tests)
id: junit
shell: zsh {0}
run: |
root="${BB_ROOT/#\~/$HOME}"
files=("${root}/bebop/target/${{ matrix.chip }}/nextest/junit-bbdev-"*.xml(N))
if (( ${#files} == 0 )); then
echo "found=false" >> "$GITHUB_OUTPUT"
else
echo "found=true" >> "$GITHUB_OUTPUT"
fi
rm -rf "${root}"/log/*-${{ matrix.design }}-bebop-verilator-device-${{ matrix.config }}-*(N)
nix develop -c bbdev bebop-verilator --clean '--design ${{ matrix.design }} --device ${{ matrix.config }}'
nix develop -c bbdev bebop-verilator --verilog '--design ${{ matrix.design }} --device ${{ matrix.config }} --diff'
nix develop -c bbdev bebop-verilator --build '--jobs 100 --design ${{ matrix.design }} --device ${{ matrix.config }} --diff'
nix develop -c bbdev bebop-verilator --batch "--design ${{ matrix.design }} --device ${{ matrix.config }} --test bare-tests --diff --jobs 16"

- name: Publish bebop test report
if: always() && (matrix.run_bemu_tests || matrix.run_verilator_tests) && steps.junit.outputs.found == 'true'
if: always() && (matrix.run_bemu_tests || matrix.run_verilator_tests)
uses: mikepenz/action-junit-report@v4
with:
report_paths: "~/Code/buckyball/bebop/target/${{ matrix.chip }}/nextest/junit-bbdev-*.xml"
check_name: "bebop nextest (${{ matrix.chip }})"
report_paths: "${{ env.BB_ROOT }}/log/*-${{ matrix.design }}-bebop-*-device-${{ matrix.config }}-*/junit.xml"
check_name: "bebop regression (${{ matrix.design }})"
detailed_summary: true
include_passed: true

- name: Upload bebop JUnit artifacts
if: always() && (matrix.run_bemu_tests || matrix.run_verilator_tests) && steps.junit.outputs.found == 'true'
if: always() && (matrix.run_bemu_tests || matrix.run_verilator_tests)
uses: actions/upload-artifact@v4
# The runner host has no DNS of its own; uploads go through the proxy.
env:
ALL_PROXY: ""
HTTP_PROXY: ""
HTTPS_PROXY: ""
NO_PROXY: github.com,api.github.com,uploads.github.com,objects.githubusercontent.com,.blob.core.windows.net
HTTP_PROXY: http://127.0.0.1:7890
HTTPS_PROXY: http://127.0.0.1:7890
NO_PROXY: localhost,127.0.0.1,::1
with:
name: bebop-nextest-junit-${{ matrix.chip }}
path: "~/Code/buckyball/bebop/target/${{ matrix.chip }}/nextest/junit-bbdev-*.xml"
name: bebop-junit-${{ matrix.design }}
path: "${{ env.BB_ROOT }}/log/*-${{ matrix.design }}-bebop-*-device-${{ matrix.config }}-*/junit.xml"
if-no-files-found: error

- name: Exit repo lock
if: always()
Expand Down
Loading
Loading