Commit Graph

336 Commits

Author SHA1 Message Date
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 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
Tim Edwards 56e838ebb6 Merge branch 'work' into tomerge 2018-10-31 14:36:02 -04:00
Tim Edwards 27697d36cc Update at Wed Oct 31 14:36:01 EDT 2018 by tim 2018-10-31 14:36:01 -04:00
Tim Edwards 6f8ec21a11 Two improvements: (1) Command extension "ext2spice lvs" sets up
all the settings normally used for LVS (hierarchy on, cthresh
infinite, subcircuit top auto, etc.).  (2) Extract and extract
unique ignore cells marked as abstract views (property LEFview
is set) when checking for unconnected nets with the same name
label.
2018-10-31 14:33:24 -04:00
Tim Edwards fa17436fef Corrected a few errors in the implementation of "csubcircuit",
now fully tested and verified.
2018-10-30 21:56:05 -04:00
Tim Edwards e20319f3c1 Corrected an error in the last commit that causes serious problems
in the SPICE netlist when using new device "csubcircuit" due to
a mismatch in the expected number of parameters.  However, more
work needs to be done to cover capacitor top and bottom plates on
different planes.
2018-10-30 17:17:49 -04:00
Tim Edwards a36b12eadd Merge branch 'work' into tomerge 2018-10-30 16:22:12 -04:00
Tim Edwards 67c69346da Update at Tue Oct 30 16:22:11 EDT 2018 by tim 2018-10-30 16:22:11 -04:00
Tim Edwards 7dc15a7d28 Added extraction device type "csubcircuit", which should have been
added a long time ago, since capacitors use a different method for
calculating width and length than either transistors or resistors,
so subcircuits need a special class designator or else the extraction
may calculate the wrong dimensions for device width by totalling the
perimeter between the device and terminal types, as it would for a
MOSFET.
2018-10-30 16:19:20 -04:00
Tim Edwards 0944b02f5f Merge branch 'work' into tomerge 2018-10-29 17:32:09 -04:00