Increate the reluctance to go up in Manipulator::moveUp().
* Change: In Katana::Manipulator::moveUp(), the "reserve" value was of 0.5 for pivot up and locals, now set it to 1.0, like in all other cases ("reserve" is the number of free tracks that is needed to allow the move up, in addition the the length being moved up). Fix routing convergence on the MIPS pipeline bench.
This commit is contained in:
parent
1569e2807e
commit
63d2f69459
|
@ -1180,15 +1180,15 @@ namespace Katana {
|
||||||
kflags |= (flags & AllowTerminalMoveUp) ? Flags::AllowTerminal : Flags::NoFlags;
|
kflags |= (flags & AllowTerminalMoveUp) ? Flags::AllowTerminal : Flags::NoFlags;
|
||||||
kflags |= (flags & IgnoreContacts ) ? Flags::IgnoreContacts : Flags::NoFlags;
|
kflags |= (flags & IgnoreContacts ) ? Flags::IgnoreContacts : Flags::NoFlags;
|
||||||
|
|
||||||
//float reserve = 1.0;
|
float reserve = 1.0;
|
||||||
float reserve = 0.5;
|
//float reserve = 0.5;
|
||||||
if (_segment->base() and (_segment->base()->getRpDistance() > 2)) reserve = 1.0;
|
if (_segment->base() and (_segment->base()->getRpDistance() > 2)) reserve = 1.0;
|
||||||
if (_segment->getLength() > 60*getPitch()) reserve = 1.0;
|
if (_segment->getLength() > 60*getPitch()) reserve = 1.0;
|
||||||
|
|
||||||
if (_segment->isFixed()) return false;
|
if (_segment->isFixed()) return false;
|
||||||
if (not (flags & AllowLocalMoveUp)) {
|
if (not (flags & AllowLocalMoveUp)) {
|
||||||
if (_segment->isLocal()) {
|
if (_segment->isLocal()) {
|
||||||
if (not _segment->canPivotUp(0.5,kflags)) return false;
|
if (not _segment->canPivotUp(1.0,kflags)) return false;
|
||||||
} else {
|
} else {
|
||||||
if (_segment->getLength() < 20*getPitch()) {
|
if (_segment->getLength() < 20*getPitch()) {
|
||||||
if (not (flags & AllowShortPivotUp)) return false;
|
if (not (flags & AllowShortPivotUp)) return false;
|
||||||
|
@ -1197,7 +1197,7 @@ namespace Katana {
|
||||||
if (not _segment->canMoveUp(reserve,kflags)) return false;
|
if (not _segment->canMoveUp(reserve,kflags)) return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (not _segment->canMoveUp(0.5,kflags)) return false;
|
if (not _segment->canMoveUp(1.0,kflags)) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//reprocessParallels();
|
//reprocessParallels();
|
||||||
|
|
Loading…
Reference in New Issue