Skip to content

docs: endpoint reg insufficient (internal hazard); MMCM divided clock buildable + ruled-out list (Refs #1764) - #1902

Closed
gHashTag wants to merge 1 commit into
masterfrom
docs/v2-endpoint-insufficient-mmcm-buildable
Closed

docs: endpoint reg insufficient (internal hazard); MMCM divided clock buildable + ruled-out list (Refs #1764)#1902
gHashTag wants to merge 1 commit into
masterfrom
docs/v2-endpoint-insufficient-mmcm-buildable

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Executes the three follow-ups from the last cycle ("все три"):

Variant 2 — endpoint registration (the discriminating cheap test). Register the shared core's endpoints (clean FF operands a_reg/b_reg in, FF result res_reg out) without splitting the deep cloud. Bit-exact in simulation (ep0 = 0 / 0.551 / 0.936 / 0.234 matches the model) and it even raised fmax 21 → 29 MHz by pulling modf out of the core path. But on the AX7203, of 4 seeds two produced dead routes and two glitched from ep0 (explode/collapse) — same as baseline. Conclusion: resynchronising the boundaries is insufficient; the fault lives inside the depth-54 GftSadd cloud, so only the spec-level mid-cascade pipeline closes it. The cheap wrapper fix is ruled out.

Variant 3 — MMCM probe + ruled-out list. A real divided clock is buildable via MMCME2_BASE (nextpnr constrains it to a real MMCME2_ADV bel by dedicated routing and routes the divided output as a genuine clock), unlike fabric BUFG/BUFR. By the Variant-2 result it only adds settle, so it stays a bounded experiment behind the pipeline. Added a consolidated Ruled-out fixes list (wider settle, more settle, tighter timing, fabric divided clock, observability probe, narrowing the multiplier, endpoint registration) so future cycles don't re-run dead ends.

Board restored to the generated capstone (XOR 4/4). Docs-only. Refs #1764

… buildable (Refs #1764)

Variant 2 (discriminating cheap test): registering the shared-core endpoints
(FF operands a_reg/b_reg in, FF result res_reg out) is bit-exact in sim and
raises fmax 21->29 MHz, but on silicon does NOT fix the seed-lottery (of 4
seeds: 2 dead routes, 2 glitch from ep0). So the hazard lives inside the
depth-54 GftSadd cloud; only the spec-level mid-cascade pipeline closes it.
Variant 3 probe: a real divided clock IS buildable via MMCM (MMCME2_BASE places
on a real MMCME2_ADV bel by dedicated routing), unlike fabric BUFG/BUFR — but
by the endpoint result it only adds settle, so it stays a bounded experiment
behind the pipeline. Added a consolidated "Ruled-out fixes" list.

Refs #1764

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

gHashTag commented Aug 7, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #(new) rebased on master (NOW.md conflict with #1899 resolved); no force-push.

@gHashTag gHashTag closed this Aug 7, 2026
@gHashTag
gHashTag deleted the docs/v2-endpoint-insufficient-mmcm-buildable branch August 7, 2026 19:58
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