diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index 7eb98bfd..39025f5e 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -188,6 +188,7 @@ namespace Anabatic { cdebug_log(149,0) << "yprobe: " << DbU::getValueString(yprobe) << endl; if (gcell->getXMin() > end->getXMin()) std::swap( gcell, end ); + if (yprobe == gcell->getConstraintYMax()) yprobe--; gcells.push_back( gcell ); diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index 38a47214..48adf147 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -182,6 +182,7 @@ namespace Anabatic { cdebug_log(149,0) << "xprobe: " << DbU::getValueString(xprobe) << endl; if (gcell->getYMin() > end->getYMin()) std::swap( gcell, end ); + if (xprobe == gcell->getConstraintXMax()) xprobe--; gcells.push_back( gcell ); diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index 46a04e59..049a957d 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -942,11 +942,11 @@ namespace { const Layer* layer = anchor->getLayer(); cdebug_log(145,0) << "rp: " << rp << endl; - if (layer == Session::getRoutingLayer(0)) _connexity.fields.M1++; // M1 V - else if (layer == Session::getRoutingLayer(1)) _connexity.fields.M2++; // M2 H - else if (layer == Session::getRoutingLayer(2)) _connexity.fields.M3++; // M3 V - else if (layer == Session::getRoutingLayer(3)) _connexity.fields.M2++; // M4 H - else if (layer == Session::getRoutingLayer(4)) _connexity.fields.M3++; // M5 V + if (layer->getMask() == Session::getRoutingLayer(0)->getMask()) _connexity.fields.M1++; // M1 V + else if (layer->getMask() == Session::getRoutingLayer(1)->getMask()) _connexity.fields.M2++; // M2 H + else if (layer->getMask() == Session::getRoutingLayer(2)->getMask()) _connexity.fields.M3++; // M3 V + else if (layer->getMask() == Session::getRoutingLayer(3)->getMask()) _connexity.fields.M2++; // M4 H + else if (layer->getMask() == Session::getRoutingLayer(4)->getMask()) _connexity.fields.M3++; // M5 V else { cerr << Warning( "Terminal layer \"%s\" of %s is not managed yet (ignored)." , getString(layer->getName()).c_str()