Commit Graph

607 Commits

Author SHA1 Message Date
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 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 1495d9521c Tests updated. 2021-03-15 16:51:56 +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 4549da561b Better information in LVS report - at least for skipped circuits for now. 2021-03-14 18:21:32 +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 d4f641bff8 WIP. 2021-03-09 23:45:53 +01:00
Matthias Koefferlein 7bd4a692d8 WIP 2021-03-08 20:45:52 +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 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 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 9074c918bb Fixed a linker name clash. 2021-02-21 22:11:33 +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 6527d29f8f Recursive instance iterator, debugging. 2021-02-20 00:48:07 +01:00
Matthias Koefferlein 412056afed Recursive instance iterator, first draft. 2021-02-20 00:40:05 +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 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 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 d1e6845ae4 Replaced std::auto_ptr by std::unique_ptr because the latter is deprecated 2021-01-23 21:55:51 +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 63d19bdb4c More robustness against test variations on different platforms. 2021-01-19 21:49:38 +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 3677a36804 Made region tests less susceptible to 'unordered_set' implementation details. 2021-01-19 01:26:20 +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 e3773be7dc Updated tests and provide 'lesser' and 'greater' edge pair extraction operator. 2021-01-17 19:55:21 +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 dce22fee37 New region filters (square, area ratio, relative height) 2021-01-13 01:08:42 +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 0a7ca69da2 Some refactoring (angle check), angle check and length check for universal DRC, tests, bug fixes. 2021-01-10 19:54:16 +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 ddf36290fa Corner detection feature: tests, bug fixes, enhancements (inclusive/exclusive angle constraints) 2021-01-09 23:10:17 +01:00
Matthias Koefferlein 6f93ff616f More tests, bug fixes. 2021-01-09 17:50:39 +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 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 815b81ce59 WIP: Introduced DRC negative options in GSI 2021-01-02 21:10:05 +01:00
Matthias Koefferlein 82a70bdde0 WIP: negative output of DRC functions. 2021-01-02 20:33:16 +01:00
Matthias Koefferlein 98792c55de WIP: attempt to implement negative edge output on width and space 2021-01-02 19:34:46 +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 1026d197cb WIP: Some optimization of check functions 2020-12-27 01:05:55 +01:00
Matthias Koefferlein 3f8113e404 WIP: Updated some test, debugging 2020-12-26 23:55:50 +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
Matthias Koefferlein dc80ed77b1 WIP: region/edge booleans, more tests, debugging 2020-12-26 17:48:53 +01:00
Matthias Koefferlein 9b4f65bab4 Typo fixed 2020-12-26 17:18:23 +01:00
Matthias Koefferlein 953bee4790 WIP: more tests, debugging 2020-12-26 17:17:43 +01:00
Matthias Koefferlein 8d6dd23850 WIP: more tests, debugging 2020-12-26 17:06:44 +01:00
Matthias Koefferlein cc6ad01529 WIP: more tests, debugging 2020-12-26 16:04:35 +01:00
Matthias Koefferlein 00a7021a30 WIP: more tests, debugging. 2020-12-26 15:41:20 +01:00
Matthias Koefferlein 3707fae3c2 WIP: more tests, debugging 2020-12-26 14:58:07 +01:00
Matthias Koefferlein 9c6e0129d9 WIP: debugging, test case for compound booleans 2020-12-26 00:06:49 +01:00
Matthias Koefferlein 80509c64e5 WIP: generalization of EdgePair/Edge/Polgyon processors, chained operations in compound ops. 2020-12-25 18:03:57 +01:00
Matthias Koefferlein 4974a81af6 WIP: debugging 2020-12-25 15:00:52 +01:00
Matthias Koefferlein 45a8f7aa20 Merge branch 'master' into complex_drc_ops 2020-12-20 23:50:54 +01:00
Matthias Koefferlein 1c6ffb4086 Fixed unit tests. 2020-12-20 21:45:55 +01:00
Matthias Koefferlein db19e92083 Fixed some merge issues. 2020-12-20 20:53:43 +01:00
Matthias Koefferlein cfe38aab42 Merge branch 'lefdef' 2020-12-20 19:26:51 +01:00
Matthias Koefferlein 02f96f022a WIP: added brackets for clarity in mapping expressions. 2020-12-19 16:37:58 +01:00
Matthias Koefferlein 3fbfb20727 WIP: shorter mapping strings. 2020-12-19 00:56:45 +01:00
Matthias Koefferlein 3e249b0b54 WIP: More tests for layer multi-mapping 2020-12-15 23:51:01 +01:00
Matthias Koefferlein 1f635015ce WIP: backward compatible implementation of multi-map capability of layer mapping. 2020-12-15 23:05:34 +01:00
Matthias Koefferlein 86e7fa56f0 WIP: undo/redo for applying a technology. 2020-12-13 22:02:19 +01:00
Matthias Koefferlein fcf4fd74f6 WIP: bugfixing. 2020-12-13 14:13:59 +01:00
Matthias Koefferlein 78695f9c23 WIP: new technology management scheme, libraries can be tech specific, update of technology in layout updates library references 2020-12-13 12:13:21 +01:00
Matthias Koefferlein 57a7671640 Fixed enclosing feature, added tests + DRC impl., DRC doc. 2020-12-08 22:44:33 +01:00
Matthias Koefferlein 0670e83d77 WIP: bug fixes, renamed "enclosing" to "covering" in Region/DRC.
Reasoning: "enclosing" was reserved for the DRC function.
2020-12-07 23:55:52 +01:00
Matthias Koefferlein 153289b5d8 WIP: rectangle error pattern filter implemented. 2020-12-06 16:33:10 +01:00
Matthias Koefferlein 6c4d1f4ef3 WIP: bugfix and tests for opposite filter for DRC 2020-12-06 10:56:56 +01:00
Matthias Koefferlein 44fd6bff11 Refactoring: bulk options structure for DRC functions. Will be easer to enhance 2020-12-05 14:14:28 +01:00
Matthias Koefferlein db6b3d280e Merge branch 'master' into complex_drc_ops 2020-11-22 09:31:15 +01:00
Matthias Köfferlein 248168ea67
Merge pull request #677 from KLayout/issue-666
Issue 666
2020-11-14 20:55:28 +01:00
Matthias Köfferlein 94b71cbf76
Merge pull request #642 from KLayout/2.5d-view-devel
2.5d view devel
2020-11-13 02:06:41 +01:00
Matthias Koefferlein 888b0936f7 Updated test golden data (order of cells only) 2020-11-03 23:11:07 +01:00
Matthias Koefferlein 50ee44b6e2 Addressed issue #663 by internal merging of the intruders. 2020-10-28 23:01:54 +01:00
Matthias Koefferlein f1c7e2e8e1 Refactoring of the containers (Edges, Region, EdgePairs, Texts): size -> count, added hier_count. Added SRegion for shape iterator as generic polygonizable things 2020-10-11 17:51:54 +02:00
Matthias Köfferlein 591d4a5c37
Fixed #652 (M scaling not working sometimes for Spice), provided test… (#653)
* Fixed #652 (M scaling not working sometimes for Spice), provided testcases

* One more patch (bugfix, Spice reader)
2020-10-10 23:16:02 +02:00
Matthias Köfferlein 52f54ab39e
Fixed #648 (join_nets should work on global nets too) (#655) 2020-10-10 23:15:36 +02:00
Matthias Koefferlein ec01c9b72b WIP: tests for local processor flat mode 2020-09-26 17:11:13 +02:00
Matthias Koefferlein 91e924c559 WIP: Basic implementation of Region::interact with count 2020-09-21 22:54:46 +02:00
Matthias Koefferlein ce9c7e848a Merge branch 'master' into drc-enhancements 2020-09-14 20:52:02 +02:00
Matthias Koefferlein b5e158a6b6 Merge branch 'master' into 2.5d-view-devel 2020-09-14 20:48:46 +02:00
Matthias Koefferlein 1dc9d11745 Merge branch 'master' into 2.5d-view-devel 2020-08-30 23:40:54 +02:00
Matthias Koefferlein 2953ad3329 Merge branch 'master' into drc-enhancements 2020-08-30 23:35:37 +02:00
Matthias Koefferlein a425d522cc Added multi-cell mapping for transferring multiple cells from one layout to another while including their hierarchy without duplicating cells. 2020-08-29 10:07:17 +02:00
Matthias Koefferlein 4d4c7aee78 Fixed a unit test. 2020-07-17 23:59:37 +02:00
Matthias Koefferlein 0dbebdca91 Fixed test. 2020-07-07 21:39:24 +02:00
Matthias Koefferlein 848fd3e1bb Added testcase 2020-07-07 21:21:33 +02:00
Matthias Köfferlein dcd0476efc
Implemented issue #598 (Cell#transform) (#600) 2020-07-03 23:41:09 +02:00