第四章 无源器件设计:MMI分束器、定向耦合器、光栅耦合器设计要点

好,咱们今天聊聊无源器件。说实话,硅光芯片里最基础也最考验功夫的,就是这几个玩意儿:MMI分束器、定向耦合器、还有光栅耦合器。你想想看,一个芯片上几百个器件,要是分束器多损耗了0.5个dB,整个链路的光功率预算就崩了。我当年刚入行时,就吃过这个亏。

4.1 MMI分束器:多模干涉的玄机

MMI,全称是多模干涉耦合器。说白了,就是利用多模波导中的自映像效应,把光分成两路或多路。我个人习惯把MMI叫做“硅光里的分光神器”,因为它工艺容忍度高,带宽也宽。

4.1.1 设计核心参数

设计MMI时,有三个参数你得盯紧了:

  • 宽度W_mmi:决定了支持多少个模式。一般2×2 MMI,宽度取3-5μm就够了。
  • 长度L_mmi:这是关键。长度不对,分光比就歪了。公式是L = (3 * L_π) / 2,其中L_π是拍长。
  • 锥形过渡区:从单模波导到多模区的渐变,长度至少20μm,不然会有高阶模式激发。

重要经验:我建议你在仿真时,把宽度和长度都扫一遍。宽度步长0.1μm,长度步长0.5μm。你会发现,最优解往往不在理论值上,因为工艺偏差会拉偏。

4.1.2 仿真与优化

我用的是Lumerical的FDTD或者EME。嗯,这里要注意:MMI的仿真网格要设得密一些,尤其是锥形区。我曾经因为网格太粗,仿真结果和实测差了2个dB,后来才发现是网格问题。

# 一个简单的MMI参数扫描脚本(Lumerical脚本语言)
switchtolayout;
select("MMI_2x2");
set("width", 4e-6);  # 宽度4μm
for (length = 10e-6:0.5e-6:20e-6) {
    set("length", length);
    run;
    # 记录分光比和损耗
    split_ratio = getresult("monitor1", "T");
    print("Length: " + num2str(length*1e6) + " μm, Split ratio: " + num2str(split_ratio));
}

避坑指南:我曾经在2×2 MMI里,把输入波导放在正中间,结果分光比死活是50:50。后来才发现,输入波导要偏移一点,才能得到真正的3dB分束。偏移量一般是W_mmi/6。

4.2 定向耦合器:耦合长度的艺术

定向耦合器,靠的是两根波导靠得很近,通过倏逝波耦合。你想想看,两根波导间距只有200nm,光就能“跳”过去。这玩意儿比MMI更紧凑,但工艺容忍度差一些。

4.2.1 设计要点

参数 典型值 影响
波导间距gap 150-300 nm 间距越小,耦合越强,但工艺难度大
耦合长度L_c 10-50 μm 决定了分光比,L_c = π/(2κ)
波导宽度 450-500 nm 影响模式分布和耦合系数κ

我个人习惯是先算耦合系数κ。κ跟波长、波导间距、折射率都有关系。公式我就不列了,你直接用FDTD扫一下gap和L_c,比手算快得多。

4.2.2 工艺偏差的应对

定向耦合器最怕什么?怕刻蚀偏差。gap只要偏了10nm,分光比就偏5%。我遇到过最惨的一次,流片回来定向耦合器变成了直通波导,因为gap做大了。

警告:定向耦合器的设计,一定要留裕量。我建议你把目标分光比设在45:55,而不是50:50。这样即使工艺偏了,也能落在45:55到55:45之间,勉强能用。

4.3 光栅耦合器:光纤到芯片的桥梁

光栅耦合器,说白了就是在波导上刻一排小齿,把光从垂直方向耦合进波导。这玩意儿是硅光芯片的“大门”,设计不好,整个芯片的光都进不来。

4.3.1 设计参数

  • 周期Λ:决定了耦合角度。公式是Λ = λ / (n_eff - n_clad * sinθ)。一般周期在600-700nm。
  • 占空比:齿宽与周期的比例。50%占空比是最常见的,但优化后可以到60%。
  • 刻蚀深度:部分刻蚀还是完全刻蚀?我建议用部分刻蚀,深度70-100nm,耦合效率更高。
  • 光栅长度:一般10-20个周期就够了,太长反而会引入额外损耗。

4.3.2 耦合效率优化

光栅耦合器的效率,理论上可以到90%以上,但实际能做到70%就不错了。为什么?因为向上耦合的光和向下耦合的光会互相干涉,有一部分光跑到衬底里去了。

我教你一个技巧:在光栅下面加一个布拉格反射镜,或者用SOI衬底加一个空气槽,可以把向下跑的光反射回来。这样效率能提升5-10%。

# 光栅耦合器的FDTD仿真设置要点
# 1. 光源用高斯光束,入射角8-15度
# 2. 监视器放在波导输出端,记录透射率
# 3. 扫描周期和占空比,找到最优组合

# 参数扫描示例(伪代码)
for period = 600e-9:10e-9:700e-9:
    for duty = 0.4:0.05:0.7:
        set_grating(period, duty)
        run_fdtd()
        efficiency = get_transmission()
        print("Period: " + period + ", Duty: " + duty + ", Eff: " + efficiency)

个人经验:我曾经做过一个C波段的光栅耦合器,仿真效率85%,实测只有62%。后来发现是光纤的模场直径和光栅不匹配。解决办法是在光纤端面加一个透镜,或者优化光栅的齿形,做成非均匀的。

4.4 三种器件的对比与选型

器件 优点 缺点 适用场景
MMI分束器 带宽宽、工艺容忍度高 尺寸大(几十μm) 需要宽带分束的场景
定向耦合器 尺寸小、设计灵活 对工艺敏感 窄带、高精度分束
光栅耦合器 垂直耦合、便于测试 效率受限、带宽窄 芯片-光纤耦合

你想想看,如果做的是波分复用系统,需要宽带分束,那就选MMI。如果是做MZI开关,需要精确的3dB分束,定向耦合器更合适。至于光栅耦合器,那是芯片和外界打交道的“门面”,必须认真对待。

4.5 设计流程总结

嗯,最后总结一下我的设计习惯:

  1. 先理论计算:用公式估算初始参数,别一上来就跑仿真。
  2. 再参数扫描:用FDTD或EME扫一遍关键参数,找到最优解。
  3. 加工艺容差:在最优解附近,看看工艺偏差10nm、20nm时性能变化。如果变化太大,就重新选参数。
  4. 最后做版图:把器件画进版图时,注意加一些测试结构,比如不同长度的MMI、不同间距的定向耦合器,方便流片后测试验证。

我记得有一次,一个同事设计的MMI流片回来,分光比偏了10%。后来查原因,是版图里锥形区的长度画短了。所以,画版图时一定要仔细核对尺寸,别偷懒。

好了,无源器件的设计要点就这些。下一章咱们聊聊有源器件,比如调制器和探测器,那又是另一番天地了。