AWG Simulation

In this guide we explain the workflow of an AWG simulation, starting from a high-level simulation strategy, which we then break down into different pieces. We also emphasize the parameters that have the largest influence on the simulation results, so that you can easily make design variations and study the impact of different design choices.

High-level AWG simulation strategy

The exact AWG topology doesn’t matter for the high-level simulation strategy, and for the remainder of this guide we will consider an AWG with 1 input and M outputs (1 -> M AWG), together with N grating arms. A schematic image is shown below.

High-level AWG simulation strategy

An AWG conceptually contains three parts, which are outlined below. Since each of these parts is passive, we can represent them with a wavelength-dependent S-matrix. The S-matrices can be further combined (using our circuit simulator Caphe) in order to retrieve a complete model.

Component Simulation strategy

Input star coupler


The (1+N)x(1+N) S-matrix is simulated by simulating the apertures and the slab region: Star coupler simulation

Waveguide array


The waveguide array is simulated by simulating the individual waveguides using a model provided by the foundry / PDK (or optionally your own waveguide models). Waveguide array simulation

Output star coupler


The (M+N)x(M+N) S-matrix is simulated by simulating the apertures and the slab region: Star coupler simulation

Star coupler simulation

The star coupler simulation consists of two parts: the aperture and the star coupler region. After both are simulated, we construct the S-parameters of the star coupler using modal overlaps.

Simulation of the apertures

For the apertures, we want to know two things:

  • the transmission as a function of wavelength, and
  • the aperture field profile, which is used as slab excitation
Aperture Layout Simulation (default: camfr) Aperture field profile

The simulation is by default performed with CAMFR. In this case, it does 1D mode solving, and 2D EME (eigenmode expansion) propagation. At the end of the aperture, light enters the FPR (Free Propagation Region) with a certain field profile (rightmost picture above). The aperture field profile is calculated by expanding the output of the mode profile of the aperture into the slab modes (this could e.g. lead to losses due to vertical mode mismatch).

Note: the field profile is also used to calculate the spreading angle. The diffraction angle is a parameter of the design algorithm.

Parameters that impact the simulation of the aperture

Simulation of the star coupler region

The aperture field profile is launched into the star coupler region. IPKISS AWG Designer uses Rayleigh-Sommerfeld diffraction to propagate through the slab region, an algorithm that is formulated for 2D, and is accurate for wide-angle slabs. Currently there are no roundtrips simulated; only a single pass is done.

Star coupler S-parameter calculation using mode overlaps

Modal overlaps are used for measuring the field overlap and power coupling between an input mode from one port and all of the modes of a second port. The fields are evaluated at the output side of the star coupler, where we calculate the modal overlap between the propagated fields and the field profile of the output apertures.

Mode overlap calculation

Calculating the modal overlap between the field at the output of the star coupler and the field profile of an output aperture.

The output of this modal overlap determines the complex-valued transmission from the mode at the inset of the star coupler (from the input aperture) to the mode at the output of the star coupler. We then account for the complex-valued transmission of the apertures themselves to end up with the final S-parameter values of the full star coupler (including apertures).

Parameters that impact the simulation of the star coupler

  • Aperture field profile: the exact field profile shape has a large impact on the final simulation result. This field propagates through the FPR, and on the other side, modal overlaps are performed between the propagated field and the field profiles of the output apertures. Hence, the field profile has a significant impact on the shape of the AWG transmission (this is easy to see when you use MMI input apertures, which are typically used to design flat-top filter characteristics).
  • The loss in the aperture has an impact on the overall AWG transmission.
  • The slab material index: this determines the propagation through the slab. Either there are defined manually (awg_designer.all.SlabTemplate.SlabModes), or simulated with camfr (awg_designer.all.SlabTemplate.SlabModesFromCamfr). When designing the AWG, the position of the output apertures depends on the slab effective index (see

Waveguide array simulation

The waveguides are simulated individually using the models provided by the PDK which you are using. There is currently no cross-talk simulated between the waveguides.

In most cases, waveguides are described analytically using a phase propagation which is determined by the length of the waveguide, the wavelength-dependent effective index \(n_{eff}(\lambda)\) and a loss parameter (which might be wavelength-dependent).

Some models may include phase errors caused by variations of thickness, width or refractive index along the waveguide. In that case, the simulation results will clearly show that the crosstalk levels go up - indeed, AWG devices are very sensitive to the waveguide quality (and for that reason, in certain AWG configurations, the waveguide widths are expanded in the straight sections in order to reduce loss and phase errors).

Please check the IPKISS manual delivered with the foundry handbook to read more about how the waveguides are modeled.

In case you may want to write your own waveguide models, you can check out the SiFab library as a reference and check the documentation on how to build compact models.

Parameters that impact the simulation of the waveguides

  • The waveguide wavelength-dependent effective index: \(n_{eff}(\lambda)\).
  • The way the waveguides are constructed: we use TaperedWaveguide to segment the waveguide into different pieces, each of them comes with its own compact model.