- New: In tools.configuration.xml, add default values for METAL minimum break
lengths.
- Change: In AcmSigda, makes the parser an autonomous one, like for ICCAD or
ISPD.
- Change: Remove AcmSigda, Bookshelf and LEF/DEF parsers from the Alliance
builtins. They are now to be used through import/export.
- Bug: In Utilities, the <misc.logMode> parameter boolean parameter was used
the wrong way (true/false).
- New: In AllianceFramework constructor, now look for an XML configuration
file in the current directory (<cwd>/.environment.alliance.xml).
- New: DefParser, DefDriver & LefDriver are replaced by DefImport, DefExport
and LefExport (resp.). LEF/DEF parser/driver are no longer integrated
in among Alliance ones due to too much difference in data organisation.
Instead they are build as Import/Export utilities.
- New: Iccad04Lefdef import the ICCAD'04 benchmarks into the SxLib format
suitable for Knik/Kite. They are derived from the ISPD'98 (ibm01--ibm18)
benchmarks. Many corrections are applieds to ensure a more realistic
representation.
Generate a new library from the LEF file "on the fly".
- New: Ispd04Bookshelf import the ISPD'04 benchmarks in SxLib from bookshelf.
Thoses benchmarks can be placeds whith fastplace. Unfortunatly fastplace
do not manage blocks and reduce them to standard cell which is not
usable for detailed placement. Too bad, the parser exists still.
Make uses of the new vlsisapd/bookshelf parser. A whole library is
generated "on the fly" on the basis of "one node, one Cell" (so we have
a bijection between Cell and Instance). The result of this parsing is
different from the one of the stand-alone ispd04 binary in the sense it
fits the circuit to the SxLib gauge thus changing the routing capacity:
from 16 to 20.
- Change: In ApDriver, the lookup modify the lookup table for matching
Alliance layers against Hurricane ones, "OBSTACLEx" became "BLOCKAGEx".
- Change: In default <enviromnent.alliance.xml> adds the name of the
blockage net: "^obstacleNet$". Some work over the coherency of the
blockage managment remains to be done.
- Change: In AllianceFramework, partial rewrite of the get/creation of
AllianceLibrary to fit the requirements of the "on the fly" generation
from the benchmarks loaders. And correct some bugs by the way.
- Change: In Environment, suppress any reference to LEF technology as LEF/
DEF is now used as import/exports.
- Bug: In VstDriver, perform only one lookup for global signals among all
nets and not for each instance master cell. That was making the driver
quadratic! Now it's linear and reasonably fast.
+ change cmake OpenAccess macro we need 2 env variables :
OA_LIB_DIR where are the oa libs
OA_INCLUDE_DIR where are the oa headers
this way different headers version can be tested versus different OA compiled libs
- New: Added support for ACM/SIGDA ISCAS98 (.bench extension).
- Bug: In Parsers/Drivers changes the signature of the prototype, passes
file name string by value instead of by reference. In the cases of
reentrant P&D calls it may causes havoc.
- New: In Utilities, automatic setting of STRATUS_MAPPING_NAME. It's put
back into the environment from the configuration. This suppress the
need for the last environment variable under cgt.
- Change: New problem identified with the Python modules: each module seems
to be built as a complete binary, so all the static C++ initializers are
allocated in each module. In particular the C++ tree inheritance is built
for *each* module so we cannot longer uses the typeid() comparisons
across modules... It was used by boost::program_options to perform is
casts with boost::any and was starting throwing exceptions because of
bad casts. program_option was first initialized in "configuration"
first included by PyViewer then in PyCRL (see Utilities.cpp).
A first solution is to re-order the import of Python modules in
stratus1/st_model so that CRL is imported first.
The second is to not not link "configuration" with boost::program_option
as only the binary vlsisapd-conf-editor needs it.
That is a serious problem of which we must be aware and can cause further
strange behaviors.
Debug code used to diagnostic has been kept commented in the sources a
it may be needed again :-(
This behavior do not affect our singletons because they are part of
dynamic libraries that seems to be correctly shared between the various
Python modules.
* ./crlcore:
- In PyCRL, module method "getAllianceFramework()" moved as static object
method "get()" of AllianceFramework. Object AllianceFramework added
to module CRL.
cleaner separated functions converting Hurricane objects to oa
create 4 "Design CellView" of the cell : netlist, symbol, schematic and layout
remove bug with oaLib or oaTech at openning
adding oaLayerConstraint in oaLayer from the oaTech for the rule of the technology
- Bug: target_link_libraries() must be put back for OSX Snow Leopard
(doesn't seems to affect Leopard). As I do not have an OSX under
my hand it's untested and is likely to fail at that point.
* ./crlcore:
- New: PyCatalog & PyCatalogState python wrappers, mainly to have constants
values for stratus1 parsers/drivers.
- Library linking: there must not be "target_link_library()" for libraries,
only when building binaries. Avoid clashes between static module
or class variables, and strange reinitialisation of those variables.
- Change: Boost is now always linked staticly.
* ./crlcore:
- Change: In System, static initialisation problem again, there seems to
be a race between it and boost::filesystem, make the singleton creation
"at first call" again. Triggers the System singleton creation in
AllianceFramework to spare the user the need to explicitly doing it.
- New: In Utilities, automatically adds the "site-packages" PYTHONPATH
component, guessed from CORIOLIS_TOP.
- Change: In PaletteWidget, uses "goMatched" to hide DrawingStyle that are
not associated to a Go to hide/show. That is, are only pure color useds
by ExtensionGo.
- New: In <tools.configuration.xml>, added parameters for verbosity, info
and trace level.
- New: Uniform mecanism to get the "/etc" path. Now System reads the
environment variables (thanks to boost::program_option).
- Change: In Utility, correct "when first called" initialisation of the
System singleton. Access to members only through static members that
ensure the initialisation of the singleton first.
- Change: In System, makes uses of the callback feature of Parameter to
initialize the new configuration parameters (verbosity, coredump, ...).
- Change: In linefill, build upon mstream instead of ostream. Now dual
aspect, inherit ostream and have a mstream member.
- New: "linefill" class which allows to print filled lines and automatically
go to the next line whenever the line is full (more than 80 characters).
- New: In ToolBox, getInstancesCount() recursively counts leaf cell instances.
- New: In CellGauge, added getClone() method (for Configuration).
- Change: It seems that the changes to match the new VLSISAPD weren't commited
by Damien...
My view is : the possibility of configuration and combination of OA,
are almost infinite, the .cmake should not bother on finding the directory
hierarchy depending on uname value but only identify OA libraries and includes.
To compile the OPENACCESS WRAPPER
all you have to do is set an OPENACCESS_TOP like
in the other projects.
Example :
Now assuming you work on coriolis machine
To use the precompiled cadence OA v22.04.057 in
/users/soft/opus/6.1.0/Linux/IC-6.1.0/oa_v22.04.057/lib/linux_rhel40_64/opt
and the headers extracted from si2 OA v22.04.042 in
/dsk/l1/misc/caba/OA_HEADER/include
you can create a directory, let's say /dsk/l1/misc/caba/CADENCE_OA
containing symbolic links respectively named lib and include
Then set OPENACCESS_TOP to this created dir
export OPENACCESS_TOP=/dsk/l1/misc/caba/CADENCE_OA
- Bug: In CMakeLists.txt, local include directories *first*.
- New: In Utilities, Dots::asBool() & Dots::asLambda().
- New: In display.xml, new <drawingstyle> for Mauka Containers.
DO NOT name two files with the same name with only case difference !
Mac osx is by default formated as NON case sensitive system file.
key_k.fig becomes key_k_.fig
key_k.png becomes key_k_.png
key_K.fig and key_K.png are not modified
IMPORTANT: this is a temporary update to allow me to finally checkout crlcore but need to be corrected by the author
- Change: When static linking is required, also switch Boost libraries in static
mode. Automatically done is modules using FindHURRICANE through
SET_LIB_LINK_MODE(). Note: FindBoost must be called *after* SET_LIB_LINK_MODE().
- Bug: In AllianceFramework, do not try to build SxLib gauge if the layers are
not presents. Prevent cgt to miserably fails if the environment is not
found.
- Change: In src/ccore/CMakeLists.txt, try to guess the CORIOLIS_TOP from the
compilation environment and pass back to sources.
- Change: Rename hcmos9 into cmos130 in configuration files.
- New: Adds a README.tex describing the essentials features of Coriolis2.
- New: Support for LaTeX in CMake through the macros supplieds by Sandia.
- Change: Adds support for installation of config file in system-wide
/etc.
- Change: adopt a tree layout compliant with the UNIX FHS.
* includes under TOP/include/coriolis2.
* shared datas under TOP/shared/coriolis2.
* docs under TOP/share/doc/coriolis2.
* configuration under TOP/etc/coriolis2
* ./crlcore:
- Change: In Environment, comply to the new tree layout, search configuration
files under TOP/etc/coriolis2/.
* ./knik:
- Change: In flute, comply to the new tree layout, get the "POW*.dat" files
from TOP/share/coriolis2/flute-2.4.
libraries gets installed in "lib64" instead of "lib".
buildCoriolis.py sets automatically LIB_SUFFIX for cmake.
coriolis2.spec modificated to uses lib64 on 64 bits.
- 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.
- 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).
- 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.
* ./crlcore:
- New: In Utilities, The Dots class which allow nice pretty printing on
a terminal (like lines of books summaries).
- New: In AllianceFramework, getInstancesCount() to count the number of
instances in a Cell. The count can be recursive or not or ignore or
not feed cells. This could be viewed as a very simple query, and has
to be implemented here because we only new Feed Cell from the CATAL
of the Alliance Framework.
- New: The Measure extension (on any DBo) that allows to save measurement
and print them later into a file. Mainly to supply gnuplot with datas.
Obsoletes the "statsExtract.py" script from statistics, and much
more reliable.
- Change: In ToolEngine, adds a static method "destroyAll()" that must be
called *before* the Hurricane database destruction. This is to avoid
a mis-oredering in destruction.
ToolEngines are stored in a property, property are part of the DBo
base object so are destroyed *after* the Cell derived object has been.
Thus ToolEngine are deleted *after* the Cell components and if they
still refers to it, we are doomed.
- Change: In display.xml, color support for displaying references.