* Change: Put all shared functions of uploadOBS.sh inside a common
uploadUtils.sh. When a fix or an update is made, this file is to
be copied inside the packaging/ directory of the other repositories,
using the copyUpload script.
* New: In uploadOBS.sh, add an option to fast rebuild, on the local
machine, a rpm. Currently the AlmaLinux 9 flavor.
Re-created RPMs are put under <root_dir>/src/coriolis-rpm/
Note: whenever a new "fast" version of a package is created, in
order to be seen as "newer" than the one provides by fossEDA,
adjust the obsCI_CNT value to be *exactly* one above the
distributed version.
* New: packaging/buildDevelPackages.sh scripts to rebuild all the
RPM packages (AL9) and push them into the 9_devel repository, ready
for fast deployment.
* New: VectorCached<> collection, create a vector containing the elements
of the collection before iterating over it with the locator.
Use with moderation as *each* Locator will contains a complete
copy of all the elements, sorted by Id.
Not used yet.
* Change: In Collection<>, rewrite the support for the "for" loops using
const_iterator instead of iterators (non const).
* New: Add RDL and RDW support in Layer, RegularLayer, Horizontal
and Vertical.
- RDL --> realDeltaCap
- RDW --> realDeltaWidth
Now Horizontal and Vertical looks for realDeltaCap & Width to
perform their bounding box calculation on a given BasicLayer.
For now, only RegularLayer provides support for thoses
extensions.
To activate this real mode display (also active in GDS driving),
use Layer::setS2RMode().
* New: Create a techno.common.addStyle() helper able to load and
create a new DisplayStyle from a JSON-like set of data.
This allow a much more compact and readable writing of their
styles.
* Fix: In overlay.CachedParameter.cacheWrite(), if the Python type
of the parameter was not in accordance with the expected one
the C++ parameter setter setInt(), setDouble() ...
At least one mismatch was occurring when writing 0 (int)
into a double 0.0.
* New: designflow.proof, support for the Alliance formal proof tool.
* New: designflow.group, allow to group a bunch of DoIt rules together.
* Change: In designflow.cougar, allow to keep the generated spice files.
* Fix: In designflow.druc, forgot to add the targets at DoIt level,
this was preventing druc rules to be chaineds.
* Change: In designflow.graal, display the RDS/GRAAL techn if requested.
* Change: In designflow.dreal, display the RDS/GRAAL techn if requested.
* Fix: In designflow.task, add LD_LIBRARY_PATH component *only once*.
* New: In designflow.tasyagle, add derived tasks:
1. ExtractCell to run Yagle from the spice file, using the
extractCell.tcl script.
2. Liberty to generate the liberty file. Use the buildLib.tcl script.
Also add *once* the TCL initialisation script path.
* Change: In designflow.vasy, add a cleanup option to replace the
"linkage" by "in" and completely remove the "ck.delayed".
Feature activated by the VbeCompliant flag.
* Change: In CRL::Environment CTOR, set the default value of SCALE_X to
100 (instead of 10). Strangely enough, it seems that the reduced
precision of the extracted spice files by cougar make Tas/Yagle
fail while regenerating the liberty.
* Change: In CRL::ApParser::_parseBigVia(), don't stop when encoutering
an unknown layer. Instead issue a warning and continue. So at least
we can look at the partially loaded cell.
* Change: In Manipulator::relaxVH(), increase the high density threshold
from 0.5 to 0.7. Take account the perpandicular wire density (M3)
when looking for the break point.
* Fix: In SegmentFsm::_slackenGlobal(), forgot to break the switch in case
of success in the Dogleg/ripupPerpandiculars case.
* Change: In AutoContact::doRp_Access(), assume that M1 terminal are
on grid on the vertical axis at least, so suppress the offgrid
vertical segment. On the other hand, on HSmall one add a non-pref
(i.e. horizontal) strap right on the terminal to give access to
at least 3 vertical tracks.
* Fix: In Manipulator::moveUp(), reject segments in non-preferred
routing direction.
* Fix: In AutoVertical::_makeDogleg(), forgot to fully re-canonize
the new & old segments. This was leading to multiple TrackSegment
creation over the *same* canonical set of AutoSegments.
And message over TrackSegment built over non-canonical ones.
* Fix: In TrackSegment::_check(), when computing track span of non-pref,
we are using the segment *width*, and in fact, the extension cap
from the ending VIAs. Now use the max between source & target VIAs,
instead of only the source. Was generating false positives.
* Fix: In KatanaEngine::annotateGlobalGraph(), when caping the maximum
reserved capacity on horizontal edges, we where using the maximum
*vertical* threshold instead of the *horizontal* one. In some case,
it would lead to the reserved capacity eating up all the edge, hence
seemingly completly unroutable cases...
In some case, the LEF technology definition do not defines all the
CUT and ROUTING layers, so there are *less* than in the Hurricane
complete one. This may cause a discrepency in the mapping table
between Hurricane and LEF. Thus we modify LefImport::addLayer() so
that we can specify a LEF type and load it into the mapping table the
missing ones. This case did occur for an undeclared *contact* layer.
* Change: In LefImport::_createBestSegment(), always create a Segment
to attach to, even if offgrid. Otherwise, the router cannot use
it and make it on grid.
* Fix: In Configuration::selectRpComponent(), must use the bounding boxes
shrunken by the bottom VIA enclosure to compute the track span
accessible to the pin. And if empty, to flag it as offgrid.
The enclosure shrink was forgotten...
Adding Python wrappers, fixes accross liberty lib
Fixing infinite loop
Tested and fixed Liberty to Hurricane bridge
Setting proper ownership of liberty library.
Changing name of LibertyToDb (because name was nonsense)