Repository navigation
feat(xilinx7): open prjxray-db digest, flow.t27 and a symmetric L3 bench (Closes #6068) - #6072
Conversation
…nch (Closes #6068) - specs/xilinx7/fasm_digest.py: the digest bitwalk --fasm reads, standard library only. bitwalk --fasm with it matches fasm2frames on 42/42 xc7a200t AX7203 builds. - specs/xilinx7/flow.t27: the #/devkit flow arithmetic (best/worst of N, speedup, share, Amdahl ceiling, hours a year, range verdict); 8/8 tests, sealed; vectors in conformance/xilinx7_flow.json replayed by the new `bitwalk --flow`. - specs/xilinx7/l3_bench.py + xilinx7-l3-bench workflow: fasm2frames (textX and antlr), xc7frames2bit, fpga-as and bitwalk, N rotated runs each, bytes compared first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fs; classify the workflow (Refs #6068) - l3_bench.py: xc7frames2bit writes the frames path it was given into the .bit header, so every .bit now compares from the sync word on (bitwalk's also whole, given that header). The first CI run had all .frames equal for bitwalk and both fasm2frames parsers, and failed only on that header. Every tool is timed; one with other bytes is marked and its frame diff kept in bench.json. fpga-as wrote other .frames: that is what the diff is for. - check_pr_branch_filters.py: xilinx7-l3-bench.yml is not merge-critical (it measures). - Census moved: `tri census pin` quiet and shell, "workflow files read" 61 -> 62, because this PR adds .github/workflows/xilinx7-l3-bench.yml. Re-blessed here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
spec-guards: red for a reason this PR does not touch. Its failing step reports ring-096-rust DRIFTED against specs/numeric/formats.t27 (f32_to_gf16, gf16_to_f32, ...), and spec-guards is red on master too (runs at 2e852cf, 0886f01, b1e3c15 on 2026-10-04). This PR changes no ring and no specs/numeric file. gate-topology and cli-tri are fixed in 0f32e7e; bench: see the same commit. |
PR DashboardGenerated at: 2026-10-04 13:44:38 UTC
Summary
Seal Status
|
|
duplicate-bodies: not from this PR. The four groups it names (local_branch, nested_tail, ordinary_if, wide_tail) are in specs/compiler/rust_tail_returns.t27 and specs/compiler/verilog_branch_context.t27, both on master; the dupe-ratchet workflow is red on master at 2e852cf and 0886f01. On this branch alone (merge-base) tools/dupe_scan.py prints ok. This PR adds no function to either file. |
…format differs (Refs #6068) The second CI run (runs 37206598855): bitwalk's .frames equal fasm2frames' and its .bit equals xc7frames2bit's from the sync word on, on all 4 files. Two comparisons were wrong: - bitwalk's whole-file .bit check lacked xc7frames2bit's header date and time; it now reads them from the reference header (checked locally: whole file identical). - fpga-as --dump_frames_file is sparse (only the frames it wrote); bits_differ was 0 on the frames both have. Frames now also compare as nonzero sets, and a .bit with another stream is walked with `bitwalk --frames` to ask whether it loads the same frames. `bitwalk --flow-runs` totals per stage (L3, L3+L4), each tool over the files it ran: the previous single sum mixed the stages and gave fpga-as a false 145x. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR DashboardGenerated at: 2026-10-04 14:37:36 UTC
Summary
Seal Status
|
The L3+L4 sums of run 37206598855 imply bitwalk --write ~343 ms against xc7frames2bit ~244 ms per file, but only as a difference; L4 now gets its own runs so flow.t27's range verdict can judge it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR DashboardGenerated at: 2026-10-04 14:38:23 UTC
Summary
Seal Status
|
Conflict in tools/census/shell.txt only, re-blessed on the merged tree with `tri census pin --bless`. Census moved: shell "run: steps" 277 (this branch) / 270 (master) -> 278 and "the runner does" 256 / 249 -> 257, because master changed loop-tools-gate.yml and pr-dashboard.yml and this branch adds xilinx7-l3-bench.yml; "workflow files read" stays 62 (61 on master + this branch's workflow). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR DashboardGenerated at: 2026-10-04 16:32:17 UTC
Summary
Seal Status
|
Closes #6068. Refs gHashTag/trinity#1272 (third box: the digest without the local helper).
What
specs/xilinx7/fasm_digest.py-- the prjxray-db digestbitwalk --fasmreads, from the Python standard library only.specs/xilinx7/flow.t27-- the arithmetic of the t27.ai/#/devkit flow table in integer ms (best/worst of N, replaced layer, saved, speedup and share half up, Amdahl ceiling, tenths of an hour a year, and a range verdict: faster only if the rewrite's slowest run beats the old tool's fastest). Sealed (.trinity/seals/xilinx7_xilinx7_flow.json).conformance/xilinx7_flow.json-- 16 vectors, replayed by the newbitwalk --flow;bitwalk --flow-runsturns a runs file into the table, every number throughflow.rs.specs/xilinx7/l3_bench.py+.github/workflows/xilinx7-l3-bench.yml-- one runner, fasm2frames as openXC7 ships it (textX parser) and with fasm's antlr parser, xc7frames2bit, fpga-assemblerfpga-as(pinned 50c18800) and bitwalk; N rotated runs each;.frames/.bitbyte-compared before timing.docs/now/2026-10-04-xilinx7-open-digest-and-l3-bench.md.Checked
bitwalk --fasm+ open digest vs the openXC7 image's fasm2frames: 42/42 xc7a200t AX7203 builds byte-identical (local, prjxray-db a90f27c1).t27c test-report specs/xilinx7/flow.t27: 8/8 (zig 0.16.0). Mutation: 9 of 10 killed, 1 equivalent.bitwalk --flow conformance/xilinx7_flow.json: 16/16; a wrong expectation turns it red.t27c seal --savewith./target/release/t27cbuilt in this tree;tools/check_json_parses.py,tools/ci/check_specs_still_parse.py(base merge-base) OK;tools/check_seal_coverage.pyOK.xilinx7 L3 benchrun, added below when it is green.🤖 Generated with Claude Code