Commit Graph

272 Commits

Author SHA1 Message Date
Matthias Koefferlein 2341170065 First tests 2022-11-12 00:29:50 +01:00
Matthias Koefferlein b02d3b24a8 WIP: first draft of angle-class selectors for edges and edge pairs for simplifying edge orientation checks 2022-11-11 23:46:45 +01:00
Matthias Koefferlein f67b28c52a Supporting LayerInfo objects in fill pattern generation, doc updates 2022-11-04 23:45:10 +01:00
Matthias Koefferlein 4a854bfa5e [CONSIDER MERGING] Clarification and typo fixed in DRC doc. 2022-09-04 09:55:38 +02:00
Matthias Koefferlein c720e2d3eb New DRC features:
* inside, not_inside, outside, not_outside (edge/edge, edge/polygon)
* related select_*
* split_inside, split_outside (edge/edge, edge/polygon)
* andnot (edge/edge, edge/polygon)
* inside_outside_part (edge/polygon)
2022-08-31 23:38:23 +02:00
Matthias Koefferlein 81b605c197 DRC implementation + doc update 2022-08-31 22:39:05 +02:00
Matthias Koefferlein 526f1aeacc [Consider merging] provide an option to produce antenna DRC debug output 2022-08-11 01:02:45 +02:00
Matthias Koefferlein 1d88e65689 [Consider merging] Fixed file content of test data - .oas is OASIS, .gds is GDSII 2022-08-10 21:48:00 +02:00
Matthias Koefferlein 75d686a63f Changing default "is_merged" status for Edges and Region to false.
This was a problem with universal DRC which does not specifically
set the merged status. Furthermore, the default for DeepRegion and
DeepEdges was "false" already and now is aligned.
2022-07-04 00:52:55 +02:00
Matthias Koefferlein 1edaf2b6b4 WIP: working on further consolidation of non-Qt case 2022-05-28 22:49:40 +02:00
Matthias Koefferlein 8e21dab345 Reworked lym::MacroCollection for not using Qt (too much) 2022-05-28 21:21:58 +02:00
Matthias Koefferlein ca3d840cb2 Alternative implementation for resources for the non-Qt case. 2022-05-28 00:33:08 +02:00
Matthias Koefferlein b22c7091ae Skip resources in non-Qt case 2022-05-27 20:26:47 +02:00
Matthias Köfferlein f8bd4dafaf
Pdf documentation (#1052)
* Some doc fixes as preparation for PDF generation

* Some doc bug fixes and enhancements for PDF manual generation

* Fixed a number of invalid references found during PDF generation

* Enable PCellDeclarationHelper doc for help system

* Fixed doc text

* Fixed some doc issues with invalid links etc.
2022-04-03 20:51:29 +02:00
Matthias Köfferlein e9c5782c51
Issue 1011 (#1027) - DRC violation on texts in deep mode
* Fixed issue-1011 by using single-point polygons for texts in deep mode. Tests need fixing.

* Updated tests (text become a single point)

* Added test for issue-1011
2022-03-15 21:13:57 +01:00
Matthias Koefferlein 64406522fe WIP: basic debugging, functionality. 2022-03-05 19:42:57 +01:00
Matthias Koefferlein 30f774f055 WIP: dynamic definition of macro categories (currently: drc, lvs) 2022-02-19 17:57:41 +01:00
Matthias Koefferlein 10456516db Updated copyright to 2022, preparations for 0.27.6 (was delayed due to code signing certificate issues) 2022-01-04 21:20:04 +01:00
Matthias Koefferlein 029b7b9410 Fixed generic DRC checks with == operations - this was sometimes not capturing the relevant cases. 2021-12-26 21:23:58 +01:00
Matthias Koefferlein 4a44329e38 Enabling 'enclosed' as a (sometimes) more efficient way of implementing an enclosing check. 2021-11-08 23:18:01 +01:00
Matthias Koefferlein 2fd9401013 Fixed some doc problems 2021-11-07 23:30:15 +01:00
Matthias Koefferlein 29384bf3f3 Convenience: simple version of DRC layer.with_holes and layer.without_holes 2021-09-20 21:36:46 +02:00
Matthias Koefferlein 7a37a6b7ed Implemented extent(cell_filter) for DRC, added Layout#cells with name filter 2021-07-21 18:31:51 +02:00
Matthias Koefferlein 4e54715d64 Merge branch 'wip-lvs' 2021-07-06 23:40:44 +02:00
Matthias Köfferlein e78d0d81ae
Merge pull request #849 from KLayout/lvs-blackbox
Lvs blackbox
2021-07-06 23:38:21 +02:00
Matthias Koefferlein e34fc8967a Some enhancements
* Device#net_for_terminal with terminal name
* Spice writer now dumps all parameters for resistors and caps (also secondary)
* Enabled Spice writer delegate in LVS (spice_format(...))
* Device class factories for built-in device extractors
2021-07-05 22:22:13 +02:00
Matthias Koefferlein ce61145f1c More control over primary/secondary flag of parameters in device extraction
- Spice reader will set primary flag for all (known) parameters
  read from a Spice netlist
- "extract_devices" will return the device class object
- primary/secondary flag can be set on device class objects
  through "enable_devices"
2021-07-04 17:05:17 +02:00
Matthias Koefferlein 24afd571f0 LVS: can be used anywhere now: tolerance and join_symmetric_nets 2021-06-28 18:56:07 +02:00
Matthias Koefferlein 881e0010d5 Implemented with(out)_angle, with(out)_area on edge pairs (DRC, GSI). Deprecated 'with(out)_angle' on polygon layers (DRC) as this is now redundant with 'corners' 2021-06-27 14:18:04 +02:00
Matthias Koefferlein b02a4a3bfa Propsed solution for #824: introduce a new internal purpose: LEFLabel which maps label for LEF pins 2021-06-08 22:16:35 +02:00
Matthias Koefferlein 5f6b3710b5 Doc fixed. 2021-06-01 20:59:25 +02:00
Matthias Koefferlein ef01bbf81b Restored merge behavior for DRC 'or' also in deep mode 2021-05-31 18:24:00 +02:00
Matthias Koefferlein 5ceeafc0ff Implemented #808 (Feature suggestion: DRC to report edges attached to corners as edge pairs). Solution is available for DRC layers and universal DRC expressions. 2021-05-29 17:57:38 +02:00
Matthias Koefferlein fd1e206c56 Provide a solution for #809 (density goes outside the area) 2021-05-29 10:16:30 +02:00
Matthias Koefferlein e57d573a42 Tests, so bug fixes, some refactoring 2021-05-29 09:43:12 +02:00
Matthias Koefferlein c8548709bb Implemented edge pair filters, DRC: with(out)_angle, with(out)_length and with(out)_distance 2021-05-28 23:46:52 +02:00
Matthias Koefferlein 2e63628ddd Fixed #805 - introducing layer.count and layout.hier_count for DRC 2021-05-26 22:11:47 +02:00
Matthias Koefferlein 5e04ea6156 Clarification of negative edge output for two-layer DRC's. 2021-05-26 01:12:35 +02:00
Matthias Koefferlein 660b723678 Updated test data because of non-merging hierarchical 'or' 2021-05-26 00:35:32 +02:00
Matthias Koefferlein 6ad8ec5662 Bugfix: whole edge output for fragmented second input. No way to fix that for the compound ops. Restrict negative output for two-layer checks on first layer for the same reason. 2021-05-26 00:27:13 +02:00
Matthias Koefferlein 94e7f0dbd3 Updated test data, fixed DRC/LVS doc. 2021-05-25 23:30:43 +02:00
Matthias Koefferlein 1c8442f485 Fixed #807 - now supporting incremental connect and clear_connections in DRC/LVS 2021-05-24 21:56:57 +02:00
Matthias Koefferlein 47e110115f Updated documentation 2021-05-22 22:32:56 +02:00
Matthias Köfferlein 85eee4d6cc
Merge pull request #803 from KLayout/wip
Wip
2021-05-21 00:52:36 +02:00
Matthias Koefferlein 55bdd904cb Implemented #801: update, added test case 2021-05-19 22:25:59 +02:00
Matthias Koefferlein f7fa6d8289 Added process_event for DRC log - makes progress log more useful. 2021-05-15 18:04:41 +02:00
Matthias Koefferlein 1285868546 Skip private-only tests without private data access 2021-05-01 21:36:52 +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 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 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 b725f5fb0f fill_with_left, implementation + tests 2021-03-29 20:58:16 +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 6ceac2c6ba Updated a test. 2021-03-27 23:14:33 +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 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 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 67a1b3a99f WIP: fill + DRC, experimental. 2021-03-14 02:40:12 +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 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 b3685c6722 Implemented with_holes for generic DRC too 2021-02-08 21:29:41 +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 Koefferlein 94e6f0f7a6 Logging progress for DRC, introducing 'abstract progress' concept 2021-02-07 23:41:53 +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 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 d5f18ca1c1 Spelling fixed. 2021-01-16 11:13:17 +01:00
Matthias Koefferlein 4460c294b0 Some bug fixes, doc update, test updates. 2021-01-16 00:32:06 +01:00
Matthias Koefferlein 111b49f0ef Updated DRC documentation 2021-01-15 19:01:32 +01:00
Matthias Koefferlein bbd511bc8b Added some tests for 'switch', small bug fix. 2021-01-15 17:32:39 +01:00
Matthias Koefferlein ec88362eca Doc updates 2021-01-15 00:56:17 +01:00
Matthias Koefferlein 8051bef9ac Doc update, fixed DRC's 'switch' function 2021-01-15 00:31:26 +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 a8f08bffac WIP: new ratio filters, squares for DRC 2021-01-13 02:12:33 +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 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 c24568b510 Added more tests, debugging. 2021-01-10 09:02:41 +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 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 b15e7f2b9f WIP: proper integration of complex DRC ops in DRC framework 2021-01-09 16:37:16 +01:00
Matthias Koefferlein 7093dfd0eb WIP: bug fixes, more tests for complex DRC 2021-01-09 15:56:55 +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