a4ad671739
* Fix: In Manipulator::avoidBlockage(), the dedicated function to check if there is an obstacle in the way of a non-prefered routing wire (done for metal2 connecting to terminals only) was too naive. We were checking the tracks for obstacles crossing exactly the axis of the segment. And for near-miss this is not enough. Now check on the whole x-span to be used by the segment. Code borrowed and simplified from Track::addOverlapcost(). * Change: In Manipulator::moveUp(), the default value for the extra reservation allowing a long wire to move up need to be customized for Flexlib/StdCellLib (allow successful routing of ChipFlow/MPW4). Add two new configuration parameters to katana: * "katana.longWireUpThresold1" : the length, expressed in number of *slice height* above which a global wire is considered a *long* wire (not close interconnect). * "katana.longWireUpReserve1" : the extra number of free tracks that must remains free in the up layer after the move up, in each GCell traversed by the wire. Expressed in number of tracks, but can be non-integer (float, for instance: 1.5). |
||
---|---|---|
.. | ||
cmake_modules | ||
python | ||
src | ||
CMakeLists.txt |