This example shows how to design an edge coupler for coupling light between a single mode fiber and an integrated waveguide on a photonic chip. A parametrized sweep is used to optimize the edge coupler design for maximum coupling efficiency of the fundamental TE mode of the waveguide. The S-parameters results of the edge coupler are then used to generate a compact model in INTERCONNECT.
Understand the simulation workflow and key results
The two common methods for getting light in and out of an integrated photonic chip are via grating couplers or edge couplers. While grating couplers provide a non-destructive solution for coupling light in and out from any location on the chip, their bandwidth can be limited due to dispersive operating principle of grating couplers. Edge couplers require additional cleaving and polishing process to create the coupling facet, but they have the advantage of offering a large operating bandwidth.
The goal of this example is to design an on-chip integrated silicon on insulator (SOI) edge coupler that can efficiently couple light in and out of a conventional SMF-28 optical fiber with the operating wavelength centered at 1550 nm. The cross-section and schematic of the edge coupler used in this example is shown below (taken from reference ).
The edge coupler structure of reference  has 3 important features: (1) three Si3N4 layers to draw the optical field up into the larger waveguide mode that would be more compatible with the fiber mode, (2) an inverse Si taper whose width varies along the length of the device and (3) sub-wavelength grating structures to effectively grade the effective index of the Si3N4 layer down to the effective index of the glass. The key figure of merit (FOM) is the coupling efficiency between the fundamental mode of the waveguide and that of the fiber which is a function of both the effective index mismatch and mode size mismatch. In this example the focus is to optimize the fiber position and Si taper length. For taper design the Eigenmode Expansion (EME) method is used as it allows instant recalculation of s-matrix results when sweeping the length of the device or any portion of the device. The design process consists of 5 main steps below:
- FDE optimization of fiber position via modal overlap analysis
- Initial EME optimization of taper length without the effect of substrate
- Final EME optimization with substrate included
- S-parameter extraction: run to obtain s-parameters as a function of wavelength and export the results to a data file.
- Compact model creation: import the S-parameter data into an optical S-parameter element.
Run and results
Instructions for running the model and discussion of key results
Step 1: FDE optimization of fiber position
- Open Edge_Coupler_No_Substrate simulation file.
- In the “Object tree”, enable the “SMF-28” object and disable the “taper”. Run FDE and calculate modes. Right click on the fundamental TE mode to add to global deck.
- Switch to layout. Disable “SMF-28” and enable the “taper”. Run FDE to calculate modes. Select the fundamental TE mode of the waveguide then click the overlap analysis tap under the eigenmode analysis window. Select the fiber mode that was saved to the global deck and calculate the overlap between the two modes. Click “optimize position” to calculate the optimized fiber position for maximum modal overlap. In this case a 93% overlap is achieved at the fiber’s current position as shown in the screen shot below.
Step 2: Initial EME optimization of taper length without substrate
- Open Edge_Coupler_No_Substrate simulation file.
- Check that the fiber is at the optimum location based on the previous overlap analysis step. Right click on the EME object to “set as active”; this should deactivate the FDE simulation object. Also enable both the “SMF-28” fiber and “taper” objects and run EME. At this point EME calculates all the modes and the overlaps between the different cells. When the EME analysis window pops up, click on “eme propagate”. Once the propagation is complete, visualize the fields from the monitors.
- Set “group_span_2” of the “propagation sweep” option of the EME analysis window to be from 10 to 2000 microns with 100 points. Once the propagation sweep is complete, click “visualize eme sweep” to visualize abs(S21)^2 of the E-field as shown below. Based on this result, a maximum coupling is reached around a length of 1800 microns. Note that tBOX was set to 15um here which keeps the Si substrate outside the EME simulation region.
Step 3: Final EME optimization of taper length including the Silicon substrate
- Open Edge_Coupler_With_Substrate simulation file. Note that tBOX is set to the original 3 micron value which will include the Si substrate in the EME simulation. Run EME. When the EME simulation is completed, run “eme sweep” from 10 to 2000 microns with 100 points. Once the sweep is complete, visualize abs(S21)^2 of the E-field as shown below. The finite BOX thickness results in substrate leakage losses as shown by the drop in peak transmission in the figure below. Also note that longer lengths results in increased substrate leakage and thus the optimum taper length is effectively shorter at around 1500 microns. Please note that the EME results here includes the fiber whereas the result of ref  only includes the edge coupler without the fiber. Moreover, convergence testing is not performed here but should be done for final parameter extraction.
Step 4: S-parameter extraction
- Load the script file Edge_Coupler_write_s_params.lsf in the script file editor and click run. This script sweeps over six different wavelengths in the C-band and at each wavelength:
- It runs the Edge_Coupler_With_Substrate simulation file,
- then runs emepropagate at the optimum taper length of 1500um,
- and finally saves the s-parameter results as a function of wavelength in a format that is compatible for export into INTERCONNECT (see Appendix: S-parameter-extraction for more information).
Step 5: compact model creation
- Open Edge_Coupler_INT simulation file in INTERCONNECT. The data saved in the previous step has been loaded into an optical n port s-parameter element. Click run and view the abs^2(transmission) results of the Optical Network Analyser as shown below. This compact model based on component level design in MODE is now ready to be used in INTERCONNECT circuit level simulations.
Important model settings
Description of important objects and settings used in this model
Fiber to chip interface
In this case, since the fiber cross section is different from the waveguide cross section at the edge of the chip, in order to correctly capture the transmission and reflection at the fiber/chip interface, it is important to have an EME cell on each side of the interface. In this example, the s-matrix results capture the reflections at the fiber/chip interface assuming there is a zero gap. For packaging aware design, the packaging environment around the fiber and the chip should also be simulated such that the s-matrix results include any additional insertion loss.
In this example the sub-wavelength grating structure was not included. Instead it was assumed that a graded profile can be used where the effective index of the Si3N4 layer could be continuously varied from its nominal value down to the effective index of the glass along the length of the device. The spatially graded index from nSi3N4 to nSiO2 is defined by using a formula for the refractive index of the form nSi3N4-(nSi3N4-nSiO2)*(x+L/2)/L where L is the length of the nitride layer.
Most of the loss in this device will come from leakage into the silicon substrate when the mode is very large, near the edge of the chip. It is therefore necessary to include the silicon substrate to optimize the device. Including the substrate makes the EME simulation much more complicated. The reason is that the modes with the highest refractive index found by the eigenmode solver will be the modes fully confined to the silicon substrate. For this reason, we can no longer identify the modes of interest based on those with the highest refractive index. We therefore must explicitly choose the effective index region of interest. By inspection we find that if we look for modes around neff=1.6 the desired modes can be found. In addition, we must explicitly choose the input and output modes at the ports because we can no longer simply ask for the “fundamental” mode. In ports, we use the “user select” mode (Edit EME port-mode selection) and search for the correct fundamental mode; this is most easily accomplished by unchecking “use max index” and setting n to 1.6 which will search for modes around n=1.6. Similarly, in the “EME setup” we’ve used the “Custom setting for cell group 2” option with “use max index” unchecked and set n to 1.6 in the “eigenmode analysis window” that appears.
In this case, setting n=1.6 for the entire cell group allowed us to find the desired mode. However, it can happen that no single value of n works for all the cells in the group. In this case, it is necessary to expand our single cell group into 21 cell groups (with one cell each) so that we can change the eigensolver settings on a cell by cell basis. For example, here we could have chosen to search near n=1.5 near the chip edge, and near n=1.6 at the silicon waveguide. To do this, follow these steps:
- Open the script file setup_index_search_per_cell.lsf and run it. This file will also evaluate the file setup_cell_groups.lsf which must be saved in the same folder. The file setup_cell_groups.lsf contains functions expand_cell_group and collapse_cell_groups which makes it easy to expand and collapse cell groups. Here we call expand_cell_group(2) to expand the 2 nd cell group into 21 individual cells. The file setup_index_search_per_cell.lsf then sets the target n for finding modes to a linear spacing of 1.5 to 1.6 over the 21 cells of the taper.
- Run the EME simulation.
- Since we want to sweep the length of 21 cells at the same time, we cannot use the UI to perform the propagation sweep. Instead, we run the script file sweep_length.lsf which will expand the entire group of cells 2:22 to reproduce the original results, which we see are identical to our previous results:
Typically for tapers we simply use metal boundary conditions. This is counter-intuitive as it is possible for light to reflect from the metal and then recouple back into the fundamental mode of a waveguide. In practice however, there is generally negligible light that recouples back into the fundamental mode and it propagates in higher order, unbound modes outside of the structure. Furthermore, once we have achieved the adiabatic limit, there is very little light that is scattered from the structure because the transmission is close to 100%. The PML does add additional computation complexity, takes longer to run simulations, and can lead to problems with some of the unphysical modes that are supported in the PML. However, it can be worthwhile at a final stage to include PML in the simulation, but it should be done only after all optimization steps are completed. Typically, the inclusion of PML might reduce the transmission by a few percent. Note that in this example, all EME boundaries are set to PML except for the y-min boundary which should stay anti-symmetric. In this example, however, since all radiative losses are going to the substrate, it is also possible to use PML boundaries only on the "z min" boundary which will improve the speed of calculation of the eigenmodes in each cell.
An analysis group is used here to update the geometric primitives of the edge coupler structure. Any changes to the edge coupler parameters must be applied using the interface of the analysis group. The advantage of using analysis groups is that they can apply a single parameter change to multiple primitives, however, they can also override manual changes on individual geometries. The taper parameters used in the analysis group are defined in the script body of the analysis group.
Updating the model with your parameters
Instructions for updating the model based on your device parameters
- Enter the desired source wavelength and target bandwidth into the global port settings.
- Update the fiber dimensions and refractive index values according to your measuring equipment.
- Modify the refractive index values and layer thicknesses according to your fabrication process and the target design polarization (see next section).
- Verify that the selected modes for both ports have the desired polarization; resize the ports if necessary.
- Adjust the number of modes and cells in EME as necessary for your structure. When including the substrate, adjust the effective index to search nearby such that the desired modes in your structure can be found.
Taking the model further
Information and tips for users that want to further customize the model
Edge Coupler Optimization
Coupling coefficient could be potentially improved farther by optimizing other design parameters such as the number, thickness and shapes of the different layers.
Matlab and Python
To support different optimization algorithms, the Matlab and Python APIs can be used to interface other tools such as the Matlab optimization toolbox or SciPy’s optimization package.
Tips for ensuring that your model is giving accurate results
For EME simulations, there are several factors that can affect convergence:
- The number of cells used
- The resolution of the transverse mesh
- The number of modes used
Ideally, we want to get to the point where increasing any of these properties has negligible impact on results. A script can be used to loop over different number of modes, cells or transverse mesh in an automated way. Also, it can be useful to look at the coefficients of forward propagating modes. This will show which higher order modes are used when propagating.
More information can be found in the Convergence testing process for EME simulations page.
Additional documentation, examples and training material
Since 2022 R2, EME can also be run using multiple MPI processes. This capability can significantly improve simulation time. Please refer to this article for more information, including benchmark tests based on this very application example.
- Martin Papes, Pavel Cheben, Daniel Benedikovic, Jens H. Schmid, James Pond, Robert Halir, Alejandro Ortega-Moñux, Gonzalo Wangüemert-Pérez, Winnie N. Ye, Dan-Xia Xu, Siegfried Janz, Milan Dado, and Vladimír Vašinek, “Fiber-chip edge coupler with large mode size for silicon photonic wire waveguides”, Optics Express, Vol. 24, Issue 5, pp. 5026-5038, (2016)
- Grating coupler
- SOI taper design
- Spot size converter
- Convergence testing process for EME simulations
- Python API
- S-parameter simulator (SPS)
- S-parameter matrix sweep feature in KB
- S-parameter file formats
Related Ansys Innovation Courses
Additional background information and theory
S-parameter extraction from component level simulations of passive photonic devices
The S-parameter matrix formalism is a common approach to build compact models of photonic devices to be used in circuit-level simulations . Assuming the response of the device to optical signals is linear, it can be modeled by a network (black box) with multiple network ports, where each of them receives an incoming signal and scatters or reflects an outgoing signal.
We assume the device has N physical ports (which typically are input/output waveguide channels) and each of these supports a certain number of modes of interest. Each element of the S-parameter matrix is the ratio between the complex envelopes of the optical modes in two physical ports. For example, to model the behavior of the fundamental TE and TM modes at the input/output waveguide channels of a 1x2 MMI we need a 6x6 S-parameter matrix, given that there are two modes at each of the three physical ports. Each column of the S-parameter matrix corresponds to a fixed input physical port and mode and each row corresponds to a fixed output physical port and mode.
The approach to extract the S-parameter matrix of a photonic device depends on the solver being used. In both FDTD and EME solvers, port objects can be setup at each of the physical ports. The main differences between the solvers for the S-parameter extraction are:
- FDTD injects one mode in one input port object per simulation, while EME can solve for all the elements of the S-matrix in one simulation;
- FDTD is broadband so many frequency points can be calculated in one simulation, while results from EME are for a single frequency per simulation.
Therefore, in both solvers it is necessary to run sweeps to obtain the full S-parameter matrix at multiple frequency values, either by sweeping over the input physical ports and modes or over the frequency points.
Use the examples in the Application Gallery to determine the appropriate solver for your component. This section describes the recommended approach for S-parameter extraction and export to INTERCONNECT once you have determined the appropriate solver.
In this section we describe how to:
- For FDTD, calculate the S-parameter matrix and save it to a file with the appropriate format to be imported in an Optical N-port S-parameter primitive element in INTERCONNECT.
- For EME, calculate the S-parameter matrix and save it to a file with the appropriate format to be imported in an Optical N-port S-parameter primitive element in INTERCONNECT.
- Optionally, more accurately account for group delay of the device. This is important in elements that will be part of phase-sensitive circuits (for example, cavities, resonating structures and interferometric devices). We will use the group delay specification in the S-parameter file , required for the group delay option in the digital filter of the Optical N-port S-parameter element in INTERCONNECT.
How to extract S-parameters (FDTD) :
- Check that the port objects in the simulation have been set up correctly to collect all the data required for the S-parameter matrix. In particular, make sure that all the desired modes are selected at the ports; the “user select” option in the Modal Properties allows you to pick multiple modes (for example, fundamental TE and TM modes) when necessary for the full S-parameter matrix.
- Create a S-parameter matrix sweep item in the “Optimizations and Sweeps” window with the following settings:
- S-Matrix Setup tab:
- The modes selected at each port are displayed in this tab. Make sure the list is consistent with the physical ports and modes you want to include in the S-parameter matrix (see step 1).
- The option “Excite all ports” is enabled by default, which means that a simulation will be run for every port and mode in the list to calculate each column of the S-parameter matrix. To reduce the number of simulations you can map between columns taking advantage of symmetries in the structure. If that is the case, disable the “Excite all ports” option and click on the “Auto symmetry” button to let the solver determine the appropriate mapping based on the port locations. In some cases adjustments to the mapping are required so it is always recommended to review the settings after applying auto symmetry.
- INTERCONNECT Export Setup tab:
- Select the “Custom define” option to define the mode ID and port location properties.
- The file export automatically assigns a mode ID to each mode. It is often necessary to manually set the mode ID so they are consistent with the orthogonal identifier convention to be used in INTERCONNECT. This is important, for example ,when connecting the Optical N-port S-parameter element to an Optical Network Analyzer (ONA) in INTERCONNECT. The setting for the excitation mode in the ONA is the “orthogonal identifier” property in the “Waveguide” section. The typical convention is to use “orthogonal identifier” = 1 for the fundamental TE mode and “orthogonal identifier” = 2 for the fundamental TM mode.
- S-Matrix Setup tab:
- After running the S-parameter sweep, the “Visualize” and “Export to INTERCONNECT” options become available in the context menu of the S-parameter sweep item. The “Export to INTERCONNECT” option allows you to generate a text file with the S-parameters. This file has the format required by the Optical N-port S-parameter primitive in INTERCONNECT without group delay specification, which is appropriate when the phase or group delay of the device are not critical for the compact model.
- If phase and group delay are critical, the group delay can be estimated by calculating the slope of the phase as a function of frequency at the center frequency/wavelength. The script add_group_delay_FDTD_Spar.lsf takes as input the S-parameter text file created in step 3 and modifies it to include the group delay. For more information see the section S-parameter extraction for group delay option in INTERCONNECT below.
How to extract S-parameters (FDTD) :
- Create a parameter sweep in the “Optimizations and Sweeps” window with “model::EME::wavelength” as a parameter and “::model::EME::user s matrix” as a result; this sweep will run multiple simulations with different wavelengths. An alternative is to use the “Wavelength sweep” feature in the EME Analysis window , which will use only one simulation to quickly estimate the S-parameters over a given wavelength range; however, this feature should not be used to obtain final results as the accuracy of the calculation depends on the type of simulated structure.
- Examples that use EME include a script that exports S-parameters in the format required by the Optical N-port S-parameter primitive. In the script you need to provide the INTERCONNECT port definitions (names and locations) and the S-parameter file name. The following actions are performed by the script:
- Run the parameter sweep for wavelength, collect the results and write them in the text file with the appropriate format.
- In situations where the phase and group delay are critical, the script will also run the simulation and the EME propagation for the center wavelength with the option “calculate group delays” enabled. The group delay is added to the text file and the S-parameter phase is corrected as explained below in the section S-parameter extraction for group delay option in INTERCONNECT .
- The output of the script is the S-parameter text file in the correct format ready to be imported in INTERCONNECT.
S-parameter extraction for group delay option in INTERCONNECT
Some photonic circuits rely on controlling the phase of the optical signal traveling through the different components; therefore, the phase of the S-parameters can be very important. There are a couple of challenges to capture the phase correctly in the Optical N-port S-parameter primitive in INTERCONNECT:
- Spectral sampling of the phase in the S-parameter data: Typically, the variation of the phase as a function of frequency is mostly linear with a slope that is proportional to the group delay (the delay of the optical signal between two ports). Therefore, in long devices the phase can change very quickly with frequency, and a fine sampling in frequency would be necessary to avoid phase changes greater than \( 2 \pi \) so that the phase has the correct slope after unwrapping it. This is important for both frequency- and time-domain simulations in INTERCONNECT.
- Capturing the correct group delay and frequency dependence of the S-parameters in INTERCONNECT time-domain simulations: For time-domain simulations the most common type of filter used in the Optical N-port S-parameter primitive is the finite impulse response (FIR) one, which has multiple options for the estimation of taps. The choice depends on what is the most significant aspect of the element response to be captured in the circuit simulations. In elements where the phase is important, typically it is necessary to capture both the group delay and the frequency dependence of the S-parameters correctly.
The “group delay” option for the “number of taps estimation” in the digital filter settings of the Optical N-port S-parameter primitive provides solutions to both challenges:
- The group delay is captured correctly without requiring a fine spectral sampling of the S-parameters by using group delay estimates provided by the user for each S-parameter matrix element at the center frequency/wavelength.
- In most cases, the FIR filter in time-domain simulations can capture the group delay and frequency dependence of the element response more accurately with the "group delay" option, compared to other options for tap estimation. With the "group delay" option, the number of taps available to the filter depends on the sample rate of the INTERCONNECT simulation and the group delay estimate provided by the user: for a given sample rate, there are more taps available for larger group delays. Since most photonic devices are long compared to the wavelength of the signal, typically the number of available taps is not a concern. Only in cases where the device is relatively short, it might be necessary to increase the sample rate.
Compared to the regular file format for S-parameter files in INTERCONNECT, the group delay option requires a slightly different format , which includes the group delay estimate in the header of each S-parameter data block; furthermore, the phase provided in the file needs to be adjusted to remove the linear contribution associated with the group delay estimate. The previous section describes how this type of file can be generated when using FDTD or EME for the S-parameter extraction. For more information on the group delay option see the discussion here .