bulk-cap
A named power rail carries no capacitor at all (no bulk reservoir).
Remedy ¶
Add a bulk reservoir capacitor where the rail enters, sized from the load step the rail has to absorb and from the regulator’s own stability requirement.
What it means ¶
Every named power rail (a net an author gave a power symbol or asserted with a power flag) should carry at least one capacitor.
Why engineers want it ¶
Decoupling is per-pin; bulk capacitance is per-rail. A rail with literally no capacitance sags on every load step, and LDO datasheets require an output capacitor for loop stability. This is the aggregate per-rail complement to decoupling-present.
Impact ¶
Rail droop under transients, regulator instability, resets that only reproduce under real load patterns.
Scope note ¶
Rail identity is the global / power_driven net facts (power symbols and power flags), not pin directions, so a rail feeding only passives is still covered; decoupling-present quantifies over power-input pins instead, and the two deliberately overlap on a rail that has power pins and no caps. Ground-named nets are excluded (capacitors land ON ground from every rail; “ground has no bulk cap” is not a defect), and unresolved external nets are skipped (the cap may live in an unread sheet). Distinguishing bulk from local decoupling by value is a datasheet-joined refinement (WS10).
Query structure ¶
select rails by fact, require a capacitor member.
select N in nets where (global(N) or power_driven(N)) and not ground_name(N)
and not exists P in N.connections where class(P) == capacitor
Reads: component.class, net.attributes (global, power_driven, external), net.names (the ground-name skip), on_net. Tier R.