Commit Graph

1998 Commits

Author SHA1 Message Date
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
Matthias Koefferlein e7a8569052 WIP: reimplementing connect_implicit on netlist basis 2023-09-19 23:10:51 +02:00
Matthias Koefferlein 93c570a6f9 [consider merging] Fixed an unitialized pointer 2023-09-17 22:04:36 +02:00
Matthias Koefferlein 1333856337 WIP 2023-09-17 19:58:22 +02:00
Matthias Koefferlein 7c1fd487d6 [consider merging] Bugfix for LayoutToNetlistReader 2023-09-17 19:58:04 +02:00
Matthias Koefferlein 7126375646 WIP 2023-09-17 19:26:18 +02:00
Matthias Köfferlein 70dcef25ce
Merge pull request #1476 from KLayout/issue-1474
Fixing issue-1474 (throw a FATAL ERROR when multiple cellname have th…
2023-09-12 07:22:37 +02:00
Matthias Koefferlein 9bb8b4e548 Bugfix: PCellDeclarationHelper was not present after 'import * from pya', more modern version of PCell samples 2023-09-10 23:41:51 +02:00
Matthias Koefferlein 64bcc6bb65 Bugfixed last commit 2023-09-10 22:51:22 +02:00
Matthias Koefferlein 22bab6d6a6 Some refactoring 2023-09-10 22:05:08 +02:00
Matthias Koefferlein b7ee16b63f Performance enhancement for instance sorting - done only on demand 2023-09-10 19:47:43 +02:00
Matthias Koefferlein 8adc14d22b Fixing issue-1474 (throw a FATAL ERROR when multiple cellname have the same refnum) 2023-09-09 22:13:05 +02:00
Matthias Koefferlein 81e6141245 Fixed issue #1464 - Layout#get_info and Layout#set_info don't segfault on wrong layer index 2023-09-02 19:37:43 +02:00
Matthias Koefferlein 862f8a5c65 Restored a method which was renamed by mistake 2023-09-02 19:18:43 +02:00
Matthias Koefferlein 512183d55c Fixed a documentation error 2023-08-30 21:48:09 +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 87fcbbecfa Fixed some includes which where not there 2023-08-23 21:47:06 +02:00
Matthias Koefferlein 5075cad46a Further trying to fix Windows builds 2023-08-23 20:43:58 +02:00
Matthias Koefferlein 8ac4113abc Further trying to fix Windows builds 2023-08-23 20:39:03 +02:00
Matthias Koefferlein 3313f5588e Trying to fix more Windows build issues 2023-08-23 20:33:41 +02:00
Matthias Koefferlein 6027510c19 Fixing Windows build 2023-08-23 00:03:59 +02:00
Matthias Koefferlein 9153763a1c Fixing Windows build - template point<C> and vector<C> are fully inlined and 'to_string' function pointer for SFINAE creates duplicate symboles 2023-08-22 23:27:10 +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 5941ee688a Fixed a build error. 2023-08-20 22:33:06 +02:00
Matthias Koefferlein 4e8c83e7b6 Fixed a build error. 2023-08-20 22:31:45 +02:00
Matthias Koefferlein 2c2fbea94f Some useful aliases for RBA as in-place operators do not really do what they are supposed to in Ruby. 2023-08-20 19:15:08 +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 5de45000db Triangles: integration into Region processor 2023-08-19 21:50:05 +02:00
Matthias Koefferlein e416c04a1c Triangles: enhanced API 2023-08-19 20:40:15 +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 31caa8a04d Small optimization 2023-08-19 13:29:37 +02:00
Matthias Koefferlein ef7a5a1331 Triangle: some performance optimization 2023-08-19 13:16:19 +02:00
Matthias Koefferlein c6b7908499 Triangles: Memory optimization 2023-08-19 01:55:04 +02:00
Matthias Koefferlein ae3588ab16 Triangles: potential performance improvement in degenerate point set (circle) case. 2023-08-19 01:13:09 +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 5679540c85 Some refactoring 2023-08-16 22:21:49 +02:00
Matthias Koefferlein 2acedfde6f Fixed some compiler warnings 2023-08-16 22:20:25 +02:00
Matthias Koefferlein da1251ada2 Fixed a numerical issue with vprod_sign etc. - was using a too coarse precision value to decide about the sign 2023-08-16 22:19:33 +02:00
Matthias Koefferlein fe90164a8a Fixed some compiler warnings 2023-08-16 22:18:53 +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