Layer assignment step was ignoring the number of RoutingPad threshold.

* Bug: In Anabatic::layerAssign(), during the step of desaturation of
    GCells that contains too much terminals (i.e. lot of *local*
    congestion), the desaturation threshold was har-coded to 8.
    Wich is fine for symbolic cmos but way too low for Flexlib.
      End result was that most straight wires where moved towards
    the upper layers, creating congestion (imbalance of layer
    densities).
      Now the parameter:
        * "anabatic.saturateRp" (default value:8) is correctly taken
	  into account.
This commit is contained in:
Jean-Paul Chaput 2021-12-22 15:52:22 +01:00
parent a4ad671739
commit 64056d25ee
2 changed files with 2 additions and 1 deletions

View File

@ -987,7 +987,7 @@ namespace Anabatic {
rps.insert( terminal->getRoutingPad() );
}
}
if (rps.size() > 8) {
if (rps.size() > getConfiguration()->getSaturateRp()) {
GCellRps* gcellRps = new GCellRps ( gcell, this );
gcellRpss.insert( gcellRps );

View File

@ -183,6 +183,7 @@ namespace Katana {
cout << Dots::asUInt (" - Dijkstra GR search halo" ,getSearchHalo()) << endl;
cout << Dots::asBool (" - Use GR density estimate" ,useGlobalEstimate()) << endl;
cout << Dots::asBool (" - Use static bloat profile" ,useStaticBloatProfile()) << endl;
cout << Dots::asInt (" - GCell terminal(RP) saturate number" ,getSaturateRp()) << endl;
cout << Dots::asDouble(" - GCell saturate ratio (LA)" ,getSaturateRatio()) << endl;
cout << Dots::asUInt (" - Long wire threshold1 for move up" ,_longWireUpThreshold1) << endl;
cout << Dots::asDouble(" - Long wire reserved1 for move up" ,_longWireUpReserve1) << endl;