Commit Graph

24 Commits

Author SHA1 Message Date
Tim Edwards 6635817383 Modified LEF read to give all labels the sticky flag so that they
cannot be moved from the layer on which they are defined in the
LEF file.
2020-05-21 13:47:14 -04:00
Tim Edwards 838591bdf2 Corrected unfortunate typo from today's previous commit, and
corrected a wrong typecasting that results in a compile warning.
2020-05-10 20:01:05 -04:00
Tim Edwards f0d2c8db0f Corrected the LEF read routine so that it parses an ORIGIN line in
a LEF macro that has parentheses around the coordinates.  Weirdly,
this is requires by the LEF/DEF spec, but is rarely if ever seen
in actual LEF files.  Go figure.
2020-05-10 12:21:04 -04:00
Tim Edwards b5e06455c5 Corrected LEF read routine so as not to truncate LEF "CLASS" to a
single token (LEF CLASS records may have a subclass, such as "PAD
INPUT").
2020-03-30 09:36:24 -04:00
Tim Edwards 276bf1d78a Corrected a bad error from a few commits ago, probably 198, which
can deallocate the cell name and causes all sorts of unexpected and
unwanted behavior.
2020-03-21 12:40:35 -04:00
Tim Edwards 86cad629ec Modified the LEF read routine to use the via geometry manipulations
from the cifoutput section, NOT the cifinput section.  This change
underscores the point that LEF and DEF formats define mask data,
and therefore all LEF and DEF routines should be using the CIF
input/output methods and layers.  That is a major code change;
meanwhile, getting via layer values from the cifoutput parameters
is slightly more reliable than using cifinput, since there is good
reason to use templayers to read vias, and that sort of indirection
makes it difficult to determine a simple relationship between a
LEF cut layer and a magic contact.
2020-03-06 09:15:22 -05:00
Tim Edwards a374230d88 Modified the behavior of the LEF read routine when used to annotate
an existing cell.  If the existing cell has labels but the labels
are defined as point labels (no rectangle defined using specific
layer-purpose pairs), then the LEF macro's port geometry will be
used for the labels.  Because the GDS file can define label sizes
and fonts, which the LEF file cannot, but because the LEF file may
define multiple rectangles per port, the original point label is
given the first port rectangle from the LEF file, while the
remainder of the labels in the LEF file generate new non-rendered
labels in the cell.
2019-11-26 10:57:42 -05:00
Tim Edwards c229139150 Changed two output lines in the LEF read subroutine to conform to
the standard message/warning/error method.
2019-07-23 08:06:41 -04:00
Tim Edwards 8183f72b00 Added a missing include for utils/utils.h which has the function
prototype for StrDup().  Otherwise, use of StrDup() in the LEF
read routine can cause an inscrutible crash.
2019-07-17 10:20:52 -04:00
Tim Edwards 0141ca8c95 Corrected error in generated vias (set top layer type on bottom,
so bottom layer went missing).
2019-07-03 14:52:22 -04:00
Tim Edwards 5ba84b068a Was missing needed expansion of via cut sizes to match magic's
internal definition of via areas, when reading parameterized vias
from a DEF file.
2019-07-03 14:24:52 -04:00
Tim Edwards 38fa141db5 One minor correction to the creation of generated vias in defRead.c. 2019-07-03 14:05:01 -04:00
Tim Edwards 49d98115bb Added a number of enhancements to the DEF reading to handle various
forms of syntax found in the LEF/DEF spec up to version 5.8.  Handles
vias formed by parameter and a number of syntax variations that mess
up the usual parsing.  Corrected an error in the calculation of wire
extensions when wires are given with three coordinates.
2019-07-03 13:58:13 -04:00
Tim Edwards 51b70f6577 Corrected an error in the LEF/DEF geometry reading, because I
discovered that not all LEF/DEF rectangle coordinates are in
canonical order.  Took the opportunity to update the LefError()
routine with an additional argument so that it can separate
errors, warnings, and informational messages, and will correctly
state whether the output is for a LEF or DEF read operation.
2019-06-06 09:59:56 -04:00
Tim Edwards 87c07451d1 Corrected the LEF read routine so that when LEF is read to annotate
an existing GDS file, the "LEFview" property is not set (i.e., it
should not be marked as an abstract view because it is still a GDS
view).
2019-06-05 17:02:20 -04:00
Tim Edwards 770a6f4a17 Updated the handling of fixed bounding boxes for abstract views
(once corrected in an experimental branch but never merged).  This
avoids changing the actual bounding box of the cell to match the
LEF bounding box, but defines a property instead and uses that
property for certain functions such as displaying the bounding box
outline or selecting the cell.  This avoids certain related errors
such as the failure to extract connections to areas outside of the
fixed bounding box.
2019-05-06 16:30:29 -04:00
Tim Edwards 7e738576bc Corrected errors in LEF output syntax (missing semicolons at
statement ends on properties imported from a LEF file).  Never
noticed before because writing LEF after reading LEF was unusual.
2019-04-01 12:23:48 -04:00
Tim Edwards f6d4da56ce Extended the "lef read" command when used to annotate existing cells
so that PIN information including USE and CLASS are added to port
labels (previously only the bounding box was annotated).
2019-04-01 11:26:00 -04: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 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 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 ccbd6727d1 Enhanced the LEF file parser to handle many more standard keywords
without throwing an error message.
2018-02-02 14:16:39 -05:00
Tim Edwards 088fc759c4 Set of changes updating version 8.2 to the level of 8.1, since 8.2
development had been halted since it was first created back in April.
Version 8.2 is now the official development version, with the first
development push to create a Cairo graphics interface.
2017-08-01 22:14:42 -04:00
Tim Edwards 231a299b16 Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00