Skip to content

Commit 15d1342

Browse files
committed
feat(plugins): klayout drc plugin
1 parent c18bc9d commit 15d1342

File tree

14 files changed

+1457
-1
lines changed

14 files changed

+1457
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111
- Selective simulation capabilities to `TerminalComponentModeler` via `run_only` and `element_mappings` fields, allowing users to run fewer simulations and extract only needed scattering matrix elements.
12+
- Added KLayout plugin, with DRC functionality for running design rule checks in `plugins.klayout.drc`. Supports running DRC on GDS files as well as `Geometry`, `Structure`, and `Simulation` objects.
1213

1314
### Changed
1415
- Validate mode solver object for large number of grid points on the modal plane.

docs/api/plugins/index.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Plugins
1515
./design
1616
./waveguide
1717
./microwave
18+
./klayout
1819

1920

2021
.. include:: /api/plugins/mode_solver.rst
@@ -27,4 +28,5 @@ Plugins
2728
.. include:: /api/plugins/invdes.rst
2829
.. include:: /api/plugins/design.rst
2930
.. include:: /api/plugins/waveguide.rst
30-
.. include:: /api/plugins/microwave.rst
31+
.. include:: /api/plugins/microwave.rst
32+
.. include:: /api/plugins/klayout.rst

docs/api/plugins/klayout.rst

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
.. currentmodule:: tidy3d
2+
3+
KLayout Integration
4+
-------------------
5+
6+
.. toctree::
7+
8+
./../../../tidy3d/plugins/klayout/README.md
9+
10+
DRC
11+
~~~
12+
13+
.. toctree::
14+
15+
./../../../tidy3d/plugins/klayout/drc/README.md
16+
17+
DRC Configuration
18+
^^^^^^^^^^^^^^^^^
19+
20+
.. autosummary::
21+
:toctree: ../_autosummary/
22+
:template: module.rst
23+
24+
tidy3d.plugins.klayout.DRCConfig
25+
26+
DRC Runner
27+
^^^^^^^^^^
28+
29+
.. autosummary::
30+
:toctree: ../_autosummary/
31+
:template: module.rst
32+
33+
tidy3d.plugins.klayout.DRCRunner
34+
tidy3d.plugins.klayout.run_drc_on_gds
35+
36+
DRC Results
37+
^^^^^^^^^^^
38+
39+
.. autosummary::
40+
:toctree: ../_autosummary/
41+
:template: module.rst
42+
43+
tidy3d.plugins.klayout.DRCResults
44+
tidy3d.plugins.klayout.drc.DRCViolation
45+
46+
DRC Markers
47+
^^^^^^^^^^^
48+
49+
.. autosummary::
50+
:toctree: ../_autosummary/
51+
:template: module.rst
52+
53+
tidy3d.plugins.klayout.drc.EdgeMarker
54+
tidy3d.plugins.klayout.drc.EdgePairMarker
55+
tidy3d.plugins.klayout.drc.MultiPolygonMarker
56+
57+
Utilities
58+
~~~~~~~~~
59+
60+
.. autosummary::
61+
:toctree: ../_autosummary/
62+
:template: module.rst
63+
64+
tidy3d.plugins.klayout.check_installation
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<report-database>
3+
<description>DRC results</description>
4+
<original-file/>
5+
<generator>drc: script='my_drc_runset.drc'</generator>
6+
<top-cell>TOP</top-cell>
7+
<tags>
8+
</tags>
9+
<categories>
10+
<category>
11+
<name>min_width</name>
12+
<description>minimum width</description>
13+
<categories>
14+
</categories>
15+
</category>
16+
<category>
17+
<name>min_gap</name>
18+
<description>minimum gap</description>
19+
<categories>
20+
</categories>
21+
</category>
22+
<category>
23+
<name>min_area</name>
24+
<description>minimum area</description>
25+
<categories>
26+
</categories>
27+
</category>
28+
<category>
29+
<name>min_hole</name>
30+
<description>minimum hole</description>
31+
<categories>
32+
</categories>
33+
</category>
34+
</categories>
35+
<cells>
36+
<cell>
37+
<name>TOP</name>
38+
<variant/>
39+
<layout-name/>
40+
<references>
41+
</references>
42+
</cell>
43+
</cells>
44+
<items>
45+
<item>
46+
<tags/>
47+
<category>min_width</category>
48+
<cell>TOP</cell>
49+
<visited>false</visited>
50+
<multiplicity>1</multiplicity>
51+
<comment/>
52+
<image/>
53+
<values>
54+
<value>edge-pair: (-0.6,0.163;-0.6,0.419)|(-0.31,0.342;-0.31,0.24)</value>
55+
</values>
56+
</item>
57+
<item>
58+
<tags/>
59+
<category>min_width</category>
60+
<cell>TOP</cell>
61+
<visited>false</visited>
62+
<multiplicity>1</multiplicity>
63+
<comment/>
64+
<image/>
65+
<values>
66+
<value>edge-pair: (-0.206,0.342;-0.31,0.342)|(-0.521,0.555;0.005,0.555)</value>
67+
</values>
68+
</item>
69+
<item>
70+
<tags/>
71+
<category>min_gap</category>
72+
<cell>TOP</cell>
73+
<visited>false</visited>
74+
<multiplicity>1</multiplicity>
75+
<comment/>
76+
<image/>
77+
<values>
78+
<value>edge-pair: (-0.31,0.24;-0.206,0.24)|(-0.206,0.342;-0.31,0.342)</value>
79+
</values>
80+
</item>
81+
<item>
82+
<tags/>
83+
<category>min_gap</category>
84+
<cell>TOP</cell>
85+
<visited>false</visited>
86+
<multiplicity>1</multiplicity>
87+
<comment/>
88+
<image/>
89+
<values>
90+
<value>edge-pair: (-0.206,0.24;-0.206,0.342)|(-0.31,0.342;-0.31,0.24)</value>
91+
</values>
92+
</item>
93+
<item>
94+
<tags/>
95+
<category>min_area</category>
96+
<cell>TOP</cell>
97+
<visited>false</visited>
98+
<multiplicity>1</multiplicity>
99+
<comment/>
100+
<image/>
101+
<values>
102+
<value>polygon: (-0.6,-0.112;-0.6,0.555;0.217,0.555;0.217,-0.112/-0.31,0.24;-0.206,0.24;-0.206,0.342;-0.31,0.342)</value>
103+
</values>
104+
</item>
105+
<item>
106+
<tags/>
107+
<category>min_hole</category>
108+
<cell>TOP</cell>
109+
<visited>false</visited>
110+
<multiplicity>1</multiplicity>
111+
<comment/>
112+
<image/>
113+
<values>
114+
<value>polygon: (-0.31,0.24;-0.31,0.342;-0.206,0.342;-0.206,0.24)</value>
115+
</values>
116+
</item>
117+
</items>
118+
</report-database>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<report-database>
3+
<description>DRC results</description>
4+
<original-file/>
5+
<generator>drc: script='testwidthonly.drc'</generator>
6+
<top-cell>MAIN</top-cell>
7+
<tags>
8+
</tags>
9+
<categories>
10+
<category>
11+
<name>min_width</name>
12+
<description>minimum width</description>
13+
<categories>
14+
</categories>
15+
</category>
16+
</categories>
17+
<cells>
18+
<cell>
19+
<name>MAIN</name>
20+
<variant/>
21+
<layout-name/>
22+
<references>
23+
</references>
24+
</cell>
25+
</cells>
26+
<items>
27+
</items>
28+
</report-database>

0 commit comments

Comments
 (0)