Files
FPGA-Neural/docs/validation/13-coerenza-datasheet.md
T
micheleandClaude Sonnet 5 8d20a7bfbf docs: certify C.9-C.14 + cross-cutting analyses D
C.9 (pinout): certified citing this session's own F1-F7 work; also
regenerated a real bitstream for the CURRENT full-system build
(ecppack, 0 errors, real part header) rather than relying on an older
pre-flash build's bitstream.

C.10 (timing): certified citing Fmax re-measured at every structural
change this session (54.58->75.30->73.88->66.68->67.91MHz), critical
path re-verified identical at every re-synthesis.

C.11 (toolchain): full RTL->Yosys->nextpnr-ecp5->ecppack flow re-run
on the current build, 0 errors at every stage. Real-silicon behavior
explicitly declared NOT certifiable (no physical hardware available).

C.12 (netasm): certified citing 20/20 tests plus a real hardware
round-trip already demonstrated earlier this session.

C.13 (datasheet/RTL coherence): real, current discrepancy found and
declared -- none of this campaign's 7 bugs (BUG-001-007) are yet
mentioned in the datasheet or engine spec doc. Correct and expected
(found after those docs were last updated), flagged as required
follow-up after the campaign completes.

C.14: page-mode PSRAM and the flash subsystem are actually COMPLETE,
not "in progress" as the certification prompt assumed -- verified
against real repo state.

D (cross-cutting): CDC certified via C.7. Reset scheme found by
exhaustive grep across all 20 RTL files to be synchronous-only
everywhere (no posedge rst anywhere) -- a real fact, differs from the
prompt's async-assert/sync-deassert phrasing, not a defect. FSM: the
campaign's own BUG-002-007 ARE FSM defects, found and documented, but
no exhaustive reachability analysis of every FSM was done (stated
reserve). Width/overflow: 2 real cases found across the whole session.
Lint: full-system Yosys check, one real warning (known PSRAM tristate),
zero accidental latches confirmed signal-by-signal (25 explicit
confirmations). Determinism: no real non-determinism found (the one
apparent inconsistency, BUG-003, traced to genuinely different test
stimuli between attempts, not unstable behavior for identical stimuli).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
2026-09-04 18:53:58 +02:00

2.4 KiB
Raw Blame History

C.13 — Coerenza datasheet↔RTL

Data: 2026-09-04.

Metodo

Il lavoro di allineamento datasheet↔RTL più recente (pinout pin-per-pin, bus SPI flash indipendente, opcode 0x40-0x47, Fmax aggiornata) è stato fatto in questa stessa sessione, appena prima dell'avvio di questa campagna di certificazione — non preso dalla parola. grep mirato sui documenti per confermare che nessuna cifra ovviamente stantia sia rimasta (56 vs 57 segnali, USRMCLK, Fmax vecchie) non ha trovato residui.

Scostamento reale trovato: i bug di questa campagna non sono (ancora) nel datasheet

Nessuno dei 7 bug trovati in questa campagna (BUG-001BUG-007) è menzionato nel datasheet o in docs/FPGA-NeuralNetwork-Engine.md — verificato con una ricerca mirata, non assunto. Questo è corretto e atteso, non un errore: questi bug sono stati scoperti dopo che quei documenti erano stati aggiornati, come parte di questa stessa campagna di ri-certificazione. Lo segnalo qui esplicitamente perché la regola del prompt di certificazione ("dove un documento dice una cosa e il codice ne dice un'altra, vince il codice, e lo scostamento va segnalato") si applica anche al tempo: al momento in cui scrivo, il datasheet descrive un comportamento più sicuro di quello che l'RTL effettivamente ha per N_INPUTS=0, n_inputs_real=0, n_neurons_real=0, run_num_layers=0, num_neurons_graph=0, e SET_NET_TYPE durante un run — nessuno di questi casi limite è menzionato come rischio in nessun documento pubblico del progetto.

Non corretto in questa fase (per policy §E — l'aggiornamento della documentazione è un'azione separata dall'analisi, e questa campagna è ancora in corso): raccomando di aggiornare docs/FPGA-NeuralNetwork-Engine.md (che già documenta il rischio di backpressure di WRITE_RAM/READ_RAM, lo stesso stile di sezione andrebbe usato qui) e il datasheet una volta che la campagna di certificazione è completa e i bug hanno uno stato definitivo (o corretti, o dichiarati come rischio noto permanente).

Verdetto

CERTIFICATO per l'allineamento sulle cifre/pinout/opcode (nessun residuo stantio trovato). NON CERTIFICATO per la documentazione dei rischi: i 7 bug di questa campagna non sono ancora riflessi in nessun documento pubblico — scostamento reale, dichiarato qui, non nascosto, con l'azione di correzione esplicitamente rimandata a dopo il completamento della campagna.