Commit Graph

406 Commits

Author SHA1 Message Date
Tim Edwards 4d9f7715ce "ocd_git_pure automatic update to repo" 2019-05-29 03:00:04 -04:00
Tim Edwards fa8cbae14d Merge branch 'master' into magic-8.2 2019-05-29 03:00:03 -04:00
Tim Edwards b098fbbfbb Modified the "def write" routine to strip any path component off of
a cell name (although cell names are not supposed to have path
components, so need to find out where they came from. . .).
2019-05-28 17:14:24 -04:00
Tim Edwards 57a96c7fdb "ocd_git_pure automatic update to repo" 2019-05-23 03:00:05 -04:00
Tim Edwards 1c144398b2 Merge branch 'master' into magic-8.2 2019-05-23 03:00:04 -04:00
Tim Edwards a56309fdb6 Additional change to CalmaWrite: when handling cellnames with
lengths exceeding the maximum GDS name length (32 characters),
truncate by removing all but the last 32 characters, instead of
the previous behavior which was to remove all but the first 32
characters.  The last 32 characters are far more likely to be
unique than the first 32, given that the usual reason for extra-
long names is the concatentation of hierarchical names.
2019-05-22 17:03:52 -04:00
Tim Edwards 30a2226dbb Corrected a problem in CalmaWrite where a cell that was defined
redundantly was flagged, and output anyway, but the cellname was
not being written to the output, resulting in a bad GDS file.
2019-05-22 16:52:34 -04:00
Tim Edwards 243e9652e5 Added information to the GDS read routine error output to indicate
the byte position of the error.
2019-05-22 16:12:13 -04:00
Tim Edwards ec8ffe7333 Corrected an error in the GDS read routine which attempts to kill
a hash table that was never initialized, if the GDS file input
reader encounters an error in the GDS data.
2019-05-22 14:24:44 -04:00
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