intent/pull-up-reach-declared
A net the design intent gives a pull-up reach is absent from the design.
Remedy ¶
Correct the net name in the declaration to the design’s exact spelling, or remove the entry. A reach declared on a net the design lacks leaves the bus it meant to name held to the default of 3.
What it means ¶
A design’s intent can declare a pull-up reach on a net. The reach tells i2c-pull-up, the two
pull-up count rules and the profile pull-up requirements how many series resistors the walk from
that net may cross before it reaches a rail. This rule checks each such declaration against the
design. It fails when the declared net name is not a net of the design.
intent:
nets:
SDA_MAIN: {pull_up_reach_hops: 4} # isolation resistor, then a level-shifting stage
Why engineers want it ¶
The reach is looked up by the net’s exact name, so a declaration spelled SDA-MAIN on a board whose
net is SDA_MAIN matches nothing. Without this rule the walk would quietly keep the default of 3, the
bus would still fail i2c-pull-up, and the declaration would read as one that took effect but did
not help.
Impact ¶
A misspelled or stale declaration misses the bus it meant to name, and that bus is held to the default reach. The designer placed a pull-up deliberately behind a deeper series network, and that pull-up then reads as missing. The declaration was meant to explain it and is silent about why.
Scope note ¶
It confirms that the net exists and nothing more. Suppose a reach is declared on a real net that no
pull-up rule considers, such as a net that is neither I2C nor a profile signal. That declaration
changes nothing and still passes here. An undeclared net keeps the default of 3, so a design with no
pull_up_reach_hops is checked exactly as before.