Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e44ef3e
Add FST waveform writing and block reading support
desmonddak Sep 4, 2026
2cb649c
streaming waveform fix
desmonddak Sep 17, 2026
32840cb
Keep waveform service current registry-backed
desmonddak Sep 18, 2026
bbc9f3d
fix: preserve window snapshots with waveform writers
desmonddak Sep 18, 2026
4d786f9
feat: add FST waveform query provider
desmonddak Sep 18, 2026
24e8cb5
test: isolate waveform registry artifacts
desmonddak Sep 18, 2026
8533355
style: resolve FST analyzer lints
desmonddak Sep 18, 2026
201eb14
Align FST material_ui with main
desmonddak Sep 18, 2026
787a971
Revert "Align FST material_ui with main"
desmonddak Sep 18, 2026
9ed5870
fst/vcd round-trip
desmonddak Sep 30, 2026
cc1b74a
cleanup formatting
desmonddak Oct 5, 2026
89a723f
fix: preserve waveform service compatibility
desmonddak Oct 5, 2026
e81e4d4
Add SystemC generation, runtime, and module service
desmonddak Sep 4, 2026
2dc2b2a
unnecessary import
desmonddak Sep 4, 2026
a870da1
fix deprecation lint
desmonddak Sep 15, 2026
c4e0d28
cleanup formatting
desmonddak Oct 5, 2026
d85b7fa
fix: allow absent temporary test directory
desmonddak Oct 5, 2026
d452d15
fix: keep split packed submodule outputs named for SystemC
desmonddak Oct 7, 2026
ddc448a
Add structure flattening for source debug
desmonddak Sep 10, 2026
70becfb
Add source-level debug, waveform data, and hierarchy navigation
desmonddak Sep 4, 2026
c697ab0
remove unneed migration doc
desmonddak Sep 4, 2026
45c6847
tests move to vm only
desmonddak Sep 4, 2026
6cdd857
streaming waveform fix
desmonddak Sep 17, 2026
0f8fa70
fix: query FST waveforms through provider
desmonddak Sep 18, 2026
72b59e9
docs: add source debug copyright headers
desmonddak Sep 18, 2026
470a128
fix: restore source debug service contracts
desmonddak Sep 18, 2026
c32f029
fix: add hierarchy port count assertion message
desmonddak Sep 19, 2026
c72c217
chore: release rohd_hierarchy 0.2.0
desmonddak Sep 19, 2026
cbf3e53
rebased and resolved conflicts
desmonddak Oct 2, 2026
efc4830
temporary fixes to allow this PR to run through -- publishes new package
desmonddak Oct 2, 2026
1afc7e4
packages with local changes cannot be marked to publish
desmonddak Oct 2, 2026
4ecb79d
CHANGELOG match version for rohd_hierarchy
desmonddak Oct 2, 2026
d59f2ee
cleanup formatting
desmonddak Oct 5, 2026
cf4b7e6
style: remove changelog trailing whitespace
desmonddak Oct 6, 2026
37d93c7
fix: handle split packed outputs in SystemVerilog line maps
desmonddak Oct 7, 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
9 changes: 9 additions & 0 deletions .github/workflows/general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,18 @@ jobs:
- name: Install software - Verilator
if: matrix.platform == 'vm'
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 ${{ matrix.platform }}

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

- name: Check temporary test files
if: always()
run: tool/gh_actions/check_tmp_test.sh
Expand All @@ -132,6 +140,7 @@ jobs:
runCmd: |
set -eu
ROHD_REQUIRE_VERILATOR=1 tool/gh_actions/run_tests.sh ${{ matrix.platform }}
tool/gh_actions/cleanup_systemc_tmp.sh
tool/gh_actions/check_tmp_test.sh

shell-regression-tests:
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

- Fixed `LogicValue.ofRadixString` round trips with empty separators and separators containing regular-expression metacharacters (<https://github.com/intel/rohd/issues/722>).

- 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 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
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