test: certify graph_engine gather/guard (C.6), find related BUG-006
Gather/padding/src_id<out_id guard certified via existing solid pre-session tests (graph_engine_tb.v checks act_buffer contents via hierarchical reference, not just final output; graph_engine_guard_tb.v covers 4 adversarial cases incl. recovery). BUG-006 (LOW severity): num_neurons_graph=0 shares BUG-005's exact root cause (neuron_idx is a full 16-bit register, no guard), but graph_engine's existing per-edge src_id<out_id guard incidentally catches most garbage-data patterns fast (err at cycle 58 for a non-trivial test pattern, vs. layer_sequencer's 21761-cycle full run in BUG-005) -- not a designed protection for this case, so not closed as a non-issue, but lower severity given the observed practical risk. Not run to full 65536-iteration completion (impractical for this campaign's time budget) -- limitation stated explicitly. Full regression: 40/40 real tests pass, 1 new observational test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
This commit is contained in:
+18
@@ -1337,3 +1337,21 @@ integrazione nel top level (F5), verifica consolidata e misure reali (F6).
|
||||
BUG-005.
|
||||
- **Prossimo passo**: C.6 (motore grafo — `graph_engine`, `act_buffer`, guard
|
||||
`src_id<out_id`).
|
||||
|
||||
## Campagna di ri-certificazione — C.6: Motore grafo (2026-09-04)
|
||||
|
||||
- **Gather/padding/guard esistenti certificati** citando test pre-esistenti già solidi
|
||||
(`graph_engine_tb.v` verifica `act_buffer` via riferimento gerarchico non solo l'output
|
||||
finale; `graph_engine_guard_tb.v` copre 4 casi avversari incl. recovery).
|
||||
- **BUG-006 (BASSA) trovato**: stessa causa radice esatta di BUG-005
|
||||
(`num_neurons_graph=0`, `neuron_idx` a 16 bit pieni, nessun guard) ma con una differenza
|
||||
pratica importante: `graph_engine` ha già un guard per-edge (`src_id<out_id`) che, per
|
||||
un pattern di dati non banale, ha fermato l'esecuzione dopo soli 58 cicli invece di
|
||||
girare per le 65536 iterazioni possibili come farebbe `layer_sequencer` — protezione
|
||||
incidentale, non garantita per ogni contenuto PSRAM, quindi non chiuso come non-bug ma
|
||||
classificato a severità inferiore di BUG-005. Test non fatto girare a completamento
|
||||
(65536 iterazioni impraticabili per il budget di questa campagna) — limite dichiarato.
|
||||
- **Regressione completa**: 40/40 test reali PASS invariati, 1 nuovo test osservazionale.
|
||||
- **Deliverable**: `docs/validation/06-graph-engine.md`, `bugs.md` con BUG-006.
|
||||
- **Prossimo passo**: C.7 (SPI slave + engine — CDC, opcode, `STATUS` sticky/clear-on-read,
|
||||
`READ_CONFIG`).
|
||||
|
||||
Reference in New Issue
Block a user