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 Köfferlein
206e271ee3
Merge pull request #1649 from KLayout/wip
...
Wip
2024-03-23 15:45:52 +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
fe61627b96
Some cleanup
2024-03-23 08:45:38 +01:00
Matthias Koefferlein
a79d286f61
Cleanup
2024-03-22 23:27:08 +01:00
Matthias Koefferlein
917439b84e
New testdata, bugfix: considering the case of partial net formation through soft, upward inter-instance connections. Enhanced reporting (report multiple partial nets of the same circuit at different instances)
2024-03-21 21:31:20 +01:00
Matthias Koefferlein
400becb6b6
Bugfix: proper handling of soft-connected instance connectors
2024-03-20 02:03:53 +01:00
Matthias Koefferlein
a04bcbc9a3
Some refactoring (renaming)
2024-03-19 20:41:42 +01:00
Matthias Koefferlein
3011e77439
Need to differentiate between non-connected pins and pins with up+down connection - introducing a pin direction mode
2024-03-17 20:42:30 +01:00
Matthias Koefferlein
203a62f0af
Place diodes in debug mode for soft connections, but still generate log entries
2024-03-17 20:41:45 +01:00
Matthias Koefferlein
c04d468c55
Providing log entries with indents (for details)
2024-03-17 20:40:11 +01:00
Matthias Koefferlein
b10cda574c
Reporting
2024-03-17 17:39:39 +01:00
Matthias Koefferlein
b9baa24d3a
Refactoring (split source code file)
2024-03-16 21:56:39 +01:00
Matthias Koefferlein
9ab7a5a84f
Soft connection analysis, first algorithm
2024-03-16 21:38:35 +01:00
Matthias Koefferlein
db2ae89521
WIP
2024-03-16 19:03:41 +01:00
Matthias Koefferlein
5e95b32ac4
WIP
2024-03-16 00:10:35 +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
5fbb57750b
WIP
2024-03-15 22:02:57 +01:00
Matthias Koefferlein
92f887c319
WIP
2024-03-14 23:27:06 +01:00
Matthias Koefferlein
befbde0f43
WIP
2024-03-14 22:14:20 +01:00
Matthias Koefferlein
dca287b724
WIP
2024-03-14 01:02:56 +01:00
Matthias Koefferlein
6db937d9df
WIP
2024-03-14 00:22:46 +01:00
Matthias Köfferlein
fa14afbbf3
Pcell limits ( #1654 )
...
* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
* tl::optional now based on internal implementation, added tests and tl::to_string binding
* Refactoring the range into min_value and max_value attributes without action and resolution.
* Integration of feature into PCell framework
* Cleanup and fixed some compile issues
* Cleanup, added tests
* [consider merging] Added pymod distutil_src files to dependencies.
* Updated Python stubs
* User feedback: upon entering an invalid value string into an edit box, do not reset the field
---------
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-03-13 21:50:48 +01:00
Matthias Koefferlein
8de70c742a
WIP
2024-03-13 00:25:19 +01:00
Matthias Koefferlein
89c281f87a
Integration API into LVS+DRC
2024-03-12 23:24:54 +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
a92029b722
Merge branch 'master' into drc-procs-and-filters
2024-03-09 01:21:56 +01:00
Matthias Koefferlein
30df7a708e
Merge branch 'master' into wip
2024-03-09 01:18:43 +01:00
Matthias Koefferlein
1c836de07e
Merge branch 'master' into xor-performance
2024-03-09 01:02:07 +01:00
Matthias Koefferlein
45950f20d6
Supporting remote must-connect connections
...
So far, must-connect connections had to be made
one level up in the hierarchy or promoted further
using labels and such. Now, must-connect connections
can be made at any point up in the hierarchy.
2024-03-09 01:00:52 +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
091995a5ff
Limit effort spent on analyzing failed matches in LVS compare
2024-03-09 00:59:43 +01:00
Matthias Koefferlein
5597eceece
Region#edges: Don't include an polygon to edge processor unless required
2024-03-07 23:03:36 +01:00
Matthias Koefferlein
28e96ee0c3
Added not_... versions of edge modes
2024-03-07 22:29:33 +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
156f0f4477
More consistent behavior of dots in context of booleans, added tests
...
dots vs. polygon booleans now work as well.
This includes "&" and "-" and "inside_part", "outside_part"
and the "split_..." versions.
2024-03-07 18:34:12 +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
03b04daa61
texts_as_dots returns raw edges (dots must not be merged)
2024-03-03 23:51:03 +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
8e09dfc016
Edge boolean robustness improvement
2024-03-03 22:35:14 +01:00
Matthias Koefferlein
db168d8a55
Considering degenerated edges for partial edge selectors
2024-03-03 22:34:19 +01:00
Matthias Koefferlein
8b6ed7f663
Update of testdata, edge 'outside' needs merged input too.
2024-03-02 21:40:57 +01:00
Matthias Koefferlein
c532a3a7e6
WIP
2024-03-02 19:32:51 +01:00
Matthias Koefferlein
ebc96d8de4
[consider merging] Bugfix: 'edge outside polygon' now consistently ignores the border of the polygon
2024-03-02 19:32:33 +01:00
Matthias Koefferlein
c5433a349a
WIP
2024-03-02 17:55:13 +01:00
Matthias Koefferlein
863935d664
WIP
2024-03-02 17:28:09 +01:00
Matthias Koefferlein
df3205282d
WIP
2024-03-02 16:57:23 +01:00
Matthias Koefferlein
1e323a0421
WIP
2024-03-01 23:32:22 +01:00
Matthias Koefferlein
a431f70ad4
Polygon#break, DPolygon#break, SimplPolygon#break, DSimplePolygon#break
2024-02-29 22:57:28 +01:00
Matthias Koefferlein
890b389102
Merge branch 'wip2'
2024-02-18 22:27:17 +01:00
Matthias Koefferlein
5187ddbfc0
Do not insert the same point twice into edge set in EdgeProcessor - this improves performance in the case of manifold intersecions in one point. Also: added edge count API
2024-02-17 21:20:24 +01:00
Matthias Koefferlein
4ed64fdfa1
GSI binding for tech specific grids
2024-02-16 15:19:32 +01:00
Matthias Koefferlein
1094fd2dd8
Merge branch 'master' into tech-specific-grids
2024-02-16 15:02:52 +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 Koefferlein
4a89304152
Merge branch 'master' into wip2
2024-02-11 14:23:47 +01:00
Matthias Köfferlein
f37e37340c
Issue 1608 ( #1615 )
...
* Fixed issue #1608 (Device extractor error shape)
* New test data
* Add-on: pressing Esc on the netlist or marker browser clears markers
* Updated test data
---------
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:34:21 +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
babf799016
[consider merging] OASIS Reader: error on duplicate CELLNAMEs
2024-02-10 18:45:56 +01:00
Matthias Koefferlein
dd9d2bfddd
First proposal for feature
2024-02-03 22:42:21 +01:00
Matthias Koefferlein
c4fee2cbc4
Fixed a linker issue
2024-01-28 23:51:37 +01:00
Matthias Koefferlein
7634c77c23
Generalization of polygon rasterizer to DPolygon for higher precision of pixel area values.
2024-01-28 23:18:49 +01:00
Matthias Koefferlein
596c6c0aac
Grayscale rasterizer for Region
2024-01-28 22:27:02 +01:00
Matthias Koefferlein
c1394eadef
Disabled assignment and copy for operators and filter objects
2024-01-28 16:14:53 +01:00
Matthias Koefferlein
8d6125dd74
More processors and tests
2024-01-28 15:57:01 +01:00
Matthias Koefferlein
ce88affa67
EdgePairs generic processor
2024-01-26 16:09:01 +01:00
Matthias Koefferlein
b7277631c3
Renaming of 'processor' to 'operator' to avoid name clash with EdgeProcessor, added edge operators.
2024-01-26 15:19:44 +01:00
Matthias Koefferlein
1a126ede45
Generic polygon to polygon processors
2024-01-26 13:05:09 +01:00
Matthias Koefferlein
9fbc926d67
Generic filters also for edge pair, edge and text collections
2024-01-26 11:49:15 +01:00
Matthias Koefferlein
2dca4158f2
Some refactoring.
2024-01-26 10:30:03 +01:00
Matthias Koefferlein
0b77ef996b
Removed unneccessary code
2024-01-25 23:27:39 +01:00
Matthias Koefferlein
b34f539fe1
Generic filter for polygons
2024-01-25 23:10:12 +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
9a52095dd0
Merge branch 'master' into wip
2024-01-07 17:25:11 +01:00
Matthias Koefferlein
0ae2ed49f8
Merge branch 'master' into wip
2024-01-06 17:28:51 +01:00
Matthias Koefferlein
f26fac58fd
Implementation of fix for issue #1586
...
- the "to_dtrans" now behaves as expected
- the conversion constructors have been generalized by adding a 'dbu' argument
- the conversion constructors now are favoured instead of the to_xxx functions
- some of the to_xxx functions are ill-named and are deprecated
2024-01-05 23:24:50 +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
11fbad0104
eliminating some unnamed arguments
2023-12-28 21:35:14 +01:00
Matthias Koefferlein
f685fe3adf
WIP: keyword arguments for expressions
2023-12-28 01:03:21 +01:00
Matthias Koefferlein
702bcbe924
WIP: keyword arguments (for now: Python) + transformation alignment
...
pya.CplxTrans and pya.Trans are good classes for testing the
ability to resolve arguments through keyword parameters.
Keyword parameters are introduced to substitute positional
arguments.
2023-12-26 23:27:25 +01:00
Matthias Koefferlein
d1695b88af
Merge branch 'wip'
2023-12-23 18:05:54 +01:00
Matthias Köfferlein
3550d81c6f
Merge pull request #1555 from KLayout/issue-1531
...
Fixed issue #1531 (DEF format not recognized in symlink): use origina…
2023-12-08 07:26:07 +01:00
Matthias Köfferlein
3533adf8ab
Merge pull request #1554 from KLayout/issue-1549
...
Fixing issue #1549 (error layer handling in RecursiveShapeIterator)
2023-12-08 07:25:51 +01:00
Matthias Koefferlein
3e114bd69c
Fixed doc.
2023-12-08 07:24:46 +01:00
Matthias Koefferlein
b6d3f8be93
Added Edge#euclidian_distance
2023-12-07 23:09:04 +01:00
Matthias Koefferlein
d5f484bf92
Added EdgePair#distance
2023-12-05 22:09:57 +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
caf54bd77b
Fixed issue #1531 (DEF format not recognized in symlink): use original path to determine format
2023-12-02 22:10:31 +01:00
Matthias Koefferlein
c05f7c8bd9
Fixing issue #1549 (error layer handling in RecursiveShapeIterator)
2023-12-02 19:00:43 +01:00
Matthias Koefferlein
0efdbd4ebe
Doc updates
2023-11-26 10:32:26 +01:00
Matthias Koefferlein
0ea2610bf4
Reworking technology API a little: providing a way to register a new technology object, clarification of doc
2023-11-25 16:56:56 +01:00
Matthias Koefferlein
1e09bee1b6
Fixed issue #1534 (Layout::dup does not copy properties)
2023-11-19 20:48:44 +01:00
Matthias Koefferlein
86c1e6ad2b
Some more refactoring
2023-11-19 00:14:46 +01:00
Matthias Koefferlein
c2df163b8a
Added cell variants to polygon to edge processor
2023-11-18 23:27:20 +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
d0172d57f3
Further optimization/refactoring
2023-11-18 19:12:13 +01:00
Matthias Koefferlein
06afaf8692
Some refactoring
2023-11-18 18:57:08 +01:00
Matthias Koefferlein
877646d959
Debugging sized operator for generic DRC, new tests
2023-11-18 13:40:50 +01:00
Matthias Koefferlein
c368710253
Further bug fixes in generic DRC domain
2023-11-18 12:35:34 +01:00
Matthias Koefferlein
37334d40b9
WIP
2023-11-18 11:09:31 +01:00
Matthias Koefferlein
1b01d6e20a
First version that works with the test case
2023-11-17 00:21:15 +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
139723ed5d
Enabling db resource for the '-without-qt' case, specifically the default font
2023-11-12 22:25:53 +01:00
Matthias Koefferlein
969ceb84bb
FEATURE: Added Layout#error_layer.
2023-11-11 23:09:05 +01:00
klayoutmatthias
fcfc69529c
Fixing a static initialization problem on Windows
2023-11-09 22:03:23 +01:00
Matthias Koefferlein
4a152583e8
Trying to fix a problem on Windows
2023-11-09 21:56:55 +01:00
Matthias Köfferlein
041fb53d04
Merge pull request #1518 from KLayout/git-for-packages
...
Git for packages
2023-11-07 21:36:01 +01:00
Matthias Koefferlein
b56220d36d
[consider merging] Functional ut_runner binary also with -without-qt
2023-10-28 23:48:56 +02: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
72278b90ec
Added 'top_level' feature to tell LVS to perform in top level mode
2023-09-27 21:45:06 +02:00
Matthias Koefferlein
cd5204fdf1
Backwards compatible definition of LogDataEntry#to_s
2023-09-27 21:14:11 +02:00
Matthias Koefferlein
001c2240e2
Highlight error marker from netlist browser
2023-09-26 23:39:46 +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
e9eb8e7ebc
Using categories for device extractor errors
2023-09-26 21:57:50 +02:00
Matthias Koefferlein
2c88f7753d
Bug fix
2023-09-26 21:57:16 +02:00
Matthias Koefferlein
579f5ffca4
Doc updates
2023-09-25 23:33:15 +02:00
Matthias Koefferlein
2a85ae8e5c
Added tests
2023-09-24 21:33:28 +02:00
Matthias Koefferlein
6412c534b8
Updated tests
2023-09-24 19:01:30 +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
439e10c982
Bug fixes
2023-09-23 23:58:43 +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
4d41ca6f5c
Fixed tests. Note that now a net with two labels carries a combined net name and does not qualify for connect_implicit if one label matches
2023-09-23 21:44:35 +02:00
Matthias Koefferlein
c81388d830
Updated tests
2023-09-23 17:33:44 +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
e56cdaeaab
WIP
2023-09-22 22:59:43 +02:00
Matthias Koefferlein
2f1cbf2e01
WIP
2023-09-22 21:45:34 +02:00
Matthias Koefferlein
1639ffdf34
WIP
2023-09-19 23:42:19 +02:00
Matthias Koefferlein
034a2673d0
Implemented must-connect check
2023-09-19 23:39:02 +02:00