All guides

Guide

How to design a silicon ring filter

Drop one 100 GHz channel from an eight-channel grid

Widths and gaps drawn
throughdropaddR 10 µm10 µmLight is launched into this waveguide.in

Ctrl/⌘ + scroll to zoom · Drag to pan

in

through

drop

A silicon ring between two bus waveguides, in the filter this guide designs: the plan's eight channels, 100 GHz apart, enter at the input, the channel the ring picks leaves at the drop port, and every other channel continues to the through port, with colored arrows along the paths and each strip shading a channel by its power relative to the input. Tune the ring with its heater and its resonances move across the grid, so a different channel drops; the add port is not used here.

One optical fiber carries many wavelength channels at once. At a node of the network one of them has to come off the fiber while the rest travel on. A ring resonator is the smallest silicon filter that does it: light at the ring's resonance crosses from the input bus into the ring and leaves at the drop port, and every other channel stays on the bus and leaves at the through port. (New to ring filters? The Academy's ring resonator tutorial covers the free spectral range, the drop and through ports, and critical coupling.)

By the end of this guide you will have that filter for an eight-channel, 100 GHz grid: its waveguide, its radius and its coupling gap, checked against every line of the spec.

Two numbers make this filter: the ring's radius and the gap between the ring and its bus waveguides. The radius comes straight from the channel plan. The gap is the hard one. Too wide a gap and the bandwidth is too narrow for the channel; too narrow a gap and the neighbors leak into the drop port. Between the two is a window 38 nm wide, and where that window sits depends on how accurately the coupling is computed.

Every step runs on this page, in widgets built from three tools: the PIC Waveguide Mode Solver, the PIC Directional Coupler Simulator and the Ring Resonator Calculator. Each step also says how to do the same thing in the tool itself.

The spec

The channel plan is the ITU-T fixed grid: channels at 193.1 + n × 0.1 THz, and eight of them, n = 0 to 7. The parameter names are the ones ITU-T G.671 uses for an optical add-drop multiplexer. G.671 leaves the values to the system designer, so the values below are ours.

ParameterValueWhere it comes from
Channel grid100 GHz spacing, 8 channels from 193.1 to 193.8 THzITU-T G.694.1; the count is ours
Free spectral rangemore than 800 GHzno second resonance on another channel of the plan
3-dB bandwidth (the passband)at least 10 GHzours
Adjacent and non-adjacent isolationat least 20 dBours
Input-to-drop insertion lossat most 1 dBours
Through-port extinction of the dropped channelat least 20 dBours
Propagation loss1.48 dB/cma published silicon foundry figure (Siew et al., 2021)
ModeTE0ours

The waveguide is a 500 × 220 nm silicon strip on oxide, with oxide above as well. Oxide cladding is a deliberate choice: with air above, the same strip couples much more weakly at the same gap, and the 10 GHz bandwidth would need a far narrower gap.

Step 1

The waveguide: its modes and its group index

The strip's guided modes at 1550 nm

Effective index engine, computed as you change the strip

w 500 nmt 220 nmSiSiO₂SiO₂200 nm

Ctrl/⌘ + scroll to zoom · Drag to pan

The strip in cross-section, 500 × 220 nm: Si on SiO₂, SiO₂ above. It follows the width and cladding you set.

|ψ|² (rel., peak = 1)

Effective index

Moden_effn_g
TE02.49324.0306
TM01.84823.8500
TE11.58792.8799

Full-vectorial, Standard mesh The guide’s own run

Moden_eff
TE02.4469
TM01.7730
TE11.4938

Our run on the guide's strip, SiO₂ above. Run it yourself in the PIC Waveguide Mode Solver (Full-vectorial engine, FDE Pro)

Carried to the ring:

Set the top cladding to SiO₂ and solve. In practice the strip is single-mode for TE. TE0 is the ring's mode, with an effective index of 2.4469. TE1 sits at cutoff: its effective index, 1.494, is barely above the oxide's 1.444, so its field spreads far into the oxide. TM0 is guided, but a TE input does not excite it. (What guided modes and the effective index are.)

How to do it in the tool

In the PIC Waveguide Mode Solver: Preset, SOI Strip 220; Top Cladding, SiO₂; Wavelength (nm), 1550; Engine, Full-vectorial; Mesh (nm), Standard. The Guided Modes table lists TE0 at 2.4469, TM0 and TE1.

The number the ring needs is the group index. It sets both the ring's free spectral range and its bandwidth, which both scale as 1/n_g. Run the wavelength sweep and read n_g at 1550 nm: 4.1948.

TE0 from 1500 to 1600 nm

Our Full-vectorial run on the guide's strip

The guide’s own run
Full-vectorial at 1550 nm: n_eff 2.4469, n_g 4.1948.
How to do it in the tool

In the PIC Waveguide Mode Solver, open vs Wavelength: λ min (nm) 1500, λ max (nm) 1600, Number of points 11. On Full-vectorial at Standard, n_g at 1550 nm reads 4.1948.

Carried to the next steps: n_eff and n_g at 1550 nm.

Step 2

The radius, from the channel plan

The ring's comb over the channel plan

Computed with the Ring Resonator Calculator's model; the dropped channel sits at zero offset

Widths and gaps drawn
throughdropaddR 10 µm10 µmLight is launched into this waveguide.in

Ctrl/⌘ + scroll to zoom · Drag to pan

The ring from above, R 10 µm, with its input and drop buses. It follows the radius you set here and the gap from step 3.

n_eff 2.4469, n_g 4.1948 (Full-vectorial, step 1); κ² 0.0369 at gap 140 nm (Full-vectorial, step 3)

FSR

1137 GHz

Adjacent channel

23.0 dB

Worst channel of the plan

23.0 dB, channel 1

  • passFSR > 800 GHz
  • passEvery channel of the plan ≥ 20 dB below the dropped one

The ring repeats its resonance every free spectral range. If a second resonance lands on another channel of the plan, the filter drops that channel too. The plan spans 700 GHz, from channel 0 to channel 7. The FSR has to be at least 800 GHz, the span plus one channel spacing, so that the next resonance sits a full spacing past the far channel rather than on it. With n_g = 4.1948 that holds for any radius up to 14.2 µm. Take R = 10 µm: the FSR is 1137 GHz.

What goes wrong with a bigger ring. A bigger ring couples more strongly at the same gap (κ² = 0.0719 at 140 nm for R = 20 µm, against 0.0369 at 10 µm), which would move the gap window to a wider, easier gap. At R = 20 µm the FSR falls to 569 GHz. The next resonance then lands 31 GHz from channel 6 of the plan, and that channel reaches the drop port only 13.2 dB below the dropped one, against the 20 dB spec. The adjacent channels still pass (22.7 dB), so the check most people run first passes while the plan fails. Set R to 20 in the widget and watch the comb walk onto the grid.

The loss. Type 1.48 dB/cm and no bend loss: at R = 10 µm the bend loss of TE0 is below the Mode Solver's floor of 6e-7 dB per 90° (under 4e-4 dB/cm), far under the propagation loss, so the ring's loss is the waveguide's.

How to do it in the tool

In the Ring Resonator Calculator: Add-drop; Radius, center line (µm), 10; Propagation loss (dB/cm), 1.48; Effective index n_eff and Group index n_g from step 1. The card's FSR reads 9.14 nm and 1137 GHz.

Carried to the next step: R.

Step 3

The gap

κ² against the gap, ring-bus arc

R 10 µm from step 2; the shaded band is the spec's window

Widths and gaps drawn
1 · in23 · through4 · crossgap 140 nmR 10 µm2 µm

Ctrl/⌘ + scroll to zoom · Drag to pan

The ring-bus arc from above: the bus and the ring at R 10 µm, 140 nm apart at their closest point. It follows the gap you set.
At gap 140 nmκ²3-dB bandwidth
Full-vectorial (ours)0.036914.0 GHz

The ring with the Full-vectorial κ²: adjacent channels 23.0 dB below the drop.

Sweep the gap. The window is two-sided. At this group index and loss, the bandwidth reaches 10 GHz at κ² = 0.0262, and the neighbors reach −20 dB at κ² = 0.0523. Every κ² in between meets both lines. On the Full-vectorial curve that window is a gap of 121 nm to 159 nm. (How the coupler computes a ring-bus arc.)

Choose the gap. Aim at the window's geometric center, κ² = 0.0370; the geometric center leaves the same factor of margin to both lines. On the Full-vectorial curve that κ² sits at a gap of 140 nm. Take 140 nm: κ² = 0.0369 at 1550 nm.

Toggle: the Effective index engine. The browser's Effective index engine is quick, and it is the wrong tool for this gap. It puts TE0's effective index at 2.4932 against the Full-vectorial 2.4469, and its group index 4.0306 is 3.9 % low, an error that carries straight into the FSR and the bandwidth. On the gap it is further off. Its window is 166 nm to 207 nm, which does not overlap the Full-vectorial one; 6.7 nm separate them. Across the window its κ² runs 2.1 to 2.4 times the Full-vectorial one at the same gap. Take the gap at the center of its window, 186 nm: the Full-vectorial engine reads κ² = 0.0162 there, a bandwidth of 6.3 GHz, outside the spec. Type that κ² into the ring widget in step 4 and the bandwidth line turns red. (How the two engines and their meshes work.)

What a gap below the window does. At 115 nm the coupler gives κ² = 0.0584. The bandwidth widens to 22.2 GHz, and the neighbors rise to 19.0 dB below the drop, past the 20 dB line. Type 115 into the widget and watch the neighbor channels climb in the drop spectrum.

How to do it in the tool

In the PIC Directional Coupler Simulator: Preset, SOI Strip 220 (oxide-clad); Coupling region, Ring-bus arc, R 10 µm; TE, 1550 nm. Tick Parameter sweep and sweep the gap. Type 0.0370 into Target κ²: Full-vectorial gives about 140 nm, Effective index about 186 nm. At gap 140 nm, Full-vectorial κ² reads 0.0369.

Carried to the next step: the gap, 140 nm.

Step 4

Checking the gap across the band

κ² is not one number. The coupling grows with wavelength: across 1500 to 1600 nm the arc's κ² at 140 nm rises from 0.0245 to 0.0572, a factor of 2.33. A ring draws many resonances, and each one sees the κ² at its own wavelength, so the ring takes the coupler's whole wavelength sweep rather than one value. (How the ring reads κ² between wavelengths.)

The ring fed the coupler's κ² at each wavelength

Our coupler sweep, imported into the ring

The guide’s own run

3-dB bandwidth

14.5 GHz

Adjacent isolation

22.6 dB

Insertion loss

0.23 dB

Extinction ratio

31.5 dB

FSR

1137 GHz

Critically coupled: critical at κ₁² ≈ 0.0404 with κ₂² held at 0.0383; yours is 0.0383 on both buses.

Equal couplers are exactly critical only in a ring without loss; yours is within the tolerance.

The imported κ² changes with wavelength, and the regime differs at other resonances in the plotted range.

κ² from our Full-vectorial coupler sweep on the Coarse mesh at 3 wavelengths, 1500 to 1600 nm, imported into the ring: card and spectrum as the ring computes them.

The result. Light at the channel's wavelength leaves through the ring's drop port with a 3-dB bandwidth of 14.5 GHz and 0.23 dB of loss. The neighboring channels, 100 GHz away on either side, reach the drop port 22.6 dB weaker than the channel itself, and the through port loses the channel by 31.5 dB. The next resonance of the ring sits 1137 GHz away, past the far end of the grid, so the ring answers to one channel only.

About this sweep's mesh

This sweep was computed on the Coarse mesh. At 1550 nm its κ² differs by +2.3 % from the Standard mesh value the gap was chosen on; the card and spectrum use the Coarse values.

With the sweep in the ring, the card's resonance sits at 1551.72 nm, where the ring reads κ² = 0.0383 (the sweep runs at Coarse, which reads κ² at 1550 nm about 2.3 % above step 3's Standard run; see About this sweep's mesh). Read the card against the spec:

Spec lineThe filter
FSR > 800 GHz1137 GHzpass
3-dB bandwidth ≥ 10 GHz14.5 GHzpass
Adjacent isolation ≥ 20 dB (±100 GHz, worse side)22.6 dBpass
Non-adjacent isolation ≥ 20 dB (worst channel, ±200 GHz)28.2 dBpass
Drop loss ≤ 1 dB0.23 dBpass
Through-port extinction ≥ 20 dB31.5 dBpass
Couplingthe badge reads Critically coupledpass

The badge reads Critically coupled: the through port falls to −31.5 dB at the resonance, inside the badge's −30 dB line. Two identical couplers would be exactly critical in a ring without loss; the waveguide's 1.48 dB/cm loss is what leaves the through port at −31.5 dB rather than at zero.

The bandwidth changes with κ² across the plotted range. Look at the first and last resonances in the spectrum: the one at 1533.7 nm has a 12.5 GHz bandwidth, and the one at 1570.2 nm has 17.0 GHz, against the card's 14.5 GHz. That is why the badge adds that the regime differs at other resonances in the plotted range.

How to do it in the tool

In the PIC Directional Coupler Simulator, on your ring-bus arc at gap 140 nm: Engine, Full-vectorial; Mesh, Coarse; tick Wavelength sweep, λ min 1500 nm, λ max 1600 nm. Run, then Save. In the Ring Resonator Calculator: Import from Directional Coupler, pick the design, Apply. The card's 3-dB bandwidth reads 14.5 GHz.

Your design

Width
500 nm
Radius
10 µm
Gap
140 nm
κ² at 1550 nm
0.0369

Your filter against the spec

The guide's design passes every line; change a step and its lines re-check.

  • passFSR > 800 GHz
  • pass3-dB bandwidth ≥ 10 GHz
  • passAdjacent isolation ≥ 20 dB
  • passEvery other channel ≥ 20 dB
  • passDrop loss ≤ 1 dB
  • passThrough-port extinction ≥ 20 dB

Step 5

Your design in the tool

Your filter is finished on this page. To keep working on it in the Ring Resonator Calculator, follow the link. The link carries every value you set on this page: send it to a colleague and it opens your ring, computed, with no account needed.

Why the resonance is not on 193.1 THz yet. The resonance lands where the waveguide's effective index puts it, and fabrication moves that index: Rizzo et al. put foundries' 3σ width variation at ±10 nm. A heater on the ring moves the resonance onto the grid.

Sources

  • ITU-T G.694.1 (10/2020), Spectral grids for WDM applications: DWDM frequency grid, §6 and §7, Table 1.
  • ITU-T G.671 (11/2025), Transmission characteristics of optical components and subsystems, §3.2.2 and Table 6.1.
  • S. Y. Siew et al., "Review of silicon photonics technology and platform development," J. Lightwave Technol. 39, 4374 (2021), Fig. 6.
  • A. Rizzo et al., arXiv:2205.11481 (2022), p. 2, the width-variation statement.