Commit Graph

718 Commits

Author SHA1 Message Date
Tim Edwards 58c4c8a32e Corrected problem in which using "ext2spice -d" (distributed
junctions) causes magic to crash.
2019-10-14 13:49:41 -04:00
Tim Edwards 1933c5d4a5 Corrected another problem where the device source/drain area and
perimeter were not output because of recent code that broke the
routine that assigns the resistance classes to devices.  This is
now fixed.  Thanks to Dan Moore for bringing this to my attention,
and debugging investigations.
2019-10-14 11:56:39 -04:00
Tim Edwards b0719384e4 Modified the new extraction method with multiple records for each
device type so that it is now properly backwards compatible with
the old-style "fet" records.  Also corrected the record matching
such that it properly matches according to the number of terminals
while allowing the traditional interpretation that there may be
fewer S/D type records than terminals if the S/D types are the
same for all terminals.
2019-10-14 11:09:58 -04:00
Tim Edwards 271d9033cf "ocd_git_pure automatic update to repo" 2019-10-03 03:00:08 -04:00
Tim Edwards e5b7ba3abf Merge branch 'master' into magic-8.2 2019-10-03 03:00:07 -04:00
Tim Edwards 000dab40e3 Made a correction to the last commit as the wrong hash search
function was used (HashFind, which never returns NULL, vs.
HashLookOnly, which does) resulting in a failure to solve the
problem which was being patched, which was ext2spice crashing
when cell arrays are present, which itself was due to allowing
brackets in base cell use names.
2019-10-02 12:59:10 -04:00
Tim Edwards 497b75f731 "ocd_git_pure automatic update to repo" 2019-10-02 03:00:05 -04:00
Tim Edwards 4ae5dcd28e Merge branch 'master' into magic-8.2 2019-10-02 03:00:04 -04:00
Tim Edwards 798e87deaf Corrected method relating to use of array notation in the base
use name (not part of an array in magic).  This was failing in
ext2spice due to code in extflat dealing incorrectly with the
array delimiters.  The correction fixes the problem but leaves
the possibility that there could be a conflict between a use
name that is an array and a use name that has the array index
as part of the name.
2019-10-01 19:32:52 -04:00
Tim Edwards 8280e60e43 "ocd_git_pure automatic update to repo" 2019-09-20 03:00:03 -04:00
Tim Edwards b05876d22e Merge branch 'master' into magic-8.2 2019-09-20 03:00:03 -04:00
Tim Edwards 091d7ba2ae Corrected drcAssign for use with CIF drc rules, where the check for
plane is not relevant and can generate false-positive error messages
(although no actual errors occur).
2019-09-19 14:33:30 -04:00
Tim Edwards 0c24c33451 Corrected a bad error from a previous commit (5 days ago, for fixing
the forward-referenced GDS cell problem) in which when writing cells
from 3rd-party GDS, the structure names are written to GDS with the
indicator flag in front, making the structure names and the referenced
names different, so that the GDS file is no longer valid.  This has
been fixed.
2019-09-19 08:22:11 -04:00
Tim Edwards ad8664a8f7 "ocd_git_pure automatic update to repo" 2019-09-19 03:00:04 -04:00
Tim Edwards 51fd4f8e93 Merge branch 'master' into magic-8.2 2019-09-19 03:00:04 -04:00
Tim Edwards 4b5566af3e Corrected an error that causes alias names for layers to become the
principle layer name, which should not happen (especially in the
case of space, where layers may be aliased to "space" to make them
ignored on input).  Also:  Implemented a "-<types>" option to the
"substrate" record in the techfile to declare types which shield
layers from the substrate.  This allows types like pwell to be used
in different contexts, e.g., as part of the substrate, or as a P-well
in deep N-well, without requiring a different type.  This works in
conjunction with the recently-implemented "+<types>" ID types for
devices.  All of this may seem unnecessary but helps to reduce the
number of layers needing to be defined, and the subsequent complexity
of the DRC rulesets.
2019-09-18 20:48:33 -04:00
Tim Edwards 47668a342e "ocd_git_pure automatic update to repo" 2019-09-14 03:00:05 -04:00
Tim Edwards a170fde1ba Merge branch 'master' into magic-8.2 2019-09-14 03:00:04 -04:00
Tim Edwards 9b0905ad01 Corrected an error in the GDS compositing that fails to handle GDS
files that have forward references (cells that are instanced before
they are defined), resulting in those cells being given an undefined
string for a prefix, which will result in corrupted GDS output.
Also added a method to prevent forward-referenced cells from triggering
a "redundantly defined" error message when the structure is output.
2019-09-13 09:52:45 -04:00
Tim Edwards aef8dc9c60 "ocd_git_pure automatic update to repo" 2019-09-04 03:00:05 -04:00
Tim Edwards d63ce36cbd Merge branch 'master' into magic-8.2 2019-09-04 03:00:05 -04:00
Tim Edwards 643c39a2d5 Corrected error where modification to allow use of brackets inside
a cell instance name not related to an array moved a variable that
was used later in the routine to the inside of an if block,
effectively making that variable undefined in most cases.
2019-09-03 14:02:27 -04:00
Tim Edwards d3fa72dce4 "ocd_git_pure automatic update to repo" 2019-08-25 03:00:04 -04:00
Tim Edwards a765279e5f Merge branch 'master' into magic-8.2 2019-08-25 03:00:04 -04:00
Tim Edwards 63829cbbaa Hopefully final correction to new extraction method. Now correctly
handles diodes or other devices with source/drain on planes other
than the plane of the device type.  This no longer requires that
the non-connecting type be in any given terminal position.  The
device type boundary is surveyed for all types, connecting or
overlapping, and at least one of each required type must be present.
2019-08-24 14:18:03 -04:00
Tim Edwards 75844adf8e "ocd_git_pure automatic update to repo" 2019-08-24 03:00:05 -04:00
Tim Edwards 4edfd1a501 Merge branch 'master' into magic-8.2 2019-08-24 03:00:04 -04:00
Tim Edwards 9f973fa9fc Minor correction to device extraction using the new device structure
format with multiple devices per magic tile type.  The code was left
incompatible with diodes defined with one terminal as substrate
(and therefore no source/drain-like types connecting to the device
type).  This has been fixed.
2019-08-23 14:01:28 -04:00
Tim Edwards 1d2686ef82 "ocd_git_pure automatic update to repo" 2019-08-21 03:00:05 -04:00
Tim Edwards f9f3bb3063 Merge branch 'master' into magic-8.2 2019-08-21 03:00:05 -04:00
Tim Edwards a75aec4d7c Finally realized the problem came from a quick addition of a TO-DO
item that was never properly validated.  Corrected the root of the
problem, which was an attempt to deallocate memory that had never
been allocated in the first place.
2019-08-20 15:10:45 -04:00
Tim Edwards d5b695fea0 Corrected one other instance of checking for NULL when it should
have checked for CLIENTDEFAULT.
2019-08-20 15:05:30 -04:00
Tim Edwards c360fb9d5a Corrected check on cd_client in CalmaRdcl; if not set for holding
GDS plane data, it is initialized to CLIENTDEFAULT, not NULL.
2019-08-20 14:44:20 -04:00
Tim Edwards aa4bb4b19c Since allowing brackets to be part of cell names in a previous
commit, found that DBTreeFindUse fails to find such uses because
it strips the array delimiters off the name.  Fixed the routine
although the routine really should be checking if the use is a
1- or 2- dimensional array and stripping off only the components
expected.  The current code will probably fail for cell uses
that have brackets in the name AND are arrayed.  Fortunately
this search routine does not appear to be used frequently or in
any critical database functions like netlisting.
2019-08-20 10:37:12 -04:00
Tim Edwards 942eaf8113 Revised the substrate extraction method: Instead of searching on
all types specified in the "substrate" statement, split such types
into those on the declared well plane, and everything else.  Any
types on the well plane are searched as before.  Types not on the
well plane (e.g., psd on active) are searched and added to the
substrate node *only* if overlapping nothing on the well plane.
This allows a type such as "psd" to be used on, e.g., both space
(substrate) and deep pwell, but only be extracted as part of the
substrate when found over space.  Note that if there is NO
implicit substrate, the substrate connections will always be
found through the usual connection rules.
2019-08-20 08:42:07 -04:00
Tim Edwards 50a2dfa40d "ocd_git_pure automatic update to repo" 2019-08-20 03:00:04 -04:00
Tim Edwards 5c614c3d64 Merge branch 'master' into magic-8.2 2019-08-20 03:00:04 -04:00
Tim Edwards 8c75f81cc4 Revised the method for multiple extraction models per device type
to be more robust and not depend on the ordering of the devices in
the techfile.  The extraction method now keeps a mask of which
properties of the device (source/drain types, substrate type,
identifier type) have been found, and will look only for device
records that match what is known about the device.  Added a device
identifier record which is the last record before parameters if the
record begins with "+".  This allows marker layers to be placed
over a device such that it will extract with a different type.
This helps reduce the complexity of the techfile and allows
certain specialized devices like RF or ESD to be identified without
a separate layer type for the device.
2019-08-19 14:11:02 -04:00
Tim Edwards 6274abf997 "ocd_git_pure automatic update to repo" 2019-08-10 03:00:05 -04:00
Tim Edwards ba53a7d897 Merge branch 'master' into magic-8.2 2019-08-10 03:00:05 -04:00
Tim Edwards f429e4eca4 Copied the text of the BSD copyright in the C source code into its
own file, to be consistent with most other software these days.
2019-08-09 16:52:20 -04:00
Tim Edwards a6d6e044a8 "ocd_git_pure automatic update to repo" 2019-08-04 03:00:04 -04:00
Tim Edwards ec28ac3c79 Merge branch 'master' into magic-8.2 2019-08-04 03:00:04 -04:00
Roman-Parise 1edccafb2c Removed files in .gitignore from repo 2019-08-03 12:19:38 -04:00
Roman-Parise 46e0ec7a24 Updated outdated files in utils/magsgtty.h 2019-08-03 12:19:38 -04:00
Roman-Parise d235e01b2d Edited configure scripts for FreeBSD installation 2019-08-03 12:19:38 -04:00
Roman-Parise 05c069783a Added FreeBSD detail to INSTALL 2019-08-03 12:19:38 -04:00
Tim Edwards 0b10203a44 "ocd_git_pure automatic update to repo" 2019-08-03 03:00:04 -04:00
Tim Edwards 528863f378 Merge branch 'master' into magic-8.2 2019-08-03 03:00:04 -04:00
Tim Edwards 381fc0cca4 Removed diagnostic print from last commit. 2019-08-02 14:53:22 -04:00