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
This commit is contained in:
2026-09-04 18:53:58 +02:00
co-authored by Claude Sonnet 5
parent f0a66363de
commit 8d20a7bfbf
8 changed files with 356 additions and 0 deletions
+49
View File
@@ -1393,3 +1393,52 @@ integrazione nel top level (F5), verifica consolidata e misure reali (F6).
- **Deliverable**: `docs/validation/08-top-level.md`, `bugs.md` con BUG-007.
- **Prossimo passo**: C.9 (pinout/.lpf — già ampiamente verificato in sessioni precedenti,
citazione + eventuale riverifica mirata).
## Campagna di ri-certificazione — C.9-C.14 + D (2026-09-04)
- **C.9 (pinout/.lpf)**: certificato citando il lavoro reale già svolto in questa stessa
sessione (Fasi F1-F7): place&route reale 0 errori, cross-check contro il datasheet
Lattice, `USRMCLK` verificato e poi rimosso in F7. **Bitstream reale rigenerato per il
build corrente** (post-F7, non solo per un build più vecchio): `ecppack` 0 errori,
header verificato (`Part: LFE5U-45F-8CABGA381`).
- **C.10 (timing)**: certificato citando le Fmax rimisurate ad ogni passaggio strutturale
in questa sessione (54.58→75.30→73.88→66.68→**67.91 MHz**), percorso critico verificato
identico ad ogni ri-sintesi, non assunto.
- **C.11 (toolchain)**: flusso completo RTL→Yosys→nextpnr-ecp5→`ecppack` rieseguito sul
build corrente, 0 errori ad ogni stadio. Dichiarato esplicitamente NON CERTIFICABILE il
comportamento su silicio reale (nessun hardware fisico disponibile).
- **C.12 (netasm)**: certificato citando i 20/20 test (Fase 0), incl. round-trip reale con
l'hardware già dimostrato in sessione precedente (test end-to-end mandatorio, output=126).
- **C.13 (coerenza datasheet↔RTL)**: **scostamento reale trovato e dichiarato**: nessuno
dei 7 bug di questa campagna (BUG-001-007) è ancora menzionato nel datasheet o in
`docs/FPGA-NeuralNetwork-Engine.md` — corretto e atteso (scoperti dopo l'ultimo
aggiornamento di quei documenti), ma segnalato esplicitamente come azione di follow-up
necessaria dopo il completamento della campagna.
- **C.14 (lavori in corso)**: page-mode PSRAM e sottosistema flash risultano **completi**,
non "in corso" come il prompt di certificazione presupponeva — verificato per lo stato
reale della repo, nessun residuo TODO/incompleto trovato.
- **D (analisi trasversali)**:
- **CDC**: certificato citando C.7 (sincronizzatore 2/3 stadi, test a rapporto variabile).
- **Reset**: **fatto reale trovato per ispezione esaustiva** (non assunto) — l'intero
progetto (20 file RTL) usa reset **esclusivamente sincrono**, mai asincrono
(`grep -l "posedge rst" rtl/*.v` → nessun risultato). Diverso dalla formulazione
"async assert/sync deassert" del prompt originale — segnalato come fatto, non difetto.
- **FSM**: i 6 bug BUG-002-007 di questa campagna SONO difetti di FSM (contatori che
avvolgono su valori raggiungibili, mux non agganciato allo stato del motore) — trovati
e documentati, ma nessuna analisi di raggiungibilità esaustiva di OGNI FSM del
progetto fatta in questa fase (riserva dichiarata).
- **Larghezze/overflow**: 2 casi reali di questa categoria trovati in tutto (1 in
sessione precedente, `FLASH_SPACE_BYTES`; 1 in questa campagna, causa radice di
BUG-002) — nessuna garanzia sia l'unico rimasto.
- **Lint**: sintesi Yosys dell'intero sistema con `check`, ogni messaggio
warning/latch/width/multiple-driver filtrato esplicitamente: **un solo warning reale**
(tri-state PSRAM, già noto/atteso), **zero latch inferiti accidentalmente**,
confermato segnale per segnale (25 conferme esplicite "No latch inferred", non solo
assenza di warning).
- **Determinismo**: nessuna evidenza di non-determinismo reale trovata (l'unica
"incoerenza" osservata, BUG-003, tracciata a stimoli testbench effettivamente diversi
tra i tentativi, non a comportamento instabile a parità di stimolo) — non verificato
con una campagna dedicata di run ripetuti (riserva dichiarata).
- **Deliverable**: `docs/validation/09-pinout.md`, `10-timing.md`, `11-toolchain.md`,
`12-netasm.md`, `13-coerenza-datasheet.md`, `14-lavori-in-corso.md`, `D-trasversali.md`.
- **Prossimo passo**: certificato finale consolidato (`docs/validation/CERTIFICATION.md`).