Measurable requirement anatomy
Write the proof boundary into the requirement.
The DMA subsystem shall sustain at least 12 GB/s of accepted payload across four continuously active channels, using legal 16-beat transfers on a 256-bit, 500 MHz downstream interface, while preserving per-channel ordering and propagating backpressure without data loss.
- Actor
- Complete DMA subsystem, not one channel in isolation
- Stimulus envelope
- Four active channels, legal aligned transfers, stated mix
- Measured outcome
- Accepted payload bytes per elapsed second
- Observation boundary
- Downstream VALID and READY acceptance events
- Correctness invariant
- No loss, duplication, or per-channel reordering
- Verification method
- Analysis plus constrained traffic tests and scoreboards
“The DMA should be fast and handle backpressure.”
“Fast” has no unit, traffic model, measurement boundary, or correctness clause. The team cannot tell whether peak issue rate, accepted bytes, or completion rate is intended.
Rate + envelope + acceptance + invariant
The rewritten requirement creates testable conditions and exposes missing decisions: allowed latency, downstream service guarantee, error policy, reset behavior, and implementation margin.
The datapath is not buildable until its operating envelope is.
These worked-example targets show the review depth expected before architecture freeze; project values must come from the real product and signoff plan.
| Requirement | Concrete contract | Architecture consequence | Required evidence |
|---|---|---|---|
| NFR-CLKClock + reset | clk_dma is a defined 500 MHz generated clock. Every asynchronous crossing is classified, and reset deasserts locally only after its clock is stable. | Generated-clock constraints, CDC structures, reset synchronizers, and domain_ready gating are part of the block interface. | STA clock coverage · CDC/RDC · reset-sequence assertions |
| NFR-PWRPower | Illustrative active power is capped at 120 mW for the named workload and PVT view; idle admission stops before clocks gate. | Activity assumptions, clock-gating eligibility, wake latency, isolation, and retained state are budgeted before freeze. | Power analysis · gate checks · power-aware sleep/wake tests |
| NFR-DFTDFT | Sequential state is scan-visible unless waived; SRAMs have an MBIST path; test controls can override functional clock gates and resets safely. | Test muxing, scan modes, macro wrappers, and at-speed capture clocks are architectural ports, not late netlist patches. | Scan/MBIST rules · test-mode STA · coverage report |
| NFR-SECSecurity | Every descriptor is checked against its programmed privilege and address window before any fabric transaction is issued. | Unauthorized work creates no downstream side effect and retires with precise, auditable status. | Negative-access tests · formal range proof · audit-status coverage |
| NFR-SAFESafety + reliability | Descriptor and response state detect corruption; a bounded timeout converts a lost response into one fail-stop completion. | Parity/ECC choice, timeout ownership, first-error capture, recovery, and diagnostic observability are explicit. | Fault injection · timeout/liveness assertions · diagnostic coverage |
| NFR-PHYPhysical feasibility | The 500 MHz path budget, memory ports, block-boundary registers, macro placement, and congestion margin close in an early floorplan. | Pipeline cuts and replicated state are chosen while architecture can still change, with PPA ownership attached. | Early synthesis · floorplan/congestion · MMMC timing · power estimate |
Scenario before block diagram
Trace the failure before choosing the machinery.
Four legal descriptors become eligible.
Arrival synchrony creates the worst arbitration instant.One burst from each channel enters the issue window.
A fixed-priority policy can satisfy aggregate rate while starving C3.Accepted beats average 0.75 per cycle.
Counting VALID without READY overstates delivered bandwidth.Per-channel completions become visible in legal order.
Global order is unnecessary; per-channel precision is mandatory.Measure accepted bytes, not issued requests. Fair service and 75% average fabric utilization must coexist without one channel carrying all of the progress.
