Skip to content

Commit 52c29fe

Browse files
timboettigerclaude
andcommitted
docs: record measured spike fit results (fits; timing failure pre-existing)
Quartus 21.1 baseline vs spike, apples-to-apples: - infra costs +49 ALMs, +18 M10K blocks (the two controller FIFOs) - 38% ALM and 18% M10K headroom remain for full per-chip serialization - master already fails timing (-3.985 ns); spike not in any critical path Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 78e0a38 commit 52c29fe

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

‎SPIKE-SAVESTATE.md‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,31 @@
44
> **Passt die Savestate-Infrastruktur überhaupt in den FPGA?** Er liefert noch
55
> kein spielbares Sleep/Wake.
66
7+
## Ergebnis (Quartus 21.1, gemessen 2026-06-22)
8+
9+
**Es passt — und der Spike kostet fast nichts.** Apples-to-apples gegen sauberes
10+
`master` (gleicher Workflow, gleiches Quartus):
11+
12+
| Metrik | master | Spike | Δ |
13+
|---|---|---|---|
14+
| Logic (ALMs) | 11.380 (62 %) | 11.429 (62 %) | **+49** |
15+
| Register | 11.096 | 11.544 | +448 |
16+
| Block-RAM-Bits | 1.862.528 (59 %) | 1.993.856 (63 %) | +131.328 |
17+
| RAM-Blöcke (M10K) | 235 (76 %) | 253 (82 %) | **+18** |
18+
| DSP-Blöcke | 26 | 26 | 0 |
19+
| Worst Setup Slack | **-3.985 ns** | -4.409 ns | -0.424 ns |
20+
21+
- **Fit:** ja. Die Infrastruktur (Controller + 2 FIFOs + VRAM-Walker) kostet nur
22+
**+49 ALMs** und **+18 M10K-Blöcke** (die FIFOs). Es bleiben 38 % ALM und 18 %
23+
M10K frei für die volle Chip-Serialisierung — die ist ALM-lastig, BRAM-arm, der
24+
M10K-Druck bleibt also ~hier.
25+
- **Timing:** `master` **verfehlt das Timing schon ohne den Spike** (-3.985 ns auf
26+
dem SNES-Compute-Takt `general[1]`). Der Spike taucht in **keinem** kritischen
27+
Pfad auf (STA-Report: 0 Treffer für `ss_spike`/`save_state_controller`); die
28+
-0.42 ns extra sind Routing-Congestion auf ohnehin verletzten Kern-Pfaden. Die
29+
volle Variante gated den Core-Takt während `ss_busy` und nimmt ihn damit aus dem
30+
Timing-Druck.
31+
732
## Worum es geht
833

934
Auf der Analogue Pocket ist „Sleep & Wake / Memories" **technisch identisch mit

0 commit comments

Comments
 (0)