diff --git a/anabatic/src/Configuration.cpp b/anabatic/src/Configuration.cpp index bb524f92..76bfe9e5 100644 --- a/anabatic/src/Configuration.cpp +++ b/anabatic/src/Configuration.cpp @@ -465,6 +465,12 @@ namespace Anabatic { continue; } + if (dynamic_cast(component)) { + cdebug_log(112,0) << " Pins are always considered best candidates:" << component << endl; + bestComponent = component; + break; + } + Component* candidate = dynamic_cast(component); if (not candidate or (candidate->getLayer()->getMask() != metal1->getMask()) ) diff --git a/hurricane/src/hurricane/RoutingPad.cpp b/hurricane/src/hurricane/RoutingPad.cpp index b94535a1..f01ba04b 100644 --- a/hurricane/src/hurricane/RoutingPad.cpp +++ b/hurricane/src/hurricane/RoutingPad.cpp @@ -350,6 +350,11 @@ namespace Hurricane { for ( Component* component : NetExternalComponents::get(plug->getMasterNet()) ) { if (not bestComponent) { bestComponent = component; continue; } + if (dynamic_cast(component)) { + bestComponent = component; + break; + } + switch (flags & ComponentSelection) { case LowestLayer: if (component->getLayer()->below(bestComponent->getLayer()))