spec(npu,soc_1): add activation-load path, close BUGS.md A5/A6 (CO-NPU-01) - #16
spec(npu,soc_1): add activation-load path, close BUGS.md A5/A6 (CO-NPU-01)#16claude[bot] wants to merge 1 commit into
Conversation
…U-01) Issue #15: cold-start NPU has no CPU-visible or hardware-autonomous path that ever writes a nonzero activation byte (every write is GEMV output, a function of existing activation with no additive term). Ruled: revise the spec (option b), not waive the toggle-coverage gate. npu.md v1.0 -> v1.1: new §2.3a activation-load ingress port (NPU-24..27), §4.5 decision record (chosen: extend the weight-stream descriptor's destination mode; rejected: CSR-mapped WB writes, standalone and combined with the above -- numbers in §4.5), NPU-28 bounds the BUGS.md A6 group-boundary stall at <=1 cycle, §8 change log lists every invalidated downstream artifact per role. soc_1.md v1.0 -> v1.1: SOC1-12's destination bit becomes a 3-way field (weight FIFO / firmware SRAM / NPU activation SRAM), companion §8 note. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Integrator review — request changes (1 finding)Boundary: clean — branch Gate integrity: clean — no Spec conformance: spot-checked the bulk of the new/changed citations against current spec/ADR/profile text — SOC1-08/10/11/12/13, NPU-01/06/07/13/14/16/17, One did not:
Everything else — the A5/A6 closure mechanism, the rejected-alternatives numbers, NPU-24–28, the SOC1-12 3-way field, the §8 change logs and invalidated-artifact list — is accurate and well-cited. Not merging per this single citation fix; re-push and the review re-triggers. |
Deliverable manifest
Role: chief-architect-agent-Sonnet5-medium
Issue: #15
Artifacts:
Gates:
Spec refs:
hw/dv/npu/BUGS.mdA5 (no activation-load path) via new shall-IDs NPU-24, NPU-25, NPU-26, NPU-27, npu.md §2.3a/§4.5hw/dv/npu/BUGS.mdA6 (undefined group-boundary stall) via new NPU-28soc_1.mdSOC1-12 (destination field, now 3-way)Open items:
hw/rtl/npu/npu.sv,hw/rtl/npu/npu_act_sram.sv— new port + BUSY-gated write-port mux + wraparound counter + (if needed) an RTL fix to hit NPU-28's 1-cycle bound — rtl-engineer,rtl/npuhw/dv/common/models/npu.py— golden model has no activation-load or group-boundary-stall model today; needs both, from spec text only — verif-architecthw/dv/npu/vplan.md,hw/dv/npu/BUGS.md— new vplan rows for NPU-24–28; A4/A5/A6 close (BUGS.md itself is DV's file, left untouched here per Iron Rule 2 — DV closes its own log when the follow-on work lands) — dv-engineerhw/formal/— no NPU proofs exist yet; when one lands, NPU-07's proof extends to cover NPU-26 — formal-engineer, no action required nowFriction:
Version:/§8 Change logfield) — introduced a lightweight one (Version:header line +## §8 Change logsection) consistent with the "no silent spec edits after v1" rule; flagging in case the integrator wants to standardize it in TEMPLATE.md.spec/<mod>branch-name convention exists in CLAUDE.md's list (rtl/,dv/,formal/,pd/,sw/) for chief-architect's own deliverables; usedspec/npuas the closest fit.flow/check_boundaries.sh's default case accepts any unrecognized prefix with no restriction, so this didn't block anything, but it's undefined by convention.Skill candidates:
.claude/skills/chief-architect/references/spec-authoring-patterns.md— a "change order" pattern (Version header + §8 Change log + explicit invalidated-artifact list per role) would have saved re-deriving format from scratch; nominate only, integrator gates entry.