# Validation Contract Status: `Draft` ## Purpose Define how subsystem correctness is judged before and during implementation. ## Principles - Traces are first-class outputs. - Small directed tests beat giant software workloads early. - Every major subsystem should have a "stub-valid" test mode before a "real" implementation exists. - At least one software golden reference should be selected before large RTL effort begins. ## Proposed validation ladder ### Level 0: structural - modules elaborate, - resets are deterministic, - key registers can be written/read in simulation, - traces are emitted. ### Level 1: directed block tests - memory map tests, - DMAC register tests, - GIF packet intake tests, - SIF mailbox tests, - VIF packet decode tests. ### Level 2: subsystem behavior tests - BIOS fetch trace agreement, - GS stub/test-pattern agreement, - simple DMA-to-endpoint transfers, - IOP boot-progress markers. ### Level 3: software-facing tests - tiny EE code payloads, - tiny IOP payloads, - `gsKit`-style graphics tests, - minimal inter-processor coordination tests. ### Level 4: comparative reference - compare selected traces against a golden emulator/reference, - resolve disagreements against authoritative docs where available. ## Artifacts to maintain - `sim/vectors/`: deterministic stimulus inputs - `sim/traces/`: captured reference traces - `sim/golden/`: scripts/notes for emulator-side comparison - `software/tests/`: minimal payloads for EE/IOP/graphics/audio/device paths ## Required early decisions - primary golden reference, - trace format, - first three block-level regression tests, - policy for "spec disagrees with emulator" cases.