TraceMaker
C++ API of the engine
Loading...
Searching...
No Matches
tmk::route::DeadPin Struct Reference

Escape feasibility (M9 analysis): can each pin of a dense package leave it at all under the board's rules? More...

#include <route/escape.hpp>

Public Attributes

int pad = -1
std::string reason

Detailed Description

Escape feasibility (M9 analysis): can each pin of a dense package leave it at all under the board's rules?

A breadth-first search from the pad over a lattice of the package area, against fixed copper only (nothing routed; fills as the obstacles are set: hard, or ignored with set_soft_zones), at the narrowest legal width (the router's neck-down width), changing layers wherever that net's via passes every fixed check. The router's custom-rule limits apply: per-net track layers and via permission, and position-dependent disallow rules. A pin escapes when it reaches margin outside the box of the package's pad centres. Pins whose net is already complete in the existing copper are satisfied, not searched; complete as the router's planner sees it, so with soft zones a plane of the net that no pad touches yet leaves the net outstanding. The search is complete over its finite lattice and window, so "dead" means "no escape on this lattice": an off-lattice path can exist in rare cases (the router keeps trying those pins), and a pin that escapes alone may still lose its channel to its neighbours.

Definition at line 80 of file escape.hpp.

Member Data Documentation

◆ pad

int tmk::route::DeadPin::pad = -1

Definition at line 81 of file escape.hpp.

◆ reason

std::string tmk::route::DeadPin::reason

Definition at line 82 of file escape.hpp.


The documentation for this struct was generated from the following file: