docs: endpoint reg insufficient (internal hazard); MMCM divided clock buildable + ruled-out list (Refs #1764) - #1903
Merged
Merged
Conversation
… 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>
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
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.
Executes the three follow-ups from the last cycle ("все три").
Variant 2 — endpoint registration (discriminating cheap test). Register the shared core's endpoints (clean FF operands
a_reg/b_regin, FF resultres_regout) 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 pullingmodfout 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-54GftSaddcloud, so only the spec-level mid-cascade pipeline closes it. Cheap wrapper fix ruled out.Variant 3 — MMCM probe + ruled-out list. A real divided clock is buildable via
MMCME2_BASE(nextpnr constrains it to a realMMCME2_ADVbel by dedicated routing and routes the divided output as a genuine clock), unlike fabricBUFG/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 so future cycles don't re-run dead ends.Rebased on latest master (resolved a NOW.md overlap with #1899). Board restored to the generated capstone (XOR 4/4). Docs-only. Refs #1764