In AutoSegment::canMoveUp(), adjust balance for FlexLib M2/M4.
* Change: In AutoSegment::canMoveUp(), hard code for FlexLib a track reserve of one when trying to move up. In FlexLib, the router promotes too easily METAL2 towards METAL4, clogging the higher level. So we end up with the METAL2 level under-saturated and the METAL4 over saturated, leading to routing failures. Now we assume that there is "one track less available" in METAL4. As for now, solves the problem for LibreSOC.
This commit is contained in:
parent
ab908b8c44
commit
493ed1ea11
|
@ -2103,6 +2103,8 @@ namespace Anabatic {
|
|||
{
|
||||
cdebug_log(159,0) << "AutoSegment::canMoveUp() " << flags
|
||||
<< " (reserve:" << reserve << ") " << this << endl;
|
||||
if (Session::getRoutingGauge()->getName() == "FlexLib")
|
||||
reserve += 1.0;
|
||||
|
||||
bool nLowDensity = true;
|
||||
bool nLowUpDensity = true;
|
||||
|
|
Loading…
Reference in New Issue