Commit Graph

2407 Commits

Author SHA1 Message Date
Tim Edwards e453f130ee Also corrected the "lef write" output to always put "END LIBRARY"
at the end of a macro output, even if it is not part of a library.
According to some commercial tools, this is what is expected, even
though the use of "END LIBRARY" is never explained in the LEF/DEF
spec.
2020-07-19 22:10:19 -04:00
Tim Edwards 9c4fb65a58 Corrected a problem with "lef read" that prevents it from working
with non-standard extensions such as ".tlef".
2020-07-19 21:56:00 -04:00
Tim Edwards f7b5f38461 Corrected an error in the last commit in which I expanded the body of
a "for" loop in extract/ExtHier.c from one line to two but failed to
then put braces around the whole loop.
2020-07-19 17:08:51 -04:00
Tim Edwards d755e4400a Corrected an error in the the extSubtreeFunc() routine, that is
supposed to pull "sticky labels" into the cumulative flattened
layout.  Because it failed to check for the "sticky" flag, it
would copy all labels, causing extraction time to go exponential
as the number of labels in the design increases.  Based on this
correction, the extHierConnectFunc1() routine should be able to
be optimized by stopping the search for sticky labels on the first
non-sticky label, since extSubtreeFunc() ensures that all sticky
labels come first in the label list.
2020-07-18 15:49:20 -04:00
Tim Edwards 1a774e92d1 Corrected an error pointed out by Sylvain Munaut in which the "plow"
command fails for the tutorial tut3d cell due to a missing
initialization of the cd_cellPlane record in DBCellCopyDefBody().
This was missed in the implementation of "bplane", and was not
checked because the routine is only called from the "plow" command
routines.
2020-07-17 12:38:21 -04:00
Tim Edwards 838c9b840d Added a "calma library" command option, to generate a GDS library
from the subcircuits of a top-level layout without also writing the
top level.
2020-07-16 08:55:46 -04:00
Tim Edwards 7a8e6352a3 Two changes to "lef write": (1) Added support for generating output
for geometry on MASTERSLICE layers (which was inadvertantly broken),
and (2) Added option "lef write -toplayer", which outputs pin geometry
only for the topmost layer belonging to a pin, with connected layers
underneath being designated as obstructions.
2020-07-15 17:29:56 -04:00
Tim Edwards 72b4053774 Updated VERSION to force an update on the system; no changes were
made.
2020-07-05 21:38:28 -04:00
Tim Edwards d577439be9 Test again. 2020-07-05 17:39:24 -04:00
Tim Edwards 2be23d886d Test. 2020-07-05 17:39:00 -04:00
Tim Edwards 14251b797f Corrected readspice.tcl script to ignore CDL parameters in the
subcircuit I/O list, and to not fail with an error if something
in the PININFO line cannot be found in the layout (just prints
an error message instead).
2020-06-30 18:05:12 -04:00
Tim Edwards 52dadcff08 Modified the "plot svg" command to remove the window trimmings
(scrollbar, title bar, etc.) from the output if the command is
called from the non-GUI-wrapper environment (where the border area
is part of the rendered output).  This was required due to an
unsolved bug in which calling magic to write SVG output from the
wrapper in some pathological case exposed a Tk bug that caused
the Tk grid manager to infinite loop, filling memory without
limit.
2020-06-30 16:07:31 -04:00
Tim Edwards 6812e7cd10 Modified readspice to support the CDL "*.PININFO" line for annotating
layouts with pin class (direction) from CDL files.
2020-06-29 21:13:57 -04:00
Tim Edwards f6de28c760 Corrected defs.mak.in to use @LD@ passed from the configure script
instead of hard-coding "ld" for the LINK variable.
2020-06-29 11:07:43 -04:00
Tim Edwards 0b17c4d168 Not sure why the temporary copy of DRCtech.c was not removed in
previous commits, but am now doing 'git rm' on it to make sure it
stays banished.
2020-06-29 08:25:55 -04:00
Tim Edwards eab0fe770d Corrected the readspice script to treat the input line as a string
and not a character list when checking the first character of a
SPICE netlist for a comment or continuation character.
2020-06-27 21:46:53 -04:00
Tim Edwards b36d5cce3c Updated VERSION along with the pull request merge for changing the
in-line comment character recognized by ngspice (which has changed
since the version of the documentation I had, which supported the
use of the character ';', which was what magic was using).
2020-06-27 19:50:43 -04:00
Dan Moore 99a0575501 Changed the end-of-line comment character from ';' to '$' when
formatting a SPICE netlist for NGSPICE.  This is the documented
character as described in the NGSPICE User Manual, section 2.2.4
End-of-line comments
2020-06-27 19:50:12 -04:00
Tim Edwards 8519d2f13c Corrected the "macro" command so that if no help text has been given
for the key bindings, then the key bindings themselves will be
printed when "macro help" is run, and not just empty strings.
2020-06-25 20:59:44 -04:00
Tim Edwards 28fbb34845 Updated VERSION to trigger the github mirror and tarball generation. 2020-06-17 12:17:44 -04:00
Tim Edwards b39a45a700 Further refined the layers used in hierarchical GDS generation to
exclude layers created using the "boundary" or "bbox" operators,
since they only exist in specific levels of the hierarchy.  Pretty
much by definition they should not be used in a way that requires
additional geometry to be added to the parent cell.  This greatly
reduces parent-vs.-child disagreements (and the corresponding error
messages), but does not entirely eliminate them.
2020-06-17 12:14:41 -04:00
Tim Edwards bf4364da44 Corrected an error in the GDS output hierarchical adjustments code
caused by the new bloat-all with templayers, which used the distance
record in the bloat structure differently than the other bloat
functions, and therefore was messing up the enumeration of layers
needing to be handled by the hierarchical output.  This was probably
also wrong for the existing bloat-all function, which might explain
some problems recently with the GDS output.
2020-06-16 22:54:48 -04:00
Tim Edwards 8297386a6c Corrected error in the new expansion of the cifoutput "bloat-all"
rule to include CIF templayers;  the connection mask was not
correctly generated for the CIF templayer, leading to bad GDS
output.
2020-06-15 15:41:27 -04:00
Tim Edwards f1c432585a Applied a patch from Ahmed Ghazy to correct the last change to
"lef write", which had one typo in the formatting, plus was using
a static string method for generating the formatted output that was
implementation-dependent on fprintf().  These have been fixed.
2020-06-15 09:35:21 -04:00
Tim Edwards d0febe7614 Corrected an error in the global substrate name method added recently;
the extractor was not checking temp_subsname as well as glob_subsname,
and so was failing to apply the substrate name to child cells in
"merge" statements in the extract file, causing the substrate to get
disconnected between parent and child.
2020-06-13 16:31:37 -04:00
Tim Edwards bdf684dafe An additional change to remove the formatting for the antenna area
output values, which were set to format according to database
distance precision (which is not the same as area).
2020-06-13 11:15:33 -04:00
Tim Edwards 95d1dfddc3 Changed the behavior of "lef write" (again) to set the UNITS to the
minimum manufacturing grid (normally 1000 but can be altered by the
"angstroms" flag in the cifoutput section, and by "gridlimit").
The output values then are truncated such that the floating-point
output value, when multiplied by the UNITS value, is always an
integer.  e.g., "gridlimit 5" will change UNITS to 200, and values
will be minimum precision 0.005, or 5 nanometers.
2020-06-13 11:05:53 -04:00
Tim Edwards 56250c907d Added a "bridge" operator to the set of operators used for CIF layer
generation in the "cifoutput" section of the techfile.  This operator
solves the problems with the catecorner position of geometry when
attempting to automatically close up gaps between islands of a layer.
2020-06-11 16:40:01 -04:00
Tim Edwards 7540854184 Corrected the handling of the "defaultsideoverlap" statement so that it
works for the first pair of types/plane being below the second pair of
types/plane (upward fringing from the top of a wire to an overlapping
wire above it), which was not being handled due to an implicit assumption
that plane1 < plane2, which does not have to be the case.
2020-06-10 10:52:54 -04:00
Tim Edwards 035195bb47 Updated DRCtech with fix by Fabian Cabrera to make the "surround ...
directional" rule work correctly for types not on the same plane.
2020-06-10 09:22:58 -04:00
fabian-l-c a263a5a5a5
Update directed case for drcSurround in DRCtech.c
Before this modification "directed" surround rule only worked for layers1 and layers2 belonging to the same plane.
After this modification the "directed" rule works also for different planes, even if layer1 is a contact type.
2020-06-09 16:11:22 -03:00
Tim Edwards f6c6e2c29c Reverted a change from a prior commit that removed backslashes in
front of brackets in LEF names.  These have a special meaning
that is not yet handled correctly, but removing them is the wrong
approach.
2020-06-05 14:55:45 -04:00
Tim Edwards fc9ecd2c9b Corrected a problem with an uninitialized entry in ExtCurStyle that
could cause serious errors on systems that do not auto-zero allocated
memory.  Also:  Fixed an error introduced by a recent commit to allocate
character memory for efReadLine() which frees the memory before reading
a .res.ext file, causing a crash when using "ext2spice" with the
"extresist on" option.
2020-06-05 12:46:46 -04:00
Tim Edwards ac244109bc Modified the efReadLine() routine so that it dynamically allocates
memory for the input line instead of using a fixed 1024-character
buffer.  That avoids the issue of rare but possible overflow when
reading a .ext file with unknown line lengths.
2020-06-03 21:57:56 -04:00
Tim Edwards efe6af8465 Modified the EFread routine so that it will not infinite loop on
a truncated line.  There is still a question as to why an example
occurred that caused a line to be truncated, and whether a buffer
size needs to be made larger or made dynamically allocated.
2020-06-03 20:36:12 -04:00
Tim Edwards 01966d594e Additional modification to the devVisit routine in extflat to
change from passing the HierName to passing the HierContext (of which
HierName is a part) so that more information from HierContext (such
as the cell use being visited) can be passed to the callback
procedure (largely for diagnostic purposes).
2020-06-01 17:14:22 -04:00
Tim Edwards 15f1c82bc9 Added two new features: (1) Default substrate name: Added an
optional name field to the "substrate" line in the extract section
of the techfile.  This is the default name of the substrate if not
connected to anything labeled.  It may use a Tcl variable (preferred).
(2) Added command option "instance orientation [-def]" that returns
the orientation of the named or selected instance.  The -def option
returns the orientation using DEF naming convention;  otherwise, the
naming used with "getcell" is generated.
2020-06-01 16:49:59 -04:00
Tim Edwards 336a7aa209 Added missing close-bracket in the readspice script, and corrected
a diagnostic error output in the port command.
2020-05-29 17:13:38 -04:00
Tim Edwards 643bd096ea One more fix. . . 2020-05-29 16:51:20 -04:00
Tim Edwards 09e85dedab And the corresponding pointer. 2020-05-29 16:39:40 -04:00
Tim Edwards 112e58e371 And one more hash key type needed to be changed in the other call
to HashInit().
2020-05-29 16:36:07 -04:00
Tim Edwards 82106387a6 Corrected the type of hash key on the property definitions hash
table in lefWrite.
2020-05-29 16:26:37 -04:00
Tim Edwards 44ca5d996b Added handling of PROPERTYDEFINITIONS block in LEF output based on
properties in the cells.
2020-05-29 16:12:09 -04:00
Tim Edwards 4ad7ce3cf4 Modified LEF read and write to preserve macro PROPERTY lines. This
probably needs revisiting, because "lef write" and "lef writeall"
need handling to generate the PROPERTYDEFINITIONS block for the
PROPERTY entries to be correct.
2020-05-29 14:31:48 -04:00
Tim Edwards bad4842707 Corrected a improperly placed call to freeMagic() from the last
commit.
2020-05-29 13:10:03 -04:00
Tim Edwards 9372a9e0e8 Added more behavior to "lef read" annotation to include handling
bracket characters in the LEF file that are escaped with backslashes.
2020-05-29 12:51:21 -04:00
Tim Edwards a57f024587 Making the "lef read" usage for annotation of an existing layout
somewhat flexible with regard to pin name translations between
the LEF and the layout.
2020-05-29 12:37:10 -04:00
Tim Edwards bf061f0012 Additional change to readspice script to handle various issues with
pins not matching between netlist and layout due to delimiter changes
or case sensitivity.
2020-05-29 11:55:30 -04:00
Tim Edwards 0b17bcdb86 Try again without confusing Tcl and python syntax. . . 2020-05-29 11:27:16 -04:00
Tim Edwards c16ae32e70 Correct readspice script to close the file after reading. 2020-05-29 11:25:13 -04:00