# VIF/VU Contract Status: `Draft` ## Purpose Define the vector-processing cluster and its packet/program interfaces. ## Owns - VIF0 and VIF1 packet decode/unpack behavior, - VU0 and VU1 local code/data memories, - microprogram upload path, - macro/micro mode coordination as chosen for the implementation scope, - synchronization against DMAC and GIF-visible downstream behavior. ## Inputs - DMAC-fed packet traffic, - EE control interactions, - memory-backed data where applicable, - reset and status/control writes. ## Outputs - local memory writes, - VU execution progress, - downstream graphics/data traffic, - interrupts/status, - trace events. ## Questions to lock - Is VU0 macro mode required for the first boot milestone? - How much VIF unpack coverage is required for the first homebrew target? - Do we treat VU execution timing as functionally-correct first or cycle-shaped first? ## Allowed early stubs - packet capture without execution, - microprogram RAM load/observe only, - no-op VU execution with trace confirmation. ## Required debug visibility - packet headers/tags, - microprogram loads, - local memory writes, - VU start/stop, - synchronization stalls.