Commit Graph

2903 Commits

Author SHA1 Message Date
Matthias Koefferlein 25b46def17 Disallow zero columns and rows count for AREFs 2021-04-07 23:22:16 +02:00
Matthias Koefferlein 90b131a691 Fixed a warning about open transaction on snap/swap points in ruler properties - undo text is somewhat weak now :( 2021-04-07 23:15:23 +02:00
Matthias Koefferlein 217f957d60 Some more safety against accessing deleted user objects (stored point in temporary UserObject or DUserObject gets destroyed on destruction of the holder) - using C++ move semantics (overdue) 2021-04-07 22:16:52 +02:00
Matthias Koefferlein d7c79a3d32 Reversed the interpretation of 'good' row/column combination until further clarification. 2021-04-06 22:49:59 +02:00
Matthias Koefferlein 9b7879b2a9 Faster hierarchical edges. 2021-04-06 21:05:02 +02:00
Matthias Koefferlein 9b86ea96d2 Fixed another assertion 2021-04-05 00:30:33 +02:00
Matthias Koefferlein 2c245af13a Fixed an assertion happining with Qt binding enabled 2021-04-05 00:27:14 +02:00
Matthias Koefferlein 7b9a1ffdee Made 'rename' blend mode default for buddy scripts 2021-04-04 21:34:43 +02:00
Matthias Koefferlein ac9aa475ab Properly handle external classes such as PCellDeclarationHelper in gsi::initialize_expressions 2021-04-04 18:41:35 +02:00
Matthias Koefferlein 85c3128c13 Adding --blend-mode to buddy scripts for mitigating the risk of joining files 2021-04-03 18:26:53 +02:00
Matthias Koefferlein f9762009c6 Bugfix: don't forget to initialize child classes in gsi expressions. 2021-04-03 18:24:57 +02:00
Matthias Köfferlein 85448966d8
Merge pull request #763 from KLayout/25d-enhancements
25d enhancements
2021-04-03 15:33:57 +02:00
Matthias Köfferlein 09793e8502
Merge pull request #762 from KLayout/issue-757
Issue 757
2021-04-03 15:33:47 +02:00
Matthias Koefferlein 2862cb4ffd Marked 2.5d as experimental, wording of an error message 2021-04-03 01:39:19 +02:00
Matthias Koefferlein b4f2bfdd5c Enabled Qt4 builds hopefully 2021-04-03 01:24:24 +02:00
Matthias Koefferlein 52754ed418 2.5d view and help integration 2021-04-03 00:37:23 +02:00
Matthias Koefferlein 53f2c0e28f Doc for 2.5d view 2021-04-03 00:17:28 +02:00
Matthias Koefferlein 9c1ef3c6dd Enhanced 2.5d navigation 2021-04-02 22:58:39 +02:00
Matthias Koefferlein 173ba147b1 Rework for D25 tech management - compilation happens dynamically now. 2021-04-02 18:48:00 +02:00
Matthias Koefferlein 773fcb6b67 z Stack description language enhanced. 2021-04-02 17:27:38 +02:00
Matthias Koefferlein 9acf4cd99e Implemented solution for #757 2021-04-02 00:22:30 +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 25b978f39f Doc clarification. 2021-04-01 18:41:37 +02:00
Matthias Koefferlein e66c8046db Limited lvs stack depth to 500 to prevent stack overflow. 2021-03-31 23:04:35 +02:00
Matthias Koefferlein cf51130339 Fixed some build issues that appeared during merge 2021-03-30 23:20:39 +02:00
Matthias Koefferlein 94556c1448 Merge branch 'master' into lvs-enhancements 2021-03-30 18:56:27 +02:00
Matthias Koefferlein 729975bae8 Fixed a doc XML integrity issue 2021-03-30 18:23:42 +02:00
Matthias Köfferlein 8cb73c2daa
Merge pull request #759 from KLayout/fill-enhancements
Fill enhancements
2021-03-30 12:36:48 +02:00
Matthias Köfferlein 9f26cffa23
Fixed issue #750 (#752) 2021-03-30 12:36:29 +02:00
Matthias Köfferlein 93ba3c14ec
Merge pull request #751 from KLayout/drc-enhancements
Global transformations and some bug fixes
2021-03-30 12:35:47 +02:00
Matthias Koefferlein 6971048d28 Changed default for fill pitch (equal to cell's bbox w/h). Updated doc. 2021-03-29 22:57:20 +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 127b520899 Updated doc. 2021-03-29 21:00:50 +02:00
Matthias Koefferlein b725f5fb0f fill_with_left, implementation + tests 2021-03-29 20:58:16 +02:00
Matthias Koefferlein f0386b616a Regenerated documentation 2021-03-29 17:27:16 +02:00
Matthias Koefferlein 311d0e3ca7 Fixed some merge issues. 2021-03-29 15:18:19 +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 1608fa7d0e Bug fixes and tests for fill DRC feature. 2021-03-29 15:00:31 +02:00
Matthias Koefferlein d862970d47 Added doc for DRC fill. 2021-03-29 13:56:34 +02:00
Matthias Koefferlein 76982a3206 DRC support for fill, experimental 2021-03-29 13:28:43 +02:00
Matthias Koefferlein cefc2eeddb Bug fixes. 2021-03-29 01:05:53 +02:00
Matthias Koefferlein abd96c8400 Deep mode: avoid flattening by FlatRegion/FlatEdges poisoning 2021-03-28 23:19:14 +02:00
Matthias Koefferlein 6df333a05e Avoid turning DeepRegions into flat ones as this spoils hierarchical processing. 2021-03-28 22:33:24 +02:00
Matthias Koefferlein de4454a0d6 Updated documentation 2021-03-27 23:56:53 +01:00
Matthias Koefferlein 6ceac2c6ba Updated a test. 2021-03-27 23:14:33 +01:00
Matthias Koefferlein 9f295523e4 explicit net joining - preparations 2021-03-27 21:56:53 +01:00
Matthias Koefferlein e0eac2147b Refining the display enhancements for terminals in netlist browser. 2021-03-27 00:44:48 +01:00
Matthias Koefferlein 3ce13f6769 Attempt to get a better picture of mismatching device pins at the presence of device pin swapping 2021-03-26 17:46:10 +01:00
Matthias Koefferlein a0cab9832f Fixed probe feature of LVS dialog for flat extraction. 2021-03-26 00:40:18 +01:00
Matthias Koefferlein cb2d76def6 New test case for LVS 2021-03-26 00:02:01 +01:00
Matthias Koefferlein 8d5ef02c3d Using unlimited complexity and depth for LVS compare 2021-03-25 23:50:45 +01:00
Matthias Koefferlein 4252085663 Fixed an internal error in netlist compare
Problem was that during ambiguity resolution a choice may
be invalidated by further choices. This is taken care by
locking nets against re-mapping.
2021-03-25 01:56:23 +01:00
Matthias Koefferlein c48be51cb6 Made SPICE netlist elements case insensitive in LVS scripts 2021-03-24 22:11:15 +01:00
Matthias Koefferlein 3777d311af typos fixed, doc update 2021-03-24 00:07:16 +01:00
Matthias Koefferlein b8be13e2e6 Fixed a potential crash in the netlist browser 2021-03-23 22:55:30 +01:00
Matthias Koefferlein fa1719acc3 Avoid a deadlock in the logger system 2021-03-23 22:45:45 +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 536681f5e1 Small, but important bugfix: sometimes, the layout view got stuck in 'disable edits' mode which could only be left by closing the view. 2021-03-16 23:43:04 +01:00
Matthias Koefferlein 9fbc39a827 Fixed a segfault happening when closing a layout tab. 2021-03-16 23:35:24 +01:00
Matthias Koefferlein 3bd63e4b80 Qt4 compatibility 2021-03-15 18:23:34 +01:00
Matthias Koefferlein d9686c1f77 Added one more LVS test 2021-03-15 17:18:30 +01:00
Matthias Koefferlein 1495d9521c Tests updated. 2021-03-15 16:51:56 +01:00
Matthias Koefferlein b8677f650b Supply event processing from log events also if an abstract progress is used 2021-03-15 16:04:58 +01:00
Matthias Koefferlein 738e830c8d Important bug fix for LVS
It's very important for LVS to use the same compare delegates
for layout and schematic. Otherwise the sorting of the devices
won't be identical and fake mismatches will occure.
This is achieved in a bit hacky way to imposing the layout
compare delegates to the schematic netlist.
2021-03-15 15:40:02 +01:00
Matthias Koefferlein af4395e9a8 doc fixes. 2021-03-15 10:42:46 +01:00
Matthias Koefferlein a8f3df7aa5 Refactoring of the interpreter scheme with the goal to provide a functional cleanup. This is required if someone stops inside the debugger. Without a proper cleanup the application becomes dysfunctional. 2021-03-15 10:17:25 +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 Koefferlein 3845658319 Typo fixed. 2021-03-14 20:44:01 +01:00
Matthias Koefferlein 98c2db34e9 Another bugfix to cover the case of non-sequential pin IDs 2021-03-14 19:51:15 +01:00
Matthias Koefferlein 19741c9fb2 Bufix: LVS browser crashed on 'unload' and 'unload all' 2021-03-14 19:30:55 +01:00
Matthias Koefferlein 7bd9e8dc1b Bugfix: with BJT3 and BJT4 included, the extracted .lvsdb file could not be read back. 2021-03-14 18:40:16 +01:00
Matthias Koefferlein 4549da561b Better information in LVS report - at least for skipped circuits for now. 2021-03-14 18:21:32 +01:00
Matthias Koefferlein bb9ae20c32 Rework of the progress reporting scheme: LVS got a log now, the layout is horizontal for multiple progress objects, less flicker and more quiet display, cancel function should work more reliably now. 2021-03-14 16:25:56 +01:00
Matthias Köfferlein 34109c6096
Merge pull request #741 from KLayout/new-layout-with-layer
Implemented new layout dialog with intial layers
2021-03-14 12:28:11 +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 518145fd3e Fixed a crash in the netlist browser (pending highlights while netlist has been changed) 2021-03-14 10:01:51 +01:00
Matthias Koefferlein 67a1b3a99f WIP: fill + DRC, experimental. 2021-03-14 02:40:12 +01:00
Matthias Koefferlein c8f4c83c53 Fill tool enhancement (GSI, db): glue box for fill cell array compatibility in tiling processor. 2021-03-13 18:01:43 +01:00
Matthias Koefferlein c43cff0e43 UI cleanup. 2021-03-13 18:01:19 +01:00
Matthias Koefferlein 1b4eb1d401 Reworked fill_cell GSI integration (using defaults rather than variants, doc fixes) 2021-03-13 10:36:01 +01:00
Matthias Koefferlein f03f745ed8 Using a 'final' progress in the tiling processor to stop child progress objects from showing. 2021-03-13 10:35:26 +01:00
Matthias Koefferlein 1aa595560e Some refactoring 2021-03-13 10:34:48 +01:00
Matthias Koefferlein 3378a9a7ce 'final' progress objects: will prevent child progress objects from showing too. 2021-03-13 10:12:53 +01:00
Matthias Koefferlein 7c4c928632 Sync mode for tiling progress enhanced - with progress now. 2021-03-13 10:12:01 +01:00
Matthias Koefferlein f323c830d7 Enhancements for sync mode in threaded workers: allows providing progress too. 2021-03-13 10:11:27 +01:00
Matthias Koefferlein 9e474e4cc2 Provide more information for GSI error messages. 2021-03-13 00:15:05 +01:00
Matthias Koefferlein fd01328659 Fixed Expressions error message for multi-line expressions. 2021-03-12 23:18:23 +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 7d53f6d454 WIP. 2021-03-10 00:43:08 +01:00
Matthias Koefferlein d4f641bff8 WIP. 2021-03-09 23:45:53 +01:00
Matthias Koefferlein 7bd4a692d8 WIP 2021-03-08 20:45:52 +01:00
Matthias Koefferlein 9e3183250f Fixed some flaws in the layer list
- sometimes, layers which were supposed to be hidden were still shown
  (e.g. after paste, "add other layer views" etc.)
- sometimes, layers were only partially hightlighted due to invalid
  persistent model indexes.
2021-03-07 22:20:28 +01:00
Matthias Koefferlein a7c263bc98 Fixed an uninitialized member. 2021-03-07 22:20:18 +01:00
Matthias Koefferlein 175fde2562 Enabled shortcuts for actions in macro editor widget
For example, Ctrl+S was captured by the editor rather than forwarded to the
action.
2021-03-07 22:19:23 +01:00
Matthias Koefferlein d76fc02244 Fixed a memory corruption issue in db::rasterize 2021-03-07 11:26:54 +01:00
Matthias Koefferlein 6e6ce998aa Refactoring, preparing script generation. 2021-03-06 19:38:19 +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 07966baf71 First draft of fill dialog with enhancements 2021-03-05 18:20:45 +01:00
Matthias Koefferlein 0d04937c91 Added tests for fill tool 2021-03-05 16:27:57 +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 beefaf40f5 Added test to discover that the issue is already fixed. 2021-03-04 23:21:50 +01:00
Matthias Koefferlein 3a9a7e81fb Implemented new layout dialog with intial layers
Plus small enhancements: the first layer will be selected
initially, so you can starting drawing immediately.
2021-03-04 23:11:54 +01:00
Matthias Koefferlein 0ca3484e98 Fixed #739 (display bug) 2021-03-04 22:00:46 +01:00
Matthias Koefferlein 9cb7c2cc2a Fixed a build issue without HAVE_QT_XML 2021-03-03 00:15:12 +01:00
Matthias Koefferlein 687059525c Fine-grained Qt module selection for Qt binding and disabling of view_25d plugin without OpenGL 2021-03-02 23:28:35 +01:00
Matthias Koefferlein 44baeea362 Disable view25d plugin if OpenGL is not enabled. 2021-03-02 22:01:08 +01:00
Matthias Koefferlein a904aabcce Fixed DRC logging. 2021-03-01 22:35:04 +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 570c79e446 gsi binding, DRC binding of split_... region functions. 2021-03-01 00:47:00 +01:00
Matthias Koefferlein 98eebe25ad gsi binding of split interaction functions. 2021-03-01 00:25:50 +01:00
Matthias Koefferlein c5788f3621 Fix: clone() is good :) 2021-03-01 00:09:13 +01:00
Matthias Koefferlein 6f8e981504 Merge branch 'master' into drc-enhancements 2021-02-28 23:31:14 +01:00
Matthias Koefferlein 2a9564856b Fixed Qt-binding less builds 2021-02-28 23:31:06 +01:00
Matthias Koefferlein 8c6b231ae6 First steps towards differential interaction functions 2021-02-28 23:22:44 +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 77356cd877 More unit test stability 2021-02-27 21:31:32 +01:00
Matthias Koefferlein be5714607f Added a build dependency for safer building 2021-02-27 19:08:43 +01:00
Matthias Koefferlein 33ae3b0239 Added a build system option to enable/disable uitools support as some distributions do not support that 2021-02-27 18:03:37 +01:00
Matthias Koefferlein 66199958a5 Stupid typo fixed 2021-02-27 00:02:09 +01:00
Matthias Koefferlein 9350b33bcb Squashed commit of the following:
commit 2a8a2d228d
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 23:54:08 2021 +0100

    One more fix.

commit 8c4d76505c
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 23:03:07 2021 +0100

    More patches for uitools-less build for CentOS 8

commit 2ac28292b8
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 22:52:27 2021 +0100

    First steps for fixing build on CentOS 8 without uitools
2021-02-26 23:59:23 +01:00
Matthias Koefferlein f993c0397d A linker issue fixed on Windows. 2021-02-25 23:08:42 +01:00
Matthias Koefferlein 68e1284c93 Fixed #728 2021-02-25 22:03:41 +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 8b2ecf41df
Fixed issue by providing a compatibility bridge between tl::Stream (abstract paths) and tl::URI (#734) 2021-02-25 21:28:48 +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 Köfferlein 9d5636a89d
Merge pull request #729 from KLayout/search-improvements
Search improvements
2021-02-25 21:27:25 +01:00
Matthias Köfferlein c28451ed88
Merge pull request #727 from KLayout/drc-enhancements
Drc enhancements
2021-02-25 21:27:06 +01:00
Matthias Koefferlein f700b3e056 Linker issue solved 2021-02-21 23:18:57 +01:00
Matthias Koefferlein 835133854c Qt4 compatibility, some enhancement of macro IDE completer 2021-02-21 22:42:52 +01:00
Matthias Koefferlein 9074c918bb Fixed a linker name clash. 2021-02-21 22:11:33 +01:00
Matthias Koefferlein fea33b284e Qt4 compatibility. 2021-02-21 21:55:36 +01:00
Matthias Koefferlein 3db1db831f Test update after update of LEF/DEF reader. 2021-02-21 21:23:45 +01:00
Matthias Koefferlein fe2d4eb570 Bugfix: LEF/DEF FILLS options were not active in buddy scripts. 2021-02-21 21:07:13 +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 96e3570c6d LEF/DEF: preparations for FILLS support, UI rearrangement. 2021-02-21 17:28:58 +01:00
Matthias Koefferlein 2168a72b9d Technology changed event for CellView 2021-02-21 09:12:13 +01:00
Matthias Koefferlein b31a64b367 Formulas for 'goto position' dialog. 2021-02-21 08:45:54 +01:00
Matthias Koefferlein b1fc6008d9 WIP: better progress when reading OASIS irregular repetitions. 2021-02-21 08:36:45 +01:00
Matthias Koefferlein 0f4a10441d RecursiveInstanceIterator: Doc fixes, tests, instance array iteration. 2021-02-20 22:17:43 +01:00
Matthias Koefferlein a1bae225e3 Recursive instance iterator, tests 2021-02-20 17:50:32 +01:00
Matthias Koefferlein ca11f0799a Recursive instance iterator, selection of target cells. 2021-02-20 01:09:17 +01:00
Matthias Koefferlein 0f47ff68a5 Recursive instance iterator, debugging. 2021-02-20 01:03:05 +01:00