it as a single value "flags" (unsigned char) with meaningful flag
names. Added new option "-fail" to the load command to allow
magic to fail on loading a cell that does not have a corresponding
file rather than the default action of creating a new cell. Added
a flag for the "-quiet" option so that behavior on "-fail" can be
done quietly.
one is an "off_grid" DRC type, which can be used to check geometry
that is below the manufacturing grid. Normally magic prevents the
grid from being subdivided below the manufacturing grid, but this
limit can be removed and replaced by DRC checks to check for such
errors in a GDS file of unknown origin. The second version looks
for interactions between subcells that end up with intersections
of non-manhattan geometry landing on points that are not on the
database internal grid. Such errors cannot be seen by magic's DRC
engine by definition, and so must be detected while flattening
geometry for the DRC checks.
with qflow, which wants to launch applications from symbolic links.
The portability of magic now depends only on setting environment
variable CAD_ROOT, but the portability should still be ensured.
"bridge" GDS output operator; the previous equations were, under
some situations, failing to meet the width requirement. Also:
corrected the "cif style" check so that it does not claim that a
style name with an exact match is ambiguous. Also: Corrected the
use of "grid limit", so that the limit correctly scales with the
output expander value.
unique will also be assigned a unique port index at the end of the
port list. That ensures that the unique names are all properly
found in the extracted .subckt for the cell.
cell def that is marked for a "full dump" from a referenced GDS
file. This change was supposed to have been done a few commits
ago but did not work as advertised.
asymmetric MOSFET definitions in the tech file "extract" section.
Corrected the nmos.tech.in file to put the resistance classes in
plane order, as otherwise the interpretation of which resistance
classes belongs to the transistor source and drain can get messed
up by the presence of buried contacts.
magic database derived layout of a cell that declares GDS_FILE
but for which the GDS file referenced cannot be found or read.
This will produce an incomplete GDS file instead of an apparently
good and complete GDS file that actually contains bad data. Also:
Added new command "random" that allows a random seed to be set,
for use with the GDS output when writing a full dump of a GDS
file. Otherwise, the output prefixes are always the same, which
defeats the purpose of adding the random prefix.
magic (version 6.3) and lightly edited it to make it compatible
with version 8.3. Edited the scmos/Makefile so that it installs
with the rest of the distributed tech files.
to stop the search whenever a cell is not found. Used this to implement
a new option for GDS writes, "gds undefined allow|disallow" (default
"disallow") controls whether or not GDS with undefined references will
be allowed to be written. Similarly affects CIF and LEF writes, extraction,
and DRC (when running "drc check" from the top).
I'm seeing warnings when parsing a DEF with BLOCKAGES in it:
DEF read, Line 572201 (Message): Unknown keyword "BLOCKAGES" in DEF file; ignoring.
DEF read, Line 572202 (Message): Unknown keyword "-" in DEF file; ignoring.
DEF read, Line 572205 (Error): END statement out of context.
Skip over the section.
significant amounts of time even though there is no display to
receive the result. However, the "suspendall" command only works
if a window exists. The obvious solution is to set GrDisplayStatus
to DISPLAY_SUSPEND whenever magic is run with the "-dnull" option.
This should help speed up a lot of scripts, in particular where
designs are large.
restricted to its original intent, which is to replace the long name
formed from the plane short name and the "minfinity" coordinate.
This avoids issues with conflicting substrate names derived from a
real layer such as pwell. Also, the global substrate node name now
returns the variable name without the "$" in front if the variable
has not been set to anything. This avoids potential syntax errors
in the netlist.
values in a mask hints property, and added back the handling of
mask hints in the top level cell, since the hierarchical function
on cells does not apply the function to the top level.
earlier today) to "readlink -f", because "realpath" does not exist
on some systems (e.g., CentOS). "readlink" seems to be more
universally available. Noticed that the ext2spice and ext2sim
scripts use /bin/sh instead of /bin/bash, which would cause problems
with some systems where sh != bash.
At the moment the build system hardcodes the path
to the wish binary as it was found at compile time.
For relocatability add a configure flag that allows
the build driver to specify how to invoke the wish
binary at runtime.
By having the build system put in a relative path rather
than an absolute path. Unfortunately, make does not support
computing relative paths manually, so a small bash script is
needed that will do this for us.
- this fixes issue where some of the binary objects would contain an
outdated MAGIC_VERSION if "make clean" was not done after the VERSION
file changes. (e.g., the "Magic VERSION revision REVISION" message in
the wish console and the version requirement checks from a tech file)
"gds write" command, since "Writing cell" is easily confused with
writing a .mag database file. "Generating output" seems clearer
to me. Maybe it's just me.
that have been removed by flattening into the parent cell due to lack
of devices. Previously the checks on writing the subcircuit and writing
the call were slightly different, leading to instances in which the
subcircuit call would be written to the netlist output without the
subcircuit being defined. (2) Corrected an error in the "bridge" CIF/GDS
output operator. In certain (somewhat rare) geometries, the tile behind
(instead of in front of) the corner being checked may be incorrectly
flagged as a DRC spacing error. The fix is to ignore tiles that are
behind the corner being checked.