- 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".
- Bug: In top CMakeLists.txt the SETUP_PROJECT_PATHS was not inserting
X_USER_TOP *before* X_TOP, thus potentially allowing an obsolete
system-wide configuration to shadow an up-to-date local one.
* ./katabatic:
- Change: In Configuration/KatabaticEngine, introduce a static Configuration
object (singleton) to handle the default configuration. Configuration are
now created only through cloning operations. In KatabaticEngine, the
_configuration becomes a pointer (previoulsy an value).
Confifuration becames a singleton and a decorator.
Also adds a print method to nicely display configurations values on
the terminal.
- 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.
- Change: Uses a map instead of a sorted vector in the layer assignment
steps. It was used to order GCells by density, and causing terrific
slowdown on big examples. Namely the eFPGA 16x16 took 1h20, now it's
down to 21 seconds...
Devellop a new object <DyKeyQueue> to handle map with elements
whose key *can* change. Next step is to normalize the key caching
mechanism and to templatize.
- Change: In LayerAssign, account the number of globals AutoSegments
moved up.
- Change: Adaptation to cmake 2.8. No more "add_subdirectory()" when
the sub directory doesn't hold a CMakeList.txt.
For "add_definition()", set policy 00005 to NEW.
- Change: Integrate IO extenal libraries.
- Change: Small compatibilities between "size_t" and "unsigned int"
under 64 bits.
- Change: Temporarily disable Equinox/Solstice in unicorn.
./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".