* Bug: In autostuff, some text files are now recognized as binary ones,
so force grep to process them as text ones (-a).
* Bug: In Nero, in UOpts.cpp, refer to the system getopt as '::getopt()'
to avoid namespace resolution problems.
* New: In MBK, read new environment variables for ring router
RING_WMIN_ALU1, RING_DMIN_ALU1, ...
* New: In RDS, in rprparse.c add entry in table MBK_WIRESETTING for the
new ring variables.
* Change: In RDS, in rfmaccess.c, degenerate a BIGVIA into a default VIA
when one of it's side is inferior to SIDE*1.5. This allow ring to
keep it's 6x6 BIGVIAs.
Contributed by N. Shimizu.
* New: In RDS, added rds file for the MOSIS SCN6M_DEEP technology,
with a lambda equal to 0.09um (target techno is TSMC 0.18um).
* Change: In cells/mpxlib, updated pad layout for scn6m_deep, with
correct blockage shapes for the Coriolis router Kite.
Those pad are generated from the pxlib ones by the Coriolis
script px2mpx.py (in cumulus/src/tools).
* Bug: In ring, some adjustments for the metal spacing computation.
* Bug: In Nero & Ocp, fix small compilation issues under Cygwing.
* Bug: In alc_env.sh.in & alc_env.csh.in, the man pages are under
TOP/share/man and no longer TOP/man.
* Change: In all the supplied RDS files, add the MBK_WIRESETTING
table (cmos.rds, techno-symb.rds, techno-035.rds).
* New: In ring, make uses of the MBK_WIRESETTING_TABLE.
* New: In cells/pxlib, add the '_sp' variant of the pads to emulate
the old padlib. This way we have only one "true" to maintain,
not two kind. The '_sp' variant is an encapsulation of the '_px'
one. Basically it provides connectors *on* the abutment box
instead of over-the-cell (and inside AB) terminals.
Contributed by N. Shimizu & F. Wajsburt.
ATTENTION: At this point there is a problem between ring and the
'_sp' emulated version of the pad. Ring doesn't seem
to see correctly the the power rails from the pads and
made short circuits with ordinary signals...
It is very risky to use this version until this issue
is resolved.
* Bug: In <rds>, in rprparse.c RprGetLine(), when the rds file neither
contains a WIRESETTING table nor druc rules, the end of file case
was not correctly handled causing the RprReadParam() function to
exit with a truncated file error.
* Bug: In <rds>, in rfmaccess.c viambkrds(), the holes of the BIGVIAs
are aligned on a design-wide matrix to allow two overlapping BIGVIAs
to have their holes exactly at the same places (one consequence is
that the holes of a BIGVIA may be off-center).
But, if the BIGVIA is "too small", that is, it's area cannot
accomodate at least one "on grid" hole, it silently replaced by a
default (i.e. minimal size VIA). In that case you may endup with
a mixture of BIGVIA (when the hole is aligned) and default VIA,
when it is not... The fun part, is that it is DRC correct, but
looks messy.
To avoid this, we systematically use the default VIA when the
side of the BIGVIA is less than two holes wide (in either direction).
* New: In RDS tables, add rules describing the wiring for the router and
the cell gauge. This do not scritly respect the fact that RDS deals
only with the symbolic to real translation and programs that are
purely symbolic should not access it. But is is the simplest way to
provides them with default configuration, whithout using environement
variables.
So now, ocp and nero do read the rds configuration file, but only
for the symbolic wiring rules informations.
Modification contributed by N. Shimizu.
* Change: In <mbk>, in mbk_utils.c, nowadays all C libraries supplies the
tolower() function, so no longer use our own. And besides it was causing
problems in the static initialization when both rds and mbk environement
where loaded together.
Modification contributed by N. Shimizu.
* Bug: In <rds>, In rprparse.c in RprTranslateParam() there was a rounding
error again. We cannot simply adds 0.5 as this function could be called
for *negative* values. Instead, use lround() C function (round in
opposite directions for positive or negatives integers).
* Bug:
In some places, fprintf was called like:
char* name;
fprint( stderr, name );
It should have been:
fprint( stderr, "%s", name );
Patch contributed by T. Maas on behalf of Fedora.
* Bug: In <mbk>, in mvl_scomp_y.y, when the ENTITY PORT was parsed,
pairs of losig/locon must be created on the lofig (one losig per
locon). But in the case of a port 'out mux_bit|mux_vector bus',
the signals *where* created but *not* connected to the locons.
Instead, the previously created signal from former locons were
connected. This was showing in flattenlofig() and causing wrong
short circuits to be detected by lvx (tricky to diagnose).
* Bug: In <mbk>, in mbk_lo_util.c, check the PRCN struct attribute
to be NULL before trying to display it in mlodebug().
* Change: In <mbk>, more debug informations in various places.
* Bug: In <rds>, in rut.h, coord_t is used to read coordinates from gds
that are on 32 bits. But it was using long that are 64 bits on 64
bits architectures causing crash. Now uses int32_t.
Patch contributed by N. Shimizu.
* Bug: In <rds>, in rprparse::RdrTranslateParam(), add 0.5 before casting
a double into a long, to avoid rounding error (truncation) for the
returned value. Patch contributed by N. Shimizu.
This is mainly due because when parsing the <.rds>, the sscanf may
slighly change numbers. For example, 0.09 will be parsed as a double
0.089999999999999997. Then later multiplations fall short when
truncated into integers.
* Change: In <rds>, gds_parse & gds_error, if a layer whose index was not
in the rds file was encountered, it was just discarted but the parsing
did continue, resulting in a possibly incoherent RDS figure.
Now we just stop the parsing and trigger the error mechanism
returning a NULL pointer, which is then safely handled by <dreal>.
Under dreal, the error messages could be retrieved from the
transient log files /tmp/alliance_all_PID, which is removed when
dreal close.
This is the missing message from the N-2 commit.
It also include small corrections.
* Change: There was depency loop in Alliance libraries, mainly between
the database <mbk> and it's parsers/drivers (<mbkap>, <mbkvti>, ...).
This was not causing problems on systems that allows symbols to be
undefined when the library is built, but on others it prevents to
build at least dynamic libraries, for example under Cygwin.
Note: to reproduce this behavior under linux pass '-Wl,-z,-defs'
in the CFLAGS/CXXFLAGS.
Another side effect was to prevent parallel building (-jX).
* Change: <mbkvhdl> is redundant with <mbkvhdlg> which is newer, so
this library is suppressed.
* Change: mbk merged libraries, <mbkap>, <mbkvti> goest into Mpu.
<mbkedif>, <mbkal>, <mbkhilo>, <mbkmg>, <mbkspice>, <mbkmg>,
<mbkvhdlg> and <mbkvrlog> goes into Mlu.
* Change: rds merged libraries, <rdscif> and <rdsgds> goes into Rds.
All Rds sub-libraries are also mergeds into Rds.
* Change: vbh merged libraries, <vbl>, <vvh>, <vtl> & <vpd> goes into
Vbh.
* Change: pat merged libraries, <ppt> & <phl> goes into Pat.
* Change: in <asimut>, the Cst libraries is transferred into <beh> to
be merged with Beh.
Conflicts:
alliance/src/ocp/src/common/Makefile.am
alliance/src/ocp/src/placer/Makefile.am
alliance/src/ppt/src/Makefile.am
Devel was not started from the last master commit, have to
push back the changes again...
* Change: There was depency loop in Alliance libraries, mainly between
the database <mbk> and it's parsers/drivers (<mbkap>, <mbkvti>, ...).
This was not causing problems on systems that allows symbols to be
undefined when the library is built, but on others it prevents to
build at least dynamic libraries, for example under Cygwin.
Note: to reproduce this behavior under linux pass '-Wl,-z,-defs'
in the CFLAGS/CXXFLAGS.
Another side effect was to prevent parallel building (-jX).
* Change: <mbkvhdl> is redundant with <mbkvhdlg> which is newer, so
this library is suppressed.
* Change: mbk merged libraries, <mbkap>, <mbkvti> goest into Mpu.
<mbkedif>, <mbkal>, <mbkhilo>, <mbkmg>, <mbkspice>, <mbkmg>,
<mbkvhdlg> and <mbkvrlog> goes into Mlu.
* Change: rds merged libraries, <rdscif> and <rdsgds> goes into Rds.
All Rds sub-libraries are also mergeds into Rds.
* Change: vbh merged libraries, <vbl>, <vvh>, <vtl> & <vpd> goes into
Vbh.
* Change: pat merged libraries, <ppt> & <phl> goes into Pat.
* Change: in <asimut>, the Cst libraries is transferred into <beh> to
be merged with Beh.
* Bug: In <mbkvhdlg>, cast the hash table index entries from pointer
to unsigned long instead of long to avoid negative numbers when
computing the modulo (shows on Cygwin). This was causing <boog>
to crash.
* Bug: In <ppt>, with bison 2.7, yylval must not be re-declared extern
(didn't show on earlier versions).
* Change: In <ocp>, uses "-std=gnu++0x" instead of "-std=c++0x" to
have both C++11 features *and* POSIX features (namely: strdup).
The problem is that strdup is *not* ANSI, but only POSIX and as
such, not defined when c++0x is active. Will have to change
again in the future as gnu++0x is on the way of deprecation...