4. 光波导基础:单模条件、有效折射率、模式分布、弯曲损耗

做硅光集成设计,波导是你绕不开的第一道坎。我入行那会儿,第一个项目就栽在波导尺寸上——画了个自认为完美的MZI,结果流片回来发现波导跑成了多模,干涉条纹乱七八糟。嗯,从那以后我才真正把“单模条件”这玩意儿刻进脑子里。

今天这节,我们就用Lumerical Mode把波导的四个核心参数摸透:单模条件、有效折射率、模式分布、弯曲损耗。你跟着我跑一遍仿真,以后画版图心里就有数了。

4.1 单模条件——不是越细越好

说白了,单模条件就是光在波导里只传一种模式。对于最常见的条形硅波导(Si脊高220 nm,埋氧层2 μm),单模通常靠宽度来卡。

我个人的经验口诀:
TE0单模:宽度 ≤ 500 nm(典型450 nm)
TM0单模:宽度 ≤ 350 nm

你可能会问:“那宽度再小点不是更安全?” 别急——宽度太窄,光会大量泄露到底层SiO₂里,传输损耗反而飙升。我做过一组对比:

波导宽度 (nm)支持的TE模式数基模损耗 (dB/cm)单模?
35013.2✅ 但损耗大
45010.8✅ 推荐
5502 (TE0+TE1)0.5❌ 多模
70030.4❌
避坑提示: 数值仿真时一定要检查neff是否大于包层折射率(SiO₂约1.444)。如果neff低于包层,那已经不是波导模式了,是衬底泄漏模式。我曾经被仿真界面上的“假模式”骗过,直到画版图前复查才发现。

4.2 有效折射率——波导的“身份证”

有效折射率neff听起来玄乎,其实就是光在波导里“感觉”到的平均折射率。它比芯层折射率(Si~3.48)低,比包层(SiO₂~1.444)高。单模波导的neff一般在2.5~2.9之间。

Lumerical Mode里算neff非常方便,我一般用MODE Solutions的“Finite Difference Eigenmode”(FDE)求解器。你设置好波导截面材料、尺寸、波长,它就能给出所有支持模式的neff。

记得有一次,客户要求波导的群折射率ng符合特定值,我直接拿neff对波长求导算出来的:

# Lumerical脚本示例:计算neff和ng
select("FDE");
set("wavelength","1.55e-6");
run;
neff = getdata("FDE","neff");
# 对波长做小扰动求导数
dw = 1e-9;
set("wavelength","1.551e-6");
run;
neff2 = getdata("FDE","neff");
ng = neff - (1.55e-6)*(neff2-neff)/dw;
?"ng = " + num2str(ng[1][1]);
注意: 多模波导里每个模式都有自己的neff,它们彼此相差至少0.01以上才容易区分。如果两个模式neff差小于0.001,极有可能是同一个模式的分裂——检查你的边界条件或网格尺寸是否足够。

4.3 模式分布——光到底在哪儿跑?

模式分布就是光功率在截面上的空间分布。你可以从Lumerical Mode的field profile里看到直观的彩色图。对于TE模式,电场主要沿水平方向偏振;TM模式则是垂直偏振。

下图是我从仿真里提炼出来的典型单模波导模式场分布示意(条形波导450 nm宽,220 nm高,1550 nm):

硅光波导模式分析流程 波导参数输入 材料·尺寸·波长 FDE本征模式求解 扫描neff·模式数 多模?→调整尺寸 单模→继续 提取模式分布·neff TE0/TE1/TM0 场图 ★ 弯曲损耗评估 关键参数: neff, ng, α_bend 光场限制因子

从流程里可以看到,模式分布不仅是“好看”,它还直接决定你波导的弯曲损耗——如果光场太向外扩散,一拐弯就往包层里跑。

4.4 弯曲损耗——半径不是越大越好

做硅光芯片,弯波导是躲不开的。弯曲损耗跟半径成指数关系,但半径太大芯片面积浪费,半径太小损耗爆炸。我一般用Lumerical Mode里的curved waveguide求解器,直接扫描半径得到损耗曲线。

分享一下我常用的经验半径:

  • 条形波导(450 nm宽): 弯曲半径 ≥ 5 μm 时损耗 < 0.01 dB/90°
  • 脊波导(500 nm宽,70 nm刻蚀深度): 弯曲半径 ≥ 10 μm 比较安全
  • 亚微米窄波导(300 nm宽): 小心!半径可能需要 ≥ 8 μm,否则损耗突增

我踩过的一个坑: 在一个AWG设计里,我用了6 μm半径的弯曲波导,仿真看着OK,结果流片后相邻通道串扰 -25 dB,比设计值高了10 dB。后来一查,问题出在波导侧壁粗糙度放大了弯曲区域的散射损耗。从那以后,我只要涉及弯曲波导,都会在Lumerical里特地加一个表面粗糙度模型(scripted surface roughness)来估损。

4.5 Lumerical Mode仿真实战——三步上手

放一个最简单实用的操作流程,你照着做一遍就会了。

  1. 建波导截面: 在MODE Solutions里用rectangle画芯层Si(220 nm厚,宽按你设计),然后用layer加底层SiO₂和上层空气包层。
  2. 设边界条件: 用PML吸收边界(至少8层),网格尺寸在芯层设3~5 nm,包层可以放宽松到20 nm。
  3. 跑扫描: 用eigenmode sweep扫描波长或尺寸,勾选“fundamental mode only”来保证单模。输出neff、损耗、场分布。
# 快速检查单模条件的Lumerical脚本(片段)
clear;
addrect;                  # 画Si芯层
set("x min",-0.225e-6); set("x max",0.225e-6);  # 宽度450nm
set("y min",-0.11e-6);  set("y max",0.11e-6);   # 高度220nm
set("index",3.48);
addlayer;                 # 底层二氧化硅
set("index",1.444);
set("y min",-2e-6); set("y max",0);
# 设置FDE求解器
switchtolayout;
addport;
set("port width",1e-6);
set("wavelength",1.55e-6);
run;
neff_all = getdata("FDE","neff");
? "Number of modes found: " + length(neff_all);
if (length(neff_all) == 1) {
  ? "Single mode condition satisfied!";
} else {
  ? "Multi-mode detected, reduce width or height.";
}
我的小技巧: 仿真弯曲损耗时,不要只跑一个半径就收工。我建议在目标半径周围±2 μm范围扫5~6个点,拟合出指数损耗曲线。当你需要把多个弯曲串在一起时,微小偏差会被放大,提前扫出趋势能省很多返工时间。

到这里,波导的四个基础参数你应该都能从仿真里拿到了。单模条件帮你卡尺寸,有效折射率影响相位,模式分布决定耦合与损耗,弯曲损耗限制版图密度。把这四个参数吃透,后面做MZI、微环、MMI、光栅耦合器才有扎实的地基。