KDI contract v0.4.0
Two independently addressed streams on one device-wide timebase, and KDI's registers moved off addresses the incumbent acquisition host writes for its own purposes.
Assets
| file | what it is |
|---|---|
descriptor.json |
the contract — read this at build time; everything else is support |
schema.json |
JSON Schema (draft 2020-12), to validate a descriptor without our code |
manifest.json |
sha256 of every artifact + contract identity + the conformance result |
kdi-vectors-0.4.0.tar.gz |
the golden vectors, as a set — only meaningful together |
Re-read the vectors
v0.3 published one 64-byte adio_dig vector with rows == 1, where a row-major and a lane-major decoder emit identical bytes — so a decoder transposing rhd_matrix's 35 rows against its lanes passed the whole oracle while emitting plausible data at the wrong channel. That is a failure this project shipped once.
The bundle is now six frames, a streaming case, and 20 negatives across all 11 reject tokens. golden_frame.json inside the archive is the manifest that describes them; the .bin files are not independently interpretable. golden_wide is the one to read hardest: it uses descriptor strides and element widths no current device emits, so a decoder that compiles in today's values is caught here rather than by a future device.
Verification status
The data plane is verified on silicon: ~6,600 probe-runs across sample rates and lane masks, bounded and free-running, zero failures — bounding the failure rate under 0.045% at 95% confidence.
Row order is NOT bench-verified. That check needs a driven input, and with floating inputs both the amplifier rows and the slow aux rows are noise, so the comparison decides nothing. The authority is a golden chip-model simulation that drives known values. See CHANGELOG.md.