Skip to content

feat(sv)!: execute clocked Boolean concurrent assertions - #2408

Merged
mergify[bot] merged 2 commits into
masterfrom
feat/sv-concurrent-assertions
Oct 28, 2026
Merged

mergify[bot] merged 2 commits into
masterfrom
feat/sv-concurrent-assertions

Conversation

@tignear

@tignear tignear commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Explicitly clocked Boolean assert property, assume property, and cover property now execute in module and generate scopes. Predicates use Preponed samples, disable iff reads the live value after NBA, and all Observed decisions finish before Reactive actions execute. Actions read live values.

This is the initial single-cycle subset. Named properties/sequences, temporal operators (##, implication, repetition), default clocks, procedural concurrent assertions, and timed or nonblocking action statements remain unsupported and diagnosed. It does not implement full SVA.

The runtime preserves pending Observed work across stop/resume and portable state files, validates restored region membership, and supports native images. Native image format advances to 52; state files with pending Observed work use version 4, while older versions remain readable.

Validation on master d8a6d72: full SV 6,233 passed (20 existing ignored), affected units 1,130 passed, new API 5 passed, state/checkpoint/fork regressions 90 passed, retained-report checks 4 passed, Clippy, and JS 435 passed. Before synchronization, the official unmodified sv-tests runner: 52 chapter-16 verdicts checked, six fail-to-pass improvements and no regressions. The complete CI run 40652055752 additionally verified the generated $sampled case in both state modes: eight expected verdicts improve in total. After retaining those two additional successes, all 3,300 official CI verdicts match expectations; there are no regressions.

External checks retain strict assertions and standalone Top/Wrapped evidence. Verilator passes two cases, disagrees on two scheduling cases, and cannot exercise the four-state case. Icarus rejects the five concurrent assertion cases. Installed xezim passes four and disagrees on Observed/Reactive ordering for one; its exact binary provenance is retained. The pinned xezim build was unavailable due to its dependency-lock mismatch, so these results do not claim current-pin coverage.

Independent change based on master; no dependency on another open PR.

Explicitly clocked Boolean `assert property`, `assume property`, and `cover property` now execute in module and generate scopes. Predicates use Preponed samples, `disable iff` reads the live value after NBA, and all Observed decisions finish before Reactive actions execute. Actions read live values.

This is the initial single-cycle subset. Named properties/sequences, temporal operators (`##`, implication, repetition), default clocks, procedural concurrent assertions, and timed or nonblocking action statements remain unsupported and diagnosed. It does not implement full SVA.

The runtime preserves pending Observed work across stop/resume and portable state files, validates restored region membership, and supports native images. Native image format advances to 52; state files with pending Observed work use version 4, while older versions remain readable.

Validation on master d8a6d72: full SV 6,233 passed (20 existing ignored), affected units 1,130 passed, new API 5 passed, state/checkpoint/fork regressions 90 passed, retained-report checks 4 passed, Clippy, and JS 435 passed. Before synchronization, the official unmodified sv-tests runner: 52 chapter-16 verdicts checked, six fail-to-pass improvements and no regressions. Only those six expected verdicts change.

External checks retain strict assertions and standalone Top/Wrapped evidence. Verilator passes two cases, disagrees on two scheduling cases, and cannot exercise the four-state case. Icarus rejects the five concurrent assertion cases. Installed xezim passes four and disagrees on Observed/Reactive ordering for one; its exact binary provenance is retained. The pinned xezim build was unavailable due to its dependency-lock mismatch, so these results do not claim current-pin coverage.

Independent change based on master; no dependency on another open PR.

Change-Id: I42c683a7842ade2dc5320c44f23d5dca3952084b
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T07:46:59.243038Z 7db845a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@tignear tignear added the merge-ready Request merging through Mergify after required checks label Oct 28, 2026
The complete official sv-tests CI corpus also passes the generated 20.13 sampled-function case in both state modes. The chapter-16 focused preflight did not include this generated group. Both official simulation logs report rc=0 and PASS; all 3300 retained verdicts match CI run 40652055752 after updating these two rows.

Change-Id: I82b9bda60aba4389c372970ebe8c6abc862e7d7e
@mergify mergify Bot added the queued Mergify queue entry label Oct 28, 2026
@mergify

mergify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

✅ Merged into master as e7ec496 at 09:49 UTC

27 min in the queue, 25 min of it CI.

So far

Merge conditions: 7 of 7 met

The batch, tested on draft #2418

Condition Required by
✅ check-success = Conventional Commit title —
✅ check-success = Queue validation —
✅ any of: check-success = @github-actions/Lint & Format, check-neutral = @github-actions/Lint & Format, check-skipped = @github-actions/Lint & Format GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Rust Test & NAPI Build, check-neutral = @github-actions/Rust Test & NAPI Build, check-skipped = @github-actions/Rust Test & NAPI Build GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/JS Test (Ubuntu), check-neutral = @github-actions/JS Test (Ubuntu), check-skipped = @github-actions/JS Test (Ubuntu) GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Conventional Commit title, check-neutral = @github-actions/Conventional Commit title, check-skipped = @github-actions/Conventional Commit title GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Queue validation, check-neutral = @github-actions/Queue validation, check-skipped = @github-actions/Queue validation GitHub repository ruleset rule master

Times in UTC · dashboard · how the merge queue works

@mergify
mergify Bot merged commit e7ec496 into master Oct 28, 2026
23 checks passed
@mergify
mergify Bot deleted the feat/sv-concurrent-assertions branch October 28, 2026 09:49
@mergify mergify Bot removed the queued Mergify queue entry label Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-ready Request merging through Mergify after required checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant