* Bug: In pat, the two "decl" & "desc" parser share their yylval variable,
and it was declared in both of them, hence the redefinition error.
Now patched extern in "decl".
* Bug: In scr/main.{h,c} avoid redefinition of NameVdd & NameVss.
* Change: In the AP parser (mbk/alc_pars_p.c), elements are inserted in
head of list and in the AP driver they are saved in the list order.
The result is that each time we perform a full read/write cycle, all
lines in the AP file are reversed. This is annoying to spot differences
betweeen mofificated files and for git managment as side effect.
So now reverse all the PHFIG elements list (PHINS, PHCON, PHVIA,
PHSEG, PHREF) after loading.
Add functions in mph.h to perform fast chained list reversal.
* Bug: In mbk/src/vel_drive.c, when making the signal names VHDL
compliants, we should transliterate the SEPAR character, whatever
it is, by an '_'. It seems that cougar/lynx was not abiding with
the SEPAR and creates signal names with '.' anyway. So we add a
test to check for '.' in addition to SEPAR.
This problem was causing invalid VHDL to be written, with dots
in signal names.
* Change: In rds/src/etc/cmos.rds, correctly generate GDS for CALUx.
* Bug: In pat/src/pat_decl_y.y the yylval union type for "valu" was int
instead of long. In pat_desc_y.y it was long, and pat_decl_l.l was
using the wrong one. That is Flex was writting an int (4 bits) but
bison was reading a long (8 bits), so the four upper bits were
random. Dis show only under 64 bits where int and long have
differnt sizes...
There is something strange nevertheless in this tool, the flex
part for pat_desc seems to be missing, but it compiles (and run).
* New: Ported gscr/src placer and channel router for 2 metal only
technologies (for Hibikino & Make::LSI project).
* Bug: In rfmaccess.c, do not draw rectangle when both size are
too small instead of only one of them.
* Bug: In gds_drive.c, the RDS data structure may contains rectangle of
null width or height. Those rectangles must not be put into the GDS
stream as they prevents the GDS parser to re-read it. For now, we
skip them and issue a warning. Further investigations must be made
to understand how thoses rectangles gets generateds.
* Bug: In rutpoly.c, some long for managing GDS coordinates where still
lurking. Now all are replaced by int32_t.
* Bug: In gds_drive.c, the XY GDSII record for storing the instances
coordinates was using two longs (8 bytes each) instead of int (4 bytes).
Now use a coord_t to force them to be 32 bits integers.
* Bug: In gds_parse.c, symmetric bug to the above. Read 32 bits integers
for XY of instances instead of 64 bits integers.
* 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.