Fix last DRC incorrect case in TrackSegment::isMiddleStack().
* Bug: In TrackSegment::isMiddleStack(), formerly, all global segments where discarted. But in the routing repair stage, segments can go *outside* their GCell boundaries, allowing globals to became of null length. Hence, for global, we now also check the wirelength.
This commit is contained in:
parent
f9e4daace9
commit
3bd1d56582
|
@ -1615,7 +1615,12 @@ namespace Anabatic {
|
||||||
bool AutoSegment::isMiddleStack () const
|
bool AutoSegment::isMiddleStack () const
|
||||||
{
|
{
|
||||||
cdebug_log(149,0) << "AutoSegment::isMiddleStack() - " << this << endl;
|
cdebug_log(149,0) << "AutoSegment::isMiddleStack() - " << this << endl;
|
||||||
if (isGlobal() or isNonPref()) return false;
|
if (isNonPref()) return false;
|
||||||
|
if (isGlobal()) {
|
||||||
|
if (getLength() > getPPitch()) return false;
|
||||||
|
cdebug_log(149,0) << "| Considering this global anyway because it is too short. " << endl;
|
||||||
|
}
|
||||||
|
|
||||||
AutoContact* source = getAutoSource();
|
AutoContact* source = getAutoSource();
|
||||||
AutoContact* target = getAutoTarget();
|
AutoContact* target = getAutoTarget();
|
||||||
if (not source or not target) {
|
if (not source or not target) {
|
||||||
|
|
Loading…
Reference in New Issue