Commit Graph

345 Commits

Author SHA1 Message Date
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 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
Tim Edwards 5804bd3326 Minor typo correction. 2018-11-20 13:04:44 -05:00
Tim Edwards 5e28e84336 Merge branch 'work' into tomerge 2018-11-19 15:04:32 -05:00
Tim Edwards f30f976bc7 Update at Mon Nov 19 15:04:29 EST 2018 by tim 2018-11-19 15:04:29 -05:00
Tim Edwards 17227ee427 Added new option "-hide" to the "lef write" command, which causes
the output to have an obstruction area over the entire cell except
for a keep-out area around each pin.  Instead of marking every
part of the pin geometry, only the "chunk" (largest immediate
rectangle) surrounding the port label is output as part of port
LEF geometry.  This avoids making unnecessarily complicated
abstract views, and makes it easier for other tools to read and
manage the same abstract views.
2018-11-19 15:01:20 -05:00
Tim Edwards f756825828 Removed a few diagnostic output statements from the last commit. 2018-11-16 14:43:41 -05:00
Tim Edwards ee6834abde Merge branch 'work' into tomerge 2018-11-16 14:04:00 -05:00
Tim Edwards 852dabeee1 Update at Fri Nov 16 14:03:58 EST 2018 by tim 2018-11-16 14:03:58 -05:00
Tim Edwards dd3a92762c Update for writing files from abstract views. Previous behavior was
to prefix all library components read from GDS files pointed to by
an abstract view (other than the cell itself) with a prefix.  But
this does not account for the fact that the same library may be read
by other cells.  The solution is for every cell in the library, check
if there is a cell in magic with the same name which is also an abstract
view that points to the same GDS library.  Those cells do not get
prefixes.  At the same time, however, it was discovered that the GDS
cellname character limit is set at 32, and so prefixes must be kept
short.  To keep the prefixes unique, the prefix was changed to a 4
character random alphanumeric sequence, and a warning is issued if
any GDS cell exceeds the 32 character limit.
2018-11-16 13:59:17 -05:00
Tim Edwards eca3ba25b3 Merge branch 'work' into tomerge 2018-11-15 15:57:58 -05:00
Tim Edwards a2ef591c8d Update at Thu Nov 15 15:57:56 EST 2018 by tim 2018-11-15 15:57:56 -05:00
Tim Edwards 395fb1a8d6 Corrected node merging, which failed to copy the EF_TOP_PORT flag
bit into the merged node.  Corrected reference to efNodeHashTable
to the more proper call to EFHNLook().
2018-11-15 15:55:41 -05:00
Tim Edwards cf9f9784ed Merge branch 'work' into tomerge 2018-11-12 13:27:15 -05:00
Tim Edwards 131ac3156f Update at Mon Nov 12 13:27:12 EST 2018 by tim 2018-11-12 13:27:12 -05:00
Tim Edwards 66603cdb53 Corrected invalid logic in the interpetation of (cif/gds) label
options "text", "port", and "noport" in the techfile.  The
incorrect interpretation was preventing backwards compatibility,
such that ports would not be output on GDS layers if the "port"
option was not used.
2018-11-12 13:25:05 -05:00
Tim Edwards 648b9e54e6 Corrected "ext2spice lvs" to add "global off" as a setting, which
is normal for top level designs (no implicit label connections
should be made at the top level).
2018-10-31 15:41:22 -04:00