Commit Graph

2469 Commits

Author SHA1 Message Date
Matthias Koefferlein d7193e972c WIP 2025-04-12 23:59:43 +02:00
Matthias Koefferlein 7b069d17c3 WIP 2025-04-12 22:30:00 +02:00
Matthias Koefferlein 6f9a2da04a WIP 2025-04-10 23:33:50 +02:00
Matthias Koefferlein 910f697d0b WIP 2025-04-10 19:15:12 +02:00
Matthias Koefferlein fa618a5b76 Fixing the strict weak ordering issue inside the edge processor 2025-04-09 23:35:09 +02:00
Matthias Koefferlein 3bd9a96f67 Merge branch 'bugfix/strmxor' into bugfix/issue-2014 2025-04-08 22:55:45 +02:00
Matthias Koefferlein 8150e732af Hopefully fixing strm2xor finally, added a test 2025-04-08 19:14:01 +02:00
Matthias Koefferlein 789e183be9 Shortcutting hierarchy in case of skipped shapes, this restores the original performance 2025-04-08 00:04:21 +02:00
Matthias Koefferlein 41e9cb5893 Maybe fixing basic issues with strmxor
1. Output of shape countsi in deep mode was hierarchical with
   output file, flat without
2. Refactoring of XOR (for_merged optimization) needed to
   create cover cell variants
2025-04-07 00:53:43 +02:00
Matthias Koefferlein bcf14ede3e Fixed issue #2014 (strm2oas lef/def/gds collect drops cells referenced by sky130 spare)
Problem was that there was the implicit assumption that
substitution cells would be top cells (or at least: not
child cells of other substitution cells).
2025-04-05 22:06:29 +02:00
Matthias Koefferlein b0f05b5327 WIP 2025-03-29 23:18:16 +01:00
Matthias Koefferlein 40a0113ce5 Fixing Texts[], EdgePairs[] and Edges[] operators - both in terms of returning xWithProperties and objects with properties at all 2025-03-27 00:27:53 +01:00
Matthias Koefferlein 3aebf90ecd Texts[n] now also provides a TextWithProperties object. Bugfix: this method was not delivering any objects with properties at all. 2025-03-26 01:22:54 +01:00
Matthias Koefferlein a24d5388d7 Region[] now returns a PolygonWithProperties object or nil 2025-03-26 00:56:54 +01:00
Matthias Koefferlein db66a6ee74 Base class of DEdgePairWithProperties was EdgePair, not DEdgePair 2025-03-25 23:43:14 +01:00
Matthias Koefferlein efeb2c061b Layout queries support diff as placeholder for the current cell 2025-03-23 16:51:47 +01:00
Matthias Koefferlein a22f48d87a Texts#polygons now has an argument to specify a property key that receives the text string 2025-03-23 15:54:18 +01:00
Matthias Koefferlein f977973b85 RecursiveShapeIterator#property and RecursiveShapeIterator#properties 2025-03-23 15:23:19 +01:00
Matthias Koefferlein 71644fa56c Implementing additional vertexes for triangulation 2025-03-23 11:34:13 +01:00
Matthias Koefferlein 8727c31d36 Merge branch 'bugfix/issue-1996' into wip 2025-03-23 11:11:20 +01:00
Matthias Koefferlein 16be7bf8c1 Merge branch 'bugfix/issue-2002' into wip 2025-03-23 11:10:54 +01:00
Matthias Koefferlein 593678e228 WIP: Polygon#delaunay and variants 2025-03-23 09:55:08 +01:00
Matthias Koefferlein 986474d465 Added one more testcase 2025-03-23 08:57:06 +01:00
Matthias Koefferlein 73364ee406 Solving issue #2002 by allowing variable widths on the path segments due to 45 degree segment snapping. 2025-03-23 00:57:25 +01:00
Matthias Koefferlein 6228668fa1 Fixing issue #1996: Providing a more robust triangulation 2025-03-22 21:47:22 +01:00
Matthias Koefferlein a727ed0b1d Fixed a compiler warning 2025-03-22 20:47:28 +01:00
Matthias Koefferlein 2668b42d29 Separating tl::hfunc from std namespace. Needed to support int128 in tl::Variant for 64bit coordinate builds. 2025-03-22 20:35:15 +01:00
Matthias Koefferlein 6f69efd427 WIP 2025-03-20 23:30:30 +01:00
Matthias Koefferlein d9343ee530 WIP 2025-03-18 17:28:12 +01:00
Matthias Koefferlein 1f5c2b5132 Marked one test as long runner 2025-03-18 14:44:27 +01:00
Matthias Koefferlein df631aa970 Some minor refactoring 2025-03-18 00:19:15 +01:00
Matthias Koefferlein 6596008826 instrumenting triangles implementation with Quad Tree, but without effect 2025-03-18 00:10:00 +01:00
Matthias Koefferlein cd62f62140 WIP (quad tree) 2025-03-16 23:24:06 +01:00
Matthias Koefferlein 4e65b96cb7 WIP (quad tree) 2025-03-16 21:10:15 +01:00
Matthias Koefferlein f3037d11f3 WIP (quad tree) 2025-03-16 18:16:15 +01:00
Matthias Koefferlein 4aeb94d42e WIP (quad tree) 2025-03-16 17:13:06 +01:00
Matthias Koefferlein 477e2b5a31 WIP (quad tree) 2025-03-16 16:43:56 +01:00
Matthias Koefferlein 4369835e8b WIP (quad tree) 2025-03-16 16:36:49 +01:00
Matthias Koefferlein f1f35ae2a4 WIP (quad tree) 2025-03-16 14:46:03 +01:00
Matthias Koefferlein 5c8e0539ee WIP (quad tree) 2025-03-16 13:56:16 +01:00
Matthias Koefferlein 54b5d9f5d6 WIP (quad tree) 2025-03-16 13:35:51 +01:00
Matthias Koefferlein f136fdcde6 WIP 2025-03-16 00:52:57 +01:00
Matthias Koefferlein d60b296417 Improvement: Device#terminal_ref to get a NetTerminalRef from a Device. 2025-03-14 23:29:09 +01:00
Matthias Koefferlein 930e09809b Added an argument name 2025-03-09 23:20:57 +01:00
Matthias Koefferlein 2baaf322eb Fixed a few doc typos and default values for 'lmap' on build_nets 2025-03-09 23:20:18 +01:00
Matthias Koefferlein da88973df9 A number of new methods and variants in LayoutToNetlist
The goal is to support texts as native objects in
LayoutToNetlist.
Primarily this means, that instead of using a Region
to identify a layer, it is encouraged to use a
layer index instead. Also, Region is not longer the
only way to represent a layer, Texts is available
too.

It is possible now to retrieve the texts of a net
using "texts_of_net".

Also, the "lmap" parameter of "build_nets" became
optional. If "nil", a layer map is created based
on the layer info attribute of the layers.
2025-03-09 23:07:46 +01:00
Matthias Koefferlein 86202fa23c WIP: refactoring of LayoutToNetlist for more consistent support of Texts for layers 2025-03-09 19:22:04 +01:00
Matthias Koefferlein 903bd70223 Fixed merge issues 2025-03-06 22:24:05 +01:00
Matthias Koefferlein 87e7d8e493 Merge branch 'master' into devel 2025-03-06 19:35:32 +01:00
Matthias Koefferlein 605fa44ca6 Another refinement for DSS bug fix. 2025-03-05 10:26:45 +01:00
Matthias Koefferlein 70af6bd7c9 Another refinement for DSS bug solution 2025-03-04 20:37:58 +01:00
Matthias Koefferlein 7b4e8a3462 Refined solution for DSS remapping bug 2025-03-04 19:50:33 +01:00
Matthias Koefferlein 3893f3be56 Merge branch 'master' of github.com:KLayout/klayout 2025-03-03 18:36:05 +01:00
Matthias Köfferlein 8a01352549
Merge pull request #1992 from KLayout/feature/issue-1989
Feature/issue 1989
2025-03-03 18:35:46 +01:00
Matthias Koefferlein ac1c656bc0 Fixed unit tests 2025-03-03 18:34:43 +01:00
Matthias Koefferlein 20111ce08d Fixed issue #1993 ('with_area' modifies result of 'join')
Root cause was a held layout lock inside the TilingProcessor.
As that object was not always released inside the Ruby
DRC script, the lock was held sometimes longer than
needed and messed with the hierarchy system.
2025-03-03 01:05:04 +01:00
Matthias Koefferlein fb9e0c4602 Fixed a compile issue 2025-03-02 22:24:04 +01:00
Matthias Koefferlein 32fe65adc0 [consider merging] Fixed a bug when returning a Region into a layout with cells unselected. 2025-03-02 19:06:48 +01:00
Matthias Koefferlein 01cc54ba49 [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-03-02 19:06:45 +01:00
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 c6e7c47d6c Some bug fixes, updated tests 2025-03-02 18:30:31 +01:00
Matthias Koefferlein 08666aeb82 API implementation ... many, many new functions named 'split_...' 2025-03-02 17:30:47 +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 ae5ae25000 Properties filters for EdgePairs and Texts too. 2025-02-16 13:59:50 +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 e48c6f3660 Edges#each, Edges#each_merged, Region#each, Region#each_merged, Texts#each and EdgePairs#each now deliver objects with properties too. 2025-02-14 22:11:18 +01:00
Matthias Koefferlein c09184989f Avoiding call ambiguities when creating Edges, Region, EdgePairs and Texts from arrays of objects with properties. 2025-02-04 23:59:04 +01:00
Matthias Koefferlein 1f44a951f4 Polygon neighborhood compound operation 2025-02-03 20:47:31 +01:00
Matthias Koefferlein aa67448401 WIP: polygon neighborhood 2025-02-02 23:57:59 +01:00
Matthias Koefferlein 1bd1bb06ce More support for objects with properties: RDB integration. 2025-02-02 17:00:31 +01:00
Matthias Koefferlein a282a5d665 Some more tests for properties inside Edges, Regions 2025-01-29 02:42:16 +01:00
Matthias Koefferlein 4fda872048 Fixed unit tests 2025-01-29 02:29:13 +01:00
Matthias Koefferlein 375ac6364b More support for properties inside Edges, Texts, EdgePairs. WIP 2025-01-29 01:59:00 +01:00
Matthias Koefferlein dfc7d6bef4 Enhancing Python/Ruby API for better support with properties 2025-01-29 00:59:28 +01:00
Matthias Koefferlein d9233caa42 Fixed issue #1981 2025-01-29 00:56:37 +01:00
Matthias Koefferlein 569a8d7c52 First files. 2025-01-29 00:29:15 +01:00
Matthias Koefferlein 2a47006a84 C++11 compatibility 2025-01-21 17:07:51 +01:00
Matthias Koefferlein 33b54f3f88 Merge branch 'master' into devel 2025-01-19 22:04:55 +01:00
Matthias Koefferlein 73dc31244a Merge branch 'master' into devel 2025-01-04 21:51:37 +01:00
Matthias Koefferlein bccf68504f Implemented a solution for #1963 (locking cells)
A cell can be locked using
  cell.locked = true
and unlocked again using
  cell.locked = false
Also, cell.is_locked? can be used to test the locked state.

In locked state writing shapes and instances is forbidden
and doing so would raise an exception.

Also, cells cannot be deleted when locked. However, Layout#clear
and Layout#_destroy are always available.

Cells can still be renamed, even if locked.
2025-01-04 21:44:11 +01:00
Matthias Koefferlein 2d5ddd794c Merge branch 'master' of github.com:KLayout/klayout 2025-01-04 19:36:43 +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 826b811249 More generic object-with-properties GSI methods 2025-01-04 19:24:32 +01:00
Matthias Koefferlein 322b9419ad API harmonization (scaled method) 2025-01-04 19:24:18 +01:00
Matthias Koefferlein d036791cec For consistency: Edge::scaled returns a DEdge now 2025-01-04 19:23:17 +01:00
Matthias Koefferlein 233d70d085 Transformation of objects with properties, GSI binding, bug fixing, tests 2025-01-01 22:49:50 +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 8c935409ea Added a test for net neighborhood, predicable order of results of edge neighborhood scanner. 2024-12-31 16:37:01 +01:00
Matthias Koefferlein c112f78b1c WIP: edge and edge pairs with properties, tests, conversion constructors, edge neighborhood tests with properties. 2024-12-30 23:47:34 +01:00
Matthias Koefferlein d406488bbb Restoring original behavior of 'ignore properties' in width check 2024-12-30 21:19:43 +01:00
Matthias Koefferlein 58d3efeea4 Fixing compile issues 2024-12-29 23:12:44 +01:00
Matthias Koefferlein 941c0fff90 Fixing compile issues 2024-12-29 22:48:34 +01:00
Matthias Koefferlein 8eb181c05f Refactoring compound ops to support properties in general. 2024-12-29 21:41:02 +01:00
Matthias Koefferlein 75e4282f01 Introducing PolygonWithProperties etc. in gsi 2024-12-29 17:07:56 +01:00
Matthias Koefferlein 1be436b764 WIP 2024-12-28 23:40:52 +01:00
Matthias Koefferlein e26de4cc42 WIP 2024-12-28 23:38:20 +01:00
Matthias Koefferlein f2dc78f438 API enhanced for new properties ID scheme, updated doc and tests 2024-12-28 17:13:43 +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 b4d1aa131c Refactoring OASIS reader which wasn't working in non-editable mode 2024-12-25 22:51:56 +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 d2a1d28c55 [consider merging] Fixed another typo in documentation 2024-12-25 17:50:14 +01:00
Matthias Koefferlein 53084e4d43 [consider merging] Fixed a typo in documentation 2024-12-25 17:49:28 +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 f5fea29cc9 WIP: OASIS reader tests debugging. 2024-12-24 12:56:13 +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 dd7aa9b84f WIP: massive refactoring of properties repo and OASIS reader
Target is to reduce the properties repository to a singleton.
Hence, there is no need to translate property IDs and it
is possible to retrieve properties everywhere.

The OASIS reader is refactored to avoid property renaming
and change of property definitions per ID.
2024-12-24 00:00:43 +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 Koefferlein 6db836e405 WIP: refactoring of properties repository 2024-12-22 14:23:07 +01:00
Matthias Koefferlein 5e2f4eb243 Fixing bug #1955
Problem was caused by a leaking PolygonIteratorDelegate that locked the
DSS layout object. Solved by wrapping in PolygonIterator and
changing the interface such that PolygonIteratorDelegegate is no
longer useful.
2024-12-16 22:58:48 +01:00
Matthias Koefferlein dd5214dc6e Fixing issue #1942 (PythonStandalone Package stubs errors), adding defaults for Box#enlarge and Box#enlarged (bonus) 2024-12-02 22:01:51 +01:00
Matthias Koefferlein e35aa97191 Added 'read_bytes' without options and 'write_bytes'. Added tests for write_bytes and for Ruby. Doc fixed. 2024-11-30 18:46:25 +01:00
Matthias Köfferlein 41383e4642
Merge pull request #1920 from rocallahan/readbytes
Add a Layout.read_bytes() method that reads a layout from a byte array
2024-11-30 17:47:03 +01:00
Matthias Köfferlein 637660ca69
Merge pull request #1933 from KLayout/wip
Wip
2024-11-30 08:23: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 Köfferlein 66d97bb5f1
Merge pull request #1928 from KLayout/feature/issue-1923
Feature/issue 1923
2024-11-28 20:43:01 +01:00
Matthias Koefferlein ce4dc08969 Robustness of tests against different hash implementations, documentation update 2024-11-26 23:15:28 +01:00
Matthias Koefferlein 33d1cdc545 Show select expressions in column headers in custom queries 2024-11-24 22:28:01 +01:00
Matthias Koefferlein dc9b3bb398 More consistent handling of special paths (like data: URLs) for technology components. 2024-11-23 19:19:23 +01:00
Matthias Koefferlein 476ec3a714 Implemented solution for #1923 ('move', 'moved')
1. Added move and moved to Point and DPoint
2. dx/dy is 0 by default now
3. arguments of move and moved are called
   v (vector) and dx/dy consistently
2024-11-17 22:04:28 +01:00
Robert O'Callahan db56b0293e Add a Layout.read_bytes() method that reads a layout from a byte array in Python or Ruby.
This is much more convenient and a bit more efficient than writing the bytes
to a temporary file and reading that back in. It's useful when we have received
a layout over the network or embedded in some file.

This makes a copy of the bytes but there doesn't seem to be any way to avoid that
currently.
2024-11-05 03:15:40 +00: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 2629700566 RBA tests, reproducible order of edge events, all edges are reported - even those which do not have neighbors. 2024-10-31 23:43:27 +01:00
Matthias Koefferlein 3073c1917f Some enhancements: internal merging, tests 2024-10-31 22:55:46 +01:00
Matthias Koefferlein 0cca9afc7e Generalization: providing output functionality. 2024-10-31 21:34:17 +01:00
Matthias Koefferlein 9f2a2075c7 Implementing full support for compound operations in EdgeNeighborhood, including foreign() 2024-10-29 23:18:01 +01:00
Matthias Koefferlein ac1126f5c4 update documentation 2024-10-29 21:01:31 +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 946729f14d Adding forced update to Layout writer to ensure proper files. A warning is given. 2024-10-26 22:46:09 +02:00
Matthias Koefferlein 1407ae13a7 Also provide layout locking for recursive instance iterator 2024-10-26 21:40:41 +02:00
Matthias Koefferlein 0c0baed664 Avoiding a layout lock on Region::empty. 2024-10-26 21:24:01 +02:00
Matthias Koefferlein a83e58b8de Solving potential thread collision issues upon Layout::update. 2024-10-26 21:21:28 +02:00
Matthias Koefferlein 049c0b73b0 Debugging, added tests for new recursive shape iterator. 2024-10-25 23:13:40 +02:00
Matthias Koefferlein bea707a9df Releasing the lock when the iterator is at end - otherwise a finished iterator could still block the layout (potential Ruby GC issue) 2024-10-25 00:40:42 +02:00
Matthias Koefferlein c1757c472e First steps towards fix: locking layout while recursive shape iterator is alive. 2024-10-25 00:36:28 +02:00
Matthias Koefferlein 0d2379ad75 WIP: debugging, added polygon callback for EdgeNeighborhoodVisitor 2024-10-24 17:55:56 +02:00
Matthias Koefferlein 7af91fa2b5 Further debugging 2024-10-23 22:53:16 +02:00
Matthias Koefferlein f7dde684f0 WIP: some basic debugging 2024-10-23 18:38:26 +02:00
Matthias Koefferlein 46b44e6287 WIP: builds, but not tested yet. 2024-10-21 23:35:34 +02:00
Matthias Koefferlein 422c88207c WIP 2024-10-21 22:16:16 +02:00
Matthias Köfferlein 78ec69f7b7
Merge pull request #1890 from KLayout/issue-1886
Issue #1886 fixed (doc update)
2024-10-19 16:31:30 +02:00
Matthias Koefferlein eeb05e47a5 Issue #1886 fixed (doc update) 2024-10-12 21:00:07 +02:00
Matthias Koefferlein 0dd7dfb48a Fixed issue #1874 (crash when copying a cell to another layout) 2024-09-28 17:53:26 +02:00
Matthias Koefferlein 4c33032f93 Merge branch 'better-not-break' 2024-09-22 20:08:10 +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 Köfferlein ff0a2b8ab7
Merge pull request #1850 from KLayout/wip
Wip
2024-09-21 20:33:21 +02:00
Matthias Köfferlein cb984fb4b5
Merge pull request #1865 from KLayout/bugfix/issue-1864
Fixing issue #1864 (Copy & paste allows creating a recursive hierarchy)
2024-09-21 20:32:59 +02:00
Matthias Koefferlein b194d509cc Merge branch 'master' of github.com:KLayout/klayout 2024-09-20 23:49:27 +02:00
Matthias Koefferlein 43235a1ac2 Fixed CentOS7 builds 2024-09-20 23:49:16 +02:00
Matthias Koefferlein 5ece4d74ae Fixing issue #1864 (Copy & paste allows creating a recursive hierarchy) 2024-09-20 23:07:09 +02:00
Matthias Koefferlein a20611b4c0 Skip polygon splitting for triangles and boxes 2024-09-18 23:53:13 +02:00
Matthias Koefferlein e2718c5a54 Enhancing polygon splitting
With this enhancement, the area ratio in DRC can
be configured as a negative value. This indicates
to take the outer manhattan approximation of the
polygons. This way, skinny diagonals are not
resolved into many small triangles.
2024-09-18 23:18:23 +02:00
Matthias Koefferlein 531071765f Fixed issue #1860 (problem with undo after delete layer) 2024-09-18 19:11:04 +02:00
Matthias Koefferlein ca9b1d779d Print file name before warning from stream readers, compress warnings if necessary, add file name to errors 2024-09-16 23:48:30 +02:00
Matthias Koefferlein 97dcf0aa0b Porting polygon generator from std::deque to std::list with support by 'splice' ... should fix the problem 2024-09-14 16:21:07 +02:00
Matthias Koefferlein 9e55a664fb [debug] timers with ns resolution 2024-09-14 10:45:28 +02:00
Matthias Koefferlein fc729584e1 Maybe std::deque::size was the problem 2024-09-13 23:28:16 +02:00
Matthias Koefferlein 153d1e3541 Trying to improve stability under PCell debugging conditions inside the IDE 2024-09-13 14:31:45 +02:00
Matthias Köfferlein 53b7c985f0
Merge pull request #1849 from KLayout/feature/issue-1836
Implemented solution for issue #1836 (Allow the usage of Cell.shapes(…
2024-09-08 22:24:40 +02:00
Matthias Köfferlein b3fd5153fb
Merge pull request #1842 from KLayout/bugfix/issue-1835
Bugfix/issue 1835
2024-09-08 22:23:44 +02:00
Matthias Koefferlein 680874c8e3 More variants of Layout#properties_id + added Layout#properties_hash and Layout#properties_array. Clarification of documentation. 2024-09-08 19:45:10 +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 Koefferlein bf965a7806 Implemented solution for issue #1836 (Allow the usage of Cell.shapes(LayerInfo(...)))
- For Cell#shapes, LayerInfo is an accepted argument now
- If the layer does not exist, it is created (non-const version)
  or an error is raised (const version)
- Cell#clear also accepts a LayerInfo object
- Layout#clear and Layout#delete_layer also accept
  a LayerInfo parameter

Rationale for supporting the clear and delete_layer methods:
These cases do nothing if the layer does not exist, so there
is a benefit of using them: it is not required to check first
if the layer exists.
2024-09-07 20:29:43 +02:00
Matthias Koefferlein 716aa3c87b Fixing issue #1835 (saving a PCell as cell renders a layout that cannot be read) 2024-09-01 21:18:49 +02:00
Matthias Koefferlein 7dd7a96683 Fixed issue #1840: start is renamed to _start and finish is renamed to _finish, also some other methods that are purely internal. Python + Ruby is modified. 2024-09-01 19:48:13 +02:00
Matthias Koefferlein 793c892b2b Reworking documentation of LayoutToNetlist 2024-09-01 17:47:25 +02:00
Matthias Koefferlein 6a8be82e77 Added missing explicit template instantiations 2024-08-11 00:39:23 +02:00
Matthias Koefferlein 890904dfd0 Had to split dbHierProcessor as gcc choked on the many explicit template instantiations 2024-08-10 23:40:51 +02:00
Matthias Köfferlein bccc421f3d
Merge pull request #1821 from KLayout/feature/issue-1816
Feature/issue 1816
2024-08-10 13:33:25 +02:00
Matthias Koefferlein 82b3030352 const versions of Layout#cell and Layout#top_cell(s) 2024-08-06 18:19:31 +02:00
Matthias Koefferlein 35219469d6 Debugging and first tests for DRC 2024-08-04 21:03:19 +02:00
Matthias Koefferlein 29f82854fb Fixed DRC update 2024-08-04 19:23:31 +02:00
Matthias Koefferlein f653764dc0 Bugfix (typo): ParameterState#icon was named 'tooltip' 2024-08-04 18:55:53 +02:00
Matthias Koefferlein c63e41e732 GSI binding 2024-08-04 18:37:31 +02:00
Matthias Koefferlein c23c4045ba Basic implementation 2024-08-04 17:57:50 +02:00
Matthias Koefferlein 7510728a71 First API steps 2024-08-03 23:18:57 +02:00
Matthias Köfferlein d1121faecb
Merge pull request #1809 from KLayout/feature/issue-1776
First draft for fix of issue #1776 (undo/redo by list)
2024-07-31 07:10:18 +02:00
Matthias Köfferlein 8ab398dc58
Merge pull request #1811 from KLayout/wip
Wip
2024-07-30 18:59:09 +02:00
Matthias Köfferlein ba899b391c
Merge pull request #1808 from KLayout/bugfix/issue-1784
Proposal for fixing issue #1784 (Spice throws error at midline semico…
2024-07-30 18:58:28 +02:00
Matthias Köfferlein 31fc1d8d79
Merge pull request #1805 from KLayout/bugfix/issue-1804
Fixed issue #1804 (Instantation path highlight mismatch with view win…
2024-07-30 18:57:48 +02:00
Matthias Köfferlein f4e4ce99b8
Merge pull request #1803 from KLayout/feature/issue-1790
Implemented a solution for issue #1790 (Support for recursive PCell i…
2024-07-30 18:57:34 +02:00
Matthias Koefferlein c6928d234c First draft for fix of issue #1776 (undo/redo by list) 2024-07-29 00:15:22 +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 258aaad29d Fixed issue #1804 (Instantation path highlight mismatch with view window)
In addition, the highlighting was fixed in the
presence of a context path (aka "edit in place").
2024-07-27 20:10:30 +02:00
Matthias Koefferlein 071326ffee Small doc update 2024-07-27 14:18:42 +02:00
Matthias Koefferlein c3fdc6e1bc Implemented a solution for issue #1790 (Support for recursive PCell instances)
This also fixes some other issues, like "display_text_impl" being
called when a PCell is run with the debugger open.
2024-07-27 14:00:54 +02:00
Matthias Köfferlein cfa0dacd4f
Merge pull request #1800 from KLayout/bugfix/issue-1799
Fixed issue #1799 (Can't set cell properties by script)
2024-07-27 11:48:01 +02:00
Matthias Koefferlein d6ee473d72 Fixed issue #1799 (Can't set cell properties by script) 2024-07-25 22:36:46 +02:00
Matthias Koefferlein 58d489b39a Added Region#being_shapes_rec and Region#begin_merged_shapes_rec, mainly for being able to retrieve shapes with properties from Region#nets 2024-07-25 19:34:08 +02:00
Matthias Koefferlein 92e44bd9b9 Small update of doc. 2024-07-24 22:36:06 +02:00
Matthias Koefferlein 4cd8772e70 Convenience methods Shape#properties, Layout#properties, Cell#properties, Instance#properties 2024-07-24 22:29:09 +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 16abeb2bdc Merge branch 'master' into wip 2024-07-22 21:34:12 +02:00
Matthias Koefferlein 9600cd818c Merge branch 'master' into bugfix/issue-1793 2024-07-21 08:11:37 +02:00
Matthias Köfferlein d3921844d6
Merge pull request #1791 from KLayout/bugfix/issue-1782
Fixing issue #1782
2024-07-21 08:08:59 +02:00
Matthias Koefferlein 32a815a1c0 Properly selecting debug mode in .pri files for self diagnosis. Touching files for recompile. 2024-07-20 21:04:51 +02:00
Matthias Koefferlein a8eaead404 Enhanced tl::Variant so it can capture all possible default values. Added a self-diagnosis step in debug builds. 2024-07-20 19:57:11 +02:00
Matthias Koefferlein ee07e4b3b9 Added smoke test for Layout#break_polygons and Shapes#break_polygons to RBA 2024-07-17 23:25:20 +02:00
Matthias Koefferlein 4d80fb37c3 Enabled 'break_polygons' for editable Shapes containers 2024-07-17 23:14:34 +02:00
Matthias Koefferlein 1ed69e9b46 Added test 2024-07-17 23:09:04 +02:00
Matthias Koefferlein b6cc636b05 Debugging Layout#break_polygons etc. 2024-07-17 00:51:01 +02:00
Matthias Koefferlein a89e295349 WIP: Shapes#break_polygons, Layout#break_polygons, Region#break_polygons (as alias) 2024-07-17 00:27:06 +02:00
Matthias Koefferlein 072edecb1a Add-on making re-registration of PCells a valid feature. 2024-07-13 18:55:17 +02:00
Matthias Köfferlein 7e5f10307d
Merge pull request #1785 from ChipFlow/subcircuit_hierarchy_for_nets
Fixed DeepShapeStore.subcircuit_hierarchy_for_nets getter
2024-07-13 18:24:30 +02:00
Matthias Koefferlein 0df6339f4e Fixing issue #1782
This patch establishes "nan", "inf" and "-inf" as
valid values for tl::Variant, so corresponding
PCell parameters can be serialized and are
properly managed.
2024-07-13 18:07:45 +02:00
Matthias Koefferlein 7146db4762 Checking some pointers for null (maybe responsible for crashes during PCell development) 2024-07-13 15:30:17 +02:00
Serge Rabyking 2be4f3f756 Fixed DeepShapeStore.subcircuit_hierarchy_for_nets getter 2024-07-09 22:14:32 +01: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 Köfferlein 53db0a0300
Merge pull request #1760 from KLayout/feature/issue-1741
Implemented solution for issue #1741 (Feature request: tooltip string…
2024-07-01 18:24:07 +02:00
Matthias Koefferlein a5b98f93ff Implemented solution for issue #1741 (Feature request: tooltip string for PCell parameter) 2024-06-29 22:10:43 +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 Köfferlein 564861abe1
Merge pull request #1753 from KLayout/feature/issue-1747
Fixing issue #1747 (signed coordinate transformations with Trans/DTra…
2024-06-29 20:12:07 +02:00
Matthias Köfferlein 6e2c11435b
Merge pull request #1744 from KLayout/wip
OASIS reader: avoiding slight rounding of DBU In python read/write cy…
2024-06-29 20:11:40 +02:00
Matthias Koefferlein 100760e219 Fixed progress description 2024-06-25 23:41:35 +02:00
Matthias Koefferlein 58d53636cb DRC tests for 'size/sized inside 2024-06-25 21:01:23 +02:00
Matthias Koefferlein 4c28d9f6a9 WIP: optimization 2024-06-25 19:35:47 +02:00
Matthias Koefferlein e8784d1763 WIP: added basic tests 2024-06-25 19:26:35 +02:00
Matthias Koefferlein 128efd45e4 WIP: Implementing flat mode for sized inside/outside 2024-06-25 18:21:21 +02:00
Matthias Koefferlein c3d3dd6239 WIP: Optimizing performance of deep mode sized inside/outside 2024-06-25 00:30:20 +02:00
Matthias Koefferlein 8d630e723a WIP 2024-06-23 23:52:47 +02:00
Matthias Koefferlein a54365a9a7 WIP: DRC integration 2024-06-23 19:30:01 +02:00
Matthias Koefferlein e63a7b5940 WIP: optimization of sized_inside - distance can be reduced to 0 if 'inside' is merged 2024-06-23 18:21:30 +02:00
Matthias Koefferlein d2479c7159 WIP 2024-06-23 17:20:32 +02:00
Matthias Koefferlein 55fc4a8728 WIP 2024-06-23 17:05:49 +02:00
Matthias Koefferlein 25165c46a3 WIP 2024-06-23 00:49:33 +02:00
Matthias Koefferlein 61e2758bbb Fixing issue #1747 (signed coordinate transformations with Trans/DTrans/CplxTrans etc.) 2024-06-22 23:25:45 +02:00
Matthias Koefferlein f7f25879f0 Preserving layer indexes to preserve LVS DB format (note to myself: finally create a real compare tool for the latter) 2024-06-17 21:55:35 +02:00
Matthias Koefferlein f721be7e32 Trying to improve deep-mode XOR and NOT performance by introducing a local sweep that eliminates shapes also found in second input. 2024-06-17 21:45:55 +02:00
Matthias Koefferlein 579da640ba Enhancement: added optional layer/datatype information to DRC/LVS 'name' 2024-06-16 19:33:24 +02:00
Matthias Koefferlein f4736759b6 issue #1742 fixed: proper tracking of references of RecursiveShapeIterator - this will fix the segfault, but not the general issue of the ticket. 2024-06-16 09:55:46 +02:00
Matthias Koefferlein 46936b5d56 Fixing issue #1733 (Instance selecion in object properties does not match with view port object highlight)
Plus: better implementation of fix for issue #1145
(Crash when clearing a Shapes container by script while a shape is selected)
The previous solution was based on deferred execution and between
execution of that cleanup and the use of the selection, invalid states
could be present.
2024-06-09 18:58:39 +02:00
Matthias Koefferlein c44b8097dd Deep search for pin shapes, added shapes_of_terminal 2024-06-06 19:54:56 +02:00
Matthias Koefferlein 7388aa13a6 debugging pin shape generation - not sure if that solution makes sense. 2024-06-05 23:47:57 +02:00
Matthias Koefferlein 09a690f5f6 WIP 2024-06-05 22:42:42 +02:00
Matthias Koefferlein 4eeb5be9ea More explanation of blend modes in common reader options 2024-06-05 22:42:38 +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
Matthias Köfferlein b726872598
Merge pull request #1726 from KLayout/bugfix/issue-1722
Proposing a fix for issue #1722: add a '...' menu to hold the dynamic…
2024-06-03 22:57:36 +02:00
klayoutmatthias 8204f4d0aa Updating golden test data with MacOS variants 2024-06-02 19:59:40 +02:00