Commit Graph

7857 Commits

Author SHA1 Message Date
Matthias Koefferlein 60480d35fc Fixed issue #2311
As I see it, only this particular tool top was not
guarded against non-UI mode. All other tooltips
are either guarded or pop up only in a user
interaction context.
2026-04-04 17:08:36 +02:00
Matthias Koefferlein bd9033e20c Wording. 2026-04-04 16:45:44 +02:00
Matthias Koefferlein 222c08a73a Implementing "spaced array" option
The "make array" dialog now has a tab where you can
select "spaced mode". In spaced mode, the bounding box
of the selection is used to compute the array pitch.

You can add a space between the columns and rows and
decide whether to use all layers for the instance
bounding boxes or only the visible ones.
2026-04-04 16:43:59 +02:00
Matthias Koefferlein 60a210c264 Config option: disable generation of new layers
The name of the config option is "auto-create-new-layers".
It is a per-view option and can be edited on the
"Application/Layer Properties" page.

With this option set to true (default), new layers
are automatically added to the layer list on

1. Paste of cells and shapes
2. Placing of instances

Manually adding new layers to the layer list is always possible.
2026-04-04 15:28:05 +02:00
Matthias Koefferlein 65fec36902 Fixed a bug in PCell parameter computation
"coerce_parameters" and "callback" was called with the client layout
instead of definition layout, hence the DBU was incorrect if both layouts have different DBU.

This became visible on the computed character dimensions of the Basic.TEXT
PCell when the client layout had a DBU != 1nm.
2026-04-04 14:40:36 +02:00
Matthias Koefferlein 57eb90df69 Fixed a small glitch (Warning about open transaction at end of partial move) 2026-04-04 14:37:15 +02:00
Matthias Koefferlein a092d7c6ca Enhancement to Library#lib_by_name
* Better description
* Allowing "*" for the technology name to capture all
  libraries with that name
2026-04-04 14:27:01 +02:00
Matthias Koefferlein b866ac63d3 Do not allow converting children of proxy cells to static
Proxies and their tree below should not be manipulated,
hence this operation is not allowed.
2026-04-04 00:20:37 +02:00
Matthias Koefferlein 21ecd80253 Allow to configure auto-sync of library folders. Default is off. 2026-04-03 23:59:43 +02:00
Matthias Koefferlein 9b2d1fe0be Adding the description option to library declaration files 2026-04-03 23:05:07 +02:00
Matthias Koefferlein a39bc587c1 Reusing libraries inside Library#library_from_file and Library#library:from_files for conservative reloading. 2026-04-03 17:49:29 +02:00
Matthias Koefferlein 62e45daaea Updating doc. 2026-04-03 16:23:01 +02:00
Matthias Koefferlein ad850f3d83 Merge branch 'lib-file' into bugfix/issue-2305 2026-04-03 15:42:00 +02:00
Matthias Koefferlein 87415f848c WIP 2026-04-03 11:33:46 +02:00
Matthias Koefferlein 5762bc3ecc Remove debug output 2026-04-03 11:31:53 +02:00
Matthias Koefferlein f33f8ea756 Fixing Layout::cleanup - was missing an update to establish proper cell parent relationships 2026-04-03 11:30:34 +02:00
Matthias Koefferlein 404d6fa20f Fixed BASIC lib tests - cell pointers cannot considered to be stable across lib.refresh calls as this basically would need to create cold proxies 2026-04-03 11:10:34 +02:00
Matthias Koefferlein 1abfd5363e Fixed an infinite loop 2026-04-03 00:30:01 +02:00
Matthias Koefferlein a6dce8c2ad Improving Layout::cleanup to consolidate library and cold proxies and to establish proper cell names if possible 2026-04-02 22:14:11 +02:00
dependabot[bot] 9b28e3a33b
Bump pypa/cibuildwheel from 3.3.1 to 3.4.0
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 01:45:50 +00:00
dependabot[bot] de1a36c6a2
Bump styfle/cancel-workflow-action from 0.13.0 to 0.13.1
Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/styfle/cancel-workflow-action/releases)
- [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.13.0...0.13.1)

---
updated-dependencies:
- dependency-name: styfle/cancel-workflow-action
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 01:45:45 +00:00
Matthias Koefferlein dcc7f28c77 Updating test data 2026-03-31 22:09:27 +02:00
Matthias Koefferlein 7cec679d39 Taking care of complex library reference scenarios where libraries self-reference and under the presence of stale references. Main issue is order of resolution and indirect references due to replication. Solution is to repeat resolution until saturated. A test is supplied. 2026-03-31 21:35:33 +02:00
Matthias Koefferlein 062567f206 WIP 2026-03-29 19:41:19 +02:00
Matthias Koefferlein ddb261d708 Improving stability of library refresh
1.) Safeguard against missing cells
2.) Use topological order during refresh
    This avoid child-first issues
3.) Use cell names and basic names for mapping
    (cell names may be disambiguated while
    basic names are not)
2026-03-28 22:05:23 +01:00
Matthias Koefferlein 4c47cfb03a WIP: 'sparse_array_limit' on DSS 2026-03-23 22:49:47 +01:00
Matthias Koefferlein c03a617fe2 Added some tests for the netlist browser API 2026-03-23 21:42:49 +01:00
Matthias Koefferlein 1588e74873 Providing a way to generate netlist browser paths
You can generate paths from net, device, circuit or subcircuit
objects. To generate a path for an object from the first netlist
of a pair (layout netlist in LVS case), use

  NetlistObjectsPath#from_first

e.g.

  path = RBA::NetlistObjectsPath::from_first(net)

For an object from the second netlist (schematic in the LVS case)
use "from_second".
2026-03-23 20:36:46 +01:00
Matthias Koefferlein 92143ef543 WIP - experimental feature to resolve sparse cell arrays 2026-03-22 23:49:51 +01:00
Matthias Koefferlein 108baa4d79 New test data 2026-03-22 21:53:25 +01:00
Matthias Koefferlein 851919c42b Enabling direct storage of boxes in box scanner for (slightly) better performance 2026-03-22 21:50:26 +01:00
Matthias Koefferlein aa361277a0 Implementing replication in LStream, OASIS and GDS2 2026-03-22 21:21:11 +01:00
Matthias Koefferlein 56e84e7056 Added test for lib file reading 2026-03-22 16:01:39 +01:00
Matthias Koefferlein 4908f51e1c WIP 2026-03-22 00:07:09 +01:00
Matthias Koefferlein c211925d2a Implemented solution for #2306
First of all, NetlistBrowserDialog#current_path now has a setter.
Changing the selection will navigate to the location of the
selected object, but not issue an "on_selection_changed" event.

In addition, the following features have been added:
* NetlistBrowserDialog#db_index
* NetlistBrowserDialog#view
2026-03-21 20:32:32 +01:00
Matthias Koefferlein 355a75dafe Added a missing file (not related to the issue, but to the branch we started from) 2026-03-21 17:15:46 +01:00
Matthias Koefferlein 83b9fafa9d Added missing files 2026-03-21 17:12:10 +01:00
Matthias Koefferlein f501f039c0 Added tests and two convenience methods
The two convenience methods are

Library#library_from_file
Library#library_from_files

Both create and register a Library object tied to a file.
This object supports proper reloading and re-mapping on
"refresh".
2026-03-21 14:59:08 +01:00
Matthias Koefferlein ca3505b872 Part of the bugfix for #2305 - properly mapping cell indexes after library reload 2026-03-21 11:17:39 +01:00
Matthias Koefferlein cb9e25f1b3 Issue #2300: added documentation about KLAYOUT_DEF_FORMAT and KLAYOUT_LEF_FORMAT environment variables. 2026-03-21 09:25:17 +01:00
Matthias Koefferlein c311906298 Some refactoring 2026-03-20 16:58:53 +01:00
Matthias Koefferlein 94908162d6 LEF/DEF suffixes can be configured
The way to specify them is through the following
environment variables:

$KLAYOUT_LEF_FORMAT - LEF suffixes (default: "*.lef *.LEF *.lef.gz *.LEF.gz")
$KLAYOUT_DEF_FORMAT - DEF suffixes (default: "*.def *.DEF *.def.gz *.DEF.gz")

The string is a space-separated list of simple
match pattern. Only "*.xyz"-style pattern are allowed
currently.
2026-03-20 16:48:35 +01:00
Matthias Koefferlein 2dfcc9293e Allowing to explicity specify a format
Most tools and functions now allow to explicitly
specify a format for input and output. On input,
the format is usually detected, but for some
cases, this is not possible (e.g. DEF). So you can
specify the format attached to the file name in
square brackets:

e.g. file.defok[def]

"def" is the intended suffix, "defok" is the given one.

On output, the same is possible, specifically in strmxor
and strmclip:

strmxor a.gds b.gds out.xor[oas]
2026-03-20 16:30:28 +01:00
Matthias Koefferlein 00c826688f Added the ability to run DRC and LVS from strmrun 2026-03-20 15:48:58 +01:00
Matthias Koefferlein 4cde2fe042 New test data 2026-03-19 14:33:59 +01:00
Matthias Koefferlein 42a008efd1 Potential performance improvement for deep-mode DRC
The idea is to use broken regions for certain operations
such as booleans in deep mode (local operations). These polygons are
more efficient. To support this, a "broken polygon" view
is supplied similar for "merged" view. The translation is
handled automatically.

As a side effect, regions may appear to be composed in broken
polygons now when they have been merged before.
2026-03-19 12:53:49 +01:00
Matthias Koefferlein 95f2335fc4 [consider merging] bugfix: DeepRegion::processed with properties did not deliver polygon refs which made them unsuitable for further processing. 2026-03-19 12:53:30 +01:00
Matthias Koefferlein db9aee844d New testdata 2026-03-18 22:49:24 +01:00
Matthias Koefferlein 07de416694 New test data 2026-03-18 21:13:33 +01:00
Matthias Koefferlein f127ec9843 Updating test data 2026-03-18 21:01:18 +01:00