Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
680c9a3
Add module services API
desmonddak Sep 4, 2026
7b5b587
Close waveform sink before test cleanup
desmonddak Sep 10, 2026
38b2231
fix tutorial headers
desmonddak Sep 15, 2026
2ce9db2
lint issues with deprecation
desmonddak Sep 15, 2026
ce3ed7b
restore creation dates
desmonddak Sep 15, 2026
d2f570b
Ignore Visual Studio Code documentation link
desmonddak Sep 15, 2026
f6e98fb
Pin material UI before unsupported language features
desmonddak Sep 15, 2026
90f408f
document pin for material_ui
desmonddak Sep 15, 2026
a3e9d89
document pin for material_ui in devtools
desmonddak Sep 15, 2026
34b73e3
waveforms should not buffer by default, better service registration m…
desmonddak Sep 16, 2026
e2eb743
waveform service stores on demand only, service registration reworked
desmonddak Sep 16, 2026
d1251f6
need to thread option for waveform in memory for debug
desmonddak Sep 17, 2026
f7bcf4f
Stop pinning material_ui below main
desmonddak Sep 17, 2026
2d69d02
Constrain Material UI to compatible releases
desmonddak Sep 18, 2026
ae4c4b6
Pin Cupertino UI for DevTools CI
desmonddak Sep 18, 2026
8fb1559
Use compatible Flutter SDK for DevTools CI
desmonddak Sep 18, 2026
0389726
test: suppress expected Verilator filename warning
desmonddak Sep 18, 2026
9f87b1d
fix: notify waveform hooks of window snapshots
desmonddak Sep 18, 2026
fd8db1a
docs: clarify netlist module ownership
desmonddak Sep 18, 2026
285b4a5
fix: preserve netlist version across views
desmonddak Sep 18, 2026
f86d0bd
fix: align module service contracts
desmonddak Sep 18, 2026
1a1b884
style: wrap netlist JSON documentation
desmonddak Sep 18, 2026
252fefb
test: reduce Verilator array matrix size
desmonddak Sep 18, 2026
c58c94d
test: reduce Verilator array matrix size
desmonddak Sep 18, 2026
ee7f45a
test: correct LogicArray interface width
desmonddak Sep 18, 2026
b6c7808
test-time reduction
desmonddak Sep 18, 2026
521b15d
remove retainInMemory, test for not gate example stripping cell conne…
desmonddak Sep 30, 2026
a40d8e9
Add FST waveform writing and block reading support
desmonddak Sep 4, 2026
02cc2ad
streaming waveform fix
desmonddak Sep 17, 2026
4309fc0
Keep waveform service current registry-backed
desmonddak Sep 18, 2026
385736a
fix: preserve window snapshots with waveform writers
desmonddak Sep 18, 2026
d0aa620
feat: add FST waveform query provider
desmonddak Sep 18, 2026
2229b61
test: isolate waveform registry artifacts
desmonddak Sep 18, 2026
af33b24
style: resolve FST analyzer lints
desmonddak Sep 18, 2026
b0b48cb
Align FST material_ui with main
desmonddak Sep 18, 2026
a0ac20c
Revert "Align FST material_ui with main"
desmonddak Sep 18, 2026
5a384ac
fst/vcd round-trip
desmonddak Sep 30, 2026
2d52a81
Add SystemC generation, runtime, and module service
desmonddak Sep 4, 2026
f023002
unnecessary import
desmonddak Sep 4, 2026
16166f9
fix deprecation lint
desmonddak Sep 15, 2026
ec64d2f
Add structure flattening for source debug
desmonddak Sep 10, 2026
f724fbc
Add source-level debug, waveform data, and hierarchy navigation
desmonddak Sep 4, 2026
f93e39f
remove unneed migration doc
desmonddak Sep 4, 2026
40e65ce
tests move to vm only
desmonddak Sep 4, 2026
c23e61d
streaming waveform fix
desmonddak Sep 17, 2026
56f9d1c
fix: query FST waveforms through provider
desmonddak Sep 18, 2026
80fd26a
docs: add source debug copyright headers
desmonddak Sep 18, 2026
84d1a41
fix: restore source debug service contracts
desmonddak Sep 18, 2026
8223dff
fix: add hierarchy port count assertion message
desmonddak Sep 19, 2026
5473667
chore: release rohd_hierarchy 0.2.0
desmonddak Sep 19, 2026
5a28692
rebased and resolved conflicts
desmonddak Oct 2, 2026
155825f
temporary fixes to allow this PR to run through -- publishes new package
desmonddak Oct 2, 2026
e11b6d8
packages with local changes cannot be marked to publish
desmonddak Oct 2, 2026
e37874b
check_tmp_test failure
desmonddak Oct 2, 2026
5abc96b
fix run checks shell test fixture
desmonddak Oct 2, 2026
0a43a1b
CHANGELOG match version for rohd_hierarchy
desmonddak Oct 2, 2026
25ed27b
Add ROHD design shell and DevTools frontend
desmonddak Sep 4, 2026
0b11727
fix deprecation lint
desmonddak Sep 15, 2026
d34cba0
documentation update
desmonddak Sep 15, 2026
f99c450
Keep DevTools overlay out of design shell branch
desmonddak Sep 15, 2026
93cd01b
Keep shell diagnostics tests out of design shell PR
desmonddak Sep 15, 2026
aba0dd0
Restore self-contained shell command registry test
desmonddak Sep 15, 2026
53a8ce3
registry cannot run on Node due to systemTemp call
desmonddak Sep 16, 2026
76bd2f8
Remove obsolete cupertino_ui override
desmonddak Sep 17, 2026
43cc40b
Align design shell SDK constraints
desmonddak Sep 18, 2026
1d4f230
fix: resolve design shell devtools dependencies
desmonddak Sep 18, 2026
da2459b
fix: remove stale DevTools HCL override
desmonddak Sep 18, 2026
12debc5
Align design-shell material_ui with main
desmonddak Sep 18, 2026
3a94a1d
Revert "Align design-shell material_ui with main"
desmonddak Sep 18, 2026
41b8358
fix: resolve app bar overlay rebase conflict
desmonddak Sep 19, 2026
3fd300d
fix: remove unavailable DevTools dependencies
desmonddak Sep 19, 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
5 changes: 4 additions & 1 deletion .github/configs/mlc_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
"pattern":"^https://docs.cocotb.org/en/stable/$"
},
{
"pattern":"^https://www.nandland.com"
"pattern": "^https://code\\.visualstudio\\.com/"
},
{
"pattern": "^https://www.nandland.com"
},
{
"pattern":"^https://.*\\.fandom\\.com"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_devtool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: flutter-actions/setup-flutter@v2
with:
channel: stable
version: 3.44.0
version: 3.47.2

- name: Run Flutter Test
run: tool/gh_actions/devtool/run_devtool_test.sh
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,29 @@ jobs:

- name: Install software - Verilator
run: bash tool/gh_actions/install_verilator.sh
- name: Install software - Accellera SystemC
run: tool/gh_actions/install_systemc.sh

- name: Pre-build SystemC PCH and Makefile
run: tool/gh_actions/setup_systemc_pch.sh

- name: Run project tests
run: tool/gh_actions/run_tests.sh

- name: Clean SystemC temporary files
run: tool/gh_actions/cleanup_systemc_tmp.sh

- name: Check temporary test files
run: tool/gh_actions/check_tmp_test.sh

# https://github.com/devcontainers/ci/blob/main/docs/github-action.md
- name: Build dev container and run tests in it
uses: devcontainers/ci@v0.3
with:
runCmd: ROHD_REQUIRE_VERILATOR=1 tool/gh_actions/run_tests.sh
runCmd: |
ROHD_REQUIRE_VERILATOR=1 tool/gh_actions/run_tests.sh
tool/gh_actions/cleanup_systemc_tmp.sh
tool/gh_actions/check_tmp_test.sh

shell-regression-tests:
name: Shell Regression Tests
Expand Down Expand Up @@ -215,7 +226,7 @@ jobs:
uses: flutter-actions/setup-flutter@v2
with:
channel: stable
version: 3.44.0
version: 3.47.2

- name: Run Flutter Test
run: tool/gh_actions/devtool/run_devtool_test.sh
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## Next Release

- Released `rohd_hierarchy` 0.2.0 with the hierarchy query and netlist
adapter APIs.

## 0.6.11

- Added `NetlistSynthesizer` for generating JSON netlists, with configurable synthesis passes, validation, and hierarchy support (<https://github.com/intel/rohd/pull/675>).
Expand All @@ -13,6 +18,24 @@
- Improved generated SystemVerilog to inline packed `Logic.assignSubset` connections into submodule inputs (<https://github.com/intel/rohd/pull/711>).
- Fixed a bug where isolated bit drivers could be lost beside collapsed ranges (<https://github.com/intel/rohd/pull/711>).

- Added the `ModuleService` API for module-scoped generation, capture, and
inspection services. `ModuleServices` registers and looks up services for a
built module hierarchy, and `hierarchyJson` exposes its hierarchy as JSON.
- Added `ArtifactProducingService` and `ModuleServiceArtifact` for
transport-neutral output. Artifact-producing services default
`outputDirectory` to the current directory and `outputBaseName` to the
module definition name, and expose named, media-typed byte streams without
requiring filesystem output.
- Added `SystemVerilogService` for configured SystemVerilog synthesis,
in-memory source output, artifact inspection, and explicit directory writes.
Added `WaveformService` for in-memory waveform capture with optional file
writing through `writeToFile`.
- Added legacy-compatible `Module.dumpSystemVerilog` and `Module.dumpWaves`
convenience methods. `dumpSystemVerilog()` returns simple in-memory output;
`dumpWaves()` provides standard VCD capture as the replacement for
`WaveDumper`. `WaveDumper` and `generateSynth` are deprecated in favor of
these `Module` methods.

## 0.6.10

- Improved `Logic.replicate(1)` and same-width `signExtend` to return the original signal, eliminating redundant replication modules and generated SystemVerilog (<https://github.com/intel/rohd/pull/689>).
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Anyone interested in participating in ROHD is more than welcome to help!

## Code of Conduct

ROHD adopts the [Contributor Covenant](https://www.contributor-covenant.org/) v2.1 for the code of conduct. It can be accessed [here](CODE_OF_CONDUCT.md).
ROHD adopts the [Contributor Covenant](https://www.contributor-covenant.org/) v2.1 for the [Code of Conduct](CODE_OF_CONDUCT.md).

## Getting Help

Expand Down Expand Up @@ -126,7 +126,7 @@ Please include the SPDX tag near the top of any new files you create:
Here is an example of a recommended file header template:

```dart
// Copyright (C) 2021-2023 Intel Corporation
// Copyright (C) 2021-2026 Intel Corporation
// SPDX-License-Identifier: BSD-3-Clause
//
// example.dart
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
[![Chat](https://img.shields.io/discord/1001179329411166267?label=Chat)](https://discord.gg/jubxF84yGw)
[![License](https://img.shields.io/badge/License-BSD--3-blue)](https://github.com/intel/rohd/blob/main/LICENSE)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/intel/rohd/blob/main/CODE_OF_CONDUCT.md)
[![Coverage](https://raw.githubusercontent.com/intel/rohd/refs/heads/badges/coverage/main.svg)](https://github.com/intel/rohd/blob/main/.github/workflows/coverage.yml)

ROHD (pronounced like "road") is a framework for describing and verifying hardware in the Dart programming language.

Expand Down Expand Up @@ -44,8 +43,8 @@ You can also open this repository in a GitHub Codespace to run the example in yo
- Easy **IP integration** and **interfaces**; using an IP is as easy as an import. Reduces tedious, redundant, and error prone aspects of integration
- **Simple and fast build**, free of complex build systems and EDA vendor tools
- Can use the excellent pub.dev **package manager** and all the packages it has to offer
- Built-in event-based **fast simulator** with **4-value** (0, 1, X, and Z) support and a **waveform dumper** to .vcd file format
- Conversion of modules to equivalent, human-readable, structurally similar **SystemVerilog** for integration or downstream tool consumption
- Built-in event-based **fast simulator** with **4-value** (0, 1, X, and Z) support and a **waveform capture service** to .vcd or .fst file format
- Conversion of modules to equivalent, human-readable, structurally similar **SystemVerilog** and **SystemC** for integration or downstream tool consumption
- **Run-time dynamic** module port definitions (numbers, names, widths, etc.) and internal module logic, including recursive module contents
- Leverage the [ROHD Hardware Component Library (ROHD-HCL)](https://github.com/intel/rohd-hcl) with reusable and configurable design and verification components.
- Simple, free, **open source tool stack** without any headaches from library dependencies, file ordering, elaboration/analysis options, +defines, etc.
Expand All @@ -69,5 +68,6 @@ One of ROHD's goals is to help grow an open-source community around reusable har
ROHD is under active development. If you're interested in contributing, have feedback or a question, or found a bug, please see [CONTRIBUTING.md](https://github.com/intel/rohd/blob/main/CONTRIBUTING.md).

----------------

Copyright (C) 2021-2026 Intel Corporation
SPDX-License-Identifier: BSD-3-Clause
4 changes: 2 additions & 2 deletions benchmark/many_submodules_benchmark.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2024 Intel Corporation
// Copyright (C) 2024-2026 Intel Corporation
// SPDX-License-Identifier: BSD-3-Clause
//
// many_submodules_benchmark.dart
Expand Down Expand Up @@ -33,7 +33,7 @@ class ManySubmodulesBenchmark extends AsyncBenchmarkBase {
Future<void> run() async {
final dut = ManySubmodulesModule(Logic(), numSubModules: 10000);
await dut.build();
dut.generateSynth();
dut.dumpSystemVerilog();
}
}

Expand Down
4 changes: 2 additions & 2 deletions benchmark/wave_dump_benchmark.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2023 Intel Corporation
// Copyright (C) 2023-2026 Intel Corporation
// SPDX-License-Identifier: BSD-3-Clause
//
// wave_dump_benchmark.dart
Expand Down Expand Up @@ -56,7 +56,7 @@ class WaveDumpBenchmark extends AsyncBenchmarkBase {
_mod = _ModuleToDump(Logic(), _clk);
await _mod.build();

WaveDumper(_mod, outputPath: _vcdTemporaryPath);
_mod.dumpWaves(outputPath: _vcdTemporaryPath);

await Simulator.run();

Expand Down
6 changes: 6 additions & 0 deletions dart_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ tags:
timeout: 2x
verilator:
timeout: 5m
ffi:
# Tests requiring dart:ffi and native shared libraries.

presets:
no-ffi:
exclude_tags: ffi
4 changes: 2 additions & 2 deletions doc/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The `Simulator` acts as a statically accessible driver of the overall simulation

### Synthesizer

A separate type of object responsible for taking a `Module` and converting it to some output, such as SystemVerilog.
A separate type of object responsible for taking a `Module` and converting it to some output, such as SystemVerilog or SystemC.

## Organization

Expand All @@ -44,7 +44,7 @@ Contains a collection of `Module` implementations that can be used as primitive

### Synthesizers

Contains logic for synthesizing `Module`s into some output. It is structured to maximize reusability across different output types (including those not yet supported).
Contains logic for synthesizing `Module`s into some output (e.g. SystemVerilog, SystemC). It is structured to maximize reusability across different output types.

### Utilities

Expand Down
Loading
Loading