Skip to content

docs: localize shared-core deep path (GftSadd=54, GftSmul=44) — pipeline the RNE cascade (Refs #1764) - #1898

Merged
gHashTag merged 1 commit into
masterfrom
docs/deep-path-localized-sadd54-smul44
Aug 7, 2026
Merged

docs: localize shared-core deep path (GftSadd=54, GftSmul=44) — pipeline the RNE cascade (Refs #1764)#1898
gHashTag merged 1 commit into
masterfrom
docs/deep-path-localized-sadd54-smul44

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Measures where the shared-core critical combinational depth actually is, so the eventual pipeline cut lands in the right place instead of guessing.

  • GftSmul is purely combinational (assign result = smul(a,b); the clk/en/ready ports are unused) — so there is no read-before-ready handshake bug.
  • Yosys ltp (longest topological path): GftSadd = 54, GftSmul = 44.
  • The depth is not the multiplier width: magmul's * lowers to a 32-iteration shift-add, but its operands are 512+mant ∈ [512,1023] (10-bit), so yosys already prunes the dead upper iterations. Hand-narrowing the loop to 10 leaves the depth unchanged (44 → 45) and area flat — a dead end, tested before touching the verified spec (observe-before-mutate).
  • The real depth is the dependent normalize/round cascade: magsub's 4-stage priority-shift + <<14 fixed-point + round-to-nearest-even in GftSadd, and magmul's post-product RNE carry in GftSmul.

Concrete pipeline cut (for the Variant-1 work): split each cascade into two registered stages (~27 / ~22 deep), which both halves the path and resynchronises it (killing the placement hazard); the microsequencer then waits a fixed 2-cycle latency instead of a settle counter. The ~47 ns nominal path is already ~100× under the µs settle window, which is why the glitch is a placement hazard a static-timing fix cannot see.

Docs-only; no code or gate changes. Refs #1764

#1764)

Measured the critical logic depth so the eventual pipeline cut lands in the
right place. GftSmul is purely combinational (no read-before-ready bug). Yosys
ltp: GftSadd=54, GftSmul=44. The depth is NOT the multiplier width — magmul's
32-iteration shift-add has 10-bit operands (512+mant), so yosys prunes the dead
upper iterations; hand-narrowing to 10 leaves depth unchanged (44->45), a dead
end (tested before touching the verified spec). The real depth is the dependent
normalize/round cascade (magsub priority-shift + <<14 + RNE; magmul post-product
RNE). Concrete pipeline cut: split each cascade into two registered stages
(~27/~22), which halves the path AND resynchronises it (kills the placement
hazard). Reinforces that the ~47ns nominal path is ~100x under the settle
window, so the glitch is a hazard static timing can't see.

Refs #1764

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

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-07 19:40:41 UTC

Summary

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=f74459fc23c3 != 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).

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@gHashTag
gHashTag merged commit 06059b1 into master Aug 7, 2026
17 checks passed
@gHashTag
gHashTag deleted the docs/deep-path-localized-sadd54-smul44 branch August 7, 2026 19:41
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