- New: To pass the ibmXX, new parameter "katabatic.saturateRp" which allows
to sets the threshold above which a GCell has too much RoutingPads in
it and must be further desaturated. Must be 8 for FPGA, and 10 for ibm.
- Bug: In LoadGrByNet(), when looking for the starting GCell, the computation
of unconnecteds RoutingPads was incorrect, too great and letting the
router believe that the routage was incomplete.
- Change: In KatabaticEngine, the containers used to store the "nets to
route" is changed from a vector<> to a set<> sorted by the Nets names.
Uses more memory but allows much faster Net deletion.
- New: In _loadNetGlobalRouting(Net*), detect non-routed Nets. A Net is
considered as unrouted if it's 10 first RoutingPads have no slave
Segment. The Net is withdrawn from the set of Nets to route.
- Bug: In GCellConfiguration::_GCell_1G_1L1(), correctly compute the
access flag passed to _GCell_rp_Access().
- Change: In AutoContact::restrictConstraintBox() adds "warnOnError"
parameter to shut down warnings.
- New: KatabaticEngine::_computeNetConstraints() now also returns a set<>
of segments on which constraints are incompatibles. All the NetConstraints
related functions are modificateds accordingly.
- Change: In KatabaticEngine::_loadNetGlobalRouting(), create dogleg
on overconstrained Segments computed by a call to _computeNetConstraints().
Overconstraineds Segments can occurs when a global is directly
connecting two punctual RoutingPads (see "ieee_division").
As a side effect, and to avoid looping each Net is revalidated
*before* making any dogleg. So Nets are revalidated one by one instead
of alltogether.
- Change: In AutoSegment::_toConstraintAxis(), do nothing if constraint
interval is empty.
- Bug: In KatabaticEnginge::_desaturate() (part of LayerAssign), reset
the moved up Segment pointer between iterations. Suppress the warning
about the GCell's DyKeyQueue beeing not revalidated on deletion.
- Change: In LoadGrByNet, manage the 4G+3L1 configuration with the generic
_GCell_xG_xL1_xL3(). Needed for "dct_lvl2".
- Change: In Grid/BaseGrid, add an Abutment Box attribute (to facilitate
segment truncation in Kite::TrackFixedSegment.
- Change: In Grid/BaseGrid::Axis, when computing a row/column index using
the graduation table, if the coordinate is exactly on the last
graduation, return the last GCell instead of "out of bound".
- Change: In GCell::hasFreeTrack(), AutoSegment::canMoveUp() &
AutoSegment::canPivotUp() adds a "reserve" parameter to modify the
amount of wirelength to remains free after the insertion.
- Bug: In GCell, bad cast between <size_t> and <unsigned int>, showed only
under 64 bits.
- New: In KatabaticEngine::printMeasures(), adds a support for measurments,
both time and memory size in Mb are stored for each tag.
- New: Adds measurements "Gates", "GCells", "load" & "assign".
- New: In GCell & LayerAssign, adds a supplemental desaturation steps when
a GCell containts too many (more than 7) RoutingPads in M1. This is
especially useful for the eFPGA matrix with it's custom made cells.
./coriolis/src/crlcore,
./coriolis/src/knik,
./coriolis/src/katabatic,
./coriolis/src/kite,
./coriolis/src/equinox,
./coriolis/src/solstice,
./coriolis/src/ispd:
- SVN MOVE: Source tree simplification & uniformisation. Now all tools
are at the same level, directly under the root of the repository.
No more "coriolis/src".