Commit Graph

1494 Commits

Author SHA1 Message Date
Matthias Koefferlein 90df9451b6 WIP: reworked log enabling in LVS, added 'no_lvs_hints' feature, updated tests 2022-08-13 18:30:02 +02:00
Matthias Koefferlein fd008b3810 WIP: more LVS hints 2022-08-13 01:46:12 +02:00
Matthias Koefferlein 47ec9a706b WIP: enhanced and debugged LVS hints 2022-08-13 01:36:25 +02:00
Matthias Koefferlein 829f78de8b WIP: attempting to produce reasonable messages on LVS mismatch (short detection) 2022-08-12 00:09:50 +02:00
Matthias Koefferlein 526f1aeacc [Consider merging] provide an option to produce antenna DRC debug output 2022-08-11 01:02:45 +02:00
Matthias Koefferlein 38d2b8378d Merge remote-tracking branch 'origin/master' into wip 2022-08-10 20:40:27 +02:00
Matthias Köfferlein 7ffdc211e5
Fixed issue-1135 (LVS mismatch on parallel devices) (#1136)
* Fixed issue-1135 (LVS mismatch on parallel devices)

The fix consists of a more elaborate device identity analysis
following the topological matching. In this step, the devices
are identified according to their connections and parameters.
It is important to properly identify devices taking their
parameters into account as well as their connections.

* Second part of issue fixed (inverter chain ambiguity)

* Added test

* Updated tests

* Updated golden test results

* Updated golden test data for Windows

Co-authored-by: klayoutmatthias <matthias@klayout.org>
2022-08-10 20:27:11 +02:00
Matthias Koefferlein d48792a942 Trying to establish first log abilities to LVS compare 2022-08-10 00:41:19 +02:00
Matthias Koefferlein b1cbafbac0 WIP: netlist browser log viewer 2022-08-09 01:11:28 +02:00
Matthias Koefferlein e1882b0de7 WIP: refactoring of L2N/LVSDB writer 2022-08-07 17:38:06 +02:00
Matthias Koefferlein 0083021220 [Consider merging] Some refactoring of L2N and LVSDB readers for more future compatibility 2022-08-07 00:24:05 +02:00
Matthias Koefferlein 9d36b3c71a Merge branch 'master' into wip 2022-08-06 18:52:41 +02:00
Matthias Koefferlein bfeb60986c Merge remote-tracking branch 'origin/msvc-building-with-debug' 2022-08-01 19:02:31 +02:00
Matthias Koefferlein 40b4b22f02 Added variants for CellInstArray constructor that take a Cell reference 2022-08-01 19:01:41 +02:00
Matthias Koefferlein 545ff11899 Merge branch 'master' of github.com:KLayout/klayout into wip 2022-08-01 18:50:48 +02:00
Matthias Köfferlein 716369de63
Issue 1126 (#1128)
* First attempt to fix. Rather experimental.

* Debugging and bug fixing

The basic issue was a missing break
However, correct computation of cache results for instance-to-instance cluster
interaction is implemented
Plus: identical and overlapping instances are no longer ignored except in the
case of exact duplicates. Otherwise these instance generate dead nets which
are not connected elsewhere.

* Added tests, fixed duplicate cells test, added missing files.

* Code simplification (removed invariant from transformation in cluster-to-cluster interaction cache)

* Skipping cell instance duplicates as some real-world testcases mandate so

* Updated test data
2022-08-01 18:50:07 +02:00
Matthias Koefferlein 3c5ca36081 [Consider merging] fixed a potential race condition with invalid Shapes container after clear 2022-07-31 00:10:36 +02:00
klayoutmatthias 5a9e3f9188 [Consider merging] One more iterator issue fixed 2022-07-26 21:02:17 +02:00
klayoutmatthias 50a863bb26 [Consider merging] Fixed a potential memory corruption problem 2022-07-26 00:13:26 +02:00
klayoutmatthias da398e77fd [Consider merging] avoid a memory corruption issue in Netlist::flatten 2022-07-25 22:03:01 +02:00
klayoutmatthias 167bcbcc5f Enabling MSVC debug builds with iterator debugging on 2022-07-25 21:06:56 +02:00
Matthias Köfferlein 6ba372f1a9
Issue 1114 (#1121)
* Two patches to enable building on MSYS with gcc 12.1

1. Complete explicit instantiations in dbHierProcessor
2. Strict weak ordering is not present for std::type_info
   (using "before" on gcc 12.1). We need to work with plain
   pointers and use a translation table to associate pointers
   with classes.

* Fixed another place where std::type_info got important

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2022-07-17 19:59:49 +02:00
Matthias Koefferlein 682cc0e491 More safeguards against crashes in the absence of a Manager object 2022-07-09 20:13:40 +02:00
Matthias Koefferlein f7ef538f34 Merge branch 'master' of github.com:KLayout/klayout 2022-07-08 01:35:59 +02:00
Matthias Koefferlein 26901454c4 Fixed a doc typo 2022-07-04 13:41:30 +02:00
Matthias Koefferlein 75d686a63f Changing default "is_merged" status for Edges and Region to false.
This was a problem with universal DRC which does not specifically
set the merged status. Furthermore, the default for DeepRegion and
DeepEdges was "false" already and now is aligned.
2022-07-04 00:52:55 +02:00
Matthias Köfferlein 2f8a7149d3
Fixed issue-1111 (#1112) 2022-07-03 09:35:40 +02:00
Matthias Koefferlein c227cb9ef3 Small bug fix - constness was not intended for Device#net_for_terminal on non-const mode 2022-07-03 00:08:14 +02:00
Matthias Koefferlein 334540f660 Normalization of CellInstArray upon creation (GSI) 2022-06-18 13:48:04 +02:00
Matthias Köfferlein 7a5737d55f
Merge pull request #1087 from KLayout/qtless-canvas2
Qtless canvas2
2022-06-14 22:51:57 +02:00
Matthias Köfferlein 4cbd28fd23
First implementation of issue-1075 fix: when editing a layer spec, the PCell parameters are analyzed and PCells are rewritten accordingly. (#1088) 2022-05-31 00:22:32 +02:00
Matthias Koefferlein 1edaf2b6b4 WIP: working on further consolidation of non-Qt case 2022-05-28 22:49:40 +02:00
Matthias Koefferlein 3f4fe62dc5 Merge branch 'master' into qtless-canvas 2022-05-23 20:42:39 +02:00
Matthias Köfferlein a03464d441
Issue 1079 (#1083)
* WIP: some convenience (self.param=() for Ruby PCell impl), a bug fix (crash on call of pcell_parameter on wrong cell), update of tests

* Implemented solution for #1079 (refresh calls coerce_parameters)

* Basic.CIRCLE modified such that coerce_parameters_impl also catches the case of a programmatic change of actual_radius and this function will update radius and the handle accordingly

* Modified Basic PCells such that they work with coerce_parameters also if generated programmatically

* Added tests
2022-05-23 20:38:10 +02:00
Matthias Köfferlein b84ec19da1
Issue 1071 (GDS2Text format options issues) (#1085)
* Fixed first issue (UI problem with GDS2Text options)

* Fixed problem with 'save' when the file extension does not indicate one of the known formats

In this case, and when plain 'save' is used, the original format is delivered.
The session files also store the original format now.
The statistics page will now indicate the format of the file that was loaded.
2022-05-23 20:37:26 +02:00
Matthias Koefferlein 17cbcc2877 Added mono image class 2022-05-04 02:18:01 +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
klayoutmatthias fd4fe5ce62 Merge branch 'master' of https://github.com/KLayout/klayout into qt6 2022-04-16 20:13:04 +02:00
Matthias Köfferlein 3615b50fc4
A couple of enhancements and bugfixes found during issue-1059 research (#1062)
* Opportunity fix: library selection box listed libraries with technology even though no technology is selected.

* Opportunity: show PCell errors on new error layer. Previously, errors were only shown when the PCell had at least a single layer parameter

The error text is drawn together with guiding shapes. Disabling guiding shapes will
turn off error display.

* Opportunity: fixed an issue when reloading a library immediately after loading a layout: in this case, the library connection got lost and cells were substituted by static ones

* Opportunity: added a layout cleanup for the following case: a layout is loaded without the library present - giving defunct cells. Then the library is registered and defunct cells are reconnected.
2022-04-10 18:44:24 +02:00
Matthias Köfferlein 0df479b29c
Issue 1057 (Library#refresh enhancements) (#1060)
* Added Layout#refresh and added that to Library#refresh

* Doc updates, clarification
2022-04-10 18:41:26 +02:00
Matthias Köfferlein f8bd4dafaf
Pdf documentation (#1052)
* Some doc fixes as preparation for PDF generation

* Some doc bug fixes and enhancements for PDF manual generation

* Fixed a number of invalid references found during PDF generation

* Enable PCellDeclarationHelper doc for help system

* Fixed doc text

* Fixed some doc issues with invalid links etc.
2022-04-03 20:51:29 +02: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 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 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 Koefferlein 0e1e4781a8 Fixed scale & snap bug in non-editable mode 2022-03-09 23:00:39 +01:00
Matthias Koefferlein 4acd0aabc5 Removed D25 tech component 2022-03-06 10:07:23 +01:00
Matthias Koefferlein cd07a21ae3 Merge branch '25d-with-booleans' 2022-03-05 14:59:17 +01:00
Matthias Köfferlein ed7f77a86d
Split gates (#1018)
* First implementation, first basic tests.

* WIP: more tests, bug fixes

* split_gates feature, added test case

* Documentation
2022-03-05 14:56:52 +01:00
Matthias Köfferlein 33ebcb43f3
Issue 1008 (#1010)
* PyPI deployment: corrected branch filter

* skip redundant points in partial edit, but not colinear ones

* Polygon transformation now preserves raw points
2022-03-01 17:17:30 +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 c5da9c717d scale_and_snap: separate handling of shapes with properties and without 2022-02-18 18:49:00 +01:00
Matthias Koefferlein a133a8f43b Reverted some changes, removed idle code 2022-02-18 18:43:02 +01:00
Matthias Koefferlein 834dfa6614 Bug fixes, enhancements, tests for snap and scale improvements. 2022-02-18 14:22:16 +01:00
Matthias Koefferlein e9d86822df Scale and snap improvements
* edge and edge pair support
* property support
* no expanding of on-grid arrays
* more inline processing, better performance
2022-02-18 00:03:14 +01:00
Matthias Koefferlein d2c2a875dd Removed debug output 2022-02-13 23:39:09 +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 0199192e83
Fixed #989 (cannot convert <defunct> cell to static cell) (#1002)
Fixed some more glitches while doing so:
* cell.name (gsi) was giving "basic_name", now it's changed to the
  internal name to be consistent with "name=". The "functional name"
  is still available as "basic_name".
* The basic name was rendering "<defunct>..." for defunct cells
  and has been changed to the functional name. Otherwise this
  is not accessible.
2022-02-12 17:05:12 +01:00
Matthias Köfferlein 60aab8b3fd
Fixed #995 (new topcell after load) (#1000) 2022-02-12 16:51:01 +01:00
Matthias Koefferlein 2ed572e684 Merge branch 'api-enhancements' 2022-02-11 19:10:21 +01:00
Matthias Koefferlein 75aaf10512 Query parser is somewhat more restrictive now and doesn't read everything as cell expression. 2022-02-11 00:30:08 +01:00
Matthias Koefferlein 3f2ca1dfbe micrometer-unit properties (ddbox, path_dtrans, dtrans etc) for custom queries 2022-02-10 23:14:08 +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 Köfferlein 285a5e9fca
Issue 983 (#986)
* WIP: first attempt to fix issue-983

* WIP: bugfixes

* Fixed a problem with displaying empty cell dimensions, one warning

* Another fix: don't allow proxy cells to be selected in the instance properties dialog. This creates a confusing behaviour

* Fixed a few flaws in the cell selection scheme on the instance properties dialog.

* Early warning when trying to build a recursive hierarchy.

* Another fix: avoid too much undo in case of errors thrown during 'apply' followed by 'cancel'

* Fixed issue-983 solution

* Fixed the modification status of PCell parameters for 'apply to all'
2022-02-08 19:06:27 +01:00
Matthias Koefferlein e49b189f64 Doc clarification for Layout#create_cell 2022-02-07 23:27:10 +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 79be9aba41 RecursiveInstanceIterator uses weak pointer to Layout too 2022-02-07 22:09:57 +01:00
Matthias Koefferlein c0b38f3706 Using a weak Layout pointer to avoid segfaults in RecursiveShapeIterator 2022-02-07 21:56:37 +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 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 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 Köfferlein 460ba9813a
Merge pull request #957 from KLayout/issue-954
Bugfix for #954
2021-12-26 19:14:44 +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 9cd77e5cec WIP: expose a new method of PCellDeclaration called 'wants_lazy_evaluation' 2021-12-25 18:03:30 +01:00
klayoutmatthias edd5884a1a WIP: enabling build on MSVC2019 with Qt6 2021-12-15 00:31:13 +01:00
Matthias Koefferlein 279342e61a Added more declarations for gcc in release mode 2021-12-12 16:48:44 +01:00
Matthias Koefferlein ef62a126d4 WIP: format string problem fixed in 2.5d view 2021-12-05 00:08:08 +01:00
Matthias Koefferlein 125543957d WIP: Fixed GSI to some extent, some tests 2021-12-04 00:31:01 +01:00
Matthias Koefferlein 6b49386b67 WIP: fixed some build errors 2021-11-29 23:27:26 +01:00
Matthias Koefferlein 132ad2ed8d WIP: removing need to tl::type_traits 2021-11-29 22:54:28 +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 Koefferlein 0ca82001ed #935 fixed (checking for valid cell index) 2021-11-13 01:03:54 +01:00
Matthias Koefferlein 719eb0bce8 Fixed a potential crash on application exit 2021-11-13 00:48:27 +01:00
Matthias Koefferlein d2478881b5 Bugfix: threading issue - multiple threads accessed the same object 2021-11-10 22:30:32 +01:00
Matthias Koefferlein 379a22c86a Restored performance of some checks 2021-11-09 21:55:55 +01:00
Matthias Koefferlein 319efc1f95 Bugfix: negative output wasn't working properly for enclosing and overlap. 2021-11-09 00:32:07 +01:00
Matthias Koefferlein 4a44329e38 Enabling 'enclosed' as a (sometimes) more efficient way of implementing an enclosing check. 2021-11-08 23:18:01 +01:00
Matthias Koefferlein 9fa82f01d8 WIP (code reduction and performance enhancement of basic DRC checks) 2021-11-07 21:46:18 +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 bc54ba3b99 Merge branch 'performance' into head 2021-11-01 14:32:31 +01:00
Matthias Koefferlein d244d5aac6 Debugging plus enhancments
Basic change: DeepShapeStore+CellMapping uses (new) hier_generation_id of Layout to figure out
if the hierarchy has changed and the cache needs update.
2021-11-01 13:49:00 +01:00