Commit Graph

275 Commits

Author SHA1 Message Date
Tim Edwards 7189d84a08 Corrected the routines that determine the "best" name for a node
so that they always give precedence to a port name over a global
name.
2018-09-25 15:18:51 -04:00
Tim Edwards d92a5a8506 Merge branch 'work' into tomerge 2018-09-25 14:21:55 -04:00
Tim Edwards ee2c78e71a Update at Tue Sep 25 14:21:53 EDT 2018 by tim 2018-09-25 14:21:53 -04:00
Tim Edwards ca67c8aedf Added code to EFread to make sure that reading .ext files is
symmetric with writing them.  Since the writing of .ext files
was changed to preferably use the location of the cell being
read, and since the extflat database does not save this path
information, it was necessary to check the main database entry
for each cell to determine if there is a non-default path where
the .ext file may have been saved (with the current working
directory used as a fall-back if the directory is not writeable).
2018-09-25 14:19:30 -04:00
Tim Edwards d594ba8e07 Additional adjustment to ensure that "run length" means the length
shared by the material on both sides.  However, it may require a
clipping method to avoid triggering on shared lengths that are
on an offset.
2018-09-21 15:18:33 -04:00
Tim Edwards 9fc2ee9648 Merge branch 'work' into tomerge 2018-09-21 14:44:29 -04:00
Tim Edwards 504293735a Update at Fri Sep 21 14:44:26 EDT 2018 by tim 2018-09-21 14:44:26 -04:00
Tim Edwards 7b3c4e8777 Refinement of run-length spacing rule analyzes all of the maximum
area rectangles returned by the "maxrect" function and so does
not get triggered simply by the length of the edge being checked.
2018-09-21 14:42:59 -04:00
Tim Edwards 65a4731541 Merge branch 'work' into tomerge 2018-09-19 17:10:45 -04:00
Tim Edwards d8839d5936 Update at Wed Sep 19 17:10:42 EDT 2018 by tim 2018-09-19 17:10:42 -04:00
Tim Edwards 005a4880a3 Modifed the DRC section of the techfile to add two additional
behaviors:  (1) An additional syntax for "widespacing" that allows
both the triggering metal's width AND run-length, which is typical
of rules in 65nm-and-below processes;  and (2) a new "option"
statement for the DRC section, with (for now) one possible flag
"wide-width-noninclusive", indicating that the metal width given
for "widespacing" rules means that a violation is only triggered
for material with a width greater than the given rule width (as
opposed to the default interpretation of a width greater than
or equal to the given rule width).
2018-09-19 17:04:13 -04:00
Tim Edwards f8b79133fb Corrected the "port makeall" command so that it actually works, and
since the edit box was undefined in the code, potentially this
fixes any number of random problems that might be seen with the
"port" command.  Also:  Modified the cell bounding box recalculation
so that it does not continually update a parent cell on every
addition of a child cell but only once for each child cell found.
This greatly reduces the time for GDS file input in the case of
large arrays of cells.
2018-09-13 21:09:38 -04:00
Tim Edwards 7139e0fbb1 Merge branch 'work' into tomerge 2018-09-13 10:21:43 -04:00
Tim Edwards 6cb87ae530 Update at Thu Sep 13 10:21:41 EDT 2018 by tim 2018-09-13 10:21:41 -04:00
Tim Edwards 54e6171e9c Corrected an error that prevents the compile option
"--enable-cairo-offscreen" from working.  Because the option
does not run the full Cario initialization, the grTCairoVisualInfo
is not set, and the first attempt to create a Cairo surface
fails with a segfault.
2018-09-13 10:19:48 -04:00
Tim Edwards fe765bb006 Merge branch 'work' into tomerge 2018-09-09 15:11:49 -04:00
Tim Edwards 1f0d03f3cc Update at Sun Sep 9 15:11:47 EDT 2018 by tim 2018-09-09 15:11:47 -04:00
Tim Edwards 9eb406ffba Implemented an idea from Staf Verhaegen to have "labels" options
"port" and "noport" in the cifoutput section to distinguish
between layer:purpose pairs for port text vs. other kinds of
text.  This allows a closer correspondence between GDS read and
write.  Note that the port writing is currently only in the GDS
write routine, not in the CIF routine.
2018-09-09 15:09:15 -04:00
Tim Edwards b964f9d33a Corrected a number of errors in the last two commits, as well as
additional functionality for ports in GDS format.  This has been
tested with a techfile encoding pin types on a different purpose
than the metal layer drawing purpose.  The label rectangle is
correctly written to the GDS output as geometry on the pin
purpose layer, and the same layer gets read back in from the GDS
file and translated back into the label rectangle.  Port order
is maintained.
2018-08-27 12:23:10 -04:00
Tim Edwards 5c6bc5db34 Extended the code of the previous commit to include attaching
labels to geometry defined using either the "port" or "text"
options of the "label" statement in a cifinput section.
2018-08-27 11:03:05 -04:00
Tim Edwards 1345cc933c Merge branch 'work' into tomerge 2018-08-27 11:00:51 -04:00
Tim Edwards 20bad19600 Update at Mon Aug 27 11:00:50 EDT 2018 by tim 2018-08-27 11:00:50 -04:00
Tim Edwards 925136c652 Attempt at finishing the support of standard practices to define
geometry attached to a label in GDS using specific layer:purpose
pairs.  The additional code maintains the order of ports when
writing out text to GDS, and attempts to attach geometry to labels
when the geometry is defined on the same layer:purpose pair as
the text, and the cifinput style declares the purpose to be a
port label.
2018-08-27 10:57:51 -04:00
Tim Edwards 9dcaddc67c Merge branch 'work' into tomerge 2018-08-26 22:42:11 -04:00
Tim Edwards db2c01d30a Update at Sun Aug 26 22:42:09 EDT 2018 by tim 2018-08-26 22:42:09 -04:00
Tim Edwards 404629e49f Added new option "port" for the "labels" statement in cifinput.
This allows text appearing on a specific GDS layer:purpose pair
to be interpreted as a port.  This does not quite match the
intended behavior of such layers, since it is implied that any
layer geometry coincident with the text should form the area of
the port, which is not (yet) handled.  Also, it is presumably
implied that the port order matches the order in which text
appears in the GDS stream, but magic does not preserve this
order when re-writing any GDS output.
2018-08-26 22:36:15 -04:00
Tim Edwards e073394430 Applied another patch by Iain McNally that restores the obscure
function that was available in versions 7.1 and earlier that
allows the use of the command "erase errors" to remove DRC error
paint (only when the DRC checker is off, of course).
2018-08-20 22:43:34 -04:00
Tim Edwards 47e1713142 Merge branch 'work' into tomerge 2018-08-20 22:13:33 -04:00
Tim Edwards 62a25afc07 Update at Mon Aug 20 22:13:31 EDT 2018 by tim 2018-08-20 22:13:31 -04:00
Tim Edwards 83da1988e6 Corrected CIF import for reading CIF area labels correctly when
the label causes a scale change.  Thanks to Iain McNally for the
patch.  Same correction as made to magic-8.1.
2018-08-20 22:13:16 -04:00
Tim Edwards 70c3c67dc6 Merge branch 'work' into tomerge 2018-07-19 10:24:44 -04:00
Tim Edwards 6547ca3f3f Update at Thu Jul 19 10:24:42 EDT 2018 by tim 2018-07-19 10:24:42 -04:00
Tim Edwards 193493a0cc Corrected an error in the DEF file read routine's check on via
DRC rules, which was conflating magic and CIF tile types,
resulting in incorrect reading of via layers.
2018-07-19 10:23:30 -04:00
Tim Edwards 1f961347e1 Merge branch 'work' into tomerge 2018-06-21 12:52:31 -04:00
Tim Edwards 1009ca19f7 Update at Thu Jun 21 12:52:31 EDT 2018 by tim 2018-06-21 12:52:31 -04:00
Tim Edwards 4ae868802d Modified the LEF read routine so that it determines the LEF-to-
magic conversion for making magic contact types from contact cuts
from the CIF/GDS input rules rather than the output rules.  This
generally makes more sense, plus avoids conflicts where the output
rules may be set for CIF-DRC checks and may not be appropriate for
LEF input without changing the style.
2018-06-21 12:50:31 -04:00
Tim Edwards 3b99464080 Merge branch 'work' into tomerge 2018-06-17 15:12:47 -04:00
Tim Edwards 645446f716 Update at Sun Jun 17 15:12:46 EDT 2018 by tim 2018-06-17 15:12:46 -04:00
Tim Edwards ecf27c9a17 Corrected missing include to tclmagic.h from txCommands.c, where
freeMagic() is used (and is a macro to Tcl_Free()).
2018-06-17 15:12:00 -04:00
Tim Edwards 91a9b32c19 Merge branch 'work' into tomerge 2018-05-30 22:52:13 -04:00
Tim Edwards 1782003370 Update at Wed May 30 22:52:11 EDT 2018 by tim 2018-05-30 22:52:11 -04:00
Tim Edwards 5e2874a0fa Fixed a crash condition on saving a backup file if a cellDef's
cd_file entry is NULL, relying on cd_name instead.
2018-05-30 22:51:13 -04:00
Tim Edwards e5f5764871 Merge branch 'work' into tomerge 2018-05-17 09:51:41 -04:00
Tim Edwards 4eb6b65f32 Update at Thu May 17 09:51:39 EDT 2018 by tim 2018-05-17 09:51:39 -04:00
Tim Edwards cbd279d718 Changed behavior of DEF read to flag labels as "sticky" so that the
layer a label is attached to in the DEF file does not get reassigned.
2018-05-17 09:50:55 -04:00
Tim Edwards 33a70706ac Merge branch 'work' into tomerge 2018-04-24 09:31:06 -04:00
Tim Edwards d5ffa9eabe Update at Tue Apr 24 09:31:03 EDT 2018 by tim 2018-04-24 09:31:03 -04:00
Tim Edwards c522acab33 Corrected a minor issue with the database read incorrectly generating
an error message when reading uses from a .mag file.  Also modified
the GDS write routine to provide an error message when an abstract
view points to a GDS file but the GDS file cannot be found.
2018-04-24 09:29:05 -04:00
Tim Edwards 1a626550ff Merge branch 'work' into tomerge 2018-04-19 16:15:05 -04:00
Tim Edwards 8bb52fd309 Update at Thu Apr 19 16:15:03 EDT 2018 by tim 2018-04-19 16:15:03 -04:00