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
Matthias Koefferlein
bde58da2a1
Fixed key binding unit test for multiple passes.
2021-02-01 08:30:24 +01:00
Matthias Köfferlein
4134829304
Issue 718 ( #719 )
...
* WIP: first part of fix - generation of hole cutlines
First problem was that hole cutlines got extended
over the whole length and sometimes lead to coincident
edges which are difficult to resolve for the polygon
cutter.
* Refined solution, fixed #718
- disabled elaborate hole insertion procedure for now as the
performance impact has to be assessed yet and the new scheme
will break many tests
- stricter rejection of ambiguous configurations in the polygon cutter
- fallback is boolean AND now since there is no need to re-invoke the
polygon cutter (we can't do so as we made it more strict).
Performance-wise we replace a merge by an AND step which may even be
faster the output is smaller and the polygon cutter does not need
to be re-invoked.
* Compatibility with other STLs
2021-01-31 19:21:15 +01:00
Matthias Köfferlein
10eee4d895
Fixed #709 . ( #714 )
2021-01-31 19:21:00 +01:00
Matthias Köfferlein
97ed4cf0f2
Merge pull request #712 from KLayout/gsi-fixes
...
Some enhancements to script API
2021-01-31 19:20:35 +01:00
Matthias Koefferlein
3ea78bf96f
Yet another test suite Python compatibility fix.
2021-01-31 18:16:46 +00:00
Matthias Koefferlein
f263f5c44c
Compatibility with older Ruby and Python versions in unit tests.
2021-01-31 17:14:21 +00:00
Matthias Koefferlein
cdb62cc111
Merge branch 'master' into gsi-fixes
2021-01-27 12:46:34 +01:00
Matthias Köfferlein
1ba4394c2a
Merge pull request #710 from KLayout/byte-arrays
...
Byte arrays
2021-01-27 12:42:48 +01:00
Matthias Köfferlein
bd41f7222d
Merge pull request #706 from KLayout/spline-as-api
...
Generalized spline interpolation of DXF reader
2021-01-26 23:39:51 +01:00
Matthias Koefferlein
c7113b8c72
Added methods to manipulate key bindings and menu visibility through scripts (MainWindow#set_key_bindings, MainWindow#get_key_bindings, MainWindow#set_menu_items_hidden ...)
2021-01-26 23:10:26 +01:00
Matthias Koefferlein
bd9afaf865
Fixed pymod tests.
2021-01-25 21:53:32 +01:00
Matthias Koefferlein
d31f87f053
Some issues with the byte array binding fixed, less ambiguitites with Qt bindings, tests added.
2021-01-24 23:44:40 +01:00
Matthias Koefferlein
5aac018503
Mapping QByteArray (and std::vector<char>) to Python 'bytes' now.
2021-01-24 17:36:40 +01:00
Matthias Koefferlein
ad904d3fa1
Updated testdata with new variant because of unordered set fluctuation.
2021-01-23 22:31:17 +01:00
Matthias Koefferlein
c8951c10cd
Generalized spline interpolation of DXF reader and provide a script binding (RBA::Utils).
2021-01-23 18:44:36 +01:00
Matthias Koefferlein
618e1134c4
More robustness against test variations on different platforms.
2021-01-19 22:23:02 +01:00
Matthias Koefferlein
63d19bdb4c
More robustness against test variations on different platforms.
2021-01-19 21:49:38 +01:00
Matthias Koefferlein
66ea75e643
Fixed unbounded ranges compatibility for Ruby < 2.7
2021-01-19 21:16:03 +01:00
Matthias Koefferlein
73485a5061
More robustness against differences on different platforms.
2021-01-19 20:36:25 +01:00
Matthias Koefferlein
11e9f89fc2
Introduced normalization into region/edges/edge pairs/texts tests to get rid of platform dependency because of unordered_set implementation details.
2021-01-19 08:03:42 +01:00
Matthias Koefferlein
9b275d85a6
More stable hash function (the previous one was too sparse for small coordinates). Test updates for this reason.
2021-01-18 20:26:03 +01:00
Matthias Koefferlein
e1312d7a0c
Merge branch 'master' of github.com:KLayout/klayout into complex_drc_ops
2021-01-17 22:45:40 +01:00
Matthias Koefferlein
081c445cd8
Merge branch 'master' into complex_drc_ops
2021-01-17 19:55:28 +01:00
Matthias Koefferlein
abcac4896b
Updated test data
2021-01-17 19:31:47 +01:00
Matthias Koefferlein
9cf0a9e659
Major enhancements for DRC feature (universal DRC)
...
Main issue: universal DRC scheme and rectangle filtering/opposite filtering/shielding.
The space function required some enhancements to accomodate symmetric interactions.
Now there are symmetric edge pairs. Space initially runs twofold (primary to foreign)
but produces symmetric edge pairs. These are filtered later unless converted before.
2021-01-17 19:26:22 +01:00
Matthias Koefferlein
fd90e66ee1
WIP (shielding, various bug fixes)
2021-01-17 14:38:44 +01:00
Matthias Koefferlein
785bc0b6e5
Build error fixed, test cases updated.
2021-01-16 10:09:07 +01:00
Matthias Koefferlein
4460c294b0
Some bug fixes, doc update, test updates.
2021-01-16 00:32:06 +01:00
Matthias Koefferlein
bbd511bc8b
Added some tests for 'switch', small bug fix.
2021-01-15 17:32:39 +01:00
Matthias Koefferlein
80996a77fb
New *_sum quantifiers, doc enhancements, bug fixing
2021-01-14 00:21:21 +01:00
Matthias Koefferlein
80d0229b7c
More intuitive DRC specification of 'projection_limits' with 'projecting' and a condition
2021-01-13 15:58:55 +01:00
Matthias Koefferlein
c5859cd957
Tests for new DRC features (square, new attiribute tests)
2021-01-13 13:35:37 +01:00
Matthias Koefferlein
8c8c9a6911
More tests.
2021-01-13 01:18:25 +01:00
Matthias Koefferlein
dce22fee37
New region filters (square, area ratio, relative height)
2021-01-13 01:08:42 +01:00
Matthias Koefferlein
ae29c75326
WIP: documentation, local merging of polygon for interact, covering ..
2021-01-12 01:08:12 +01:00
Matthias Koefferlein
f3f196cfb3
Doc update, implemented != for DRC operations.
2021-01-10 21:36:58 +01:00
Matthias Koefferlein
04e11eea31
Test enhancement.
2021-01-10 20:19:02 +01:00
Matthias Koefferlein
383f72eb09
Added missing files, tests for angle and length (universal DRC), some clarifications and bug fixes.
2021-01-10 20:18:06 +01:00
Matthias Koefferlein
158ea196ec
WIP: more tests, bug fixes, new feature: deep_reject_odd_polygons, odd_polygons check disabled in deep mode
2021-01-10 18:46:01 +01:00
Matthias Koefferlein
e21f14b79d
Added more tests, debugging.
2021-01-10 09:03:39 +01:00
Matthias Koefferlein
c24568b510
Added more tests, debugging.
2021-01-10 09:02:41 +01:00
Matthias Koefferlein
f57dd8e81a
WIP: more tests
2021-01-09 23:47:49 +01:00
Matthias Koefferlein
168b41c119
WIP: new tests for complex DRC ops.
2021-01-09 23:38:53 +01:00
Matthias Koefferlein
858c78729f
More tests for complex DRC
2021-01-09 23:23:50 +01:00
Matthias Koefferlein
cda5fdfe6f
Added missing files.
2021-01-09 23:10:51 +01:00
Matthias Koefferlein
ddf36290fa
Corner detection feature: tests, bug fixes, enhancements (inclusive/exclusive angle constraints)
2021-01-09 23:10:17 +01:00
Matthias Koefferlein
bc63f98622
WIP: more tests on complex DRC ops
2021-01-09 18:40:32 +01:00
Matthias Koefferlein
6f93ff616f
More tests, bug fixes.
2021-01-09 17:50:39 +01:00
Matthias Koefferlein
7093dfd0eb
WIP: bug fixes, more tests for complex DRC
2021-01-09 15:56:55 +01:00
Matthias Koefferlein
f993e4c31b
WIP: clarification on shielding: in two-layer checks, the second layer shields, but not the first one.
2021-01-07 00:01:47 +01:00
Matthias Koefferlein
d1868a4b23
WIP: some development, bugfixing on DRC implementation - mainly about correct opposite filter operation
2021-01-06 23:39:51 +01:00
Matthias Koefferlein
9c95bed67e
Generic DRC: new tests, bug fixes.
2021-01-06 11:59:47 +01:00
Matthias Koefferlein
0d9ee8a70d
First test for generic DRC feature
2021-01-06 09:52:24 +01:00
Matthias Koefferlein
7d4310d343
Updated copyright to 2021
2021-01-05 22:57:48 +01:00
Matthias Koefferlein
9812ff7901
WIP: a new concept for complex DRC - 'foreign' subjects
2021-01-05 22:49:30 +01:00
Matthias Koefferlein
6dd190e3af
More compound DRC operations (join, merge, count filter)
2021-01-04 21:34:12 +01:00
Matthias Koefferlein
70ccc50b39
WIP: some refactoring to make functions available for DRC compound operations and to simplify binding
2021-01-01 23:20:11 +01:00
Matthias Koefferlein
dd84e64446
Fixed an issue with the OASIS reader (unused cells popped up as dummy top levels)
...
This happens when OASIS declares a cell name without actually using it.
The intended behavior is to drop such cells.
2020-12-30 23:37:01 +01:00
Matthias Koefferlein
4ec00fb129
Fixed an issue with wrapping new objects into tl::Variants which are returned directly. For these objects, ownership needs to be transferred to the script.
2020-12-27 17:09:06 +01:00
Matthias Koefferlein
992be87812
WIP: testdata updated
2020-12-27 01:33:54 +01:00
Matthias Koefferlein
dcaa0d0ea5
WIP: deep mode and complex DRC ops, debugging
2020-12-26 21:11:22 +01:00
Matthias Koefferlein
493024734d
WIP: more tests enabled for deep mode
2020-12-26 20:48:11 +01:00
Matthias Koefferlein
1bb04c711c
WIP: more tests enabled for deep mode too.
2020-12-26 19:55:42 +01:00
Matthias Koefferlein
afc9fc9c7a
WIP: Bugfixed deep processor (multi-input mode and input layer index), added tests
2020-12-26 19:43:51 +01:00