Commit Graph

2222 Commits

Author SHA1 Message Date
Matthias Koefferlein 339a2a6fd7 Maybe fixed a performance issue (layout object needs to be locked) 2020-06-05 00:34:07 +02:00
Matthias Koefferlein 233574598b Support for LEF via definition properties (syntax wise, not semantics wise) 2020-06-04 17:55:06 +02:00
Matthias Koefferlein 8b0ab115ed Memory footprint optimization for quad tree 2020-06-04 15:38:53 +02:00
Matthias Koefferlein adfd653213 WIP: refactoring - include fuzzy compare in array, don't put into GSI method impl. 2020-06-04 13:01:11 +02:00
Matthias Koefferlein 999c065262 Introducing iterated arrays for instances
Iterated instances are created for OASIS files
using irregular repetitions in viewer mode.

Reason: this way, the same drawing optimization
than for iterated shape arrays can be applied.

As this is a new API feature, some adjustments
had to be made to incorporate them into the
code.
2020-06-04 12:17:34 +02:00
Matthias Koefferlein 9c4648a5b5 WIP: some bug fixing and enhancements. 2020-06-02 23:59:09 +02:00
Matthias Koefferlein cdf4d08fd3 WIP
* Maybe fixed a performance issue on box-trees: the iterator wasn't
  going down to the very bottom of the tree on initialization
* Added array quad skipping in display of shape arrays
2020-06-01 23:28:04 +02:00
Matthias Koefferlein 4aa1364e4b Fixed DEF reader, updated golden test data. 2020-06-01 15:04:25 +02:00
Matthias Koefferlein d7af7fc5c0 Merge branch 'lefdef-enhancments' 2020-06-01 13:37:45 +02:00
Matthias Köfferlein 0c0d247c23
Merge pull request #574 from KLayout/issue-558
Fixed #558 ("extents" wasn't deep-enabled for Edges, Texts and EdgePairs)
2020-06-01 00:21:46 +02:00
Matthias Koefferlein 82c6a5bc6b WIP: fixed more gcc-9 warnings. 2020-05-31 21:50:10 +02:00
Matthias Koefferlein a9c0616aa0 WIP: more changes 2020-05-31 10:37:30 +02:00
Matthias Koefferlein 759f07ee4d Implemented solution for #570 (deep Edges::extents)
While doing this, it was discovered that the problem also
persists for EdgePairs and Texts.

In order to provide a more generic solution, some refactoring
was applied.
2020-05-31 01:55:05 +02:00
Matthias Köfferlein 6601d472bf
Implemented #570 (perimeter included in antenna check) (#572)
* First implementation of the perimeter factor for antenna check, unit tests.

* Bugfix and unit tests for GSI binding of new antenna check version.

* DRC integration of perimeter-enabled antenna check.

* Enhanced DRC doc for antenna rule
2020-05-30 21:45:48 +02:00
Matthias Koefferlein bea3e29421 Merge branch 'master' of https://github.com/KLayout/klayout 2020-05-28 00:44:49 +02:00
Matthias Koefferlein e94b40cab9 Fixed Windows build (linker error) 2020-05-28 00:44:27 +02:00
Matthias Köfferlein 3246e0d36f
Fixed #565 (SPICE global nets must not produce pins if not present) (#567)
* Fixed #565 (SPICE global nets must not produce pins if not present)

* Fixed unit tests.
2020-05-26 23:47:59 +02:00
Matthias Köfferlein ba46ffb276
Merge pull request #563 from KLayout/issue-487
Fix #487 (True text object support for DRC/LVS)
2020-05-26 22:44:53 +02:00
Matthias Köfferlein a046457cc5
Fixed bug #568 (CIF writer issue with small rotation angles) (#569)
* Fixed bug #568 (CIF writer issue with small rotation angles)

* Fixed the reader bug too which created the rounding issue.
2020-05-25 22:10:06 +02:00
Matthias Koefferlein 29a5b4c519 Bugfix: wrong type cast of size_t to unsigned int 2020-05-24 09:44:25 +02:00
Matthias Koefferlein 0f42ebe385 Updated DRC doc, added more tests. 2020-05-23 22:54:50 +02:00
Matthias Koefferlein 5ba3d220e9 Made unit tests a little more consistent. 2020-05-23 22:30:54 +02:00
Matthias Koefferlein ee53869cbd Connect_implicit test with labels. 2020-05-23 21:21:30 +02:00
Matthias Koefferlein f410c91339 Updated documentation 2020-05-23 21:14:01 +02:00
Matthias Koefferlein ba9a05640c Bugfixed tiled mode with text input, DRC tests added and test data updated. 2020-05-23 19:03:42 +02:00
Matthias Koefferlein 6fc72b2a39 WIP: doc update 2020-05-23 16:24:05 +02:00
Matthias Koefferlein 81750ed3d8 Tiling processor enabling for text input/output, updated tests. 2020-05-23 16:23:40 +02:00
Matthias Koefferlein daf8e5f8fc Bugfix: Region::pull_interacting(edges) wasn't working properly. 2020-05-23 13:19:46 +02:00
Matthias Koefferlein b84a9df2da Persisting texts now for .l2n format 2020-05-22 00:58:46 +02:00
Matthias Koefferlein c682cc85d0 Generalized concept of region, texts etc. into 'shape collections'. Fixed LVS and DRC tests. 2020-05-21 23:59:30 +02:00
Matthias Koefferlein 5795ec8b07 Fixed DRC texts methods, added tests. 2020-05-20 23:56:35 +02:00
Matthias Koefferlein 854320d52d Debugging: proper assignment of net names through labels. 2020-05-20 23:27:06 +02:00
Matthias Koefferlein e9af72ee28 Tests for texts as net names, fixed Shapes test (order of texts) 2020-05-20 01:05:19 +02:00
Matthias Koefferlein cd0b86b1dc WIP: fixed tests. 2020-05-20 00:31:26 +02:00
Matthias Koefferlein 4c13bb96a0 WIP: refactoring - texts for net extractor. 2020-05-20 00:21:06 +02:00
Matthias Koefferlein 371009ba80 Fixed small typos in LVS doc text. 2020-05-18 21:08:59 +02:00
Matthias Koefferlein ad0cd2f10c pull_interacting and interacting/not_interacting for region/text combinations in DRC. 2020-05-16 00:18:54 +02:00
Matthias Koefferlein 7dab87b881 Added tests, Region#pull_interacting with texts 2020-05-15 23:48:21 +02:00
Matthias Koefferlein 878a494abb AND and NOT for texts vs. region, DRC generalization. 2020-05-15 22:24:18 +02:00
Matthias Koefferlein 8a2742d436 Small doc updates 2020-05-13 22:39:25 +02:00
Matthias Koefferlein 58ca9b8730 Some bug fixes, added tests 2020-05-13 21:56:49 +02:00
Matthias Koefferlein 831acb2c40 Bugfixes, tests for flat interact between region and texts. 2020-05-13 18:25:43 +02:00
Matthias Koefferlein 16d6c75b0e Fixed build, added tests for filter in deep texts object. 2020-05-13 17:58:00 +02:00
Matthias Koefferlein 4e7d0a81b8 'interact' between regions and texts. 2020-05-13 17:29:10 +02:00
Matthias Koefferlein 08026e8b35 Bugfix: in-place filter not working for region, edges. Implemented hierarchical filter for texts. Added Ruby tests for Texts. 2020-05-12 23:01:54 +02:00
Matthias Koefferlein c1b1ce6951 Provide unit test for DeepTexts. 2020-05-12 21:43:11 +02:00
Matthias Koefferlein 4fbb6286ac Fixed unit tests. 2020-05-12 21:16:12 +02:00
Matthias Koefferlein 8b083a8330 Added unit tests for db::Texts, renamed db unit test files so debugging is possible 2020-05-12 21:09:21 +02:00
Matthias Koefferlein a9cd9ac122 First implementation of texts collection. 2020-05-12 20:44:39 +02:00
Matthias Köfferlein 3f8090b3fd
Fixed #547 (better error messages on some Shape methods, fixed doc). (#550) 2020-05-11 19:24:44 +02:00
Matthias Köfferlein 296ec5aebf
Fixed #554: using 64bit coordinates for RVE reader (#555) 2020-05-11 19:24:29 +02:00
Matthias Koefferlein 21173c5f96 Attempt to fix MSVC builds 2020-05-03 10:13:12 +02:00
Matthias Köfferlein 9f4ccaaedc
Issue #535 (Image handling enhancements) (#551)
* Menu item to hide or show all images

* Images: asymmetric color nodes.

* Added RBA::image::from_s for reading image back from string. Added tests.

* Added image file reader test (RBA)

* Added lyimg format for image file persistence.

* Small fix of unit tests.

* Added GSI binding for new image features and tests.

* Save and load for .lyimg formats in image properties dialog.
2020-05-02 13:45:20 +02:00
Matthias Koefferlein 5fd60e0d49 Planning LEF/DEF enhancements for 0.27 now as this is a too big change. 2020-05-02 13:22:04 +02:00
Matthias Koefferlein 99ec635e5a Start LEF browser in tech base dir in the context of a technology 2020-05-02 13:19:26 +02:00
Matthias Koefferlein fd63d1017f Added tests for LEF/DEF mapfile, fixed a few bugs. 2020-05-02 09:30:17 +02:00
Matthias Koefferlein 97022a3a87 Layer mapping scheme enhancements, UI enhancements
* A map file can now be specified and should be read relative
  to the technology
* Giving a map file will disable the pattern-based mapping
* UI enhanced accordingly
* Added UI option to configure macro resolution mode
* Bugfix: LEF files have not been read relative to the tech
* Bugfix: Some options where not persistent
2020-05-02 00:14:06 +02:00
Matthias Koefferlein 0e68b910fa Merge branch 'master' into lefdef-enhancments 2020-05-01 16:00:58 +02:00
Matthias Koefferlein 751340c963 LEF/DEF: Fixed placement of FOREIGN cell 2020-05-01 15:16:08 +02:00
Matthias Köfferlein 86739794a0
Merge pull request #543 from KLayout/fix-missing-python-alternative-doc
Fixed problem of missing exec_ documentation
2020-04-30 22:06:55 +02:00
Matthias Köfferlein cb3833f563
Merge pull request #546 from KLayout/sonarqube-fixes
Sonarqube fixes
2020-04-30 22:06:38 +02:00
Matthias Köfferlein 8dae4161e1
Fixed #548 (shield issue on space) (#549) 2020-04-30 22:03:16 +02:00
Matthias Koefferlein f6b2eea0a7 Build fixed. 2020-04-26 17:08:52 +02:00
Matthias Köfferlein 9b0362d03d
Fixed #544 (ignore duplicate global nets in SPICE reader) (#545) 2020-04-26 16:54:13 +02:00
Matthias Köfferlein 93a072903c
Fixed #539 (internal error on circuit flatten) (#542)
Previously, circuits which connected two pins through
a net could not be flattened. This capability now has
been added.
2020-04-26 16:53:50 +02:00
Matthias Koefferlein 3d3bdb001f Some patches for sonarqube 2020-04-26 10:25:46 +02:00
Matthias Koefferlein 15567d3d27 Some small fixes to make clang-analyze happy. 2020-04-26 09:33:10 +02:00
Matthias Koefferlein c6b5d2f8d2 DXF reader code change suggested by clang-analyze 2020-04-26 08:42:50 +02:00
Matthias Koefferlein 73f2f23505 Adjusted unit tests for latest fix. 2020-04-26 01:05:07 +02:00
Matthias Koefferlein 88330587a3 Fixed build errors. 2020-04-26 00:26:09 +02:00
Matthias Koefferlein fffae4134c Fixed a Sonarqube issue. 2020-04-25 23:37:43 +02:00
Matthias Koefferlein 3a7d9d0b0f Fixed copyright/license topic. 2020-04-25 23:30:48 +02:00
Matthias Koefferlein 5bedd3cd04 Removed tab characters from sources. 2020-04-25 23:27:29 +02:00
Matthias Koefferlein 1a30fdf4b7 Exceptions must not be strings in Python 2020-04-25 23:25:53 +02:00
Matthias Koefferlein 45c7b97549 Fixed an issue in the strmxor implementation (output_cell wasn't initialized) 2020-04-25 23:23:40 +02:00
Matthias Koefferlein 0bc965dde9 Fixed a layout diff bug (compare of paths) 2020-04-25 23:20:01 +02:00
Matthias Koefferlein 849e97b88a Fixed a wrong computation of image memory footprint 2020-04-25 23:13:46 +02:00
Matthias Koefferlein fe2e642e66 Fixed a 'value never read' issue. 2020-04-25 23:10:46 +02:00
Matthias Koefferlein f1fa81bead Fixed a 'value never read' issue. 2020-04-25 23:09:41 +02:00
Matthias Koefferlein 8050a54bc8 Fixed a potential null derference issue. 2020-04-25 23:06:41 +02:00
Matthias Koefferlein 4c6d61bed1 Fixed 'at most one statement is allowed per line' for tl_assert macro 2020-04-25 22:59:45 +02:00
Matthias Koefferlein 061e5d7286 Added LEF reading timer (LEF next to DEF) 2020-04-25 22:05:01 +02:00
Matthias Koefferlein c602871e0e Implemented Stefan's solution #3 for FOREIGN != MACRO in LEF 2020-04-25 21:08:11 +02:00
Matthias Koefferlein 4c6f1475b1 Made rba:layLayoutView test functional without qtbindings enabled. 2020-04-25 19:45:02 +02:00
Matthias Koefferlein f6140055d6 Modified reader scheme for FOREIGNCELL 2020-04-24 23:21:27 +02:00
Matthias Koefferlein 7574a41d09 Fixed problem of missing exec_ documentation 2020-04-22 08:07:22 +02:00
Matthias Koefferlein c7de542070 Some more refactoring of DEF layer mapping 2020-04-19 20:14:12 +02:00
Matthias Koefferlein 71906a5681 WIP: some further refactoring of the layer mapping scheme. 2020-04-19 19:12:03 +02:00
Matthias Koefferlein 040af426dc WIP: refactoring of map file reading. 2020-04-19 16:54:41 +02:00
Matthias Koefferlein e51f15b116 New layer flavors: special nets, LEF pins. 2020-04-19 14:38:14 +02:00
Matthias Koefferlein 9825245e0c Implemented LEF MACRO FOREIGN 2020-04-19 12:16:55 +02:00
Matthias Koefferlein d93ef3ff97 Timing reports for stream writers too, reporting file names for reader and writer timing. 2020-04-19 10:39:27 +02:00
Matthias Koefferlein 73521bc0dc Bugfix: 'Delete Layer' was mapped incorrectly to 'Edit Layer Specification' 2020-04-18 22:59:06 +02:00
Matthias Koefferlein 0066381b40 Provide a LayoutView constructor even without Qt bindings enabled 2020-04-18 22:56:34 +02:00
Matthias Koefferlein 9a7f0a9c2a Fixed a LEF/DEF reader bug (was '+ RECT' or '+ POLYGON' in SPECIALNETS) 2020-04-18 18:48:25 +02:00
Matthias Koefferlein 70d8334f8c Merge branch 'lefdef-enhancments' of https://github.com/KLayout/klayout into lefdef-enhancments 2020-04-18 18:00:54 +02:00
Matthias Koefferlein 54cf57c772 LEF/DEF enhancements (via cellname suffix configurable, group separation disabled by default)
Two new reader options:
1.) via cell name prefix (default is "VIA_"). This name is put in front of the via name to form the cell cell name
2.) group separation disabled by default. Groups are not put into individual parent cells by default.
2020-04-18 17:58:50 +02:00
Matthias Koefferlein 921af52643 DEF reader bugfix: wasn't reading SPECIALNETS + ROUTED + RECT 2020-04-14 23:15:08 +02:00
Matthias Koefferlein 61714090e3 Maybe fixed performance issue: usually it's not a good idea to iterate the layout's hierarchy while deleting something from it. 2020-04-14 22:48:18 +02:00
Matthias Koefferlein 9c62bb015f Include BLOCKAGE in map file LEF/DEF, becoming case insensitive for purpose 2020-04-05 23:56:43 +02:00
Matthias Koefferlein 3ada29d606 Some bugfixes for LEF/DEF reader for special nets (extension handling) 2020-04-05 23:49:19 +02:00
Matthias Koefferlein df7c530013 Bugfix for the net reader of DEF - wasn't properly reading diagonal parts. 2020-04-05 22:56:04 +02:00
Matthias Koefferlein cd801206bc Some refactoring - DEF scanner more modular (5) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 4757ad5044 Some refactoring - DEF scanner more modular (4) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein dea3743d59 Some refactoring - DEF scanner more modular (3) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 9df6d29761 Some refactoring - DEF scanner more modular (2) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 99af144d98 Some refactoring - DEF scanner more modular 2020-04-05 21:49:36 +02:00
Matthias Koefferlein f11a3a0dd5 Bugfix: MINWIDTH ... WRONGDIRECTION wasn't considering DIRECTION VERTICAL
Added/updated some tests, some refactoring.
2020-04-05 21:49:36 +02:00
Matthias Koefferlein 4a24b727d5 Tried to implement MINWIDTH .. WRONGDIRECTION in LEF58_MINWIDTH property 2020-04-05 21:49:36 +02:00
Matthias Koefferlein bcaf28c94c Bugfix LEF/DEF reader: via needs to change the layer also if it's inside a DEF. Added more test cases. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 2c60338ae8 Added DO .. BY .. STEP to vias in SPECIALNETS in DEF reader, added one more private testcase 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 0ae97279d8 Added optional MASK specification to VIA's RECT and POLYGON elements 2020-04-05 21:49:36 +02:00
Matthias Koefferlein fd0b07f0cd MERGE: strmxor could not identify layers when one has a name and the other does not (but both have numbers) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 8796b65ddb DEF reader patched: after via continue with the new metal layer with the width given by the rule. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein ee3ee5bd8e Another update of the map file reader for LEF/DEF 2020-04-05 21:49:36 +02:00
Matthias Koefferlein dd63b727f8 Another update of the map file reader for LEF/DEF 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 67a1c0ba25 Updated implementation of mapping file reader for LEF/DEF. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein e15d99e4da LEF reader fix: determine routing layers for vias without VIARULE from involved layers 2020-04-05 21:49:36 +02:00
Matthias Koefferlein d328901799 DEF reader fix: TAPER has to disable NONDEFAULTRULE for the segment 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 44503facea Attempt to auto-import .map files for LEF/DEF reader. Probably needs adjustment. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein df11ff9b85 Merge branch 'master' of https://github.com/KLayout/klayout 2020-04-05 20:20:28 +02:00
Matthias Koefferlein 0abd5d5d96 Fixed some minor compiler warnings. 2020-04-05 18:30:08 +02:00
Matthias Koefferlein 27109312cf Avoid a runtime warning for missing QWidget binding without Qt bindings compiled in 2020-04-05 18:29:55 +02:00
Matthias Köfferlein c93db59e37
Fixed #524 (failed query leaves layout in invalid state) (#528) 2020-04-05 15:11:37 +02:00
Matthias Köfferlein 865076588b
Fixed issue #530 (events are mentioned as getters two times) (#531) 2020-04-05 15:11:18 +02:00
Matthias Köfferlein 2b3a53b285
Implemented #521 (enhanced API for ObjectInstPath) (#532) 2020-04-05 15:11:03 +02:00
Matthias Koefferlein d1f1cf3031 Fixed a refactoring damage: the application mode indicator did not follow programmatic changes. 2020-04-05 14:01:44 +02:00
Matthias Koefferlein 14b6d58a09 Bugfix: paste was always paste_interactive 2020-04-05 13:23:22 +02:00
Matthias Koefferlein cc6b23bffd MERGE: fixed a typo in the undo title. 2020-04-01 23:40:00 +02:00
Matthias Koefferlein c640347570 MERGE: added Spice reader testcase for resistors with model names. 2020-04-01 23:19:21 +02:00
Matthias Koefferlein 8c91dd520d MERGE: Enhanced DRC and LVS documentation somewhat 2020-04-01 22:45:50 +02:00
Matthias Koefferlein c021d60d41 Updated unit test 2020-03-29 09:23:13 +02:00
Matthias Koefferlein 86a3150aba Fixed .pro files 2020-03-29 09:03:02 +02:00
Matthias Koefferlein 115f2edfd6 Removed unused entry from .pro file - made some build crash. 2020-03-28 23:10:02 +01:00
Matthias Koefferlein 99d3610a6a Implemented #527 (wildcard layer mapping targets)
commit d77702cd86066f3a97d740a95923fa598c2ff07b
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Sat Mar 28 21:28:39 2020 +0100

    Wildcard expansion feature on layer mapping

    Finished feature, added doc and test.

    The solution is to use placeholder indexes for the
    layer mapping which are substituted by the real
    layers when they are encountered.

commit af60b5f18acfe3c5e2f1d4e6bc6ee752a246dc0d
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Sat Mar 28 19:11:32 2020 +0100

    Preparations for new feature: introduce relative and wildcard target layer specs
2020-03-28 22:49:57 +01:00
Matthias Koefferlein 53f69ea90d Fixed a segfault in the unit tests (related to future branch) 2020-03-28 22:49:06 +01:00
Matthias Koefferlein 666cdeadc5 MERGE: documentation enhancements for LVS/DRC 2020-03-28 12:29:53 +01:00
Matthias Koefferlein a47932a79e Added one more testcase for join_symmetric_nets 2020-03-28 09:49:41 +01:00
Matthias Koefferlein 9afcec25bc Fixed #526 - Make scripe debugging more reliable
Problem: the debugger was printing an object's value as string.
The effect is that for big objects "to_s" will deliver huge strings
(e.g. polygons, netlists ...). "inspect" is better (already used
for Python), but it's aliased to "to_s" in Python and Ruby.
Huge strings will stall the debugger.

The solution is to stop this aliasing (Ruby 2.x doesn't do it
itself anymore) and use "inspect" consistently for Python and
Ruby.

Details can still be printed in the console.
2020-03-26 22:50:12 +01:00
Matthias Koefferlein b6ba51e563 Provide timing information for Spice reader/writer 2020-03-26 17:33:18 +01:00
Matthias Koefferlein 04aa005247 Fixed #525 - report true source line in DRC and LVS verbose mode 2020-03-26 17:20:15 +01:00
Matthias Koefferlein 8afd907abb Fixed builds 2020-03-15 23:27:24 +01:00
Matthias Koefferlein c10ccccdf7 Merge branch 'app-refactoring' into doc-args 2020-03-15 21:32:39 +01:00
Matthias Koefferlein 8275e47334 More @args removed. 2020-03-14 22:44:43 +01:00
Matthias Koefferlein daba9d78be More @args removed. 2020-03-14 22:26:21 +01:00
Matthias Koefferlein 53c81cc572 Got rid of most of the @args 2020-03-14 21:50:47 +01:00
Matthias Koefferlein c6b48acc76 Some small enhancements
LVS: max_branch_complexity was wrong and missing from doc.

Updated test cases so MSVC 2017 builds should pass.

Windows build.bat updated so debug builds can be made.
2020-03-04 21:48:00 +01:00
Matthias Köfferlein ef4c9313ab Fixed a severe bug in join_symmetric_nets 2020-03-03 22:24:03 +01:00
Matthias Köfferlein 7a60f5957b Enable Qt-less build of unit tests on Windows in debug mode and without iterator assertions 2020-03-03 22:19:31 +01:00
Matthias Koefferlein 6721cb9c5b Merge branch 'issue-482-update' 2020-03-02 18:57:40 +01:00