Matthias Koefferlein
b434eb3239
[consider merging] Fixing two problems with layer mapping
...
1. Mapping "[*/*] 100/0:0/0" (for example) created 0/0
two times when the input contains 100/0 and 0/0. Now
it is a single layer only
2. The mapping table generated from strings now uses
layer indexes from a range that should not collide
with existing layer indexes.
2025-03-02 19:06:37 +01:00
Matthias Koefferlein
79262028ff
[consider merging] Fixed a bug when returning a Region into a layout with cells unselected.
2025-03-01 23:18:29 +01:00
Matthias Koefferlein
850a6f56d3
[consider merging] avoid a crash during certain queries
...
This query used to crash:
"instances of cell .*.* where inst.trans.rot == 2"
on a layout with 1 hierarchy level and some cells with rot 180 degree
2025-02-25 23:35:33 +01:00
Matthias Koefferlein
c437d75a01
[consider merging] Fixing two problems with layer mapping
...
1. Mapping "[*/*] 100/0:0/0" (for example) created 0/0
two times when the input contains 100/0 and 0/0. Now
it is a single layer only
2. The mapping table generated from strings now uses
layer indexes from a range that should not collide
with existing layer indexes.
2025-02-25 22:02:11 +01:00
Matthias Koefferlein
1fed2767e8
Property filter for edges too.
2025-02-16 13:35:49 +01:00
Matthias Koefferlein
a219576296
WIP: Region, Edges, EdgePairs and Texts filters can filter by property now, first implementation of Region property filter.
2025-02-16 00:08:35 +01:00
Matthias Koefferlein
54242bc848
Fixed some issues with operator+ and operator+= on Texts, Edges, Regions and EdgePairs with properties
2025-02-15 18:03:15 +01:00
Matthias Koefferlein
1f44a951f4
Polygon neighborhood compound operation
2025-02-03 20:47:31 +01:00
Matthias Koefferlein
1bd1bb06ce
More support for objects with properties: RDB integration.
2025-02-02 17:00:31 +01:00
Matthias Koefferlein
4fda872048
Fixed unit tests
2025-01-29 02:29:13 +01:00
Matthias Koefferlein
5d57cb5eed
Updating copyright to 2025
2025-01-04 19:32:33 +01:00
Matthias Koefferlein
c9da9dc6e0
Updating copyright to 2025
2025-01-04 19:28:56 +01:00
Matthias Koefferlein
8a9d7c6d15
[consider merging] Restricting transformation of shape refs and detecting some issues related to that.
2025-01-01 19:56:34 +01:00
Matthias Koefferlein
8eb181c05f
Refactoring compound ops to support properties in general.
2024-12-29 21:41:02 +01:00
Matthias Koefferlein
e6ac66f8aa
Providing a more efficient event for property ID changes
2024-12-26 23:11:59 +01:00
Matthias Koefferlein
4beb8db15a
WIP: bug fixes, stability of tests
2024-12-26 21:45:28 +01:00
Matthias Koefferlein
34febff383
Added a test for property ID by name, value and name/value retrieval.
2024-12-25 21:04:07 +01:00
Matthias Koefferlein
1278ffeb77
WIP - refined tl::Variant::equal and less implementation, fixed tests
2024-12-25 17:36:29 +01:00
Matthias Koefferlein
dc73b8145f
WIP
2024-12-24 17:13:01 +01:00
Matthias Koefferlein
28260a68b0
WIP
2024-12-24 15:39:27 +01:00
Matthias Koefferlein
c6a097ae61
WIP
2024-12-24 11:45:16 +01:00
Matthias Koefferlein
128a00896e
WIP
2024-12-24 11:19:21 +01:00
Matthias Koefferlein
9ea7e68576
WIP
2024-12-22 23:21:04 +01:00
Matthias Koefferlein
f095374455
WIP: switching prop id change notification to events
2024-12-22 15:16:35 +01:00
Matthias Köfferlein
ec21809cc3
Merge pull request #1916 from KLayout/maybe-pex-support
...
Some add-ons for potential application in the PEX context
2024-11-28 20:43:40 +01:00
Matthias Koefferlein
dd0949867f
Some convenience features: transformations in EdgeNeighborhood, added Matrix transformation support for edge pairs.
2024-11-01 17:34:46 +01:00
Matthias Koefferlein
3073c1917f
Some enhancements: internal merging, tests
2024-10-31 22:55:46 +01:00
Matthias Koefferlein
cdd7058866
Mitigating the effect of a locked layout: plain iteration of instances now is possible also with a locked layout. Before, the instances were correctly iterated only if the layout could be sorted.
2024-10-27 23:42:16 +01:00
Matthias Koefferlein
1407ae13a7
Also provide layout locking for recursive instance iterator
2024-10-26 21:40:41 +02:00
Matthias Koefferlein
049c0b73b0
Debugging, added tests for new recursive shape iterator.
2024-10-25 23:13:40 +02:00
Matthias Köfferlein
2d57feeae8
Merge pull request #1851 from KLayout/bugfix/issue-1832
...
Bugfix/issue 1832
2024-09-21 20:33:53 +02:00
Matthias Koefferlein
531071765f
Fixed issue #1860 (problem with undo after delete layer)
2024-09-18 19:11:04 +02:00
Matthias Koefferlein
074238b116
Do not include 'purge_devices' in Netlist#simplify as such devices may be intentionally included as spare or dummy devices. If you want to remove them, use 'purge_devices' on 'netlist' and/or 'schematic'
2024-09-08 17:18:12 +02:00
Matthias Koefferlein
ac2d20ae76
Implemented fix for issue #1832 (enhancements for Netlist#simplify and Netlist#combine_devices)
2024-09-08 00:25:24 +02:00
Matthias Koefferlein
20099a38b9
Fixing second part - small L,R and C were not handled properly
2024-09-08 00:25:18 +02:00
Matthias Köfferlein
8ab398dc58
Merge pull request #1811 from KLayout/wip
...
Wip
2024-07-30 18:59:09 +02:00
Matthias Koefferlein
7978a2bb1d
Proposal for fixing issue #1784 (Spice throws error at midline semicolon comments)
2024-07-28 22:24:15 +02:00
Matthias Koefferlein
6baabc30bb
Added Netlist#top_circuit and Netlist#top_circuits convenience methods
2024-07-24 20:57:17 +02:00
Matthias Koefferlein
1ed69e9b46
Added test
2024-07-17 23:09:04 +02:00
Matthias Koefferlein
02f88fb3e0
Fixed 64bit coordinate builds
2024-07-03 18:37:55 +02:00
Matthias Koefferlein
68530f08bc
Merge branch 'faster-latchup-rules'
2024-07-01 18:28:23 +02:00
Matthias Koefferlein
7397b8e4e6
Fixed issue 1757 (Triangles::clear () use-after-free) plus another uninitialized value. Added tests.
2024-06-29 20:12:45 +02:00
Matthias Koefferlein
58d53636cb
DRC tests for 'size/sized inside
2024-06-25 21:01:23 +02:00
Matthias Koefferlein
e8784d1763
WIP: added basic tests
2024-06-25 19:26:35 +02:00
Matthias Köfferlein
910f0824e0
Merge pull request #1727 from KLayout/feature/issue-1721
...
Feature/issue 1721
2024-06-03 22:58:06 +02:00
klayoutmatthias
8204f4d0aa
Updating golden test data with MacOS variants
2024-06-02 19:59:40 +02:00
Matthias Koefferlein
c050daff61
Added a test, compiler warning fixed
2024-06-01 20:30:56 +02:00
Matthias Köfferlein
a494892529
Merge pull request #1718 from KLayout/wip
...
Wip
2024-05-31 22:48:24 +02:00
Matthias Koefferlein
3902ad6576
Removing a TODO - that suggestion isn't good as of now
2024-05-31 15:59:32 +02:00
Matthias Koefferlein
b5e2eb253c
Adjusted unit tests
2024-05-26 01:17:27 +02:00
Matthias Koefferlein
81872d41f0
Fixed a problem triggered by the new foreign layout handling
...
Problem was that with forward-referenced text strings
in OASIS, StringRef objects were created (string placeholders).
Those where not properly migrated when transferring the foreign
layouts into DEF space, causing a memory corruption issue.
This solution is to provide a central, singleton string
repository. This needs to be MT safe (reference counting)
which should also fix potential problems when accessing
StringRef-based Text objects from multiple threads.
2024-05-26 01:03:24 +02:00
Matthias Koefferlein
e4267e53da
Removed some debugging code
2024-05-25 14:23:16 +02:00
Matthias Köfferlein
7b3804ce1a
Merge pull request #1697 from KLayout/bugfix/issue-1696
...
Bugfix/issue 1696
2024-04-30 15:27:31 +02:00
Matthias Koefferlein
a10356fd85
Added tests
2024-04-29 19:18:39 +02:00
Matthias Koefferlein
753f2cd164
Fixed one unit test (remove file path reference)
2024-04-20 23:35:38 +02:00
Matthias Koefferlein
a18a6be181
DRC: New options for "corners", "angle", "with(out)_angle"
...
- layer.corners: absolute and negative option
- drc(corners): absolute option, != operator supported
- layer.with_angle/without_angle: absolute option
- drc(angle): absolute option
+ corresponding API updates:
- EdgePairs#with_angle, with_angle_both: 'absolute' flag added
- Edges#with_angle: 'absolute' flag added
- Region#corners: 'inverse' and 'absolute' added
2024-04-20 21:52:38 +02:00
Matthias Koefferlein
cba126e9ee
Small enhancements for Spice reader
...
- Detects recursive subcircuit calls now
- Dismisses empty top level circuit which happened to be created
when there were not top level elements and control statements
were present (such as .param)
2024-04-18 21:27:09 +02:00
Matthias Köfferlein
c6174b1df5
Merge pull request #1684 from KLayout/bugfix/issue-1683
...
Bugfix/issue 1683
2024-04-17 22:38:04 +02:00
Matthias Köfferlein
3c2a254a9b
Merge pull request #1682 from KLayout/bugfix/issue-1681
...
Fixed issue #1681
2024-04-17 22:37:53 +02:00
Matthias Koefferlein
06c65e2879
Updating tests
2024-04-15 00:01:49 +02:00
Matthias Koefferlein
62f0ea3b97
Fixing issue #1683 (Spice reader accepts circuits without definition but pins get shorted)
2024-04-14 21:04:02 +02:00
Matthias Koefferlein
6a876d2cd6
Fixed issue #1681
2024-04-14 19:43:50 +02:00
Matthias Koefferlein
95c1ee82f0
Proposal for fix.
2024-04-04 23:06:34 +02:00
Matthias Koefferlein
6ac1c32a8d
Merge branch 'master' into 1598-support-for-soft-connections
2024-03-29 09:00:17 +01:00
Matthias Köfferlein
974756536f
Merge pull request #1661 from KLayout/issue-1643
...
Issue 1643
2024-03-29 08:58:03 +01:00
Matthias Köfferlein
f6ad535761
Merge pull request #1659 from KLayout/issue-1656
...
Issue 1656
2024-03-29 08:57:26 +01:00
Matthias Koefferlein
e0e6017a80
Need to differentiate test results between editable and non-editable mode
2024-03-28 21:06:00 +01:00
Matthias Koefferlein
7080ed9a0c
Refined XOR optimization solution such that it is compatible with deep mode and 'wants_all_cells', added more tests
2024-03-28 20:57:19 +01:00
Matthias Koefferlein
cb5a1f7d3e
Refining shape iterator optimization, so it checks instances for overlap with shapes rather the other way round. This suits better to real test cases.
2024-03-27 23:46:33 +01:00
Matthias Koefferlein
5699c91d3f
Some utility features derived from the latest code changes
...
- Subtraction of boxes (pya/RBA: Box minus operator)
- Shape#rectangle, Shape#drectangle
- EdgePairs#write, Edges#write, Texts#write, Region#write for
debugging
2024-03-26 21:48:38 +01:00
Matthias Koefferlein
3fc32e77c3
Added full-circuit test for recursive shape iterator
2024-03-26 19:15:50 +01:00
Matthias Koefferlein
3cf8b29699
RecursiveShapeIterator debugging
2024-03-24 21:57:39 +01:00
Matthias Koefferlein
b9bdcf6fac
Preparations: recursive shape iterator shortcuts if hierarchy traversal, needs testing.
2024-03-24 19:01:36 +01:00
Matthias Koefferlein
54273206a7
More robust tests
2024-03-23 20:18:38 +01:00
Matthias Koefferlein
a6d2930f80
Fixed issue #1643 (Feeding the same layer to two-layer operations in deep mode does not render the desired result) by implementating the identical layer case as an exception for booleans and interactions
2024-03-23 19:37:27 +01:00
Matthias Koefferlein
20fd5a54a7
Tests
2024-03-23 17:01:07 +01:00
Matthias Köfferlein
8f8a7d0d65
Merge pull request #1647 from KLayout/lvs-issues
...
Lvs issues
2024-03-23 15:46:06 +01:00
Matthias Koefferlein
b4d170fa66
Implemented issue #1656 (Display-->Goto Position dialog should accept + as well as - for number prefixes)
2024-03-23 14:53:34 +01:00
Matthias Koefferlein
a79d286f61
Cleanup
2024-03-22 23:27:08 +01:00
Matthias Koefferlein
44edd8d26a
Added a regression test for netlist extractor with soft connections
2024-03-16 00:02:44 +01:00
Matthias Koefferlein
417309acf1
Added a basic test
2024-03-15 23:15:21 +01:00
Matthias Koefferlein
8de70c742a
WIP
2024-03-13 00:25:19 +01:00
Matthias Koefferlein
d87e3de436
Merge branch 'lvs-issues' into 1598-support-for-soft-connections
2024-03-11 22:50:51 +01:00
Matthias Koefferlein
fd8ca56caf
Some tests for Connectivity
2024-03-11 21:14:00 +01:00
Matthias Koefferlein
284a907ffb
First steps: equipping the Connectivity object with soft connections
2024-03-10 23:35:56 +01:00
Matthias Koefferlein
d60583a9b4
Robustness of tests
2024-03-09 18:46:45 +01:00
Matthias Koefferlein
30df7a708e
Merge branch 'master' into wip
2024-03-09 01:18:43 +01:00
Matthias Koefferlein
856fe4a8d3
LVS: Consider net names identical that differ in signal type suffix only - e.g. 'NET:I' is identical to 'NET'
2024-03-09 00:59:48 +01:00
Matthias Koefferlein
853de5b0ae
Introducing edge modes for DRC 'edges' function - allows easy extraction of convex edges only
2024-03-07 21:51:52 +01:00
Matthias Koefferlein
9d6a6258aa
edge merge does not destroy dots now
2024-03-06 22:17:01 +01:00
Matthias Koefferlein
4ecf6a9ce1
Edge vs. dot booleans for edge collections
2024-03-06 21:46:33 +01:00
Matthias Koefferlein
fc787b19e3
Flat edge booleans enhancements
...
- Basic support for dots (only dots-vs.-dots)
- Some shortcuts for efficiency
2024-03-06 18:46:52 +01:00
Matthias Koefferlein
91e68cef02
Fixed a number of issues with edge booleans in deep mode
...
- andnot was falling back to flat
- "intersections" with second argument empty was delivering wrong results
- output of "intersections" is raw now to preserve dots
- enhanced tests for these cases
2024-03-06 17:39:30 +01:00
Matthias Koefferlein
f9b4bb13c8
aligning deep and flat edge collections with respect to handling of degenerated edges
2024-03-03 23:24:51 +01:00
Matthias Koefferlein
65ccbabc26
Updating db::Edges tests
2024-03-03 22:58:13 +01:00
Matthias Koefferlein
80b86878b5
Added tests for new edge features
2024-03-03 22:35:39 +01:00
Matthias Koefferlein
c532a3a7e6
WIP
2024-03-02 19:32:51 +01:00
Matthias Köfferlein
a1c08c0f89
DRC switch to exclude the kissing corner configuration (and more) ( #1600 )
...
* Some refactoring, introducing new configuration option for edge pair check core algorithm for zero distance handling.
* Bugfix
* Renaming for clarification of collinear edges vs. distance which is defined otherwise.
* Implemented low-level option for collinear edge handling in Edges and Region
* DRC integration of new features
* Simple test for collinear mode feature
* Updating documentation
* Experiment: extending collinear mode towards 'zero distance'
* DRC 'collinear mode' becomes 'zero distance mode'
With this change, the default implementation for kissing corners
is changed from collinear edges only to touching edges in general.
The original mode can be restored by using:
l1.space(600.nm, DRCZeroDistanceMode::new(RBA::ZeroDistanceMode::IncludeZeroDistanceWhenCollinearAndTouching)).output(103, 0)
* Adding test data
* Fixed unit tests
* Fixed unit test
* Renamed new DRC options to: without_touching_corners and without_touching_edges as this is more consistent
* Fixed GSI binding, so no internal error is thrown when generating the doc
---------
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:40:00 +01:00
Matthias Köfferlein
df59641cad
Issue 1609 ( #1613 )
...
* Fixed issue #1609 (Cell.read doesn't read LayoutMetaInfo)
This also includes some more functions:
- Layout#merge_meta_info, Layout#copy_meta_info
- Layout#clear_all_meta_info
- Cell#merge_meta_info, Cell#copy_meta_info
In addition, meta info is merged when importing a layout from
another file (Layout/Import -> Other Layouts into current).
* Meta info support in layout diff (for testing), implemented meta info merge for GDS and OASIS readers with special conflict resolution modes
* Undo support for meta info - this way we do not loose meta info when we delete a cell and undo
---------
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:32:56 +01:00
Matthias Koefferlein
6ad1f3f73f
Fixed a numerical issue leading to an infinite loop on some compilers
2024-01-23 16:31:46 +01:00
Matthias Koefferlein
0ae2ed49f8
Merge branch 'master' into wip
2024-01-06 17:28:51 +01:00
Matthias Koefferlein
d9f41c1585
Now fixing unit tests for 32bit coordinates :(
2024-01-04 16:43:27 +01:00
Matthias Koefferlein
5e096bd433
Fixing unit tests for 64 bit coordinates
2024-01-04 00:33:21 +01:00
Matthias Koefferlein
38de2d685f
Fixed 64bit coordinate mode: numerical stability for DRC and LVS enabling. Main problem is representation of the 'world' box which does not transform properly when going through double.
2024-01-03 01:57:27 +01:00
Matthias Koefferlein
2b4a583f05
Update copyright year
2024-01-01 17:27:59 +01:00
Matthias Koefferlein
d248bfddf3
Updating copyright to new year
2024-01-01 17:06:23 +01:00
Matthias Koefferlein
d1695b88af
Merge branch 'wip'
2023-12-23 18:05:54 +01:00
Matthias Koefferlein
b701390e6a
Enabling cheats for edges and (implicit) polygon merges
...
DRC "cheats" have not been effective on "size"
for example. Also they have not been effective at
all for edges.
2023-12-03 21:50:03 +01:00
Matthias Koefferlein
86c1e6ad2b
Some more refactoring
2023-11-19 00:14:46 +01:00
Matthias Koefferlein
dd81fda27d
Refactoring with the goal to reduce the overhead for variant computation
2023-11-18 21:42:24 +01:00
Matthias Koefferlein
b0648e1c45
Experimental: sparse cell variants table
2023-11-18 21:21:00 +01:00
Matthias Koefferlein
01b65d3699
WIP
2023-11-17 00:13:20 +01:00
Matthias Koefferlein
795aeba322
WIP
2023-11-17 00:11:59 +01:00
Matthias Koefferlein
969ceb84bb
FEATURE: Added Layout#error_layer.
2023-11-11 23:09:05 +01:00
Matthias Koefferlein
1cf34b0ee9
Merge branch 'wip' of github.com:KLayout/klayout into wip
2023-10-19 21:25:07 +02:00
Matthias Koefferlein
261d0249e8
Merge branch 'wip'
2023-10-19 21:23:07 +02:00
Matthias Koefferlein
883b7e7db8
Fixed category assignement in device extractor
2023-09-26 22:45:13 +02:00
Matthias Koefferlein
b3992ab25c
Simplified test code
2023-09-26 22:18:33 +02:00
Matthias Koefferlein
e71a4dfb92
Simplified test code
2023-09-26 22:13:19 +02:00
Matthias Koefferlein
2a85ae8e5c
Added tests
2023-09-24 21:33:28 +02:00
Matthias Koefferlein
1b4c81ac7b
Rework: unifying device extractor logger entries and LayoutToNetlist ones
2023-09-24 18:16:19 +02:00
Matthias Koefferlein
a5bee51046
Updated tests
2023-09-24 00:07:50 +02:00
Matthias Koefferlein
1fbb907c5b
Fixed some unit tests
...
The flatten test now reduces pins of subcircuits if they
would connect to the same net internally
2023-09-23 23:47:08 +02:00
Matthias Koefferlein
b09d63e780
Doc update, test updates
2023-09-23 00:57:57 +02:00
Matthias Koefferlein
b72dfe34b4
WIP: aligned new implementation better with original one
2023-09-23 00:35:11 +02:00
Matthias Koefferlein
4f3522961e
WIP
2023-09-22 23:35:09 +02:00
Matthias Koefferlein
1333856337
WIP
2023-09-17 19:58:22 +02:00
Matthias Koefferlein
06321cdea7
Bugfix: deep region 'transform' with plain shift was not working properly with scaled instances
2023-08-24 22:55:55 +02:00
Matthias Koefferlein
aef2979896
Fixed unit tests
2023-08-20 23:32:12 +02:00
Matthias Koefferlein
d01589c26c
Fixed a build issue
2023-08-20 22:52:24 +02:00
Matthias Koefferlein
83243f06be
Triangles: solving a numerical issue
2023-08-20 16:48:58 +02:00
Matthias Koefferlein
1b60adf6c1
WIP
2023-08-20 10:19:11 +02:00
Matthias Koefferlein
dfe6699ef9
Triangles: some cleanup
2023-08-19 19:24:56 +02:00
Matthias Koefferlein
18a3c53c2d
Triangles: WIP + more tests
2023-08-19 18:56:51 +02:00
Matthias Koefferlein
0a67aa361c
Triangles: Added a more complex test case for triangulation and providing a min_length parameter for stopping infinite recursion
2023-08-19 15:25:21 +02:00
Matthias Koefferlein
5c46cdfda3
Triangles: Performance improvement
2023-08-19 00:39:31 +02:00
Matthias Koefferlein
2f8144b507
Performance optimization of Triangle insert
2023-08-17 21:50:22 +02:00
Matthias Koefferlein
1e3e918b90
Debugging.
2023-08-17 01:05:15 +02:00
Matthias Koefferlein
2acedfde6f
Fixed some compiler warnings
2023-08-16 22:20:25 +02:00
Matthias Koefferlein
e07d802500
Delaunay refinement, tests etc.
2023-08-16 00:05:46 +02:00
Matthias Koefferlein
26f1219cc5
Triangle: bug fixes
2023-08-15 21:05:08 +02:00
Matthias Koefferlein
bfccd24016
Triangles: Better numerical stability
2023-08-15 19:57:11 +02:00
Matthias Koefferlein
7351810e55
WIP
2023-08-15 15:56:15 +02:00
Matthias Koefferlein
512cf604d0
Triangles: new test, bugfix
2023-08-15 15:49:11 +02:00
Matthias Koefferlein
03497f05b8
Triangles: tests fixed
2023-08-15 15:33:17 +02:00
Matthias Koefferlein
6e9eb922a2
Triangles: constrain
2023-08-15 14:55:41 +02:00
Matthias Koefferlein
3cc35ce3ee
Triangles: ensure_edge
2023-08-15 14:05:20 +02:00
Matthias Koefferlein
a2e91532c4
WIP: remove vertex implemented for triangles
2023-08-13 21:40:09 +02:00
Matthias Koefferlein
576eacd0bf
WIP
2023-08-13 21:14:58 +02:00
Matthias Koefferlein
82b49dfb77
WIP
2023-08-13 18:40:24 +02:00