Skip to content

feat(docs): Vivado closure kit -- the multicycle constraint that kills the seed-lottery (Refs #1764) - #1908

Merged
gHashTag merged 1 commit into
masterfrom
feat/vivado-closure-kit
Aug 8, 2026
Merged

feat(docs): Vivado closure kit -- the multicycle constraint that kills the seed-lottery (Refs #1764)#1908
gHashTag merged 1 commit into
masterfrom
feat/vivado-closure-kit

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 8, 2026

Copy link
Copy Markdown
Owner

The root-cause investigation concluded the seed-lottery is a global placement effect of the open flow's timing-relaxed placement — every local register-based fix failed. The cure is not another register; it is telling a timing-driven place-and-route the truth about the path. nextpnr-xilinx's XDC supports only create_clock, so it cannot express this; Vivado can.

Adds docs/vivado_closure/:

  • bpseq_vivado.xdccreate_clock at 200 MHz plus set_multicycle_path 16 on the shared-core rf → rf (through GftSmul/GftSadd) paths. That path is genuinely multicycle — the microsequencer captures its result only once per cen × settle (~2560) cycles — so Vivado closes it deterministically and the lottery disappears.
  • vivado_build.tcl — batch synth → opt → place → phys_opt → route → bitstream, printing worst setup slack (expect ≥ 0).
  • README.md — run instructions and the rationale.

This converts the documented open-toolchain limitation into a solved problem with the right instrument, and is the prerequisite for training nets larger than XOR (where open-flow seed-search runs out). Vivado does not run on the macOS arm64 dev host, so the kit is authored for the user's Vivado environment. The methodology write-up points to it.

Docs/scripts only. Refs #1764

…s the seed-lottery (Refs #1764)

The root-cause arc concluded the seed-lottery is a global placement effect of
the open flow's timing-relaxed placement; the cure is a timing-driven P&R that
can hear a multicycle constraint. nextpnr-xilinx XDC supports only
create_clock, so it cannot; Vivado can. Adds docs/vivado_closure/ with an XDC
(create_clock 200 MHz + set_multicycle_path 16 on the shared-core rf->rf
through-core paths, which are genuinely multicycle -- captured once per
cen*settle ~2560 cycles), a batch build tcl, and a README. Converts the
documented open-toolchain limitation into a solved problem with the right
instrument; prerequisite for nets > XOR.

Refs #1764

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-08 03:15:36 UTC

Summary

Status Count
Total Open PRs 14
PRs with Failing Checks 1
PRs with All Checks Green 13
READY 5
FAILING 1
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=2bd87d0d139e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 2f0ad83 into master Aug 8, 2026
17 checks passed
@gHashTag
gHashTag deleted the feat/vivado-closure-kit branch August 8, 2026 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant