Commit Graph

697 Commits

Author SHA1 Message Date
Tim Edwards 24786b208a Corrected a badly-implemented search for electrical connectivity
through labels with the same text (particularly necessary for
abstract views, since the real connectivity may not be represented).
The original implementation could generate very deep subroutine call
stacks and lead to stack overflow.  The new implementation performs
the same check but without the deep nesting.
2019-05-22 10:38:00 -04:00
Tim Edwards 622d5374a1 "ocd_git_pure automatic update to repo" 2019-05-17 03:00:03 -04:00
Tim Edwards 4ab54a1e6c Merge branch 'master' into magic-8.2 2019-05-17 03:00:03 -04:00
Tim Edwards 704f1dc69f Corrected an error that has been in the magic code forever, in which
if a GDS (CIF) layer is dependent on, and only on, a templayer or
layers that get hierarchically processed, it will not get added to
the list of layers needing hierarchical processing, and therefore
end up not being generated in the output.
2019-05-16 17:41:42 -04:00
Tim Edwards e2dd5f5157 Corrected the wiring command (adjustment to recent change for
centering wires on grid lines when using a snap grid) so that
the wire width is maintained when switching from one layer to
another, when the wire width is larger than the minimum for the
route layer.
2019-05-16 09:52:59 -04:00
Tim Edwards 49590fda3c "ocd_git_pure automatic update to repo" 2019-05-12 03:00:03 -04:00
Tim Edwards 140fd5cf5a Merge branch 'master' into magic-8.2 2019-05-12 03:00:03 -04:00
Tim Edwards f7d57c913c Modified "def write" to prevent out-of-bounds array access when
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.
2019-05-11 15:09:01 -04:00
Tim Edwards ae04ff6d3e "ocd_git_pure automatic update to repo" 2019-05-07 03:00:03 -04:00
Tim Edwards b1899186ab Merge branch 'master' into magic-8.2 2019-05-07 03:00:03 -04:00
Tim Edwards 770a6f4a17 Updated the handling of fixed bounding boxes for abstract views
(once corrected in an experimental branch but never merged).  This
avoids changing the actual bounding box of the cell to match the
LEF bounding box, but defines a property instead and uses that
property for certain functions such as displaying the bounding box
outline or selecting the cell.  This avoids certain related errors
such as the failure to extract connections to areas outside of the
fixed bounding box.
2019-05-06 16:30:29 -04:00
Tim Edwards cbeb62d0e5 "ocd_git_pure automatic update to repo" 2019-05-04 03:00:03 -04:00
Tim Edwards 67875c1c8b Merge branch 'master' into magic-8.2 2019-05-04 03:00:03 -04:00
Tim Edwards fc7249b04c Extended the "port" command to operate on labels in non-edit cells
as long as the command is not attempting to modify the port.
Attempts to modify ports in non-edit cells result in an error
message that is more helpful than the previous "Exactly one label
must be present..." text.
2019-05-03 10:13:06 -04:00
Tim Edwards b8bfaa5066 Corrected command option "select [more|less] cell <cellname>", which
was not recognizing the more|less option and therefore failing to
search for the instance <cellname>, rendering the command non-functional.
2019-05-03 09:14:25 -04:00
Tim Edwards 328923228d Merge branch 'master' into magic-8.2 2019-04-25 03:00:03 -04:00
Tim Edwards 9ec23203fb Extended the wiring section definition to add wire extensions in
addition to wire overlaps, and added a method when painting
contacts to draw the necessary wire extension past the contact.
Since the wiring method draws single contacts by default, this
wiring method assumes a change in direction between layers.  But
the main point is to generate wire contacts without DRC errors.
2019-04-24 10:48:45 -04:00
Tim Edwards 8e471022db Merge branch 'master' into magic-8.2 2019-04-24 03:00:04 -04:00
Tim Edwards 5e9f274f65 Modified the way magic does wiring so that when working on a grid,
the wires stay centered on a centerline with respect to each other.
Also corrected the long-standing minor issue that the outline
drawing of the wire does not update when using the mouse scroll
wheel, making it unclear that the wire size has changed until the
wire position changes.
2019-04-23 14:32:11 -04:00
Tim Edwards 1c3a5b878e "ocd_git_pure automatic update to repo" 2019-04-11 03:00:03 -04:00
Tim Edwards 2c3e7a5ce2 "ocd_git_pure automatic update to repo" 2019-04-10 03:00:03 -04:00
Tim Edwards beb5ee890c "ocd_git_pure automatic update to repo" 2019-04-09 03:00:04 -04:00
Tim Edwards 2a438a395d "ocd_git_pure automatic update to repo" 2019-04-08 03:00:02 -04:00
Tim Edwards 79f71b28f3 "ocd_git_pure automatic update to repo" 2019-04-07 03:00:03 -04:00
Tim Edwards 1882183cb0 "ocd_git_pure automatic update to repo" 2019-04-06 03:00:03 -04:00
Tim Edwards 9d322165bd "ocd_git_pure automatic update to repo" 2019-04-05 03:00:02 -04:00
Tim Edwards c8ac63697b ocd_git_pure automatic update to repo 2019-04-04 09:41:35 -04:00
Tim Edwards 7e738576bc Corrected errors in LEF output syntax (missing semicolons at
statement ends on properties imported from a LEF file).  Never
noticed before because writing LEF after reading LEF was unusual.
2019-04-01 12:23:48 -04:00
Tim Edwards f6d4da56ce Extended the "lef read" command when used to annotate existing cells
so that PIN information including USE and CLASS are added to port
labels (previously only the bounding box was annotated).
2019-04-01 11:26:00 -04:00
Tim Edwards 465a46c1c6 Merge branch 'master' into work 2019-03-20 10:09:07 -04:00
Tim Edwards 9e364111fb Update at Wed Mar 20 10:09:07 EDT 2019 by tim 2019-03-20 10:09:07 -04:00
Tim Edwards 92bf587a46 Fixed an error in the previous commit handling pin labels in GDS
input, which failed to update the "lastLabel" record of the cell
in the case that the placeholder label being deleted was the last
label, leading to labels being lost during GDS input.
2019-03-20 10:07:25 -04:00
Tim Edwards 5c36296acf Merge branch 'master' into work 2019-03-19 22:29:31 -04:00
Tim Edwards b7884f7917 Update at Tue Mar 19 22:29:29 EDT 2019 by tim 2019-03-19 22:29:29 -04:00
Tim Edwards 1533424590 Corrected scaling of label rectangles in GDS (that is, GDS layer
types that have been specified as being ports or text), since the
labels are in the magic database and at a different scale.  Added
code to cope with the fact that the labels may come after the
definition of the rectangle, so a rectangle identified as a port
or text label will generate an empty placeholder label, and all
new labels are checked against any empty labels in the database to
see if they are bounded by them.  If so, then the empty label is
removed and the label point is replaced by the rectangle.  This is
a ridiculously round-about way to deal with an under-specified
file format. . .
2019-03-19 22:25:25 -04:00
Tim Edwards ca408a8f22 Merge branch 'master' into work 2019-03-12 13:31:35 -04:00
Tim Edwards e183a5bd5c Update at Tue Mar 12 13:31:32 EDT 2019 by tim 2019-03-12 13:31:32 -04:00
Tim Edwards 1f3a512909 Added a "plot svg" command that, when used in conjuction with the
Cairo graphics package (magic -d XR), will map the display onto
an SVG surface and save it to a file using the Cairo SVG backend.
Due to the simplicity of the mapping, there are no options to this
plot command;  it just creates a file that is a (scalable!)
replica of the layout window.
2019-03-12 13:29:24 -04:00
Tim Edwards c08ddd355f Merge branch 'master' into work 2019-02-18 10:02:00 -05:00
Tim Edwards 6c69c67e17 Update at Mon Feb 18 10:01:58 EST 2019 by tim 2019-02-18 10:01:58 -05:00
Tim Edwards 677692e59f Corrected a potential problem with the substrate finding search,
which can be given an invalid area for the search.
2019-02-18 10:01:17 -05:00
Tim Edwards 834a4504de Merge branch 'master' into work 2019-02-14 12:21:59 -05:00
Tim Edwards d6cffb09f5 Update at Thu Feb 14 12:21:56 EST 2019 by tim 2019-02-14 12:21:56 -05:00
Tim Edwards 5693729ad5 Added code to avoid mishandling negative layer numbers when a
label in a DEF file is on a layer that has not been properly
mapped to a magic layer.  This would apply a negative index to
a TileType bitmask and crash the program.  Also:  Changed the
style and colormap slightly to make the via2 and via4 styles
more visible.
2019-02-14 12:19:50 -05:00
Tim Edwards 4348c11f10 Merge branch 'master' into work 2019-02-09 17:05:50 -05:00
Tim Edwards 8e1d57e234 Update at Sat Feb 9 17:05:48 EST 2019 by tim 2019-02-09 17:05:48 -05:00
Tim Edwards 7f1fa3a4c5 Modified the label connect function so that it only copies connected
labels if they are in the top-level cell of the connection search.
Otherwise, this slows the connection search way down for nets with
lots of internal labels, and can also have potentially bad consequences
if, for example, the connected network is copied to another position,
and carries all the flattened and non-hierarchically-named labels with
it.
2019-02-09 17:02:23 -05:00
Tim Edwards dfa95351cb Merge branch 'master' into work 2019-02-07 10:56:35 -05:00
Tim Edwards 2dba7e7c5e Update at Thu Feb 7 10:56:32 EST 2019 by tim 2019-02-07 10:56:32 -05:00
Tim Edwards 9f5936c7cb Found an additional scaling-up problem in ext2spice (previously handled
a scaling issue in extract) which was caused by the addition of
hierarchical netlist generation.  Finding hierarchical connections
requires finding instances by name, so it is vastly better to create a
hash table of instances instead of a linked list.
2019-02-07 10:54:07 -05:00