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
2.4 KiB
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-001–BUG-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.