Commit Graph

1716 Commits

Author SHA1 Message Date
Tim Edwards 09f335862b Added a check for interrupt in "extresist". Modified the output of
ports in SPICE so that ports are first ordered by index into a
string array, and then output.  This avoids executing an expensive
double loop.
2021-10-04 19:52:22 -04:00
Tim Edwards 52a424e511 Added another option to the "extresist" command, this one to include
specific nets to extract, rather than excluding them.  That allows
"extresist" to target specific nets like the power supply or a clock
tree for extraction.
2021-10-04 15:32:37 -04:00
Tim Edwards 98a631144c Updated version to go along with the merge of pull request #90 from
Harald Pretl.
2021-10-02 11:07:17 -04:00
Harald Pretl 166e83d715
Update README.md 2021-10-02 11:31:45 +02:00
Harald Pretl e1c519a1aa Added installation instructions for MacOS (Big Sur).
Changes to be committed:
new file:   INSTALL_MacOS.md
2021-10-02 11:29:43 +02:00
Tim Edwards bd59849309 Reverted a line in EFread.c back to the way it had been before
magic version 8.1.154.
2021-09-28 22:07:58 -04:00
Tim Edwards 36864bc79e Reverted a change made in version 8.1.154. The implementation is
wrong, and it needs revisiting.  This is the cause of a number of
negative capacitances appearing in the netlist (even after accounting
for overlap with subcircuits).
2021-09-28 21:26:27 -04:00
Tim Edwards 73929a0bcc One more round of edits on that issue. . . 2021-09-20 20:14:25 -04:00
Tim Edwards 07ed2c13f4 Fix to the last commit, which was in error as pointed out by
Manar Abdelatty.
2021-09-20 19:46:57 -04:00
Tim Edwards c101d98921 Modified EFbuild.c to stop generating an error message when an
"equiv" statement is encountered in a .ext file when using the
"ext2spice short" option.
2021-09-20 15:02:57 -04:00
Tim Edwards 0bb6ac1fa9 Modified the extresist code to handle substrate extraction. Currently
this appears to work correctly but does not yet handle the implicit
substrate (space as substrate) or "virtually" isolated substrate regions
(which need to be removed for full parasitic extraction).
2021-09-15 16:25:46 -04:00
Tim Edwards 35a65a9ba1 Corrected the "def read" command so that when reading PIN blocks,
all geometry will be handled;  the previous behavior expected only
a single rectangle per pin and so would only acknowledge the last
entry in any list of rectangles for the pin.
2021-09-15 14:45:14 -04:00
Tim Edwards bfab888bc9 Cleaned up a few lines related to "equiv" nodes, which are not
actually an issue and probably never relevant.  extresist now works
except for substrate connections and soft connections between substrate
regions.  That will require additional coding, not bugfixing, so I'm
committing the last of this set of bugfixes before starting that.
2021-09-14 13:42:27 -04:00
Tim Edwards ce276d90af Finally got around to removing the hack that ignores power and ground
nets in "extresist" and replaced it by an option "extresist ignore"
in which specific nets can be called out to be ignored by extresist.
2021-09-13 14:12:21 -04:00
Tim Edwards b598ce8f94 Modified "ext2sim" behavior so that "=" statements are output
(since these are interpreted by IRSIM, the only known program to
parse .sim output)---the "ext2sim alias on" option now just moves
such statements from the ".sim" file to a ".al" file.  Corrected the
ResSimMerge() routine to reverse the nodes, so that the devices
belonging to the aliased node are added to the original node, instead
of the other way around.  This corrects "missing gate" and "missing SD"
errors that occur due to nodes connected through the substrate.
2021-09-13 12:25:38 -04:00
Tim Edwards c7077d38c3 Separated out the flag used for "ext2spice extresist on" and
"ext2sim extresist on", which was being shared;  that leads to
confusion, especially when using "ext2sim" to generate a node
name input file for "extresist".  Also:  Added a warning when two
ports are merged in a .ext file, as this can lead to numerous
incorrect entries in netlist output.
2021-09-13 10:36:01 -04:00
Tim Edwards 2eb47969c7 Another correction to deal with labels that are on contacts (the
port generation routine comes after contacts are removed, so such
labels must be searched for on the contact residues, not the contact
type itself).
2021-09-12 20:27:51 -04:00
Tim Edwards 02f42e7260 Corrections to the extresist code. Some of the changes are just
text formatting.  Made one critical correction to ResGetDevice() to
pass the device type;  otherwise, devices on different planes (e.g.,
MiM caps) with the same coordinate will always return the device on
the lowest plane, leading to incorrect results and an eventual crash
when the device record is free'd twice.
2021-09-12 17:20:22 -04:00
Tim Edwards 96b7c20c17 Added option "notopports" to "extract unique". The option
behaves like "extract unique all" on all cells below the topmost
level of hierarchy, and "extract unique noports" on the top
level.
2021-09-09 15:47:48 -04:00
Tim Edwards d63a102515 Made various updates and corrections to the "extresist" code in
support of devices with terminals on different plances, such as
capacitors, diodes, and bipolar transistors.  Output now appears
to give meaningful results for flattened layouts, although
numerous issues remain for hierarchical layouts.
2021-09-08 16:41:36 -04:00
Tim Edwards 0ebdf3e513 Updated VERSION to go along with pull request #87 from Ryan Schmidt.
Also using this to test the last update to the continuous integration.
2021-08-28 13:18:33 -04:00
Ryan Schmidt 3fd058d369 Fix typo in comment 2021-08-28 13:18:17 -04:00
Tim Edwards 4cba342ad0 Changed README to README.md to be compatible with github. 2021-08-28 13:15:08 -04:00
Tim Edwards 303c4c45dc Corrected the badge link in the README file to point to my own
repository and not Sai Charan's fork.
2021-08-28 13:04:52 -04:00
Tim Edwards 1ffd1c51ec Updated VERSION to go along with the merge of pull request #88 from
Sai Charan.
2021-08-28 13:00:06 -04:00
Sai Charan Lanka f038cf8c1b Update README 2021-08-28 12:58:58 -04:00
Sai Charan Lanka b099b17178 Create techbuilder.tcl 2021-08-28 12:58:58 -04:00
Sai Charan Lanka b2874d0c1b Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 0835a682d9 Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 5011052176 Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 643c05e6db Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 0e9035fff6 Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 6560545ebb Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka e65b16ab8f Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 31a7b4d66d Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 474829e6b5 Update README 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 5d61807126 Update main.yml 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 13b1c94305 Create main.yml
Adding CI to MAGIC
2021-08-28 12:58:58 -04:00
Sai Charan Lanka e7bc994224 Delete techbuilder.tcl 2021-08-28 12:58:58 -04:00
Sai Charan Lanka 6b646fd103 Update techbuilder.tcl 2021-08-28 12:58:58 -04:00
Tim Edwards d711b12311 Updated the version with the last commit. 2021-08-25 21:42:20 -04:00
Tim Edwards 88d672c7a5 Corrected an error that prematurely exists the substrate search
if a shielded type is found, preventing any other substrate types
from being discovered and processed.
2021-08-25 21:40:27 -04:00
Tim Edwards f428b7c792 Corrected a scaling error that causes all extraction dimension values
to be scaled twice when using the "extract style" command and with an
extraction style that uses micron units.  The microns-to-internal
units conversion expects an unscaled result when calling
CIFGetOutputScale(), but except when loading a tech file for the
first time, this value is scaled, and causes the double scaling.
Fixed by unscaling the CIF output before reloading the extraction
style, then scaling it afterward.
2021-08-23 13:46:19 -04:00
Tim Edwards 56d1d9380e Corrected an error caused by the modifications to the DRC engine
to copy up errors from non-interacting subcells.  The routine was
only copying up TT_ERROR_P type errors, but for deep hierarchies,
TT_ERROR_S type errors may have to be propagated up as well.
2021-08-20 21:49:27 -04:00
Tim Edwards 597ef4857a Corrected an issue caused by the commit to version 8.3.190. Although
that commit claimed to correct an issue with implicit ports not being
output, the solution often failed to properly assign the port number,
so while the implicit ports were added to the subcircuit definition,
they were often missing from the subcircuit call.
2021-08-04 13:54:08 -04:00
Tim Edwards e50dab7e52 Modified the way that ToolGetEditBox() works so that it does not
require that an edit cell be defined.  This stops a lot of commands
from failing on non-writeable cells.  There really should not be a
concept of "non-editable" cells at all, just non-writeable ones.
2021-08-04 12:05:21 -04:00
Tim Edwards c776c82445 Fixed an error in the DRC rule optimization ("||" used instead of
"|"), pointed out by Jim Everitt.  The error is pretty major, but
because the section of code it affects is just eliminating
unnecessary DRC rules, I believe that the only effect is that the
DRC ruleset ends up using more memory than it needs to.  But, good
to have fixed.
2021-08-01 12:04:13 -04:00
Tim Edwards 08461c9384 Simple change to "gds read" to print out a diagnostic message for
every 5000 uses read instead of 100;  this significantly cuts down
on the output.
2021-07-30 15:40:39 -04:00
Tim Edwards e553bbb7c3 Modified the "close" function in CIFgen.c so that it uses the
STACKPUSH/STACKPOP functions instead of recursing.  Otherwise it
has a tendency to cause the process to exceed the recursion limit.
2021-07-30 14:54:40 -04:00
Tim Edwards 1d8a59049c Added sanity checks to the GDS dump from GDS_FILE pointers. Since
it is easy to subvert the process by updating GDS without updating
the pointers, it is trivial to end up with bad GDS output.  The
sanity checks confirm that the position pointed to is a complete
structure (check begin and end records), and that it has the same
name as the cell (this is not a requirement, as there are reasons
one might want to point to data from a structure of a different
name, but a warning will be printed).
2021-07-30 13:45:03 -04:00