pin-exceeds-abs-max
A supply pin sits on a rail whose nominal voltage exceeds that pin's own absolute-maximum rating.
Remedy ¶
Move this terminal to a rail inside its own rated maximum. A part’s supplies are often rated differently from one another, so work from this pin’s number rather than the part’s.
What it means ¶
A component joined to a seeded datasheet spec has a supply pin on a rail whose name states a nominal voltage above that pin’s own absolute-maximum rating, read from a limit row the datasheet binds to that terminal.
Why engineers want it ¶
A part can have several supply pins rated differently. A voltage translator sits between two domains and has one supply per side, commonly 1.2 to 3.6 V on one and 1.65 to 5.5 V on the other, with absolute maxima to match. Asked as a question about the PART, that has no single right answer.
supply-exceeds-abs-max answers it by taking the most restrictive row and applying it to every
supply pin. That is conservative, and on a part whose terminals genuinely differ it is wrong in the
direction that costs a reviewer the most: it reports a violation where there is none, because it
checks the 6.5 V terminal against the 4.6 V one. This rule compares each terminal against the limit
its own datasheet row states, so a correct design stops being flagged and a real breach names the
pin it is on.
Relationship to supply-exceeds-abs-max ¶
They never both fire. This rule acts only on a part whose spec carries pin bindings, and
supply-exceeds-abs-max defers on exactly those parts. Everything else, including every spec
seeded before pin binding existed, is answered by the alias path exactly as before.
Evidence honesty ¶
Every input that cannot be trusted is a skip, never a guess:
- no MPN, unseeded MPN, no seeded set, or a spec with no pin bindings -> this rule is silent and the alias path answers instead;
- a design pin that does not resolve to exactly one spec pin -> skipped. Resolution leads with the pin NAME, uses the designator only to break a tie inside an identified package, and REFUSES when the two disagree or when a shared name cannot be separated. A guessed terminal would produce a confident finding about the wrong thing;
- limit rows that are under-specified or carry text-only conditions are not compared (param.MachineComparable);
- a rail name with no parseable nominal, or with conflicting nominals, is not compared.
Query structure ¶
join components to specs by MPN, resolve each supply pin onto a spec pin, and compare the rail’s nominal against the abs-max rows bound to that pin.
select C in components where spec(C) has pin bindings
for P in pins(C) where electrical_type(P) == power_in
S = resolve_pin(spec(C), name(P), designator(P), package(C)) -- may refuse
for R in abs_max rows bound to S
nominal(net(P)) > max(R) -> finding
Reads: param.pin, param.pin_range, pin.electrical_type, net.name, on_net. Tier R.