Repository navigation
merge queue: checking #1354 on master (9c612b4) - #1357
Closed
mergify[bot] wants to merge 4 commits into
Closed
mergify[bot] wants to merge 4 commits into
mergify[bot] wants to merge 4 commits into
Conversation
Add `run_until`/`run_to_finish` script operations and `Design::timed`, the `timing` SystemVerilog group, and retained Icarus/Verilator results for it. A timed script begins with `run_until` or `run_to_finish`, so no case depends on host inputs staged before time-zero initial blocks, always_ff listeners or variable initializers. The external adapters compile timed designs unchanged: the testbench settles with an Icarus read/write callback or a Verilator clocking event, and a design `$finish` notice before the script reaches `run_to_finish` fails the run. Port shapes of timed designs come from their declarations with process bodies blanked for analysis only. Celox runs the group through a timed `Simulation` with explicit exclusions: the SV analyzer rejects procedural timing controls and plain `always`, host clock writes do not trigger flip-flops, there is no four-state timed read, and only the default backend builds a timed simulation.
- Validate timed sources with the macros each simulator predefines (VERILATOR, VERILATOR_TIMING, __ICARUS__), so guarded scale directives cannot bypass the rejection. - Drop the $finish notice after the finishing marker before splicing the log, so a partial last line before run_to_finish stays comparable. - Reject a first run_until target that reads the design: adapters evaluate it at different points of time zero. - Reject final procedures in timed designs; they run in an arbitrary order relative to the checks after run_to_finish (IEEE 1800-2023 9.2.3).
- Reject timed sources whose preprocessed text depends on the simulator's predefined macros, so the declaration pass that shapes the generated testbench sees exactly what each simulator compiles. - Place the run_to_finish deadline one picosecond past RUN_UNTIL_LIMIT, so a design $finish due exactly at the limit runs before the sentinel instead of racing it in the same time slot.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This is a merge queue draft opened by Mergify. Nobody needs to act on it.
Mergify opened it for batch chemical-cassis-fecfpz of the
changesqueue, to test #1354 before it merges intomaster. Pushing to this branch or closing this pull request removes #1354 from the queue.What this draft tests
Mergify checks that #1354 still passes CI on top of
master. CI runs on this draft's code, built in this order:masterat9c612b4🎉 Where it stands: checks passed
CI passed on this draft.
Follow the
changesqueue in the dashboardWhat happens next
masterand closes this draft.Metadata for CI tooling, read by
mergify ci1 scope
coreRequired conditions of queue rule
changesfor mergecheck-success = Conventional Commit titlecheck-success = Queue validationmaster]:check-success = @github-actions/Lint & Formatcheck-neutral = @github-actions/Lint & Formatcheck-skipped = @github-actions/Lint & Formatmaster]:check-success = @github-actions/NAPI Build (Linux ARM64 GNU)check-neutral = @github-actions/NAPI Build (Linux ARM64 GNU)check-skipped = @github-actions/NAPI Build (Linux ARM64 GNU)master]:check-success = @github-actions/NAPI Build (Windows)check-neutral = @github-actions/NAPI Build (Windows)check-skipped = @github-actions/NAPI Build (Windows)master]:check-success = @github-actions/Rust Test & NAPI Buildcheck-neutral = @github-actions/Rust Test & NAPI Buildcheck-skipped = @github-actions/Rust Test & NAPI Buildmaster]:check-success = @github-actions/JS Test (Ubuntu)check-neutral = @github-actions/JS Test (Ubuntu)check-skipped = @github-actions/JS Test (Ubuntu)master]:check-success = @github-actions/JS Test (Windows)check-neutral = @github-actions/JS Test (Windows)check-skipped = @github-actions/JS Test (Windows)master]:check-success = @github-actions/Conventional Commit titlecheck-neutral = @github-actions/Conventional Commit titlecheck-skipped = @github-actions/Conventional Commit titleRequired conditions to stay in the queue
-draft-head ~= ^(integration/|renovate/veryl-crates$|upgrade/veryl-|release-please--branches--master--components--celox$|master$)-head ~= ^renovate/-label = release:holdbase ~= ^(master|develop)$head != release-please--branches--master--components--celoxlabel = merge-readymaster]:check-success = @github-actions/Lint & Formatcheck-neutral = @github-actions/Lint & Formatcheck-skipped = @github-actions/Lint & Formatmaster]:check-skipped = @github-actions/NAPI Build (Linux ARM64 GNU)check-neutral = @github-actions/NAPI Build (Linux ARM64 GNU)check-success = @github-actions/NAPI Build (Linux ARM64 GNU)master]:check-skipped = @github-actions/NAPI Build (Windows)check-neutral = @github-actions/NAPI Build (Windows)check-success = @github-actions/NAPI Build (Windows)master]:check-success = @github-actions/Rust Test & NAPI Buildcheck-neutral = @github-actions/Rust Test & NAPI Buildcheck-skipped = @github-actions/Rust Test & NAPI Buildmaster]:check-success = @github-actions/JS Test (Ubuntu)check-neutral = @github-actions/JS Test (Ubuntu)check-skipped = @github-actions/JS Test (Ubuntu)master]:check-skipped = @github-actions/JS Test (Windows)check-neutral = @github-actions/JS Test (Windows)check-success = @github-actions/JS Test (Windows)master]:check-success = @github-actions/Conventional Commit titlecheck-neutral = @github-actions/Conventional Commit titlecheck-skipped = @github-actions/Conventional Commit titleQueue graph
The diagram is not laid out in queue order, so a node's position says nothing about when it merges.
graph LR 0e0dcd954f1e4161a9d5528a692f239c["chemical-cassis-fecfpz<br/>#1354<br/>scopes: core"] ba7e14e412f74026938789345905d3e8["single-palmier-8kbzsx<br/>#1358<br/>scopes: core"] 0e0dcd954f1e4161a9d5528a692f239c --> ba7e14e412f74026938789345905d3e8 style 0e0dcd954f1e4161a9d5528a692f239c fill:#6366f1,color:#fff