ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

硅光光栅耦合器宽带设计:Lumerical FDTD仿真与实验验证

硅光光栅耦合器宽带设计:Lumerical FDTD仿真与实验验证 做硅光芯片测试的同行应该都有这种感觉整套工艺都走完了结果到耦合测试环节被卡住。倒不是因为光源或者探测器有问题而是光根本进不到波导里去。芯片端面耦合效率低、对偏振敏感、对准容差小研磨抛光又不稳定这些都是让人头疼的老问题。光栅耦合器就是为了解决这个痛点出现的。它可以把垂直或者近垂直入射的光通过表面刻蚀的周期性结构耦合进芯片内部的波导或者反过来把波导里的光引出来。好处很明显——不用做端面研磨抛光可以在晶圆上任意位置测试对准容差也大很多。但代价是天然窄带通常3dB带宽只有30~50 nm这让它在宽带光通信、光谱传感这类场景里受到限制。这篇文章就把我从设计、仿真到流片测试的完整过程梳理一遍标题是“基于Lumerical FDTD的光栅耦合器宽带特性仿真与实验验证”。重点讲清楚几个事为什么光栅耦合器会窄带、怎么用Lumerical FDTD仿真去预测带宽、怎么优化结构去展宽带宽以及最终实验数据和仿真对不上时问题到底出在哪里。内容按“设计→仿真→优化→验证”这条线走适合正在做硅光器件设计的研究生、工程师也适合对Lumerical FDTD仿真有兴趣但还没系统入门的人。1. 整体设计与思路拆解从布拉格条件到带宽公式1.1 光栅耦合器的工作原理光栅耦合器本质上是一个周期性折射率调制的结构。入射光打到光栅表面时一部分透射、一部分反射、一部分被衍射。要让衍射光高效地耦合进波导需要满足相位匹配条件也就是布拉格条件[ k_0 \cdot n_{eff} k_0 \cdot n_{clad} \cdot \sin\theta m \cdot \frac{2\pi}{\Lambda} ]其中 (k_0 2\pi/\lambda)(n_{eff}) 是波导模式的有效折射率(n_{clad}) 是包层折射率通常为空气或二氧化硅(\theta) 是入射角(\Lambda) 是光栅周期(m) 是衍射级次。简化一下对于垂直入射(\theta 0)和一阶衍射(m 1)布拉格条件变成[ \Lambda \frac{\lambda}{n_{eff}} ]这是一个非常简洁但极其重要的公式。它告诉我们光栅周期和有效折射率决定了共振波长。如果周期选错哪怕只偏了10 nm中心波长就可能偏移几十纳米。这里要注意(n_{eff}) 不是固定不变的它随波长变化色散所以严格来说布拉格条件是一个隐式方程需要脑补计算或者用仿真软件迭代求解。1.2 为什么光栅耦合器天然窄带知道了原理窄带的问题就好理解了。带宽本质上由耦合强度和相互作用长度共同决定。耦合强度越强能量在越短的传播距离内就完成转移那它对波长的选择性就越强带宽就越窄。可以打个比方这就像两个人对话一个人在楼顶喊话如果楼下的人只在某个特定的窗口期能听到那这个窗口开得越短对时间的要求就越苛刻。光栅耦合器中入射光的能量在光栅区域内逐步泄漏进波导泄漏得越快耦合强度越大能在更短的区域内完成全部能量转移但同时相位失配的容忍度就低带宽就窄。定量来看光栅耦合器的3dB带宽可以近似为[ \Delta\lambda_{3dB} \approx \frac{0.8 \cdot \lambda_0 \cdot \Lambda}{L_{int}} ]其中 (L_{int}) 是有效相互作用长度也就是光栅的耦合长度。对于标准的均匀光栅(L_{int}) 通常只有几微米到十几微米所以带宽基本就在30~50 nm这个量级。想要展宽带宽核心思路就是降低耦合强度让光栅在更长的距离内缓慢地完成能量转移。这在设计上就是减小刻蚀深度、增大光栅周期方向上的周期数、或者采用渐变占空比的结构。1.3 设计目标与技术路线这次设计的目标是做一个工作在1550 nm附近的宽带光栅耦合器目标3dB带宽70 nm以上耦合效率尽可能高至少大于30%制备工艺要兼容标准硅光流片。技术路线选的是SOI标准工艺220 nm顶层硅2 μm埋氧层BOX光栅区域部分刻蚀刻蚀深度70~80 nm上包层为空气。选择部分刻蚀而不是全刻蚀原因有两个一是部分刻蚀的工艺容差大刻蚀深度稍微偏一点对性能影响没那么剧烈二是部分刻蚀可以降低耦合强度有助于展宽带宽这和前面分析的方向是一致的。仿真工具选Lumerical FDTD是因为光栅结构尺寸和波长在同一量级衍射效应、干涉效应无法用简单的模式耦合理论精确描述需要严格求解麦克斯韦方程组。FDTD时域有限差分法在空间和时间上离散化求解适合这种结构不规则、包含亚波长特征的器件。软件层面的流程是先用二维FDTD做快速扫描和优化然后取最优参数做三维FDTD验证。二维和三维的结果差异主要在模式限制因素上通常三维结果效率要低几个百分点这在后面的实验对比中要心里有数。2. Lumerical FDTD仿真建模实操从几何到边界条件2.1 几何建模与材料设置打开Lumerical FDTD第一步是建立仿真结构。我这里用的是Lumerical 2020 R2版本语法在FDTD Solution 2022版本也兼容基本步骤没变化。先创建硅波导层矩形结构Rectangle长30 μm宽12 μm在2D仿真里就是无限宽厚度220 nm。材料选择SiPalik数据。然后创建BOX层长同样30 μm宽12 μm厚度2 μm材料选SiO2Palik数据。衬底硅可以加一层2 μm的Si但实际仿真中如果PML设置得当衬底的影响很小我只加了一层1 μm的Si。光栅刻蚀结构用一组矩形表示周期数25个周期长度630 nm占空比0.5齿宽315 nm刻蚀深度75 nm。这里就用最简单的uniform grating做基线。后续做优化时再通过脚本动态改变这组矩形的坐标和尺寸。设置材料的时候有个小技巧如果流片厂给你的是他们自己测的折射率数据很多PDK会提供最好直接用实测数据不要用软件自带的Palik库。我在一次仿真中发现Palik的Si折射率在1550 nm和实际工艺差0.01左右看起来不大但会让中心波长偏移3~5 nm这个偏差在实验阶段就会导致耦合效率对不准。2.2 网格、边界条件与光源设置FDTD的核心是网格。网格太粗会明显高估损耗、低估Q值网格太细计算时间成倍增加。对于硅光器件我通常把mesh精度设为4级再在光栅区域加一个mesh override设置x、y方向为10 nmz方向为5 nm的网格。为什么要这样设因为光栅的齿宽是315 nm刻蚀深度是75 nmz方向上如果网格太粗刻蚀台阶的形貌就会失真直接导致布拉格条件偏移。边界条件方面x和y方向用PML完美匹配层z方向垂直方向也用PML。PML的厚度默认12层我一般加到16层保险一点。需要注意PML和结构之间至少要留半波长的距离否则近场耦合会让PML吸收不干净产生非物理反射。光源选择Bloch模式光源Bloch/Periodic光源这是Lumerical专门为周期结构入射场景设计的。入射角度设置为8度方向指向光栅一侧让衍射光向波导端方向偏转提高方向性。波长范围设为1400~1700 nm覆盖整个目标CL波段。这个角度不是随便选的——光栅耦合器的耦合效率对角度的敏感度很高通常最优角度在8~12度之间需要和光栅周期一起优化。我习惯先把角度固定在一个初值比如10度先扫周期再反过来微调角度这样收敛更快。监视器设置两个一个放在光栅上方2 μm处用来监视反射光另一个放在波导输出端光栅末端往右10 μm处记录透射到波导中的功率。2.3 仿真参数扫描与收敛性判断在正式扫参之前必须先做一次快速仿真确认一下结构是否收敛。判断收敛的标准很简单看监视器记录的功率随时间是否达到稳态。FDTD的auto shutoff level默认是1e-5意思是当所有场能量衰减到初值的1e-5以下就自动停止。但我遇到过一次情况能量衰减到1e-5还是不够结果波长扫描曲线出现锯齿状波动——这种非物理的振荡通常是场没有完全衰减干净或者PML反射导致的。后来我把shutoff level调低到1e-6同时增加仿真时间到5000 fs曲线才平稳。另一个容易出问题的点是光源的入射角设置。Lumerical里Bloch光源的入射角是和波长相关的不同波长的折射角有微小差异这会带来一点点系统误差。我通常的做法是先固定角度扫周期找到最优周期后再在这个周期下扫入射角7~12度找到真正的全局最优。参数扫描用Lumerical内置的sweep功能实现。下面是一段典型的优化脚本框架用来扫描光栅周期和占空比# Lumerical FDTD 参数扫描脚本框架 import lumapi # 连接到FDTD fdtd lumapi.FDTD() # 定义扫描范围 period_values [610e-9, 620e-9, 630e-9, 640e-9, 650e-9] duty_values [0.45, 0.50, 0.55, 0.60] for period in period_values: for duty in duty_values: # 更新光栅几何参数 fdtd.setnamed(grating_period, x, period) # 更新周期简化示意 fdtd.setnamed(grating_duty, x, period * duty) # 运行仿真 fdtd.run() # 提取监视器数据 transmission fdtd.getresult(mode_monitor, T_forward) # 记录中心波长和3dB带宽...这里要注意实际脚本中需要正确设置每个矩形齿的坐标最方便的做法是在FDTD里把光栅建成一个group然后通过setnamed操作group内部的对象。前期建模时多花点时间把参数化做好后面扫描能省很多事。扫参完成后会得到一个效率-波长曲线矩阵。最优结果是让中心波长在1553 nm附近同时3dB带宽尽量大。我初步扫描的结果均匀光栅的3dB带宽大约在45 nm左右这和理论估计基本一致。3. 宽带特性的优化设计与实现3.1 为什么均匀光栅带宽不够均匀光栅的设计结果让我意识到一个问题怎么扫周期、调占空比和刻蚀深度要把带宽稳定推到70 nm以上非常困难。原因是结构本质上没有改变耦合长度这个决定带宽的核心参数。均匀光栅所有的齿结构一致耦合强度在空间上恒定能量在几个周期内就完成转移这决定了带宽上限。所以要做宽带光栅耦合器必须打破“均匀”这个限制。目前主流的方案有几种切趾光栅apodized grating、双层光栅、亚波长光栅结构subwavelength grating, SWG。我的方案是切趾光栅和亚波长结构的融合。3.2 切趾光栅的仿真优化切趾光栅的原理是对光栅的耦合强度进行渐变调制。通常的做法是改变占空比齿宽/周期比从光栅入口处弱耦合逐步过渡到强耦合也可以反过来。这样做的目的是让输入光场的模式分布和光栅的辐射模式尽可能匹配降低模式失配损耗同时延长有效耦合长度展宽带宽。在Lumerical里的实现方式对每个周期的齿宽单独赋值。比如第1个周期齿宽320 nm第2个330 nm逐渐递增到第13个周期达到最大齿宽400 nm再逐步递减。这样耦合强度就会呈现先增后减的包络形状。每个齿的宽度由脚本中定义的函数生成(w_i w_0 \Delta w \cdot \sin^2(\frac{\pi \cdot (i-1)}{N-1}))。这个正弦平方包络是切趾光栅中比较常见的选择它的优点是两端变化平缓不会引入额外的突变反射。仿真这一步很耗时因为25个周期每个周期独立参数要做多维优化计算量太大。我的做法是分两步走第一步固定周期和刻蚀深度只优化占空比包络的参数起始占空比、最大占空比、包络指数第二步把第一步得到的最优占空比再和周期、刻蚀深度联合优化。最终优化结果中心波长1554.2 nm3dB带宽71 nm比均匀光栅多了整整26 nm耦合效率从均匀光栅的42%降到35%——这个效率的下降是展宽带宽的必然代价因为在能量转移过程中弱耦合区域的模式匹配损耗增加了。设计目标中带宽70 nm以上、效率大于30%这个结果是可以接受的。3.3 亚波长结构锦上添花亚波长结构SWG是在周期的局部引入比布拉格周期小得多的结构等效为一种梯度折射率介质。它可以让光场在进入光栅之前先经过一个平滑的过渡层减少折射率突变带来的反射。在光栅耦合器里SWG常常用在光栅末端和波导之间的过渡区用来匹配光栅衍射场的相位分布和单模波导的基模场分布。这个优化用Lumerical的2D仿真就够用了。我把光栅下游的10 μm均匀波导改成了SWG渐变波导周期200 nm占空比从0.5渐变到0.8。这个结构不需要额外增加工艺步骤因为SWG和光栅的刻蚀是同一道工序只是版图上多了些小图形。但要注意SWG的尺寸太小普通的深紫外光刻可能做不出来需要电子束曝光EBL或者工艺能力更强的激光直写。如果流片厂的能力受限这个方案要谨慎选择。仿真结果加了SWG过渡结构后耦合效率提高了1.8个百分点带宽几乎不变。虽然幅度不大但聊胜于无。而且它还能改善波导端口的模式质量对后续测试有点帮助。3.4 鲁棒性仿真与工艺容差分析宽带器件的设计不能只看理想状态的仿真结果还必须考虑工艺波动。硅光流片过程中最常见的波动是硅膜厚度偏差±10 nm、刻蚀深度偏差±5 nm、CD偏差±5 nm、掩模对准偏差。我做了一轮蒙特卡洛仿真在Lumerical脚本里随机生成50组工艺参数硅膜厚度、刻蚀深度、齿宽每组运行一次2D仿真统计中心波长和带宽的分布。结果发现中心波长对硅膜厚度最敏感——硅膜每偏1 nm中心波长大约偏1.2 nm。这意味着如果流片的硅膜厚度比标称值厚了20 nm探测器最高效率点就会偏到1580 nm附近完全脱离目标波段。这个问题要在设计阶段就要留好余量。我的做法是把目标中心波长设计在1555 nm略高于设计带宽的中心这样即使工艺导致硅膜厚度有±5 nm的波动中心波长偏移在±6 nm以内仍然处于电信C波段的范围内不影响实际测试。4. 实验验证从版图到测试数据4.1 流片与器件结构设计光栅耦合器的版图设计比仿真还要细致。流片是通过某MPW平台完成的工艺为220 nm SOI全刻蚀加部分刻蚀两层工艺。光栅区域采用部分刻蚀75 nm波导和SWG区域全刻蚀。每个单元芯片上放置了多个测试结构均匀光栅作为对照切趾光栅作为主要测试对象还有不同周期620、630、640、650、660 nm的变体每个结构两端都有光栅耦合器对用于端到端测试。这里有个经验要提醒大家版图上一定要加对准标记和朝向标记。光栅耦合器是有方向性的光栅倾角8度决定了需要从固定一侧入射如果朝向标反了测出来的损耗会非常难看不是几千瓦时那种小问题是直接没有信号的级别。我吃过这个亏一次测试中有一整行器件测不出光查了半天才发现是版图上光栅排布朝向弄反了。4.2 测试平台搭建测试平台的核心设备可调谐激光器Santec TSL-510覆盖1480~1640 nm偏振控制器六维精密调整台带压电微调单模光纤阵列FA光功率计以及把光纤阵列和芯片对准的显微成像系统。测试流程分四步芯片解理后放在真空吸盘上用相机找到光栅耦合器的位置。使用光纤阵列通常是1x8或1x16的FA把光纤端面调整到和光栅表面平行距离控制在10~20 μm。这时候可以通过红外相机观察端面反射光斑来判断对准状态。在1550 nm附近找到最大耦合点然后做精细对准。先用粗调台把光斑对准光栅位置再用压电微调做精度为0.1 μm的扫描。对准找到最大点后固定位置开始扫波长记录传输功率曲线。值得注意的是测试环境的温度和湿度对结果影响大。硅波导的折射率温度系数约1.8e-4/K温度变化5度就能让中心波长偏移近1 nm。实验室的空调如果直接吹到测试平台上会在分钟内造成明显的功率抖动。我后来在平台上加了亚克力罩子才把功率曲线稳定下来。4.3 仿真与实验数据对比最终测试结果切趾光栅的峰值耦合效率为32.5%单端3dB带宽66 nm中心波长1557 nm。对照仿真的35%效率和71 nm带宽效率和带宽都略低。这个偏差属于正常范围。效率差异主要来自这几个方面实验中光栅表面有10 nm左右的天然氧化层SiO2这层膜的折射率和硅相差很大会反射一部分光仿真中没有建模。光纤阵列端面的反射和模式失配仿真中假设入射光是理想的平面波但实际上光纤输出的是高斯光束两者之间的模式重叠积分不可能达到100%。工艺偏差刻蚀深度很可能不是精确的75 nm光栅齿壁也不可能是理想的垂直侧壁侧壁角偏1~2度非常常见这会让布拉格条件发生细微偏移。带宽差异的主要原因仿真中光栅区域是完美的周期结构但实际工艺中CD在版图上不同位置会有±2 nm的波动这会引入额外的相位扰动等效于展宽了共振响应。中心波长偏了3 nm基本可以用硅膜厚度比标称值厚了2.5 nm来解释。这个量级的膜厚波动在硅光工艺中非常常见也在预留的容差范围内算是测试结果中比较理想的部分。4.4 误差分析与仿真修正为了验证对误差来源的判断我做了一步修正仿真在Lumerical中把模型更新为含10 nm表面氧化层、侧壁角87度即侧壁倾斜3度、硅膜厚度222.5 nm。更新后的仿真结果显示中心波长1556.8 nm带宽67 nm峰值效率33.2%——和实验结果的差距缩小到1%以内。这说明仿真模型如果足够精确是完全可以和实验数据吻合的。这一步很有价值。在实际工程中不要只做一次设计仿真就交付流片最好能在拿到测试数据后反向推导工艺偏差再用修正后的模型重新仿真验证偏差解释的一致性。这样做两个好处一是搞清楚器件的性能损失到底来自哪里二是积累工艺偏差数据为下一次流片的设计修正提供依据。我每次做硅光流片都会做一个“设计-流片-测试-修正模型-再设计”的闭环虽然周期长一点但器件迭代效率反而高很多。5. 常见问题排查与实操技巧5.1 仿真发散与收敛问题Lumerical FDTD里最头疼的问题就是仿真“发散”——能量不衰减、监视器功率曲线震荡不平稳、结果出现非物理的尖峰。我自己遇到过四种典型场景第一个是PML反射。默认PML厚度在某些倾斜入射角度下不够反射率可能会到-40 dB量级这足够造成扫参曲线上的细微波动。解决方式是把PML层数加到16或20同时确认PML外边界距离结构至少1 μm。第二个是网格不足。尤其在光栅齿尖和刻蚀台阶处如果网格不够细会引入数值色散。判断方法是做网格收敛性测试网格精度从3级逐步提高到5级观察结果变化幅度。如果结果仍然变化超过1%说明网格还是没有收敛需要进一步细化或者对局部区域单独加密。第三个是光源设置问题。Bloch光源的入射角度过大时可能激励起高阶衍射模式导致边界处能量异常。建议检查光源插入损耗监控值和远场分布确认没有异常的方向性。第四个是shutoff level设置太小导致仿真时间过长或者太大导致没有完全收敛直接把结果提交了。稳妥的做法是每次改变几何参数后先跑一次短时仿真看能量衰减曲线确定合适的shutoff level和最大仿真时间。5.2 实验测试中的典型问题速查实际操作中遇到的问题五花八门把最常见的问题整理成一张速查表现象可能原因排查方法完全没有耦合信号光纤未对准光栅位置、偏振错误、芯片朝向反先用红外相机观察光斑位置旋转偏振控制器确认偏振态检查对位标记信号弱且波动大光纤端面距离太大、芯片表面有灰尘调整光纤头-芯片间距到10~20 μm用氮气清洁芯片表面中心波长明显偏移硅膜厚度偏差、刻蚀深度偏差测量对称结构不同周期的同种光栅反推工艺偏差带宽比仿真窄光栅区CD误差、耦合强度偏强检查SEM图像确认实际齿宽和刻蚀深度更新模型重新仿真功率曲线出现干涉纹波两层反射面之间形成FP腔检查是否是PML残余反射、光纤端面反射或BOX层驻波效应适当倾斜光纤端面5.3 Lumerical操作实用技巧最后分享几个我在Lumerical FDTD里用得比较多的小技巧第一用脚本文件做参数化设计比手点GUI高效太多。我有一次需要扫描60组参数用脚本夜里自动跑第二天早上直接看结果就好。手动操作在GUI里点60次周期扫描光建立和复制模型都要花大半天。第二善用varFDTD快速估算。在设计初期用varFDTD变分FDTD粗略估算周期和带宽范围计算速度快一个数量级以上。等找到大致参数区间再用2D FDTD精扫最后用3D FDTD验证最终结构。这个多层级仿真策略能把设计周期从两周压缩到三天。第三监视器不要只放一个功率监视器。我习惯在光栅上方放一个场监视器看电场分布。电场分布图能直接显示耦合过程的能量泄漏方向、模式分布情况这在判断光栅有没有对准布拉格条件时非常直观。第四实验前先用仿真确认测试方案可行。比如可调谐激光器的扫描步长0.1 nm还是1 nm、是否需要偏振控制器光栅对TE和TM偏振响应不同、功率计的动态范围耦合效率低的时候信号可能只有-40 dBm这些都能在仿真阶段估算出来避免到实验室才手忙脚乱。6. 最终体会做完这个项目我最大的体会是仿真模型和实验数据的差距不在于哪一边“更准确”而在于你是否把所有的物理效应都考虑进去。氧化层、侧壁角、硅膜厚度、光纤模式失配——每一个因素看起来都是几纳米或者百分之几的差别但叠在一起就是十几个百分点的效率差和几个纳米甚至十几纳米的波长偏移。另一个感受是宽带光栅耦合器的设计空间其实还没有被完全挖掘。切趾、SWG、双层光栅这些结构都有效果但各有代价。效率、带宽、工艺容差三者天然存在折中关系。没有完全免费的午餐设计时首先要明确应用场景最看重的指标是什么再去做取舍。如果目标是40 nm带宽就够用那我建议直接选均匀光栅加比较浅的刻蚀深度工艺最简单、容差最大。如果像这次一样要70 nm以上的带宽切趾光栅基本是必选项。至于再往上的超宽带需求比如100 nm以上可能需要引入多层光栅或者更复杂的逆向设计结构这个可以作为下一步的探索方向。如果你正在做硅光耦合相关的仿真或者测试希望这篇记录能帮你少踩一些坑。尤其是仿真参数设置和实验误差分析这两块值得多花点时间深入研究。光栅耦合器看着结构简单实际需要考虑的细节远比你想象的多。
返回列表