diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index 8ddcfc98..4af7266b 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -181,11 +181,12 @@ namespace Anabatic { { vector().swap( gcells ); - DbU::Unit yprobe = getNativeMin(); + DbU::Unit yprobe = getY(); GCell* gcell = getAutoSource()->getGCell(); GCell* end = getAutoTarget()->getGCell(); 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 4eaa50b6..4cac5593 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -175,11 +175,12 @@ namespace Anabatic { { vector().swap( gcells ); - DbU::Unit xprobe = getNativeMin(); + DbU::Unit xprobe = getX(); GCell* gcell = getAutoSource()->getGCell(); GCell* end = getAutoTarget()->getGCell(); if (gcell->getYMin() > end->getYMin()) std::swap( gcell, end ); + if (xprobe == gcell->getConstraintXMax()) xprobe--; gcells.push_back( gcell ); @@ -187,7 +188,7 @@ namespace Anabatic { gcell = gcell->getNorth( xprobe ); if (not gcell) { - cerr << Error( "AutoHorizontal::getGCells() : NULL GCell under %s\n" + cerr << Error( "AutoVertical::getGCells() : NULL GCell under %s\n" " begin:%s\n" " end: %s" , getString(this).c_str() diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index 6f457673..7c4430a5 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -888,11 +888,11 @@ namespace { } else { const Layer* layer = anchor->getLayer(); - 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()