siepic-forge 1.2.2__tar.gz → 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {siepic_forge-1.2.2/siepic_forge.egg-info → siepic_forge-1.3.0}/PKG-INFO +2 -2
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/pyproject.toml +5 -2
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/__init__.py +1 -1
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/_component_data.py +3 -3
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/_layers.py +37 -11
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/technology.py +9 -13
- {siepic_forge-1.2.2 → siepic_forge-1.3.0/siepic_forge.egg-info}/PKG-INFO +2 -2
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge.egg-info/SOURCES.txt +1 -0
- siepic_forge-1.3.0/siepic_forge.egg-info/entry_points.txt +2 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge.egg-info/requires.txt +1 -1
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/LICENSE +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/README.md +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/setup.cfg +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/component.py +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/GCs_BB.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_adiabatic_te1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_adiabatic_tm1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_bdc_te1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_crossing4.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_gc_te1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_gc_tm1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_routing_taper_te1550_w=500nm_to_w=3000nm_L=20um.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_routing_taper_te1550_w=500nm_to_w=3000nm_L=40um.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_splitter_swg_assist_te1310.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_splitter_swg_assist_te1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_terminator_te1310.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_terminator_te1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_terminator_tm1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_y_1310.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_y_1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_y_adiabatic.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_y_adiabatic_500pin.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/taper_si_simm_1310.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/taper_si_simm_1550.gds +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge.egg-info/dependency_links.txt +0 -0
- {siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge.egg-info/top_level.txt +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siepic-forge
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: SiEPIC EBeam PDK implementation for PhotonForge
|
|
5
5
|
Author-email: "Flexcompute Inc." <info@flexcompute.com>
|
|
6
6
|
Project-URL: homepage, https://github.com/flexcompute/siepic-forge
|
|
7
7
|
Project-URL: documentation, https://github.com/flexcompute/siepic-forge
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
|
-
Requires-Dist: photonforge>=
|
|
10
|
+
Requires-Dist: photonforge>=2.0
|
|
11
11
|
Provides-Extra: test
|
|
12
12
|
Requires-Dist: pytest>=7.2; extra == "test"
|
|
13
13
|
Dynamic: license-file
|
|
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "siepic-forge"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.3.0"
|
|
8
8
|
authors = [{name = "Flexcompute Inc.", email = "info@flexcompute.com"}]
|
|
9
9
|
description = "SiEPIC EBeam PDK implementation for PhotonForge"
|
|
10
10
|
readme = "README.md"
|
|
11
|
-
dependencies = ["photonforge >=
|
|
11
|
+
dependencies = ["photonforge >= 2.0"]
|
|
12
12
|
|
|
13
13
|
[project.optional-dependencies]
|
|
14
14
|
test = ["pytest >= 7.2"]
|
|
@@ -17,6 +17,9 @@ test = ["pytest >= 7.2"]
|
|
|
17
17
|
homepage = "https://github.com/flexcompute/siepic-forge"
|
|
18
18
|
documentation = "https://github.com/flexcompute/siepic-forge"
|
|
19
19
|
|
|
20
|
+
[project.entry-points."photonforge.pdk"]
|
|
21
|
+
"SiEPIC EBeam Si" = "siepic_forge"
|
|
22
|
+
|
|
20
23
|
[tool.setuptools]
|
|
21
24
|
packages = ["siepic_forge", "siepic_forge.library"]
|
|
22
25
|
|
|
@@ -30,7 +30,7 @@ _component_data = {
|
|
|
30
30
|
((-20.4, 0.0), (_vx, 0, _vy), _waist, 90),
|
|
31
31
|
],
|
|
32
32
|
None,
|
|
33
|
-
"
|
|
33
|
+
"grating_coupler",
|
|
34
34
|
),
|
|
35
35
|
"GC_TE_1550_8degOxide_BB": (
|
|
36
36
|
"GCs_BB",
|
|
@@ -39,7 +39,7 @@ _component_data = {
|
|
|
39
39
|
((-20.4, 0.0), (_vx, 0, _vy), _waist, 90),
|
|
40
40
|
],
|
|
41
41
|
None,
|
|
42
|
-
"
|
|
42
|
+
"grating_coupler",
|
|
43
43
|
),
|
|
44
44
|
"GC_TM_1310_8degOxide_BB": (
|
|
45
45
|
"GCs_BB",
|
|
@@ -48,7 +48,7 @@ _component_data = {
|
|
|
48
48
|
((-20.4, 0.0), (_vx, 0, _vy), _waist, 0),
|
|
49
49
|
],
|
|
50
50
|
None,
|
|
51
|
-
"
|
|
51
|
+
"grating_coupler",
|
|
52
52
|
),
|
|
53
53
|
"GC_TM_1550_8degOxide_BB": (
|
|
54
54
|
"GCs_BB",
|
|
@@ -1,18 +1,40 @@
|
|
|
1
1
|
import photonforge as pf
|
|
2
2
|
|
|
3
3
|
_layers = {
|
|
4
|
-
"Si": pf.LayerSpec(
|
|
4
|
+
"Si": pf.LayerSpec(
|
|
5
|
+
(1, 0), "SiEPIC - Waveguide", "#ff80a818", "", min_width=0.06, min_spacing=0.07
|
|
6
|
+
),
|
|
5
7
|
"PinRec": pf.LayerSpec((1, 10), "SiEPIC", "#ff80a818", ""),
|
|
6
8
|
"PinRecM": pf.LayerSpec((1, 11), "SiEPIC", "#80000018", ""),
|
|
7
9
|
"Si Slab": pf.LayerSpec(
|
|
8
10
|
(2, 0), "Dedicated Run Layers - Device Layer Partial Etch", "#c080ff18", ""
|
|
9
11
|
),
|
|
10
|
-
"Direct Metal": pf.LayerSpec(
|
|
12
|
+
"Direct Metal": pf.LayerSpec(
|
|
13
|
+
(5, 0),
|
|
14
|
+
"Dedicated Run Layers",
|
|
15
|
+
"#80a8ff18",
|
|
16
|
+
"",
|
|
17
|
+
conductive=True,
|
|
18
|
+
min_width=5,
|
|
19
|
+
min_spacing=10,
|
|
20
|
+
),
|
|
11
21
|
"Oxide open to BOX": pf.LayerSpec((6, 0), "Dedicated Run Layers", "#ff000018", ""),
|
|
12
22
|
"Text": pf.LayerSpec((10, 0), "Text-Not Fabricated", "#00000018", "hollow"),
|
|
13
|
-
"M1_heater": pf.LayerSpec(
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
"M1_heater": pf.LayerSpec(
|
|
24
|
+
(11, 0), "TiW Heater", "#0000ff18", "\\\\", min_width=3, min_spacing=3
|
|
25
|
+
),
|
|
26
|
+
"M2_router": pf.LayerSpec(
|
|
27
|
+
(12, 0),
|
|
28
|
+
"TiW/Au Routing Bilayer",
|
|
29
|
+
"#ffbf0018",
|
|
30
|
+
"//",
|
|
31
|
+
conductive=True,
|
|
32
|
+
min_width=5,
|
|
33
|
+
min_spacing=8,
|
|
34
|
+
),
|
|
35
|
+
"M_Open": pf.LayerSpec(
|
|
36
|
+
(13, 0), "Bond Pad Open", "#80005718", "\\\\", min_width=10, min_spacing=10
|
|
37
|
+
),
|
|
16
38
|
"Si n": pf.LayerSpec((20, 0), "Dedicated Run Layers", "#afff8018", ""),
|
|
17
39
|
"Si p": pf.LayerSpec((21, 0), "Dedicated Run Layers", "#ffd9df18", ""),
|
|
18
40
|
"Si n+": pf.LayerSpec((22, 0), "Dedicated Run Layers", "#ff800018", ""),
|
|
@@ -21,14 +43,16 @@ _layers = {
|
|
|
21
43
|
"Si p++": pf.LayerSpec((25, 0), "Dedicated Run Layers", "#00800018", ""),
|
|
22
44
|
"ANT Reserved": pf.LayerSpec((31, 0), "SiEPIC/ANT Reserved", "#9580ff18", "/"),
|
|
23
45
|
"ANT Reserved 1": pf.LayerSpec((33, 0), "ANT Reserved", "#9580ff18", "/"),
|
|
24
|
-
"Via to silicon": pf.LayerSpec(
|
|
25
|
-
|
|
46
|
+
"Via to silicon": pf.LayerSpec(
|
|
47
|
+
(40, 0), "Dedicated Run Layers", "#0000ff18", "", conductive=True
|
|
48
|
+
),
|
|
49
|
+
"DevRec": pf.LayerSpec((68, 0), "SiEPIC", "#00800018", "", device_marker=True),
|
|
26
50
|
"FbrTgt": pf.LayerSpec((81, 0), "SiEPIC/Dedicated Run Layers", "#80808018", ""),
|
|
27
51
|
"ANT Reserved 2": pf.LayerSpec((102, 0), "ANT Reserved", "#9580ff18", "/"),
|
|
28
52
|
"ANT Reserved 3": pf.LayerSpec((110, 0), "ANT Reserved", "#9580ff18", "/"),
|
|
29
|
-
"Custom Dicing": pf.LayerSpec((189, 0), "", "#00000018", "hollow"),
|
|
30
|
-
"SEM Imaging": pf.LayerSpec((200, 0), "", "#ff000018", "x"),
|
|
31
|
-
"Deep Trench": pf.LayerSpec((201, 0), "", "#00ff0018", "."),
|
|
53
|
+
"Custom Dicing": pf.LayerSpec((189, 0), "", "#00000018", "hollow", min_width=100),
|
|
54
|
+
"SEM Imaging": pf.LayerSpec((200, 0), "", "#ff000018", "x", min_width=0.5),
|
|
55
|
+
"Deep Trench": pf.LayerSpec((201, 0), "", "#00ff0018", ".", min_width=260),
|
|
32
56
|
"Deep Trench Handling Exclusion": pf.LayerSpec((202, 0), "", "#00760018", ":"),
|
|
33
57
|
"Thermal Isolation Trenches": pf.LayerSpec((203, 0), "", "#00800018", "\\"),
|
|
34
58
|
"Laser Integration Shelf": pf.LayerSpec((205, 0), "Dedicated Run Layers", "#69ff0518", ""),
|
|
@@ -114,6 +138,8 @@ _layers = {
|
|
|
114
138
|
"Error: Thermal isolation and device layer overlap, or spacing is less than design rule": pf.LayerSpec(
|
|
115
139
|
(403, 3), "DRC Errors", "#50008018", ""
|
|
116
140
|
),
|
|
117
|
-
"Dream Photonics Black Box-Not Fabricated": pf.LayerSpec(
|
|
141
|
+
"Dream Photonics Black Box-Not Fabricated": pf.LayerSpec(
|
|
142
|
+
(998, 0), "", "#00000018", "hollow", device_marker=True
|
|
143
|
+
),
|
|
118
144
|
"Errors": pf.LayerSpec((999, 0), "SiEPIC", "#0000ff18", ""),
|
|
119
145
|
}
|
|
@@ -127,7 +127,6 @@ def ebeam(
|
|
|
127
127
|
num_modes=1,
|
|
128
128
|
added_solver_modes=0,
|
|
129
129
|
polarization=None,
|
|
130
|
-
target_neff=3.5,
|
|
131
130
|
path_profiles=((0.5, 0.0, (1, 0)),),
|
|
132
131
|
),
|
|
133
132
|
"TE_1310_410": pf.PortSpec(
|
|
@@ -137,7 +136,6 @@ def ebeam(
|
|
|
137
136
|
num_modes=1,
|
|
138
137
|
added_solver_modes=0,
|
|
139
138
|
polarization=None,
|
|
140
|
-
target_neff=3.5,
|
|
141
139
|
path_profiles=((0.41, 0.0, (1, 0)),),
|
|
142
140
|
),
|
|
143
141
|
"TE_1310_350": pf.PortSpec(
|
|
@@ -147,7 +145,6 @@ def ebeam(
|
|
|
147
145
|
num_modes=1,
|
|
148
146
|
added_solver_modes=0,
|
|
149
147
|
polarization=None,
|
|
150
|
-
target_neff=3.5,
|
|
151
148
|
path_profiles=((0.35, 0.0, (1, 0)),),
|
|
152
149
|
),
|
|
153
150
|
"TM_1310_350": pf.PortSpec(
|
|
@@ -157,7 +154,6 @@ def ebeam(
|
|
|
157
154
|
num_modes=1,
|
|
158
155
|
added_solver_modes=1,
|
|
159
156
|
polarization="TM",
|
|
160
|
-
target_neff=3.5,
|
|
161
157
|
path_profiles=((0.35, 0.0, (1, 0)),),
|
|
162
158
|
),
|
|
163
159
|
"TM_1550_500": pf.PortSpec(
|
|
@@ -167,7 +163,6 @@ def ebeam(
|
|
|
167
163
|
num_modes=1,
|
|
168
164
|
added_solver_modes=1,
|
|
169
165
|
polarization="TM",
|
|
170
|
-
target_neff=3.5,
|
|
171
166
|
path_profiles=((0.5, 0.0, (1, 0)),),
|
|
172
167
|
),
|
|
173
168
|
"TE-TM_1550_450": pf.PortSpec(
|
|
@@ -177,7 +172,6 @@ def ebeam(
|
|
|
177
172
|
num_modes=2,
|
|
178
173
|
added_solver_modes=0,
|
|
179
174
|
polarization=None,
|
|
180
|
-
target_neff=3.5,
|
|
181
175
|
path_profiles=((0.45, 0.0, (1, 0)),),
|
|
182
176
|
),
|
|
183
177
|
"MM_TE_1550_2000": pf.PortSpec(
|
|
@@ -187,7 +181,6 @@ def ebeam(
|
|
|
187
181
|
num_modes=10,
|
|
188
182
|
added_solver_modes=0,
|
|
189
183
|
polarization=None,
|
|
190
|
-
target_neff=3.5,
|
|
191
184
|
path_profiles=((2.0, 0.0, (1, 0)),),
|
|
192
185
|
),
|
|
193
186
|
"MM_TE_1550_3000": pf.PortSpec(
|
|
@@ -197,7 +190,6 @@ def ebeam(
|
|
|
197
190
|
num_modes=15,
|
|
198
191
|
added_solver_modes=0,
|
|
199
192
|
polarization=None,
|
|
200
|
-
target_neff=3.5,
|
|
201
193
|
path_profiles=((3.0, 0.0, (1, 0)),),
|
|
202
194
|
),
|
|
203
195
|
"Slot_TE_1550_500": pf.PortSpec(
|
|
@@ -207,7 +199,6 @@ def ebeam(
|
|
|
207
199
|
num_modes=1,
|
|
208
200
|
added_solver_modes=0,
|
|
209
201
|
polarization=None,
|
|
210
|
-
target_neff=3.5,
|
|
211
202
|
path_profiles=((0.2, -0.15, (1, 0)), (0.2, 0.15, (1, 0))),
|
|
212
203
|
),
|
|
213
204
|
"eskid_TE_1550": pf.PortSpec(
|
|
@@ -217,7 +208,6 @@ def ebeam(
|
|
|
217
208
|
num_modes=1,
|
|
218
209
|
added_solver_modes=0,
|
|
219
210
|
polarization=None,
|
|
220
|
-
target_neff=3.5,
|
|
221
211
|
path_profiles=(
|
|
222
212
|
(0.35, 0.0, (1, 0)),
|
|
223
213
|
(0.06, 0.265, (1, 0)),
|
|
@@ -237,7 +227,6 @@ def ebeam(
|
|
|
237
227
|
num_modes=1,
|
|
238
228
|
added_solver_modes=0,
|
|
239
229
|
polarization=None,
|
|
240
|
-
target_neff=3.5,
|
|
241
230
|
path_profiles=((0.5, 0.0, (1, 0)), (3.0, 0.0, (2, 0))),
|
|
242
231
|
),
|
|
243
232
|
"Rib_TE_1310_350": pf.PortSpec(
|
|
@@ -247,12 +236,19 @@ def ebeam(
|
|
|
247
236
|
num_modes=1,
|
|
248
237
|
added_solver_modes=0,
|
|
249
238
|
polarization=None,
|
|
250
|
-
target_neff=3.5,
|
|
251
239
|
path_profiles=((0.35, 0.0, (1, 0)), (3.0, 0.0, (2, 0))),
|
|
252
240
|
),
|
|
253
241
|
}
|
|
254
242
|
|
|
255
|
-
result = pf.Technology(
|
|
243
|
+
result = pf.Technology(
|
|
244
|
+
"SiEPIC EBeam Si",
|
|
245
|
+
"1.3.0",
|
|
246
|
+
layers,
|
|
247
|
+
extrusion_specs,
|
|
248
|
+
ports,
|
|
249
|
+
opening,
|
|
250
|
+
connected_layers=[((11, 0), (12, 0))],
|
|
251
|
+
)
|
|
256
252
|
result.random_variables = [
|
|
257
253
|
pf.monte_carlo.RandomVariable("si_thickness", value=0.22, stdev=0.0223 / 6),
|
|
258
254
|
]
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siepic-forge
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: SiEPIC EBeam PDK implementation for PhotonForge
|
|
5
5
|
Author-email: "Flexcompute Inc." <info@flexcompute.com>
|
|
6
6
|
Project-URL: homepage, https://github.com/flexcompute/siepic-forge
|
|
7
7
|
Project-URL: documentation, https://github.com/flexcompute/siepic-forge
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
|
-
Requires-Dist: photonforge>=
|
|
10
|
+
Requires-Dist: photonforge>=2.0
|
|
11
11
|
Provides-Extra: test
|
|
12
12
|
Requires-Dist: pytest>=7.2; extra == "test"
|
|
13
13
|
Dynamic: license-file
|
|
@@ -9,6 +9,7 @@ siepic_forge/technology.py
|
|
|
9
9
|
siepic_forge.egg-info/PKG-INFO
|
|
10
10
|
siepic_forge.egg-info/SOURCES.txt
|
|
11
11
|
siepic_forge.egg-info/dependency_links.txt
|
|
12
|
+
siepic_forge.egg-info/entry_points.txt
|
|
12
13
|
siepic_forge.egg-info/requires.txt
|
|
13
14
|
siepic_forge.egg-info/top_level.txt
|
|
14
15
|
siepic_forge/library/GCs_BB.gds
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_splitter_swg_assist_te1310.gds
RENAMED
|
File without changes
|
{siepic_forge-1.2.2 → siepic_forge-1.3.0}/siepic_forge/library/ebeam_splitter_swg_assist_te1550.gds
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|