Commit Graph

360 Commits

Author SHA1 Message Date
Tim Edwards e183a5bd5c Update at Tue Mar 12 13:31:32 EDT 2019 by tim 2019-03-12 13:31:32 -04:00
Tim Edwards c08ddd355f Merge branch 'master' into work 2019-02-18 10:02:00 -05:00
Tim Edwards 6c69c67e17 Update at Mon Feb 18 10:01:58 EST 2019 by tim 2019-02-18 10:01:58 -05:00
Tim Edwards 677692e59f Corrected a potential problem with the substrate finding search,
which can be given an invalid area for the search.
2019-02-18 10:01:17 -05:00
Tim Edwards 834a4504de Merge branch 'master' into work 2019-02-14 12:21:59 -05:00
Tim Edwards d6cffb09f5 Update at Thu Feb 14 12:21:56 EST 2019 by tim 2019-02-14 12:21:56 -05:00
Tim Edwards 5693729ad5 Added code to avoid mishandling negative layer numbers when a
label in a DEF file is on a layer that has not been properly
mapped to a magic layer.  This would apply a negative index to
a TileType bitmask and crash the program.  Also:  Changed the
style and colormap slightly to make the via2 and via4 styles
more visible.
2019-02-14 12:19:50 -05:00
Tim Edwards 4348c11f10 Merge branch 'master' into work 2019-02-09 17:05:50 -05:00
Tim Edwards 8e1d57e234 Update at Sat Feb 9 17:05:48 EST 2019 by tim 2019-02-09 17:05:48 -05:00
Tim Edwards 7f1fa3a4c5 Modified the label connect function so that it only copies connected
labels if they are in the top-level cell of the connection search.
Otherwise, this slows the connection search way down for nets with
lots of internal labels, and can also have potentially bad consequences
if, for example, the connected network is copied to another position,
and carries all the flattened and non-hierarchically-named labels with
it.
2019-02-09 17:02:23 -05:00
Tim Edwards dfa95351cb Merge branch 'master' into work 2019-02-07 10:56:35 -05:00
Tim Edwards 2dba7e7c5e Update at Thu Feb 7 10:56:32 EST 2019 by tim 2019-02-07 10:56:32 -05:00
Tim Edwards 9f5936c7cb Found an additional scaling-up problem in ext2spice (previously handled
a scaling issue in extract) which was caused by the addition of
hierarchical netlist generation.  Finding hierarchical connections
requires finding instances by name, so it is vastly better to create a
hash table of instances instead of a linked list.
2019-02-07 10:54:07 -05:00
Tim Edwards c669d83dc6 Merge branch 'master' into work 2019-02-06 11:09:55 -05:00
Tim Edwards 512f5a7419 Update at Wed Feb 6 11:09:52 EST 2019 by tim 2019-02-06 11:09:52 -05:00
Tim Edwards 1beb7cd741 Corrected error that potentially causes a segfault in "lef write"
when accessing the inverse layer map array beyond its defined
allocated limit of DBNumUserLayers.
2019-02-06 11:09:46 -05:00
Tim Edwards af3ac0dde4 Merge branch 'master' into work 2019-01-31 11:00:26 -05:00
Tim Edwards 5eed0da098 Update at Thu Jan 31 11:00:23 EST 2019 by tim 2019-01-31 11:00:24 -05:00
Tim Edwards 78666d57e0 Modified the behavior of label handling in GDS input so that a
label specified as having type "space" automatically overrides
the "no-reconnect-labels" flag.  Modified the behavior of the
label reconnect algorithm so that it searches by plane order so
that material on the highest plane that matches the reconnection
criteria is chosen over similar materials on lower planes.
2019-01-31 10:56:38 -05:00
Tim Edwards dc6b0c5776 Merge branch 'master' into work 2019-01-30 17:18:51 -05:00
Tim Edwards ae76d92426 Update at Wed Jan 30 17:18:49 EST 2019 by tim 2019-01-30 17:18:49 -05:00
Tim Edwards 25304924b7 Corrected an apparently long-standing (but relatively obscure) error
where devices extracted as "device resistor" or "device capacitor"
and defining parameters (e.g., area, perimeter) will generate the
device arguments in the wrong order in the .ext file, resulting in
incorrect readback when attempting to do ext2spice, resulting in the
device being omitted from the resulting netlist.
2019-01-30 17:16:50 -05:00
Tim Edwards e87d413475 Merge branch 'master' into work 2019-01-29 16:46:41 -05:00
Tim Edwards 83d70924f2 Update at Tue Jan 29 16:46:38 EST 2019 by tim 2019-01-29 16:46:38 -05:00
Tim Edwards 57cded900f Found an error that causes the worst of the problem in long
extraction times, which is an incorrect units conversion of the
"step" parameter in the extract section.  It was converting based
on the "lambda" parameter in the same section, which has to do with
the scaling of values in the output file, not the scale factor of
the database to be extracted, which is set by the current CIF output
scale.  Once fixed, extraction times are minimized using the rule of
thumb mentioned in the techfile reference, which is 50 times the
minimum feature size.  Also:  Give the lengthy nature of extraction
on large designs no matter how well optimized, added a feature to
mark the progress of the extraction in increments of 5%.  Does not
output progress for small cells that extract quickly.
2019-01-29 16:41:48 -05:00
Tim Edwards 39695aecb0 Merge branch 'master' into work 2019-01-28 22:39:06 -05:00
Tim Edwards c3f3c5e4f9 Update at Mon Jan 28 22:39:04 EST 2019 by tim 2019-01-28 22:39:04 -05:00
Tim Edwards 61beaeaf83 Corrected a problem that can cause super-long run times for
extraction.  The plane mask array that denotes for each type which
planes should be searched for connecting types is supposed to be
a rare case that covers situations where planes connect by types
that are not contacts.  Instead, many planes were in this array,
causing the worst-case extraction methods to be run constantly.
2019-01-28 22:36:20 -05:00
Tim Edwards 90b413b582 Merge branch 'master' into work 2019-01-01 20:40:49 -05:00
Tim Edwards 0045ab261c Update at Tue Jan 1 20:40:47 EST 2019 by tim 2019-01-01 20:40:47 -05:00
Tim Edwards 8c35898902 Added same correction as made to version 8.1 to prevent leaving
the undo mechanism in the wrong state when writing a LEF header
with no route track information.  Also added code to the DEF write
routine to handle subcell arrays.  Thanks to Martin Devera for
both patches.
2019-01-01 20:39:16 -05:00
Tim Edwards 44bdb2a80b Merge branch 'master' into work 2018-12-28 10:29:31 -05:00
Tim Edwards 4201980923 Update at Fri Dec 28 10:29:29 EST 2018 by tim 2018-12-28 10:29:29 -05:00
Tim Edwards ded7dcb93f Corrected an error that causes run-time issues with compiling the
non-Tcl/Tk version, as the routine DRCBreak() is called but never
defined.
2018-12-28 10:29:18 -05:00
Tim Edwards 34ae6ea9cc Corrected error in technology file reloading that causes the plow
module to fill up its rules table and start printing errors about
the table overflow.  Tables are now properly reset on tech reload.
2018-12-14 16:33:34 -05:00
Tim Edwards 53fd26d1bc Corrected DRC "why" message subsitution sequence "%a" so that it
corresponds to drcc_cdist, which encodes the area (not drcc_dist).
2018-12-14 14:02:54 -05:00
Tim Edwards 880ebde614 Merge branch 'work' into tomerge 2018-12-14 11:58:25 -05:00
Tim Edwards 213749d009 Update at Fri Dec 14 11:58:22 EST 2018 by tim 2018-12-14 11:58:22 -05:00
Tim Edwards 6aa0895e6f Created a method for distance substitutions in DRC "why" strings in
DRC rules.  The substitutions are specified by "%d" for the main
rule distance, "%c" for the corner rule distance (sometimes
interpreted differently;  e.g., as width in the widespacing rule),
and "%a" for rule area (e.g., maxarea rule).  In addition to
simplifying the process of writing rule violation strings, the
benefits are twofold:  (1) The output is in meaningful physical
units, but in the case of SCMOS technology, will scale properly
depending on the selected GDS output style, and in the case of
all technologies, will scale properly with internal grid division;
and (2) when using lambda, but where rules are given in vendor
minimum dimensions, the rules will be based on the lambda rule
approximation (that is, distances will be rounded to the nearest
lambda but reported in microns).  Behavior is unchanged from
previous versions for "why" strings not using the defined
substitution sequences.
2018-12-14 11:51:27 -05:00
Tim Edwards 533017c8c7 Merge branch 'work' into tomerge 2018-12-13 12:05:18 -05:00
Tim Edwards bd583f476b Update at Thu Dec 13 12:05:16 EST 2018 by tim 2018-12-13 12:05:16 -05:00
Tim Edwards f3d191981d Corrected a few aspects of LEF write: (1) Put BUSBITCHARS in the
header, (2) Use CLASS BLOCK in the macro if no class is defined,
and (3) Add END LIBRARY to the end of the file.
2018-12-13 12:04:10 -05:00
Tim Edwards 3bfc2bd620 Merge branch 'work' into tomerge 2018-12-12 17:25:17 -05:00
Tim Edwards 3fa8a88a79 Update at Wed Dec 12 17:25:15 EST 2018 by tim 2018-12-12 17:25:15 -05:00
Tim Edwards f3a95c74fe Corrected hierarchical SPICE extraction to reset the subcircuit
name-to-number mapping used for the HSPICE format between
subcircuits.  Otherwise, subcircuits with the same instance ID
remain in the table and may cause nodes to be output with a name
that collides with other names in the same subcircuit.  This only
affects output in HSPICE format.
2018-12-12 17:23:35 -05:00
Tim Edwards fc0645a88e Merge branch 'work' into tomerge 2018-12-07 10:12:31 -05:00
Tim Edwards a746acea5c Update at Fri Dec 7 10:12:29 EST 2018 by tim 2018-12-07 10:12:29 -05:00
Tim Edwards 4da51bc42a Modified the "makedbh" script to avoid intermixing "printf" and
"echo", because there is at least one OS variant out there where
the two buffer independently and cause the output to have lines
out of order.  The script had previously used "printf" because
"echo -n" is not POSIX-compliant and so not necessarily universally
compatible.  The script was changed to use "printf" throughout.
2018-12-07 10:10:22 -05:00
Tim Edwards ba9dfb7765 Merge branch 'work' into tomerge 2018-11-20 13:07:56 -05:00
Tim Edwards 5802fab980 Update at Tue Nov 20 13:07:54 EST 2018 by tim 2018-11-20 13:07:54 -05:00