Bug fix: Always select the Pin as best RoutingPad component.
* Bug: In Anabatic::Configuration::selectRpComponent(), always select the Pin as the best component. It is mandatory for a block that we pick up the terminal at the periphery and not one deep inside the block. * Bug: In Hurricane::RoutingPad::setOnBestcomponent(), same rule as in Anabatic, if there is any, the Pin must always be the best RoutingPad component.
This commit is contained in:
parent
a971f6f91b
commit
be2f9f8a45
|
@ -465,6 +465,12 @@ namespace Anabatic {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dynamic_cast<Pin*>(component)) {
|
||||||
|
cdebug_log(112,0) << " Pins are always considered best candidates:" << component << endl;
|
||||||
|
bestComponent = component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
Component* candidate = dynamic_cast<Segment*>(component);
|
Component* candidate = dynamic_cast<Segment*>(component);
|
||||||
if (not candidate
|
if (not candidate
|
||||||
or (candidate->getLayer()->getMask() != metal1->getMask()) )
|
or (candidate->getLayer()->getMask() != metal1->getMask()) )
|
||||||
|
|
|
@ -350,6 +350,11 @@ namespace Hurricane {
|
||||||
for ( Component* component : NetExternalComponents::get(plug->getMasterNet()) ) {
|
for ( Component* component : NetExternalComponents::get(plug->getMasterNet()) ) {
|
||||||
if (not bestComponent) { bestComponent = component; continue; }
|
if (not bestComponent) { bestComponent = component; continue; }
|
||||||
|
|
||||||
|
if (dynamic_cast<Pin*>(component)) {
|
||||||
|
bestComponent = component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
switch (flags & ComponentSelection) {
|
switch (flags & ComponentSelection) {
|
||||||
case LowestLayer:
|
case LowestLayer:
|
||||||
if (component->getLayer()->below(bestComponent->getLayer()))
|
if (component->getLayer()->below(bestComponent->getLayer()))
|
||||||
|
|
Loading…
Reference in New Issue