Wavephonotics YAMLs: cross-section#
Below is the breakdown of an exemplary YAML file for cross-section definition, for Si_220nm_active platform in this case. The original file can be found here. The described cross-sections also exist as GDS files with identical names within the same folder folder.
First, we start by defining strip_1310nm_TE, a strip waveguide cross-section designed to work for TE mode at 1310nm.
- name: strip_1310nm_TE
xs_type: strip
width: 0.4
materials: Si
minimum_bend_radius: 10
layers:
- layer:
- 3
- 0
offset: 0
width: 0.4
modes:
- mode_numbers:
- 0
- 0
polarisation: TE
wavelength: 1310
- mode_numbers:
- 0
- 0
polarisation: TM
wavelength: 1310
xs_type needs to be chosen from the allowed list of cross sections. We define the total width of the cross-section width, the materials and minimum bend radius. The layers field involves the geometries (position and width) of the layers that constitute the cross-section. For this strip cross-section, we only have GDS Layer 3/0 (the layer entry), 0.4 microns long (width: 0.4), sitting at the centre of the cross section (offset: 0).
We move on to define modes, this will include all the modes that this cross-section supports. A certain cross-section will be able to support across a broad wavelength regime, of course, but we are only interested in the wavelengths that are interesting to simulate (extract the s-parameters for). Usually this boils down to a short spectral range around the design wavelengths of the component set, here the o-band. This cross-section supports a TE and TM mode at 1310nm, hence we define two mode entries for TE_00 and TM_00 at 1310nm.
Moving on to a rib cross-section, we have:
- name: rib_1310nm_TE
xs_type: rib
width: 10.4
materials: Si
minimum_bend_radius: 25
layers:
- layer:
- 3
- 0
offset: 0
width: 0.4
- layer:
- 5
- 0
offset: 0
width: 10.4
modes:
- mode_numbers:
- 0
- 0
polarisation: TE
wavelength: 1310
As the rib waveguide is comprised of a narrow rib (layer 3/0, 0.4 microns wide) and a wide slab (defined by the protection layer 5/0, with a total width of 10.4 microns), we will need to define two layer entries. These layers are concentric (offset s are 0). Another difference with strip_1310nm_TE is the lack of TM mode definition here - rib_1310nm_TE simply does not support the TM mode.
Next, we define the remaining optical cross-sections:
- name: strip_1550nm_TE
xs_type: strip
width: 0.45
materials: Si
minimum_bend_radius: 10
layers:
- layer:
- 3
- 0
offset: 0
width: 0.45
modes:
- mode_numbers:
- 0
- 0
polarisation: TE
wavelength: 1550
- mode_numbers:
- 0
- 0
polarisation: TM
wavelength: 1550
- name: rib_1550nm_TE
xs_type: rib
width: 10.45
materials: Si
minimum_bend_radius: 25
layers:
- layer:
- 3
- 0
offset: 0
width: 0.45
- layer:
- 5
- 0
offset: 0
width: 10.45
modes:
- mode_numbers:
- 0
- 0
polarisation: TE
wavelength: 1550
We then define the electrical contacts for the heaters (see Heater component) and the detectors (see Isolated Detector component). For metal layers, we use minimum_bend_radius: 0.
- name: dc
xs_type: dc
width: 80
materials: metal1
minimum_bend_radius: 0
layers:
- layer:
- 13
- 0
offset: 0
width: 80
- name: detector
xs_type: dc
width: 100
materials: metal1
minimum_bend_radius: 0
layers:
- layer:
- 13
- 0
offset: 0
width: 100
Lastly, we define the modulator connections, which are expected to support the modulator for 28 Gb/s operation - hence deeply in the RF regime. RF contact are usually defined together to allow for custom routing options that preserve path differences. We use xs_type: png because the port has a positive - negative - ground geometry. We also define the three contact regions under the cross-section through setting different offsets - (see SOI220nm_1310nm_TE_MZI_Modulator)
- name: modulator_tri
xs_type: png
width: 269
materials: metal1
minimum_bend_radius: 0
layers:
- layer:
- 13
- 0
offset: -100
width: 69
- layer:
- 13
- 0
offset: 0
width: 69
- layer:
- 13
- 0
offset: 100
width: 69
All of the cross-sections defined here have corresponding GDS files to help with parsing the YAML files. The GDS file for a cross-section should contain a 50 micron-long structure along x-axis, with the profile alongside y-axis is defined by the corresponding cross-section.