test: certify memory subsystem addressing (C.3)

int8_memory_access.v byte<->word conversion and byte-lane selection:
exhaustive 2048-address test + 6 real read/write round-trips through
the FSM handshake. 2054/2054 checks, 0 mismatches, after fixing two
bugs in the test harness itself (a same-timestep race reading a
non-blocking update one iteration late, and a behavioral memory stub
that ignored byte-lane enables on write) -- both documented as
test-side, not RTL, issues.

memory_interface.v and psram_controller.v not re-verified from
scratch: cited against coverage already established/re-confirmed
earlier in this same session (page-mode/tCEM against the ISSI
datasheet, a real pre-existing power-up request-loss bug found and
fixed), re-run clean via the Phase 0 regression harness rather than
trusted from WORKLOG text alone.

Full regression: 39/39 real tests pass.

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 14:33:05 +02:00
co-authored by Claude Sonnet 5
parent 14c8d87194
commit 3dd75e9e0d
21 changed files with 302 additions and 17 deletions
+23
View File
@@ -1270,3 +1270,26 @@ integrazione nel top level (F5), verifica consolidata e misure reali (F6).
`docs/validation/bugs.md` aggiornato con BUG-003 e BUG-004.
- **Prossimo passo**: C.3 (sottosistema memoria — `int8_memory_access`, `memory_interface`,
`psram_controller`).
## Campagna di ri-certificazione — C.3: Sottosistema memoria (2026-09-04)
- **`int8_memory_access.v` certificato esaustivamente** (nuovo test, non esisteva prima):
2048 indirizzi (ogni combinazione dei 12 bit bassi, entrambe le parità) per la conversione
byte→word e selezione byte-lane, più 6 round-trip scrittura/lettura reali attraverso
l'handshake FSM (incl. verifica che scrivere il byte dispari di una parola non corrompa il
byte pari fratello). **2054/2054 controlli, 0 mismatch** — dopo aver corretto due difetti
nella mia stessa testbench (controllo dei segnali nello stesso passo dell'aggiornamento
non-bloccante; uno stub di memoria che ignorava le byte-lane in scrittura), non nell'RTL.
- **`memory_interface.v`**: copertura pre-esistente (`memory_interface_tb.v`) ritenuta
adeguata alla semplicità del modulo (nessuna aritmetica di indirizzo propria) — non
ripetuta da zero.
- **`psram_controller.v`**: non ri-verificato da zero — cita il lavoro esteso già svolto in
QUESTA sessione (bug reale di richiesta persa durante power-up trovato e corretto in Fase
F2; timing page-mode/tCEM verificato contro il datasheet ISSI con `$fatal` su violazione
in `psram_model.v`), riconfermato PASS dall'harness di regressione indipendente in Fase 0
(non dato per buono sulla parola del WORKLOG).
- **Nessun bug RTL nuovo trovato in questo aspetto** — solo due difetti nella testbench di
verifica stessa, corretti prima di trarre conclusioni.
- **Regressione completa**: 39/39 test reali PASS (38 precedenti + 1 nuovo), 0 regressioni.
- **Deliverable**: `docs/validation/03-memoria.md`.
- **Prossimo passo**: C.4 (`mem_arbiter` — priorità B>C>A, starvation, contesa).