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:
+23
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user