Commit Graph

2193 Commits

Author SHA1 Message Date
Matthias Koefferlein 1887fd715a First new implementation of "tap" and some enhancements/bugfixes/refactoring
- Layer icons can be obtained now
- Icon dimension is arbitrary
- Scaling icons for layer list
- More robust event handling in case of pop-up menus
  (selector)
- "Tap" will noe pop up a menu with all layers below the cursor.
  When selected, the current layer is switched.
2020-08-03 10:34:16 +02:00
Matthias Koefferlein f810eae7a0 New feature: repeat selection
1. "Select Next Item" will repeat the selection on the last single-click location
   or select the current transient selected (essentially like a single click)
  This feature is by default bound to "Space"
2. "Select Next Item too" will do the same, but add to the selection
  This feature is by default bound to "Shift+Space"
2020-08-02 17:41:22 +02:00
Matthias Koefferlein 374c8d2c4d Some refactoring: pulled out the layout functionality from the layout view and put into a plugin. 2020-08-02 17:34:07 +02:00
Matthias Koefferlein 79d3676257 And one more ... 2020-07-31 07:55:16 +02:00
Matthias Koefferlein cdcde2469a And another compiler specific fix ... 2020-07-31 07:52:12 +02:00
Matthias Koefferlein a7aa99e5e2 Yet another compiler specific fix 2020-07-31 07:51:23 +02:00
Matthias Koefferlein c81e462b60 Another compiler specific fix 2020-07-31 07:48:34 +02:00
Matthias Koefferlein f2b678cb7b Fixed master builds on Qt 4 2020-07-31 00:15:38 +02:00
Matthias Koefferlein 7d2715401f Fixed compile issue with some gcc's 2020-07-30 23:59:08 +02:00
Matthias Koefferlein 4d4c7aee78 Fixed a unit test. 2020-07-17 23:59:37 +02:00
Matthias Koefferlein 3dff7549f2 Implemented #588: Netlist browser enhancements
1. The netlist browser now got events for
   selection and probe events
2. The netlist browser was overhauled to support
   "infinite depth" views
3. Ambiguities are not shown as errors now
4. New classes for support netlist object
   selections and the netlist browser.

Multiple selections for netlist browser.
2020-07-16 22:53:59 +02:00
Matthias Koefferlein c8a4d25b51 WIP: enabling selection_changed event 2020-07-15 00:35:38 +02:00
Matthias Koefferlein f8c2afaad8 Using NetlistObjectPath for probe_event. 2020-07-15 00:10:42 +02:00
Matthias Koefferlein be5f03b1f4 Netlist browser: Paths for probing, cell contexts for highlighting, probe_net with initial circuit (not just top one) 2020-07-14 23:06:26 +02:00
Matthias Koefferlein a10d56e6b6 WIP: netlist browser - net object paths, single + pairs, tests 2020-07-13 22:11:10 +02:00
Matthias Koefferlein 2762daf14f WIP: fixed tests, fixed an assertion with null nets 2020-07-12 22:32:01 +02:00
Matthias Koefferlein f54c03f4ca WIP: fixed some segfaults. 2020-07-12 21:33:02 +02:00
Matthias Koefferlein dcdf9a8ec1 WIP: paths for tree model too 2020-07-12 21:06:03 +02:00
Matthias Koefferlein 27d1f2fac1 WIP: same sorting of subcircuit connections and circuit pins. 2020-07-12 10:32:46 +02:00
Matthias Koefferlein 8bb7342147 WIP: less nodes. 2020-07-12 10:15:21 +02:00
Matthias Koefferlein 98f808d585 WIP: connections of subcircuits are separate node now, pins and terminals show up as nets. 2020-07-12 09:28:42 +02:00
Matthias Koefferlein f00f5c76b8 WIP: netlist browser tree, highlights etc. 2020-07-12 01:22:22 +02:00
Matthias Koefferlein 62ed7b9def Fixed tests. 2020-07-11 19:07:28 +02:00
Matthias Koefferlein f9fa3d3aa3 WIP: some safety 2020-07-11 14:41:42 +02:00
Matthias Koefferlein 74b87d536e Fixed unit tests partially. 2020-07-11 14:31:56 +02:00
Matthias Koefferlein fde90c66e1 Better handling of pin swapping in netlist browser 2020-07-11 13:21:23 +02:00
Matthias Koefferlein aaa8352a40 Enhancements for netlist tree view - deep hierarchy, no 'failing' terminals on ambiguous device terminals 2020-07-11 00:54:26 +02:00
Matthias Koefferlein 6021a66c40 New node hierarchy for netlist browser. 2020-07-09 00:55:38 +02:00
Matthias Koefferlein 6aff74c844 Merge branch 'master' into issue-588 2020-07-08 23:29:27 +02:00
Matthias Köfferlein 25e3a1a4a7
Merge pull request #608 from KLayout/more-checked-netlist-operations
Checked add/remove methods for Netlist objects - to avoid script mist…
2020-07-07 12:52:15 -07:00
Matthias Köfferlein c1e627b176
Merge pull request #606 from KLayout/debug-basic_rba-crash
Fix candidate for MacOS rba:basic crash
2020-07-07 12:52:00 -07:00
Matthias Koefferlein 0dbebdca91 Fixed test. 2020-07-07 21:39:24 +02:00
Matthias Koefferlein ad00b4a9bf Merge remote-tracking branch 'remotes/origin/master' into add-testcase 2020-07-07 21:22:28 +02:00
Matthias Koefferlein 848fd3e1bb Added testcase 2020-07-07 21:21:33 +02:00
Matthias Köfferlein de9e180f3c
Fixed #609 (internal error on netlist extract) (#610)
Reason was: when caching instance-to-instance interactions,
the array descriptions need to be normalized too.
2020-07-07 18:24:06 +02:00
Matthias Koefferlein 8adeaaf938 Checked add/remove methods for Netlist objects - to avoid script mistakes. 2020-07-05 19:02:43 +02:00
Matthias Köfferlein 5dce0d8384
Implemented #603 (Coordinates for adjust origin) (#604) 2020-07-05 18:42:08 +02:00
Matthias Köfferlein 54cca8912b
Implemented #586 (issues with duplicate cell names) (#605)
As discussed in the ticket, the implementation will
check for unique cell names upon *writing* of a layout
file.
2020-07-05 18:41:44 +02:00
Matthias Koefferlein beec19951d Candidate for fix. 2020-07-05 14:09:23 +02:00
Matthias Köfferlein 6365ddfe82
Fixed #591 (two topics for macro editor) (#595)
* Fixed #591 (crash on Macro/Add Location)

The main reason was that the QSortFilterProxyModel is very sensitive
to the order of signals it receives from the proxy model.

In this case, dataChanged() must not be send between layoutAboutToBeChanged()
and layoutChanged(). This happened implicitly during load() of a macro while
scanning the freshly added folder.

* Fixed another part of #591: ability to disable template selection pop-up in macro editor. Tied to the tip window now - if this is dismissed, no template selection dialog will be shown.
2020-07-03 23:41:52 +02:00
Matthias Köfferlein 4db20b3b48
Fixed #596 (crash on library _destroy) (#597) 2020-07-03 23:41:20 +02:00
Matthias Köfferlein dcd0476efc
Implemented issue #598 (Cell#transform) (#600) 2020-07-03 23:41:09 +02:00
Matthias Köfferlein 4bd2672134
Fixed #592 (layer mapping issue) (#601) 2020-07-03 23:40:55 +02:00
Matthias Köfferlein b413cb9d74
Netlist compare: Ambiguity resolution through name matching now default (can be turned off) (#594)
* WIP: some refactoring

* WIP: some refactoring

* Netlist compare: introducing ambiguity resolution by net names

By default now net names are used for resolving ambiguities.
If net names match, they will be used to associate nets if the
choice is ambiguous. This is usually much faster and more reliable
than trying to resolve ambiguities through topology analysis.

This feature can be disabled using "consider_net_names(false)" in
the LVS script.

* Some refactoring, Jenkinsfile modified for better test coverage
2020-06-29 20:47:57 +02:00
Matthias Köfferlein e744eb32d1
Merge pull request #580 from KLayout/drawing-performance2
Drawing performance2
2020-06-28 16:14:48 +02:00
Matthias Koefferlein 43ceeecf6e Golden test data for Ubuntu 20 and Windows, pipe output stream for Windows. 2020-06-27 09:50:55 +02:00
Matthias Koefferlein c517aa4ff7 Cherry-picked MacOS fixes into master 2020-06-27 01:47:35 +02:00
Matthias Koefferlein 69fe4a5edf Provide a new option -o for unit test runner which sends the log to a file. This way we don't capture qWarning in the XML JUnit logs. 2020-06-27 00:25:56 +02:00
Matthias Koefferlein b91e2324d0 Netlist compare enhancement
This enhancement targets towards a better resolution
of ambiguities. The enhancement is to utilize knowledge
about device and subcircuit equivalences to avoid stale
branches of the ambiguity resolution tree.

So far following these branches could lead to a
contradictions which render an ambiguitiy resolution
choice useless.

One effect of this change is enhanced reproducibility
of the matching log because some pointers are not
involved anymore.
2020-06-26 17:01:03 +02:00
Matthias Koefferlein 613c95e9a3 WIP: enhanced netlist model 2020-06-18 23:50:50 +02:00
Matthias Koefferlein 649b234644 WIP: enhanced netlist model 2020-06-18 23:46:50 +02:00
Matthias Koefferlein f4495274ab WIP: refactoring for more comfortable net browser 2020-06-17 23:20:43 +02:00
Matthias Koefferlein 03bf0a557e WIP: refactoring for more comfortable net browser 2020-06-17 23:14:20 +02:00
Matthias Koefferlein fd5c659ea6 WIP: refactoring for more comfortable net browser 2020-06-16 23:13:52 +02:00
Matthias Koefferlein e37e3f6793 Fixed doc flaw: child classes were not properly cross-referenced as return values or arguments. Need qualified names. 2020-06-15 01:37:03 +02:00
Matthias Koefferlein 23e9932c87 Consistent naming of events: on_... 2020-06-15 01:29:05 +02:00
Matthias Koefferlein fc75bf72f8 Avoid a segfault when the owner of a callable went out of scope and got deleted (pya): null weak pointer happens 2020-06-15 01:28:49 +02:00
Matthias Koefferlein 3f1c3cf209 Extended NetlistCrossReference class so we can easily obtain the other_... objects. 2020-06-15 01:27:33 +02:00
Matthias Koefferlein 84a9853435 Maybe fixed a potential segfault (0-1 as row index) 2020-06-15 01:26:49 +02:00
Matthias Koefferlein 61c9c12414 WIP+Bugfix
1. Bugfix: avoid an internal error because in set_db highlight()
   was called before setup_trees(). Error was:
   Internal error: ../../../src/laybasic/laybasic/layNetlistBrowserPage.cc:387 model != 0 was not true in LayoutView::show_l2ndb

2. Provide GSI binding for lay::NetlistBrowserDialog
2020-06-14 23:31:44 +02:00
Matthias Koefferlein 880b9904cf WIP Netlist probing will deliver an instantiation path now. 2020-06-14 22:04:16 +02:00
Matthias Koefferlein 0a10635363 Fixed memory statistics for array (wasn't taking the right statistics for irregular arrays) 2020-06-13 19:55:33 +02:00
Matthias Koefferlein b72f819d57 Fixed a potential segfault. 2020-06-06 10:25:20 +02:00
Matthias Köfferlein 95111f8aa8
Implemented #522 (skip // lines in RVE reader) (#583) 2020-06-05 12:11:02 +02:00
Matthias Köfferlein 852f5c438b
Implemented #560 (multiple technologies on libraries) (#576)
* First implementation.

* PORT BACK: fixed a few flaws (fixed-width side panel ..)

1. On "save as" the filename displayed in the cell view selection box
   was not updated
2. The width of the library and cellview panel could not be reduced
   below the width of the combo boxes in the headers. So the
   panels might have become pretty wide without being able to reduce
   them.

* Implemented #560 (multiple techs on libraries)
2020-06-05 10:58:53 +02:00
Matthias Köfferlein 8db1e3577f
Fixed issue #578 (CIF writer issue with arbitrary angle) (#581)
* Fixed isse #578 (CIF writer issue with arbitrary angle)

* Added missing files.
2020-06-05 10:57:14 +02:00
Matthias Köfferlein 2d0a9418f9
Implemented #579 (perimeter_only mode for antenna check) (#582)
* WIP: added basic feature and tests.

* WIP: provide tests are GSI binding of new antenna check

* Fixed issue #579 (perimeter_only mode for antenna check)

* Updated DRC doc for 'perimeter_only'
2020-06-05 10:55:07 +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 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