- New: In buildCoriolis.py, support to build rpm packages (in user's "rpm"
directory).
- Added: coriolis2.spec.in for rpm building. Install under /opt/coriolis2.
This spec files has the particularity to also buildup a binary tarball
of the compiled & installed files, this avoid a second complete build
stage. The tarball is put into "rpm/SOURCES".
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Change: Rename COpenCellDialog in OpenCellDialog.
- Change: In CgtMain, now the save parameter must be supplied with a design
name. The same should be different from the input one to avoid overwrites.
- New: SaveCellDialog to write back the Cell. Currently only writes the
layout view.
- Cleanup: In Slot.h, comment out print for debug.
- New: In CellViewer, adds a renameCell() method to "rename" the currently
loaded Cell "in place". Utility function for SaveCellDialog (see below).
- New: KnikEngine::computeSymbolicWireLength(), which adds to the measurments
1. - The sum of global wire length (in lambdas).
2. - The abutment box area of the design (in square lambdas).
3. - The saturation ratio of the design: wire length divided by area and
normalized by a "fully routed GCell".
- Cleanup: No longer import the std namespace in headers.
- Bug: In Measures.h, incoherent prototyping of getMeasure() template.
- Change: In Environment, SearchPath & the XML format, slight change to
allow overwriting of Alliance library pathes. Instead of having an
attribute on the <system> node that applies to all libraries, we
have a "mode" attribute in each <library> node.
"mode" can takes three values:
1. - "append" : the library path is added in tail of the list.
2. - "prepend" : the library path is added in head of the list.
3. - "replace" : if the library already exists in the pathes,
this ones replaces it, whitout modifiying the order.
If it doesn't exists, it simply appended.
The "replace" mode is the one to be used if a users wants to shadow
system libraries by his own versions (sets in ~/.environment.alliance.xml).
- Change: In Configuration, sets the default expandStep parameter to
0.99 (gives better results).
- Change: In KiteEngine::_computeCagedConstraints(), detect and build
a list of segments on which caged constraints are incompatibles
(tearing effect shown in ieee_division). All caged constraints
functions are modificated accordingly.
- Change: In Session::_revalidate(), makes doglegs on Segment with
incompatible caged constraints.
- Mark: vld & ieee_division works.
- 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.
- Change: In KnikEngine::initGlobalRouting(), increase the maximal degree
of net to be routed (1000 -> 13000). This to allow the clock to be
routed of the "vld" circuit.
- Bug: In Net.h, force expansion of SlotTemplate<Net*> with the line:
const SlotTemplate<Net*> dummyNetSlot ( string("dummyNetSlot"), NULL );
I've no satisfactory explanation, but in the cyclop Inspector the
Cell's NetMap is correctly created and in the cgt Inspector, Nets
entries of the NetMap appears as "unsupported", meaning that the
SlotTemplate<> has not been generated for Net. This correct the
problem.
- Change: In TrackCost, the ripup cost is now computed from a mix between
the number of ripup *and* the data state. Restore a correct balance
of the ripping up between segments.
- New: In RoutingEvent::State::conflictSolve1(), when a very long Segment
enters in conflictSolve1(), still prefers to move it up in one piece,
but if it's not possible, it is unlikely that it will overlap with
only one or two other Segment. In that cases, blindy break it up in
the middle.
- New: In RoutingEvent::Manipulator, another overload of makeDogLeg to
allow break up at one precise point.
- Change/Bug: In RoutingEvent::Manipulator::Relax(), reset the state of
the non-overlapping Segment fragments instead of inheriting blindly
of the state of the breaked up one. Gives some supplemental slack
that allows to converge.
- Note: Now the strategy is to disable the uses of GCellRoutingSet by
setting the expand step to 0.99. This induces only a slight slow
dow and memory increase and passes all the tests...
- Mark: This revision passes all the benches except for idct, vld &
ieee_division.
- 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.
* ./unicorn:
- New: "--show-conf" options to dump the current configuration.