Commit Graph

1111 Commits

Author SHA1 Message Date
Matthias Koefferlein 128afc43cf Support for grayscale formats in PNG reader for PixelBuffer, writing non-alpha RGB versions from non-transparent PixelBuffers 2022-05-09 22:13:35 +02:00
Matthias Koefferlein 42f0a79dee Resize method and tests 2022-05-07 22:12:36 +02:00
Matthias Koefferlein 41cbef1e5a Tests for new LayoutView features 2022-05-07 19:13:01 +02:00
Matthias Koefferlein 585ab0f310 Fixed tests 2022-05-07 18:57:33 +02:00
Matthias Koefferlein 101544ab78 Equality operator in PixelBuffer 2022-05-07 18:48:45 +02:00
Matthias Koefferlein 32813b80f2 GSI binding for PixelBuffer and tests 2022-05-07 12:53:00 +02:00
Matthias Koefferlein 6feed82808 Bug fixes and tests for LayoutView 2022-05-05 23:37:33 +02:00
Matthias Koefferlein 17cbcc2877 Added mono image class 2022-05-04 02:18:01 +02:00
Matthias Koefferlein 3a2ae4ede1 WIP: More tests for lay::Image 2022-05-02 01:02:46 +02:00
Matthias Köfferlein 9cb77d6222
Lefdef enhancements (#1053)
* Implementated patch as suggested by issue-1047

* Implementing blend-mode for LEF/DEF for a first solution for issue-1048

* Added testcase, fixed other tests

* Issue-1050 fixed - now REGION, BLOCKAGE and DIEAREA are relevant from mapping file, nothing else

* Bug fixes

* Experimental: DEF multipart paths

* Experimental: ignore LEF wire extension, ignore PATTERNNAME

* Implemented PATTERNNAME in DEF instead of LEF ..

* Implemented nondefaultrule vias

* LEF/DEF: non-defaultrule vias need a name suffix.

* Refined solution for NDR via names, updated test data

* Updated test data

* Multiple map files and 'REGIONS FENCE' + 'REGIONS GUIDE' layer mapping entries.

* Added test data, updated doc.

* Some enhancements and feedback

REGIONS in map files -> REGION
REGION NONE for map files (maps REGIONs which are neither GUIDE or FENCE)
Bugfix: VIA with ORIGIN
No via cell name prefix by default for buddy tools

* Simplified buddy tool options for LEF/DEF property names

Dropped --lefdef-dont-produce-instance-names,
--lefdef-dont-produce-pin-names and --lefdef-dont-produce-net-names
options. Instead, these options have to be enabled by giving
the respective property names.

Writing the property names takes some space and these
options are simply confusing and redundant.

* Issue a warning about missing cut geometry for a DEF via with PATTERNNAME (which is ignored)

* Fixed issue-1065
2022-04-23 22:26:37 +02:00
Matthias Koefferlein 4d55ba2dc5 New testdata variants for MSVC2017 2022-03-18 23:13:21 +01:00
Matthias Koefferlein 5b9f194ecc Forget last commit - problem was that golden netlists should not be compared with net names as those are node numbers and they might change with C++ STL implementation 2022-03-18 00:10:00 +01:00
Matthias Koefferlein d3093f83c3 Updated test data for MSVC2017 2022-03-17 18:00:00 +01:00
Matthias Köfferlein 4a06bc1bb5
Another change related to issue-1011 (aligning flat and deep mode text representation for LVS) (#1037) 2022-03-16 23:33:08 +01:00
Matthias Köfferlein 51cf918f56
Issue 1029 - Crash on QTreeViewItem#setBackgroundColor (#1032)
* Fixed issue #1029

The problem happened because in the described case the
tl::Variant used as a intermediate container holds the
Python QBrush object and when it gets deleted, the
QBrush object is deleted too.

* Added tests
2022-03-16 23:27:25 +01:00
Matthias Koefferlein 9f0052e55b Fixed LVS testdata (merge issue) 2022-03-15 23:41:19 +01:00
Matthias Köfferlein 7d78194cf0
Issue 1021 (#1026) - LVS match issue on SRAM sample
* First step for solution:

Problem was: the ambiguity resolver was making decisions which later resulted in
a name conflict. Later on, another branch of the backtracking algorithm came
across the same situation but decided based on names, creating an conflict.

First part of the solution is to establish the backtracking information
during ambiguity resolution and using that rather than an alternative branch
later on. This avoids this conflict, but does not favor names as mandated
by the "use_names" flag. This will be the second step of the solution.

* Bugfixed solution (partially)

* Introducing third pass in netlist compare

The second pass is "ambiguity resolution by name" and
is skipped if "consider_net_names" is false. The third
pass then is ignoring the names.

* Bugfix

* Comment fixed, test updates

* Added tests

* Added test data variant for CentOS 8
2022-03-15 21:14:32 +01:00
Matthias Köfferlein e9c5782c51
Issue 1011 (#1027) - DRC violation on texts in deep mode
* Fixed issue-1011 by using single-point polygons for texts in deep mode. Tests need fixing.

* Updated tests (text become a single point)

* Added test for issue-1011
2022-03-15 21:13:57 +01:00
Matthias Köfferlein b09f79b681
Issue 1017 (#1023)
* Write polygons as single POLYLINE or LWPOLYLINE to DXF

* DXF writer creates simple polygons from ones with holes in POLYLINE and LWPOLYLINE mode, added tests
2022-03-10 19:15:35 +01:00
Matthias Koefferlein cd07a21ae3 Merge branch '25d-with-booleans' 2022-03-05 14:59:17 +01:00
Matthias Koefferlein 447b024277 Fixed issue #1013 2022-03-01 00:41:26 +01:00
Matthias Koefferlein ff3bc38aea Merge branch 'master' into wip 2022-02-19 00:14:57 +01:00
Matthias Köfferlein cee33a0099
Merge pull request #992 from KLayout/api-enhancements
Api enhancements
2022-02-18 23:28:28 +01:00
Matthias Koefferlein 834dfa6614 Bug fixes, enhancements, tests for snap and scale improvements. 2022-02-18 14:22:16 +01:00
Matthias Köfferlein b3d17cff97
Implemented issue-982 (heal option for strmxor) (#1004)
The option is -m or --heal.
It is default off as in boundary cases (e.g. full layer vs. empty)
the healing adds a considerable memory and performance penalty.

Healing is only effective with tiling and affects output shapes
as well as shape counts.
2022-02-13 10:04:25 +01:00
Matthias Köfferlein 11a91300bd
issue-996 Providing a "refresh" function for triggering a refresh from inside t… (#998)
* Providing a "refresh" function for triggering a refresh from inside the lib

Some other glitches were fixed too:
* LibraryManager wasn't thread-safe
* Library destructor wasn't unregistering
* Crash when re-registering the same library again
* In LibrariesTest normalization of layouts must not include
  re-creation of library references to avoid side effects.
  Save without context.

* Added missing files

* Fixed unit tests.
2022-02-12 21:26:28 +01:00
Matthias Koefferlein 72d0f717fe Fixed units tests 2022-02-12 18:20:38 +01:00
Matthias Köfferlein 572103ad23
Fixed issue-972 (#1003)
The implementation basically means making cell names valid
rather than quoting them. This involves unification.
2022-02-12 18:08:52 +01:00
Matthias Köfferlein 0005c5d742
Fixed #971 (double compare fails in LVS) (#1001) 2022-02-12 17:04:47 +01:00
Matthias Koefferlein 8091464916 Fixed unit tests 2022-02-11 19:12:57 +01:00
Matthias Koefferlein 2ed572e684 Merge branch 'api-enhancements' 2022-02-11 19:10:21 +01:00
Matthias Koefferlein 98dd0de139 clip method variants with dboxes and cell references in Layout 2022-02-08 23:49:28 +01:00
Matthias Koefferlein 3a422f2c38 Trans: mapping ctrans to * for harmonization 2022-02-08 23:13:37 +01:00
Matthias Koefferlein a5e7395d10 Convenience initializer for CellInstArray and DCellInstArray that takes a vector instead of a transformation 2022-02-08 22:56:58 +01:00
Matthias Koefferlein 1a53cd00d2 Convenience 'each' for recursive shape iterator / recursive instance iterator 2022-02-08 22:28:09 +01:00
Matthias Koefferlein 88c56d8b64 Introducing unique_cell_name in Layout, fixed the RBA unit tests 2022-02-07 23:05:53 +01:00
Matthias Koefferlein 0bb0f400bf Introducing world box. 2022-02-07 22:44:35 +01:00
Matthias Koefferlein e2c6e7aedc size/sized versions with Vector/DVector
Adds variants to size/sized which take a vector instead
of dx, dy and where the mode parameter is optional. So far
anisotropic sizing had to come with a mode argument.
2022-02-07 20:59:09 +01:00
Matthias Koefferlein de98a30f38 Text/DText enhancements
* Enums for alignment values.
* bbox
* position
* typos fixed
2022-02-07 19:46:13 +01:00
Matthias Koefferlein 989daa82c1 Added a test case for klayout.lib 2022-02-06 23:28:51 +01:00
Matthias Koefferlein 95b6af4bc6 Merge branch 'master' into qt6 2022-01-21 15:43:33 +01:00
Matthias Koefferlein df60f49276 Fixed issue-969 plus a Qt warning 2022-01-12 22:49:20 +01:00
Matthias Koefferlein 86cee4118b Updated copyright for 2022 for remaining files. 2022-01-07 22:22:31 +01:00
Matthias Koefferlein 12fd26663d Merge branch 'qt6' 2022-01-06 21:48:02 +01:00
Matthias Koefferlein 10456516db Updated copyright to 2022, preparations for 0.27.6 (was delayed due to code signing certificate issues) 2022-01-04 21:20:04 +01:00
Matthias Koefferlein 92f6f2fb67 New tests 2021-12-26 21:20:58 +01:00
Matthias Koefferlein 812e26aff9 Added missing file 2021-12-26 11:14:40 +01:00
Matthias Koefferlein e1cd6aaeb1 Bugfix for #954
The bug was that while iterating a Region during the gate traversal,
the "select_interacting" was triggering a sort() which changed the
order.

Solution is to pre-sort when iterators are issued also when the
iterator is non-region selecting. This way, plain and region query
iterators can be used together. In addition, the dirty flag scheme
of Cell+Shapes was cleaned up a little for bboxes.
2021-12-26 01:12:36 +01:00
Matthias Koefferlein 533a72b7bd Added tests, fixed implementation 2021-12-15 23:18:42 +01:00
Matthias Koefferlein ca304b15c8 Enable multi-base support for RBA + Qt binding 2021-12-11 00:14:10 +01:00
Matthias Koefferlein 0aca56b1c6 Fixed pymod tests 2021-12-10 01:23:54 +01:00
Matthias Koefferlein f15db66fc4 Providing a different implementation of the multi-base mixin concept for Python to support multiple bases in Qt binding (e.g. QIODeviceBase) 2021-12-10 00:53:51 +01:00
Matthias Koefferlein 9c0e94e63c WIP: Allowing extension (mixin) classes
Needed to represent QIODeviceBase as a second base class for
QIOdevice, QFile etc. Additional base classes are supported but
in a rather limited way. They only contribute constants like enums.
No methods can be provided this way (a limitation of the method
enumeration scheme which only supports one base classe)
2021-12-07 23:24:08 +01:00
Matthias Koefferlein 6f9fa7a4a2 Merge branch 'qt6' of www.klayout.org:/home/matthias/git/klayout into qt6 2021-12-05 17:21:09 +01:00
Matthias Koefferlein 1777002d4a WIP: fixed a unit test (Qt6 QActions seem to remember checked state even if not checkable) 2021-12-05 16:04:13 +01:00
Matthias Koefferlein 634f6da615 Fixed RBA basic test for Qt5. 2021-12-05 13:48:52 +01:00
Matthias Koefferlein ab97a4722d WIP: fixed some Qt binding and GSI issues, added tests 2021-12-04 22:15:04 +01:00
Matthias Koefferlein e677cc7300 WIP: tests for QStringView and QByteArrayView bindings 2021-12-04 09:03:59 +01:00
Matthias Koefferlein 125543957d WIP: Fixed GSI to some extent, some tests 2021-12-04 00:31:01 +01:00
Matthias Koefferlein ecc83aa579 Solved #879: PCellDeclaration now knows the layout and layout knows the library 2021-11-14 17:45:52 +01:00
Matthias Köfferlein 91d358398b
Merge pull request #937 from KLayout/more-macro-bindings
More macro bindings
2021-11-14 16:18:23 +01:00
Matthias Koefferlein 7d316b2a2c Added missing file 2021-11-14 14:39:42 +01:00
Matthias Koefferlein 0ca82001ed #935 fixed (checking for valid cell index) 2021-11-13 01:03:54 +01:00
Matthias Koefferlein 7ca01cdae9 Updated test data 2021-11-11 23:05:28 +01:00
Matthias Koefferlein ac1167278e Updated tests with 'enclosed' rule 2021-11-09 00:32:23 +01:00
Matthias Koefferlein a0367c1530 More specific clip variants after bounding boxes have been reduced in RecursiveShapeIterator 2021-11-01 17:27:52 +01:00
Matthias Koefferlein ebe38912a6 Tests and documentation for dbTrans#is_complex? 2021-10-27 23:36:58 +02:00
Matthias Koefferlein abe40ae99f Bugfix plus more tests 2021-10-19 20:48:13 +02:00
Matthias Köfferlein 80fd5b79be
Merge pull request #908 from KLayout/netlist-compare-performance2
Improving netist compare performance for array case + some enhancements
2021-09-21 22:43:37 +02:00
Matthias Köfferlein a2e171b330
Merge pull request #899 from KLayout/issue-898
Issue 898 (Spice reader ignores last line)
2021-09-21 22:42:53 +02:00
Matthias Koefferlein 29384bf3f3 Convenience: simple version of DRC layer.with_holes and layer.without_holes 2021-09-20 21:36:46 +02:00
Matthias Koefferlein c5607777a8 Updated testdata 2021-09-19 21:37:52 +02:00
Matthias Koefferlein 411869d255 Added missing test file 2021-08-29 21:14:08 +02:00
Matthias Köfferlein 93e789a861
Fixed #893 (#894) 2021-08-24 21:37:15 +02:00
Jan Petykiewicz 7d772f8884 Clean up trailing whitespace in .ot files 2021-08-10 22:44:22 -07:00
Jan Petykiewicz 565eed877f Make some minor documentation fixes and improvements in the .ot templates 2021-08-10 22:44:04 -07:00
Jan Petykiewicz 9c59ad7902 Write "long zero" b-string for END record padding in mkoasis.tcl
0x80 ... 0x80 0x00
instead of
0x00 ... 0x00 0x00
which wasn't a valid b-string
2021-08-10 22:43:24 -07:00
Matthias Koefferlein a22ee41414 Updated test data 2021-08-01 00:32:51 +02:00
Matthias Koefferlein 218e22dfa9 Updated test data 2021-07-31 23:12:12 +02:00
Matthias Koefferlein 23dc0e0f5a testdata update 2021-07-31 22:18:42 +02:00
Matthias Koefferlein 58650a57dd testdata update 2021-07-31 22:11:35 +02:00
Matthias Koefferlein 05050e6091 Added missing file 2021-07-31 08:44:21 +02:00
Matthias Koefferlein 48b5193414 Updated test data. 2021-07-31 00:53:18 +02:00
Matthias Koefferlein b744f89dda Updated test data. 2021-07-31 00:03:05 +02:00
Matthias Koefferlein f7ebe9a950 Added test data for CentOS-7 2021-07-30 22:56:35 +02:00
Matthias Koefferlein 0f09dfe8eb Added LVS tests, updated doc. 2021-07-29 22:56:11 +02:00
Matthias Koefferlein 9543cea952 Fixed tests 2021-07-29 22:24:22 +02:00
Matthias Koefferlein 42b7290fe5 Device parameter comparer now also compares other (primary) parameters, parameters primary in both netlists are considered to be compared by default, 'ignore' feature in tolerance 2021-07-27 22:15:59 +02:00
Matthias Koefferlein 37457aa02f Spice reader flags existing parameters as primary 2021-07-27 22:13:45 +02:00
Matthias Köfferlein df022316b9
Merge pull request #877 from KLayout/drc-extent-of-cells
Implemented extent(cell_filter) for DRC, added Layout#cells with name…
2021-07-21 23:37:10 +02:00
Matthias Koefferlein 7a37a6b7ed Implemented extent(cell_filter) for DRC, added Layout#cells with name filter 2021-07-21 18:31:51 +02:00
Matthias Koefferlein 99d980cd16 Added two useful functions for RBA/pya CellView (context_trans, context_dtrans) 2021-07-20 19:31:54 +02:00
Matthias Koefferlein 23d0fcae8d Added new tests 2021-07-19 08:32:55 +02:00
Matthias Koefferlein 2e21498422 Updated unit tests 2021-07-19 07:58:42 +02:00
Matthias Köfferlein 054bfa3be4
Merge pull request #865 from KLayout/issue-864
Fixed #864 (Shapes#copy_shapes does not support undo/redo)
2021-07-17 13:44:15 +02:00
Matthias Koefferlein 2fee924103 Updated the solution 2021-07-15 23:39:02 +02:00
Matthias Koefferlein 2b447854f9 Enhanced matching of blackbox/pin ambiguities
Previously: matching of blackbox pins was enforced
by using pin names for passive nets in the compare.
Problem: no match was achieved when pins are not
named or not named consistently.

In this case, it's desirable to treat them as
ambiguous.

The new solution is to let the ambiguity resolver handle
that using an extended definition of the net names:
it will take the pin name into account if an unnamed net
is attached to a pin.

In addition, net ambiguities are projected to pin
equivalence now. This also will propagate symmetry
through nested blocks (dbNetlistCompareTests:20_BusLikeConnections).
2021-07-08 23:54:20 +02:00
Matthias Koefferlein 4e54715d64 Merge branch 'wip-lvs' 2021-07-06 23:40:44 +02:00
Matthias Köfferlein d10a28e96a
Merge pull request #850 from KLayout/ruby-3-enabling
Ruby 3 enabling
2021-07-06 23:38:40 +02:00
Matthias Köfferlein e78d0d81ae
Merge pull request #849 from KLayout/lvs-blackbox
Lvs blackbox
2021-07-06 23:38:21 +02:00
Matthias Koefferlein 8f65ab099f Fixed DeviceClass assignment operator 2021-07-06 07:56:27 +02:00
Matthias Koefferlein 4e0d8d92ef Updated doc, reverted netlist writer to write all parameters - it will only write primary parameters for R, L and C 2021-07-05 22:45:40 +02:00
Matthias Koefferlein 24c34f1d60 Updated test data 2021-07-05 22:29:33 +02:00
Matthias Koefferlein e34fc8967a Some enhancements
* Device#net_for_terminal with terminal name
* Spice writer now dumps all parameters for resistors and caps (also secondary)
* Enabled Spice writer delegate in LVS (spice_format(...))
* Device class factories for built-in device extractors
2021-07-05 22:22:13 +02:00
Matthias Koefferlein ba35ac9bfe Doc update, some tests 2021-07-05 21:06:02 +02:00
Matthias Koefferlein 1a0b05e663 Updated test data 2021-07-02 23:38:38 +02:00
Matthias Koefferlein 79c552b300 Fixed #858 (+ line continuation after blanks in Spice reader) 2021-07-02 23:31:54 +02:00
Matthias Koefferlein cd70bea9a0 Basic enabling of Ruby 3 2021-06-29 23:32:36 +02:00
Matthias Koefferlein 2d2cf11308 Added tests for new features. 2021-06-28 23:08:02 +02:00
Matthias Koefferlein ab70c42c68 Some enhancements for strong matching of nets
* same_nets! method for strong matching
* same_nets and same_nets! except glob pattern to circuits and nets
* both observe case sensitivity
* helper functions for case sensitivity Netlist#is_case_sensitive?, Netlist#case_sensitive=
* Netlist#nets_by_name to get nets from pattern
2021-06-28 22:33:46 +02:00
Matthias Koefferlein 72dc94197e New method: Circuit#nets_by_name 2021-06-28 20:29:40 +02:00
Matthias Koefferlein dae5d3227a Enhanced documentation for blank_circuit, consilidated 'blank_circuit' method provided which can be used anywhere 2021-06-28 19:51:57 +02:00
Matthias Koefferlein 24afd571f0 LVS: can be used anywhere now: tolerance and join_symmetric_nets 2021-06-28 18:56:07 +02:00
Matthias Koefferlein c24c0933bf Bugfix: blackbox mode/abstract pins
Abstract pins are created when pins are not attached to any or only to passive nets
(passive nets are those without device terminals or subcircuit pins).

1. Such pins were treated swappable. Now named pins will not be treated
   swappable but are mapped by name. This enables blackbox models where
   the pins are labelled and must correspond to schematic pins.
2. A bug was present which lead to incorrect handling of abstract
   nets in net compare.
2021-06-27 22:56:28 +02:00
Matthias Koefferlein 1d42711b65 Updated test data 2021-06-27 16:07:10 +02:00
Matthias Koefferlein 881e0010d5 Implemented with(out)_angle, with(out)_area on edge pairs (DRC, GSI). Deprecated 'with(out)_angle' on polygon layers (DRC) as this is now redundant with 'corners' 2021-06-27 14:18:04 +02:00
Matthias Koefferlein 5251520876 Added more filters for edge pairs: with_area, with_internal_angle. Added tests 2021-06-21 23:44:48 +02:00
Matthias Koefferlein 4d9b27a017 Updated test data 2021-06-11 00:03:37 +02:00
Matthias Koefferlein 4c3729631a Rework: need to properly parse NAME records in map files, adjusted test data 2021-06-08 22:49:22 +02:00
Matthias Koefferlein 15c97123b5 Changed test data to OASIS for better compression 2021-06-07 23:03:26 +02:00
Matthias Koefferlein bfc534fa45 Fixed #826 - added test 2021-06-07 23:01:05 +02:00
Matthias Koefferlein 378a3b9045 Updated test data 2021-05-31 18:47:52 +02:00
Matthias Koefferlein eeaab8a417 Bugfix: Region#flatten and Edges#flatten did not update the merged cache to flat and Region#flatten did not produce PolygonRefs 2021-05-29 19:28:56 +02:00
Matthias Koefferlein 5ceeafc0ff Implemented #808 (Feature suggestion: DRC to report edges attached to corners as edge pairs). Solution is available for DRC layers and universal DRC expressions. 2021-05-29 17:57:38 +02:00
Matthias Koefferlein fd1e206c56 Provide a solution for #809 (density goes outside the area) 2021-05-29 10:16:30 +02:00
Matthias Koefferlein c8548709bb Implemented edge pair filters, DRC: with(out)_angle, with(out)_length and with(out)_distance 2021-05-28 23:46:52 +02:00
Matthias Koefferlein fcb966393a Fixed #806: first, the internal error gone. Second, the implementation of custom comparers is simplified as the 'equals' method does not need to be implemented. 2021-05-26 22:39:28 +02:00
Matthias Koefferlein 2e63628ddd Fixed #805 - introducing layer.count and layout.hier_count for DRC 2021-05-26 22:11:47 +02:00
Matthias Koefferlein 660b723678 Updated test data because of non-merging hierarchical 'or' 2021-05-26 00:35:32 +02:00
Matthias Koefferlein 224c1b614b Added missing file. 2021-05-26 00:28:08 +02:00
Matthias Koefferlein 6ad8ec5662 Bugfix: whole edge output for fragmented second input. No way to fix that for the compound ops. Restrict negative output for two-layer checks on first layer for the same reason. 2021-05-26 00:27:13 +02:00
Matthias Koefferlein 94e7f0dbd3 Updated test data, fixed DRC/LVS doc. 2021-05-25 23:30:43 +02:00
Matthias Koefferlein 19b28982e7 WIP: updated test data (bugfix: bulk does not have layer properties), Fixed Region::count and Region::hier_count (was counting non-polygons too) 2021-05-25 23:08:38 +02:00
Matthias Koefferlein 1c8442f485 Fixed #807 - now supporting incremental connect and clear_connections in DRC/LVS 2021-05-24 21:56:57 +02:00
Matthias Koefferlein 05b1023fd5 Updated tests. 2021-05-24 16:49:00 +02:00
Matthias Koefferlein 0a659124f6 Merge branch 'master' of github.com:KLayout/klayout into wip 2021-05-22 17:49:24 +02:00
Matthias Köfferlein 72c225839d
Merge pull request #802 from KLayout/issue-801
Implemented #801: update, added test case
2021-05-21 00:52:22 +02:00
Matthias Koefferlein eb26b6ed34 Basic implementation of 'resolve skew aref' feature 2021-05-21 00:08:02 +02:00
Matthias Koefferlein 55bdd904cb Implemented #801: update, added test case 2021-05-19 22:25:59 +02:00
Matthias Koefferlein 2e4c5a535a Fixed test fails: infinite recursion due to duplicate alias on -e following -ne 2021-05-19 22:16:47 +02:00
Matthias Koefferlein ff033893e0 Added missing file. 2021-05-13 21:13:54 +02:00
Matthias Koefferlein aea8c4d1ad 3-terminal C's and R's for Spice writer too, using different default models for 2- and 3-terminal R and C 2021-05-13 21:13:41 +02:00
Matthias Koefferlein 4eb8f69a22 Spice reader: Support for resistance, capacitance and inductance values within parameters, basic support for 3-terminal resistors, more flexibility in SpiceReaderDelegate. 2021-05-13 20:40:28 +02:00
Matthias Köfferlein 3f46098d1b
Merge pull request #789 from KLayout/lefdef-macro-layouts-for-gui
Lefdef macro layouts for gui
2021-05-08 22:25:56 +02:00
Matthias Koefferlein 0d848d0597 Added LEF macro file list to API and UI 2021-05-04 22:56:03 +02:00
Matthias Koefferlein 70864e41af Implemented Edge#cut_point for GSI (was missing) 2021-05-04 21:12:46 +02:00
Matthias Koefferlein 7c3c631515 Merge branch 'master' into feedback 2021-04-29 23:53:47 +02:00
Matthias Koefferlein 2f204eaa21 Some refactoring of the instance-to-instance test in hier processor: gives some performance improvement with less memory for cache. 2021-04-26 23:15:27 +02:00
Matthias Koefferlein 7d8825a9fb Ghost cells are not renamed in blend mode 'rename' 2021-04-24 21:30:03 +02:00
Matthias Köfferlein 7ef56c28c8
Merge pull request #774 from KLayout/issue-715
Fixes #715 (selection box larger than drawn)
2021-04-19 22:29:11 +02:00
Matthias Köfferlein e6ab8c2483
Issue 771 (#773)
* Fixed the issue - Byte array variant was not properly converted to Python/Ruby objects.

* Added tests + properly converting byte arrays to byte array variants in Python.
2021-04-19 22:28:27 +02:00
Matthias Koefferlein 6a77c3ae9a Another update to fix windows tests (pymod with Python 3.8+3.9) 2021-04-18 15:46:55 +02:00
Matthias Koefferlein af6f11c2b3 Fixes #715 (selection box larger than drawn) 2021-04-18 14:02:26 +02:00
Matthias Koefferlein de83fb7e8a Added missing file. 2021-04-18 12:53:44 +02:00
Matthias Koefferlein b1943c8b4e Attempt to mitigate the effects of bpo-36085 in Python 3.8+ on Windows - need to add DLL search paths explicitly. 2021-04-18 10:43:34 +02:00
Matthias Koefferlein 9b7879b2a9 Faster hierarchical edges. 2021-04-06 21:05:02 +02:00
Matthias Koefferlein 892f940166 Fill feature: enhancements and debugging
- added "multi_origin" mode for repeated fill
- enhanced fill coverage by better separation of islands in auto-origin mode
2021-04-01 23:29:45 +02:00
Matthias Koefferlein 94556c1448 Merge branch 'master' into lvs-enhancements 2021-03-30 18:56:27 +02:00
Matthias Koefferlein 47a845884d Added tests 2021-03-29 22:44:39 +02:00
Matthias Koefferlein 3f37b0e5a4 Fill cell box introduced as a concept, added tests, overlapping fill cells supported. 2021-03-29 22:12:47 +02:00
Matthias Koefferlein 74d3251ff7 Updated test data 2021-03-29 21:03:21 +02:00
Matthias Koefferlein b725f5fb0f fill_with_left, implementation + tests 2021-03-29 20:58:16 +02:00
Matthias Koefferlein 8fda92a9c4 Merge branch 'drc-enhancements' into fill-enhancements 2021-03-29 15:07:47 +02:00
Matthias Koefferlein dc3fa096d3 Renamed DRC tests to reduce merge conflicts. 2021-03-29 15:03:37 +02:00
Matthias Koefferlein cefc2eeddb Bug fixes. 2021-03-29 01:05:53 +02:00
Matthias Koefferlein 9f295523e4 explicit net joining - preparations 2021-03-27 21:56:53 +01:00
Matthias Koefferlein c48be51cb6 Made SPICE netlist elements case insensitive in LVS scripts 2021-03-24 22:11:15 +01:00
Matthias Koefferlein 94ffc0483e Added missing files 2021-03-22 14:27:30 +01:00
Matthias Koefferlein 1ae109f90d DRC: deep mode region input does not flatten the layout on clip 2021-03-21 23:54:13 +01:00
Matthias Koefferlein 866ee9bd81 DRC: tiling mode with global transformation, debug + tested 2021-03-21 23:27:42 +01:00
Matthias Koefferlein afdc50d05a Global transformations for DRC and RecursiveShapeIterator 2021-03-21 23:09:09 +01:00
Matthias Koefferlein cf6145d60c Unit test robustness against OS and compiler variations 2021-03-15 19:07:06 +01:00
Matthias Koefferlein 1495d9521c Tests updated. 2021-03-15 16:51:56 +01:00
Matthias Koefferlein c8246d1e66 Adjusted RBA tests 2021-03-15 10:29:32 +01:00
Matthias Koefferlein f2b1661647 Merge branch 'drc-enhancements', remote-tracking branch 'origin' into lvs-debug 2021-03-14 23:52:03 +01:00
Matthias Koefferlein fea594ff69 Unit tests modified because of interface change for netlist comparer 2021-03-14 23:51:20 +01:00
Matthias Köfferlein 184f2bee50
Smooth bug (#740)
* Smoothing function: provide ability to keep horizontal/vertical lines (important for cut lines)

* Introducting API compatibility macros for generic plugins.
2021-03-14 12:27:36 +01:00
Matthias Koefferlein f2d106651b Reworked the fill scheme for better support of skewed fill repetitions. 2021-03-11 21:27:49 +01:00
Matthias Koefferlein 637968cbc4 Centering of bounding box in fill tool - this allows using step vectors alone without a boundary layer 2021-03-06 00:31:05 +01:00
Matthias Koefferlein 0d04937c91 Added tests for fill tool 2021-03-05 16:27:57 +01:00
Matthias Koefferlein af5435f869 Added more tests (inline transformation of region etc. with matrix transformations) 2021-03-05 15:39:02 +01:00
Matthias Koefferlein 44e59bc2ff Added tests for EdgePairs transformation 2021-03-05 15:34:23 +01:00
Matthias Koefferlein dbeee1531e Matrix2d and Matrix3d generalized for integer coordinates, added transformation methods for polygons, regions, boxes, edges, etc. Fill enhancements basically implemented. Needs testing. 2021-03-05 15:31:40 +01:00
Matthias Koefferlein e639c30570 split_* operations in DRC (interacting/non_interacting in one step), doc, tests. 2021-03-01 21:04:57 +01:00
Matthias Koefferlein 6f8e981504 Merge branch 'master' into drc-enhancements 2021-02-28 23:31:14 +01:00
Matthias Koefferlein aad393d7c9 DRC density check: updated doc, added tile_count option 2021-02-28 18:46:14 +01:00
Matthias Koefferlein cfc86ad62f Implemented density check: 'with_density', 'without_density' 2021-02-28 18:21:05 +01:00
Matthias Koefferlein b353f7db79 Test stability for Windows/32bit 2021-02-28 13:50:33 +01:00
Matthias Koefferlein 77356cd877 More unit test stability 2021-02-27 21:31:32 +01:00
Matthias Köfferlein b968f2b47f
#730: providing a new Qt module named QtUiTools for QUiLoader class s… (#735)
* #730: providing a new Qt module named QtUiTools for QUiLoader class support.

* Fixed a compile error on Mac

* Added QtUiTools to some more places

* Fixed a linker issue in the QtUiTools Python lib

* On occasion fixed a infinite recursion problem in the debugger

The recursion happened because by mistake I instantiated a
QApplication inside an in-application Python script. This
crashed the debugger due to infinite recursion. This is not
a real use case but to prevent similar issues, a recursion
sentinel was added.

* Removed QCoreApplication#notify from script bindings

Reasoning: "notify" made standalone scripts using QApplication and
QUiLoader virtually impossible.

Problem description:
- When a QApplication object is instantiated, e.g. in Python, the Qt binding
  will install reimplementation hooks as the object may be dynamically
  extended.
- A notify is virtual this means the *every* "notify" call in the application
  is routed through the interpreter.
- For one thing this will slow down the application
- But as "notify" is called a zillion times this has more than this side effect.
- Specifically "notify" is called from within the QWidget constructor to
  indicate a new widget. Then, if a QDialog for example is instatiated, it's
  base class constructor will call "notify" when the object isn't ready yet.
- This has another severe side effect: as the object isn't ready yet, it gets
  registered in the Python space with the wrong class and QDialog is not visible
  as such.

To mitigate these problems, the most efficient solution is to disable "notify"
in general. There is hardly any use case in a script environment (in C++,
apart from hacking the only reasonable use case is exception handling, but
this does not apply to scripts). For providing the call functionality of
"notify" you should better use "postEvent" or "sendEvent" anyway.

So farewell QCoreApplication.notify ...

* Fixed python test for QtUiTools module

* Fixed UiTools test on Qt4 - QUiLoader needs an application object

Co-authored-by: Kazunari Sekigawa <kazunari.sekigawa@gmail.com>
2021-02-25 21:29:21 +01:00
Matthias Köfferlein 483f67307c
Merge pull request #732 from KLayout/lefdef-enhancements
Lefdef enhancements
2021-02-25 21:28:02 +01:00
Matthias Köfferlein 82587e70c3
Merge pull request #731 from KLayout/recursive-inst-iterator
Recursive inst iterator
2021-02-25 21:27:41 +01:00
Matthias Koefferlein 3db1db831f Test update after update of LEF/DEF reader. 2021-02-21 21:23:45 +01:00
Matthias Koefferlein eda1992a7d Added VIA size selectors for LEF/DEF .map files. 2021-02-21 21:00:55 +01:00
Matthias Koefferlein 898dbf07e9 Implemented FILLS support for LEF/DEF 2021-02-21 18:27:25 +01:00
Matthias Koefferlein 0f4a10441d RecursiveInstanceIterator: Doc fixes, tests, instance array iteration. 2021-02-20 22:17:43 +01:00
Matthias Koefferlein b3685c6722 Implemented with_holes for generic DRC too 2021-02-08 21:29:41 +01:00
Matthias Koefferlein 1c8eca50bf Added test case files. 2021-02-08 20:59:48 +01:00
Matthias Koefferlein a9fa5d73f9 Introducing 'with_holes' and 'without_holes' in DRC and RBA::Region. 2021-02-08 20:59:17 +01:00
Matthias Köfferlein e31d7afb64
Reduce risk of DRC polygon split artefacts in deep mode (#722)
* Fixed a segfault with simple 'klayout -v'

* is_halfmanhattan polygon predicate, confine polygon splitting to halfmanhattan

Splitting any-angle polygons for area reduction in the
deep processor creates a risk of introducing grid-snap
artefacts. Hence we avoid this.
2021-02-05 23:28:04 +01:00