1. The script API "map_file" attribute has been changed
to accept and supply nil (for no file), a string (for
a file, empty is equivalent to "no file") and a list
for multiple files which are merged. The split at "+"
or "," has been dropped.
2. The strm* tools option ("--lefdef-map") has been changed
to allow multiple occurances instead of split at "+" or ",".
In the multi-threaded case this saves some time. Still for
the sample from the issue that is a dominant runtime
component and makes a 8-core run slower than the single-core
one.
1. In deep mode, the count report column will report
hierarchical and flat counts
2. XOR is shortcut evaluated with one empty input. The
default implementation does that internally, but at
the cost of mapping to the internal working layout
which spoils hierarchy.
The fix consists of moving that options into the case-specific
options like DBU, instead of having it in the format-specific,
default writer options. So they can be specified on a per-case
basis and taken from the current layout by default.
Specifically:
* SaveLayoutOptions#gds2_libname is deprecated and replaced
by SaveLayoutOptions#libname
* -ol (buddy tools) is no longer format specific
* The GDS writer takes SaveLayoutOptions#libname, and
if empty, substitutes by the current libname. As last
resort, "LIB" is used, because LIBNAME cannot be an
empty string.
* The libname got removed from the global writer options UI
* In the "Save As" options dialog, it now is part of the global
options and initialized with the current layout's libname.
The solution is to separate the meaning of "," and "+" layout
file combination operators in strm2x tools:
* "+" does "blending"
* "," does merge
"+" has priority over "," ('a+b,c' acts as '(a+b),c').
NOTE: LEF caching only happens across "+".
1. Output of shape countsi in deep mode was hierarchical with
output file, flat without
2. Refactoring of XOR (for_merged optimization) needed to
create cover cell variants
Target is to reduce the properties repository to a singleton.
Hence, there is no need to translate property IDs and it
is possible to retrieve properties everywhere.
The OASIS reader is refactored to avoid property renaming
and change of property definitions per ID.
Now, the default of --subst-char in strm2oas is "don't substitute".
You can explicitly specify "don't substitute" using "--subst-char="
(without value).