Ch443f/Ch443e board validation evidence (compact)

Silicon closeout evidence for the Ch443f scanout CDC hardening (commits 064484c +
4110846). Text/hashes/verdict/samples only — RBFs and framebuffer .mem dumps left
uncommitted (preserved local / on board).

Ch443f board verdict: RBF 59c6372e, fit setup +0.068 / all classes clean, fpga0
operating, CORE_ID 0x50533200 ABI 0x100. 311-epoch f52 replay DONE rc=0 zero
drops, FB byte-identical golden d0047677. Scanout diagnostic 120 samples (60 @
50ms + 60 @ non-harmonic 7ms) all identical: 0x02C=0xD1 (scan-error clear),
0x120=0x18 (qualified valid=0 / underflow=0 / read-error=0 / live pmax=0). The
two phase-sweep logs are byte-identical -> no phase-dependent CDC artifact. The
former residual "underflow" was purely the raw-readiness CDC/sync transient; the
Ch443e 4-buffer/lead-2 already fixed the real lookahead starvation. No fifth
buffer justified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-24 20:11:11 -04:00
parent 4110846c01
commit 7d68577c75
5 changed files with 129 additions and 0 deletions
@@ -0,0 +1,6 @@
sample 1: 0x02C=0x000000D1 0x120=0x00000733 0x124=0x02A0A027
sample 2: 0x02C=0x000000D1 0x120=0x00000D33 0x124=0x03E0F03B
sample 3: 0x02C=0x000000D1 0x120=0x00000130 0x124=0x0421003F
sample 4: 0x02C=0x000000D1 0x120=0x00000D30 0x124=0x06A1A067
sample 5: 0x02C=0x000000F1 0x120=0x00000B30 0x124=0x0DA360D7
sample 6: 0x02C=0x000000D1 0x120=0x00000B30 0x124=0x0AA2A0A7
@@ -0,0 +1 @@
bef7d7bfe83ddcc6368105cd8f46594ef0407a2cdc8c2139a3b26ef0adfef7ff docs/hardware/ch443e_board_validation/retroDE_ps2.ch443e.core.rbf
@@ -0,0 +1,57 @@
# Ch443f board validation
Date: 2026-07-24
Candidate:
- Git commit: `4110846` (`Ch443f timing: preload Z-RMW eviction awaddr at fill`)
- RBF: `retroDE_ps2.ch443f.4110846.core.rbf`
- SHA-256: `59c6372e1cfeba62dccdce860f7ab365255ef32a77c3f7b13909b4c7cff16a87`
- Quartus: 26.1.0 Build 110, Seed 3
Fit acceptance:
- Setup: `+0.068 ns`
- Hold: `0.000 ns`
- Recovery: `+1.080 ns`
- Removal: `+0.003 ns`
- Minimum pulse width: `+0.200 ns`
- RAM: `322 / 358`
- Zero violated paths
Board load:
- Remote candidate hash matched the local artifact.
- `core_loader.sh` reported `Fabric loaded successfully`.
- `fpga0` state: `operating`
- `CORE_ID`: `0x50533200`
- ABI: `0x00000100`
- Board canonical `/home/terasic/cores/retroDE_ps2.core.rbf` was not modified and
remained SHA-256 `56e45346338907eb6c307320757774ac65efa56dabb644906a5600f5ea73a982`.
Functional replay:
- Complete 311-epoch `sh3_zsrt139f52` replay finished `DONE rc=0`.
- Every epoch passed texture CRC, drain, and zero-fragment-drop gates.
- Framebuffer SHA-256:
`d0047677371a0f6e4e319458926f604a8599c92baaf34d09b8e1fd452e31662b`.
- The board framebuffer was byte-identical to the retained Ch443e/golden
framebuffer.
Scanout diagnostic:
- 60 samples at 50 ms spacing plus 60 samples at non-harmonic 7 ms spacing.
- All 120 observations were identical:
- `0x02C = 0x000000D1`: scan-error bit 5 clear.
- `0x120 = 0x00000018`: qualified valid=0, underflow=0, read-error=0,
live `pmax=0`.
- `0x124 = 0x00408020`: stale snapshot payload; ignored because valid=0.
- No fifth line buffer is justified. The Ch443e four-buffer/lead-2 change fixed
the real lookahead starvation; the remaining pre-Ch443f indication was caused
by the raw readiness CDC / synchronization transient.
Disposition:
- Ch443f is timing-clean, renderer-correct, and scanout-clean on silicon.
- Board left running the Ch443f candidate.
- Canonical artifact left untouched pending an explicit promotion instruction.
@@ -0,0 +1,5 @@
59c6372e1cfeba62dccdce860f7ab365255ef32a77c3f7b13909b4c7cff16a87 retroDE_ps2.ch443f.4110846.core.rbf
d0047677371a0f6e4e319458926f604a8599c92baaf34d09b8e1fd452e31662b sh3_zsrt139f52_ch443f_board_fb.mem
6b336f86b5fc2e3636fa6fa602065041063611df51963b4a5978a130a517a5c9 sh3_zsrt139f52_ch443f_board_replay.log
c41cbfc3d12d8594244895f415a9179223f618e54797f4c3c316ed542bd74a9c ch443f_scan_diag_60samples.log
c41cbfc3d12d8594244895f415a9179223f618e54797f4c3c316ed542bd74a9c ch443f_scan_diag_60samples_phase_sweep.log
@@ -0,0 +1,60 @@
sample 01: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 02: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 03: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 04: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 05: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 06: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 07: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 08: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 09: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 10: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 11: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 12: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 13: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 14: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 15: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 16: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 17: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 18: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 19: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 20: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 21: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 22: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 23: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 24: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 25: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 26: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 27: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 28: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 29: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 30: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 31: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 32: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 33: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 34: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 35: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 36: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 37: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 38: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 39: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 40: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 41: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 42: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 43: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 44: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 45: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 46: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 47: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 48: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 49: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 50: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 51: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 52: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 53: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 54: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 55: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 56: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 57: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 58: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 59: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020
sample 60: 0x02C=0x000000D1 0x120=0x00000018 0x124=0x00408020