Commit Graph

689 Commits

Author SHA1 Message Date
Tim Edwards 994c6aaf57 Modified the LEF write routine so that it correctly handles contact
layers (apart from the fact that contacts are output as magic's
contact layer representation, and not as cuts;  this still needs to
be handled properly).
2020-05-25 12:26:01 -04:00
Tim Edwards df9a52de6c Corrected potential crash condition that can happen if there is one
or more repeated "equiv" lines in a .ext file.  This implies two
ports with different names are connected, indicating probably a bad
layout, but that's not a reason to have magic crash.
2020-05-23 21:33:42 -04:00
Tim Edwards 9382cc622c Changed the "feedback count" command to return the feedback count
as a Tcl int object instead of printing out a text message, per
the suggestion from Dan Moore.
2020-05-23 17:26:32 -04:00
Tim Edwards 2af38a4191 Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
Tim 'mithro' Ansell c81d9add00 LEF writer: Fix indenting.
I missed the LAYER value and the geometry was one level to high.

Previous;
```
    PORT
         LAYER li1 ;
      RECT 1.145000 1.075000 1.690000 1.275000 ;
      RECT 3.720000 1.075000 4.490000 1.275000 ;
         LAYER met1 ;
      RECT 1.105000 1.260000 1.395000 1.305000 ;
      RECT 3.765000 1.260000 4.055000 1.305000 ;
```

After;
```
    PORT
      LAYER li1 ;
        RECT 1.145000 1.075000 1.690000 1.275000 ;
        RECT 3.720000 1.075000 4.490000 1.275000 ;
      LAYER met1 ;
        RECT 1.105000 1.260000 1.395000 1.305000 ;
        RECT 3.765000 1.260000 4.055000 1.305000 ;
```
2020-05-23 17:03:03 -04:00
Tim Edwards 55e7abf396 Committing changes 2020-05-23 17:01:30 -04:00
Tim 'mithro' Ansell 516ae506d7 Remove all the $XXX: YYY$ 2020-05-23 17:00:38 -04:00
Tim 'mithro' Ansell b28d10f80d Convert $Id$ placeholders to $Header$ placeholders. 2020-05-23 17:00:38 -04:00
Tim 'mithro' Ansell a5f050ce21 Convert expanded $Id:XXXXX$ values back to placeholder $Id$ 2020-05-23 17:00:38 -04:00
Tim 'mithro' Ansell 83c9288e13 Add Makefile target which strips all trailing whitespace. 2020-05-23 16:57:24 -04:00
Tim 'mithro' Ansell 2c066c8df0 Remove trailing whitespace. 2020-05-22 20:14:13 -04:00
Tim 'mithro' Ansell e2f0832cdf LEF writer: Move formatting properties to #defines 2020-05-22 20:14:13 -04:00
Tim 'mithro' Ansell c04a33cbf1 LEF writer: Use 6 decimal places of accuracy in output. 2020-05-22 20:14:13 -04:00
Tim Edwards 89c9335727 Modified area accumulation routines to avoid double-counting contacts
during "lef write".
2020-05-22 20:13:33 -04:00
Tim Edwards 77d17a4fa7 One correction to yesterday's commit for "lef write" enhancements:
If the last pin to be parsed generated no output, then the
obstructions would generate no output as well.
2020-05-22 16:14:27 -04:00
Tim Edwards 1e9334664c Modified the LEF write routine so that it will not output ports
that have no geometry (that do not exist on planes defined in
LEF).
2020-05-21 21:53:23 -04:00
Tim Edwards 6adb5dbacf Enhanced the "lef write" routine: (1) Calculates gate and diff
areas and writes ANTENNAGATEAREA and ANTENNADIFFAREA values.
(2) Determines "USE POWER" or "USE GROUND" from label names
matching Tcl variables $VDD and $GND, if the USE has not been
registered as a cell property (knowning the use allows magic
to avoid writing an ANTENNADIFFAREA for power rails, although
doing so should not be an issue).
2020-05-21 16:26:24 -04:00
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 4066c6821b Corrected error introduced a while ago, probably with the addition
of cell name dereferencing on file loads, where the cell load
subroutine call ended up with the wrong number of arguments,
resulting in an invalid pointer and a crash condition.
2020-05-20 10:09:02 -04:00
Tim Edwards 45d0faaee5 Updated revision so that new tarball will be posted with fix and
commit from Saturday.
2020-05-18 10:06:48 -04:00
Tim Edwards fa60cbaaf0 Corrected the cell delete routine to include removing any elements
related to that cell (since elements are usually temporary and so
kept in a separate list, not in the cell).  Corrected a major error
in the bplane implementation that failed to remove a cell use from
the child def's parent list when deleting the use.  Can cause magic
to go into an infinite loop, especially after selecting and unselecting
cells.
2020-05-15 20:49:51 -04:00
Tim Edwards 028612b70a Added extension to "gds flatten" command option to change the limit
of geometry primitives that triggers flattening (default 10).
2020-05-14 15:59:39 -04:00
Tim Edwards 38c6ce3b07 Changed the handling of GDS reads so that if the cifinput option
"ignore-unknown-layer-labels" is set, then error messages will not
be displayed when labels in the GDS input are on unknown layers
(this option is and has been otherwise handled correctly;  the only
issue is the generation of an error message on the output).
2020-05-14 15:41:46 -04:00
Tim Edwards 682a559455 Added code to fail on the "cellname rename" command if the cell in
question is a read-only cell.
2020-05-12 12:31:39 -04:00
Tim Edwards 55ff3fd1ff Modified GDS read output to avoid generating error messages on
unrecognized layers when the "readonly" read option is set.
Added support to scale elements (from the "element" command,
such as the measurement text and arrows) when the grid scales,
which was missing.  Corrected the output of persistent elements
in a .mag file so that they are correctly scaled by the scale
reducer.
2020-05-12 12:03:38 -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 35175882bc Corrected another similar bit of code causing a segfault. It is
not known, though, why the flag is set indicating valid planes
in the clientdata record when there in fact is none.  That seems
to be the underlying bug.
2020-05-08 17:02:36 -04:00
Tim Edwards 6737741902 Corrected CalmaRdpt() routine to avoid crashing if the cd_client
record is uninitialized when calling the rescale routine.
2020-05-08 16:44:29 -04:00
Tim Edwards 669ae1dfcc Added a way to subvert the adding of a prefix to subcells of a dumped
GDS library from an abstract view, by defining the property LEFview
in the cell as "no_prefix" instead of "TRUE".
2020-04-23 16:03:29 -04:00
Tim Edwards 0f16b7da6c One modification to the last commit, such that if the cell is not
marked as abstract yet has GDS_START but not GDS_END defined,
magic will not crash by attempting to use the nonexistant value
of GDS_END.
2020-04-23 15:08:56 -04:00
Tim Edwards 88e23a114e Corrected CalmaWrite behavior to be as was intended for handling vendor
GDS of abstract views, such that if the cellname being dumped is the
same as the library name, then no prefix is added to subcells.  This
behavior may be changed in the future.
2020-04-23 14:41:29 -04:00
Tim Edwards bcb8e9a081 Corrected typo in CmdCD.c for "count_total" when compiled without Tcl/Tk. 2020-04-18 15:49:23 -04:00
Tim Edwards 0a78dc0ab5 Updated revision to 3. 2020-04-14 11:08:29 -04:00
Tim Edwards 4b31af66b1 Corrected error in the bplane implementation that accidentally
called the undo record generation twice when transforming (move,
copy, etc.) cell instances.  This would cause the "undo" command
to regenerate the old instance position in the bplane records,
generally causing trouble down the road (did not encounter any
fatal errors, but it can't be good).
2020-04-14 11:00:51 -04:00
Tim Edwards 97df4e8dd1 Removed a diagnostic debugging message from the antennacheck routine. 2020-04-09 19:37:23 -04:00
Tim Edwards 116feec2df Found and added another unused but missing subroutine from the bplane
implementation.
2020-04-08 12:28:26 -04:00
Tim Edwards 2d35bb52b3 Updated VERSION to trigger overnight tarball and mirror. 2020-04-08 12:12:36 -04:00
Tim Edwards 99ac84d590 Corrected bpDump to remove UnitsS2I(), replacing with scalefactor
determined by CIFGetOutputScale().
2020-04-08 12:11:32 -04:00
Tim Edwards 7e1fcc8ef6 Fixed lefWrite, which was not including drc.h and so was messing up
one of the arguments to the DRC technology query.  Also, drc/drc.h
itself did not export that particular function, so it was added.
2020-04-07 20:08:42 -04:00
Tim Edwards 937e848d03 Modified DBTreeCopyConnect() so that it can take an argument to
not copy labels;  not copying labels speeds up the antenna checks
(which don't need labels) greatly.  Also fixed several numerical
overflow problems in the antenna checks, which resulted in false
positive errors, as well as nonsensical results.
2020-04-03 16:22:56 -04:00
Tim Edwards 08fabeedd5 Merge branch 'master' into bplane
Merging fix to "lef write" to preserve SITE, from master branch.
2020-04-01 11:02:08 -04:00
Tim Edwards e98b768c45 Corrected "lef write" to add the SITE definition that it may have
been preserving in the cell properties (which was inadvertently
omitted).
2020-04-01 11:01:13 -04:00
Tim Edwards 706e342171 Merge branch 'master' into bplane
Conflicts:
	lef/lefWrite.c

Merged change to "lef write -hide" method from the master branch.
2020-04-01 10:46:06 -04:00
Tim Edwards d6cadeb0cd Decided that "lef write -hide" should always use widespacing rules,
because otherwise all pins will flag metal-to-obstruction spacing
within the cell if the cell is wide enough that the obstruction
layer satisfies the width requirement for the rule.  It is too
complicated to try to find specific places where the wide spacing
might not be needed.  Potentially this could be a problem for
technologies that define a number of graded wide-spacing rules,
as the largest-width rule is always used now by "lef write -hide",
and the largest-width rule could theoretically allow enough space
to route through, which would cause a short that cannot be
detected.  That would be a pathological case that may not show up
in practice.
2020-04-01 10:39:43 -04:00
Tim Edwards daf93e5bad Merge branch 'master' into bplane
Conflicts:
	VERSION

Merged from master correction that should prevent "lef write" from
creating pins with no geometry in them.
2020-04-01 09:01:33 -04:00
Tim Edwards e296fc5ba0 Corrected an error in lefWrite that should have avoided degenerate
labels by expanding a zero area label rectangle, but then if "select
chunk" returns nothing, it sets the area to the zero area label
rectangle instead of the expanded one that it just created.  This
is the reason that "lef write" is producing pins with no geometry
in the LEF file output.
2020-04-01 08:59:19 -04:00
Tim Edwards 195bb301ff Merge branch 'master' into bplane
Conflicts:
	VERSION

Changed mallocMagic() argument to size_t to match change in master
branch (essentially an ineffectual change).
2020-03-31 09:35:55 -04:00
Tim Edwards f689366553 Updated VERSION with commit. 2020-03-31 09:35:25 -04:00
Tim Edwards 688f07d302 Changed mallocMagic() argument to size_t. However, this is probably
not useful so long as Tcl_Alloc() has (unsigned int) for an argument.
The more important investigation is probably to determine if there is
a way to keep csa2_list from growing to absurdly large sizes on
connectivity checks.
2020-03-31 09:31:49 -04:00