journal 2026-05-06

P130 - Ready/valid contract extraction

P130 extracts the scheduler boundary into a small plain-RTL valid / ready / fire helper. It is still shadow-only, but it gives the backend refactor an actual module contract instead of another layer of inferred FSM-window counters.

The BusyBox shell workload passed:

P130-FILE-OK @ cycle 218,446,148
post-load cycles  : 218,446,005
shell window      : 64,551,556
instr retired     : 86,248,132
CPI               : 2.5328

The new contract counters reported:

samples                 : 64,743,639
arrival-fire cycles     : 22,652,878
service-fire cycles     : 22,652,811
backpressure cycles     : 0
dual/triple ready cycles: 0 / 0

integer fires           : 13,095,201 arrival / 13,095,201 service
memory fires            : 3,246,456 arrival / 3,246,389 service
control fires           : 6,311,221 arrival / 6,311,221 service

The helper agrees with the older scheduler arrival/service audit. That is the good part. The limiting result is unchanged: no class coexistence yet, no queue depth beyond 1, and no reason to build a picker until a real queue owns state.

Next target: a state-owning dispatch queue module with the same handshake names.