for the DEF file contents, and loads the cell into the layout
window when done. That makes it consistent with other similar
functions such as "gds read". Existing scripts which create (by
loading) a new cell before reading the DEF should not be affected
by the change.
Some function parameters (char *sname) have been made const due
referencing const data sources.
K&R obsolete syntax removal for C23 compatibility series
Due to use of strcasecmp() or similar C API.
Maybe HAVE_STRINGS_H is needed ? If so which platforms needs this ?
clang18 default warning cleanup (strict)
to create a list of net names to ignore for antenna gate and
diffusion area checks. This allows the nets not to have to be
selected in their entirity but selected by chunk only. This
reduces the time to write LEF on a large layout back to approximately
what it was before the change to include the hidden area from "-hide"
in the antenna area checks. Plus, it greatly reduces the time to
generate LEF for large layouts when not using the "-hide" option.
Both were corrected with respect to the definition of non-default
(taper) rules. "def write" was additionally modified to avoid
redundantly processing tiles where tile areas were merged together
to form a complete wire. There is plenty of room for optimization,
but the output appears to be matching the layout. Also: Revised
the definition of "(not) visible layers" to include labels attached
to those layers, so that turning off visibility of any layer will
also hide all labels attached to that layer.
This commit makes the code (mostly) C99-compatible, enabling to compile
it without the -Wno-error=implicit-function-declaration flag. This
way, Magic becomes usable on arm64 architectures, specifically on Apple
computers with M1/M2 SoC.
to be annotated from a DEF file. This is particularly useful if
"def read" has been used without the "-labels" option, and the
labels are needed at some point.
due to issues of declaring global variables; rather than track
down the correct use, just reworked it so that the value is just
an integer and takes -1 as the default (fixed timestamping
disabled).
"gds datestamp" for LEF reads. When set to non-default, all cell
definitions created from LEF macros will be given the specified
timestamp, which allows the stamps of abstract views to match the
stamps of full views, preventing issues of updated timestamps
whenever a layout is switched between views.
argument to "lef write" take an optional value which is a setback
distance, similar to "-hide", but specifically for limiting the
distance that pins can extend into the center of a macro.
Corrected the "lef write -hide" command option so that obstructions
outside of the boundary are included in the obstruction list, in
addition to the block inside. This had previously been done
correctly for use with the "setback" option but would fail only
for setback = 0.
read". While "lef read" normally annotates existing layout, this
option ensures that no additional cells are created from macros in
the input LEF file. (2) Added a check on the "Input off lambda grid"
warning during CIF/GDS input such that it is not repeated once issued,
as it tends to be output many times when it occurs.
that produces a result that looks like "lef write -hide" in the middle
but "lef write" around the edge. Can be useful for catching all the
detail around the edges but obscuring/simplifying the bulk of the cell
interior.
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.
writing vias. However, the underlying problem, which is that
stacked vias are not decomposed into their constituent parts, has
not been addressed. A "-units" option was added to the "def write"
command to force the units of the output file to be different than
the default of 1000 (nanometers). No checks are made for whether
values can be accurately represented at the specified scale.
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.
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.