Commit Graph

16 Commits

Author SHA1 Message Date
Darryl L. Miles 78f2c0696c wiring: forward declaration prototypes and consistency 2025-02-23 10:21:41 -05:00
Darryl L. Miles 154c3efa5c wiring: use 'const' with 'rcsid' 2025-02-23 10:21:41 -05:00
Darryl L. Miles 922abe6b8d wiring: constify API call arguments where possible
mark cb_database_buttonhandler_t
2025-02-23 10:21:41 -05:00
Darryl L. Miles 4f54bcf4f4 K&R wiring/*.c: bulk function implementation conversion
K&R obsolete syntax removal for C23 compatibility series
2025-02-23 10:21:41 -05:00
Tim Edwards 144c22f579 Added the ability to translate pointer-based "wire" commands from
interactive wiring into coordinate-based commands.  Added new
command extensions for "wire leg", "wire vertical", "wire type",
and "wire horizontal".  Modified the command logging such that
"wire show" (which does not modify layout) does not get logged,
which avoids unnecessary logging of mouse movement.
2025-02-22 17:06:06 -05:00
Tim Edwards dc87a8c693 Corrected two errors with the wiring tool: (1) Ignore
"angles"-type width rules when calculating the default metal
width DRC rule (this width when present will always be
larger than the minimum metal width), and (2) If an exiting
wire is larger than the contact size, then set the contact
size such that the contact PLUS the surrounding metal is the
width of the exiting wire.  The existing code sets the
contact size itself to the width of the exiting wire, such
that when surrounding material is added, the contact is
larger than it needs to be.  The fix to (1) will also fix
other places where the default DRC width rule is computed,
which includes LEF and DEF handling and computing rendered
text sizes when reading GDS.
2024-12-06 21:45:02 -05:00
Alessandro De Laurenzis b306a39560 Compatibility with C99 standard
This commit makes the code (mostly) C99-compatible, enabling to compile
it without the -Wno-error=implicit-function-declaration flag. This
way, Magic becomes usable on arm64 architectures, specifically on Apple
computers with M1/M2 SoC.
2022-10-29 06:07:46 +02:00
Tim Edwards 2f7813094b Implemented glob-style matching for label selection. Introduces
an optional extra argument to the "select" command that can be used
to select labels by glob-style matching;  e.g., "select area labels
VSS*" or "select less area labels *_1".  This will help in managing
labels after flattening a standard cell design;  e.g., by using
"select less area labels */VDD".
2021-10-09 13:44:04 -04:00
Tim 'mithro' Ansell b47d4c5642 Removing extra `$Header$` 2020-05-27 20:35:27 -04:00
Tim Edwards 2af38a4191 Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
Tim Edwards 8170dbe01f Additional corrections to the wiring for some code changes that
were made where contacts are placed when shifting up on metal
layer but not made for the reverse case.  Also corrected one
inconsistency with non-minimum width wires.
2019-06-04 12:13:47 -04:00
Tim Edwards e4bfe864ba Modified the techfile "wiring" section to allow a scalefactor with
the same interpretation as the scalefactor for the DRC section:
Values in the section are interpreted as lambda divided by the
scalefactor.  That allows the wiring values to be real units such
as nanometers and avoid problems with fractional lambda values.
2019-06-04 09:15:56 -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 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 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 231a299b16 Initial commit at Tue Apr 25 08:41:48 EDT 2017 by tim on stravinsky 2017-04-25 08:41:48 -04:00