半年前我帮一个客户评估1550 nm接收模块,那颗APD的小信号特性几乎无可挑剔——暗电流低、击穿电压平坦、增益曲线漂亮。结果一到系统强光测试,输出饱和得厉害,误码率直接抬升。后来我把这个问题归结为"功率饱和度",才意识到一个事实:很多人设计APD时盯着暗电流、增益、带宽,却把功率饱和度漏掉了。偏偏1550 nm InGaAs/InP与InGaAs/InAlAs两种APD体系,在高光功率下的行为差异非常明显,用Lumerical做器件仿真时,如果从一开始不把饱和功率放进优化目标,后面补起来会非常痛苦。
这篇文章就围绕我实际用Lumerical做这两类APD仿真与优化的经验展开,不兜圈子,直接讲清楚三件事:功率饱和的物理根源是什么、在Lumerical里怎么把饱和行为准确复现出来、以及如何通过结构和参数优化把饱和功率顶上去。不管你是刚开始接触APD器件仿真的新人,还是已经在做光接收机联合设计的老手,这篇都能给你一些能直接落地的参考。
1. 功率饱和度为什么是APD设计里最容易被低估的指标
1.1 从一次系统级强光测试说起
APD(雪崩光电二极管)的核心优势是内部增益。光生载流子在强电场区通过碰撞电离产生倍增,让输出光电流放大M倍。于是大家都习惯性地把增益做大、噪声做低,认为这就是好APD。
但光通信接收机的真实工作环境并没有那么温柔。正常工作时信号可能低到-28 dBm,但系统抖动、突发数据、近距离光源耦合等场景下,入射光功率可能瞬间冲到-5 dBm甚至0 dBm。接收端必须有足够大的动态范围,既能把微弱信号拉起来,又不能在强光下"过载"。
强光下APD会暴露一个典型问题:光电流不再随入射光功率线性增长,增益M开始下降,输出信号出现压缩失真。这个现象就是功率饱和。很多实验室里测APD增益都是用小光功率配合锁相放大器,光电流只有微安级,饱和效应根本看不出来。等产品到了系统联调阶段,强光一进来,才发现输出波形都被"削顶"了。
所以功率饱和度不是学术名词,而是实打实的系统级指标。它直接决定接收机的动态范围和链路预算。
1.2 功率饱和的物理源头:空间电荷、欧姆压降、自热
想要在仿真里优化饱和功率,必须先搞清楚饱和是从哪里来的。按我自己的经验,功率饱和的主要原因可以归成三类,它们在物理上经常同时出现,但贡献比例不同。
第一是空间电荷屏蔽效应,这是最核心的机制。倍增区里原本有固定的掺杂电荷和耗尽层电荷,维持着一个很高的雪崩电场。当强光注入后,倍增区内会有大量电子空穴对,这些非平衡载流子形成的空间电荷会抵消掉一部分耗尽层固定电荷,等效于把雪崩电场"压低"了。电场一低,碰撞电离率指数级下降,增益M自然就掉下来。光功率越大,注入的载流子越多,电场被压低得越厉害,饱和就越严重。
打个比方,这就好比你给一个喷泉系统增加用水量,但管道里挤进去太多杂质,反而把水压给堵小了。喷嘴出水速度降下来,喷射高度也就缩水了。
第二是串联电阻压降。光电流在高功率下能到毫安级别,而APD的串联电阻(衬底电阻、接触电阻、体电阻)通常在几十欧姆量级,I×R压降可以吃掉好几伏偏压。倍增区对偏压极其敏感,偏压掉零点几伏,增益就会明显变化,表现为高功率下的增益塌陷。
第三是自热效应。毫瓦级别的连续光入射,结区温度升高,半导体的电离系数会随温度变化,击穿电压和增益也跟着漂移。这个效应在连续光通信场景里不能完全忽略,但它的时间常数比前两个慢,在快速响应分析里可以先放一放。
除了这三类,还有一类经常被忽视:SACM结构里吸收层和倍增层之间的异质结带阶。强光下界面附近堆积的载流子会反过来调制能带和电场分布,这种"界面电荷调制"在某些InGaAs/InAlAs结构里会让饱和来得更早。
1.3 1550 nm波段的特殊性
同样的问题放到1550 nm波段,会变得更尖锐。因为1550 nm对应的光子能量约0.8 eV,而InGaAs吸收层的带隙约0.74 eV,光子能量只是勉强超过带隙。这意味着InGaAs在1550 nm的吸收系数并不算高,典型值在0.6~0.8 μm⁻¹量级,远不如短波段的吸收那么强。
吸收弱就得靠厚度补齐,所以1550 nm APD的吸收层通常要做到2~3 μm甚至更厚。吸收层越厚,高功率下光生载流子的体量和渡越路径就越长,空间电荷积累问题就越突出。相比之下,短波长APD吸收层薄、载流子快速扫走,饱和功率天然容易做得高。
另外1550 nm系统普遍要覆盖很宽的光功率动态范围,尤其是接入网和5G前传这类场景,前级没有光衰减器时,APD可能直接面对强光。所以做1550 nm APD设计时,功率饱和度的重要性一点不比增益和暗电流低。
2. InGaAs/InP与InGaAs/InAlAs:两种材料体系在仿真前的取舍
2.1 SACM结构与两种倍增层的角色
现代通信APD基本都采用SACM结构,也就是分离的吸收层、电荷层、倍增层。这个结构之所以成为主流,是因为吸收层和倍增层在材料上必须分开——InGaAs负责吸收1550 nm光,但它带隙太窄,不能直接承受高电场,否则隧穿漏电会大到无法接受。倍增必须交给宽带隙材料,也就是InP或InAlAs。
InP的带隙约1.35 eV,InAlAs(铝组分为0.48、晶格匹配InP)的带隙约1.45 eV,两种材料在1550 nm都是透明的,适合做倍增层。
电荷层的存在是为了控制电场分配:它要让倍增层里保持高电场用于雪崩倍增,同时让吸收层里的电场尽量低。电荷层的掺杂浓度和厚度,直接决定了倍增电场有多强、以及电场在哪个位置达到峰值。这个细节后面优化时会反复提到。
2.2 电离系数比k值与过剩噪声
两种材料体系最关键的物理差异体现在电离系数比k值上。碰撞电离过程中,电子和空穴的电离系数通常不一样,定义k为两者的比值。k值越接近1,说明电子和空穴都在贡献倍增,雪崩过程越"混乱",过剩噪声因子越大;k值越接近0,说明某一种载流子主导电离,倍增过程更可控,噪声更低。
InP的电子空穴电离系数比较接近,k值大致在0.4~0.5,所以InP基APD的过剩噪声相对偏高。InAlAs则明显更好,k值可以做到0.1~0.2,在相同增益下过剩噪声因子低不少。这也是近些年InAlAs基APD越来越受关注的核心原因。
过剩噪声不是一个独立的性能点,它会直接影响接收机的灵敏度。仿真时,电离系数模型参数的选取直接决定了M曲线和噪声仿真的可靠性,只改几种掺杂、不改材料参数,上看不出两种体系的差别。
2.3 关键材料参数表:仿真输入差一点,结果差很远
在Lumerical里做材料参数设置时,我整理过一张常用的对比表,可以作为仿真初值的参考。注意,具体数据一定要结合你的实际工艺和文献报道做标定,别直接拿这个表当最终值:
| 参数 | InGaAs(吸收层) | InP(倍增层) | InAlAs(倍增层) |
|---|---|---|---|
| 带隙 | 约0.74 eV | 约1.35 eV | 约1.45 eV |
| 1550 nm处吸收系数 | 0.6~0.8 μm⁻¹ | 透明 | 透明 |
| 电子迁移率量级 | 8000~12000 cm²/(V·s) | 4000~5000 cm²/(V·s) | 3000~4000 cm²/(V·s) |
| 空穴迁移率量级 | 300~400 cm²/(V·s) | 约150 cm²/(V·s) | 约100~150 cm²/(V·s) |
| 电离系数比k | 不适合做倍增层 | 约0.4~0.5 | 约0.1~0.2 |
| 击穿电场量级 | 很低 | 4~5×10⁵ V/cm | 6~8×10⁵ V/cm |
Lumerical材料库里有这些二元和三元的默认折射率、迁移率等参数,但默认的迁移率和复合寿命往往和实际外延材料有差距。我自己习惯的做法是:把Lumerical材料库的数据作为起点,然后用文献里针对同组分材料的实验数据去覆盖关键参数。InAlAs尤其要注意铝组分,组分偏一点,带隙和电离系数就差不少。
3. Lumerical完整建模流程:从FDTD吸收分布到CHARGE雪崩特性
3.1 先算光:FDTD里的结构、网格与光源
Lumerical做APD仿真,通常拆成两段:先用FDTD算光学吸收分布,再用CHARGE算电学输运和雪崩倍增。FDTD部分解决的是光在哪吸收、吸收多强的问题。
结构建模时可以先从二维截面入手。把层结构按SACM顺序搭好:p型接触层、倍增层、电荷层、吸收层、n型接触层。1550 nm的平面波或高斯光从上表面入射。光源功率要设置为实际物理功率,后面归一化时需要。
网格设置是FDTD里最容易影响结果的一步。吸收层需要的网格尺寸建议在30 nm量级或更小,倍增层虽然薄,但它是电场最敏感的区域,同样要局部加密。先用二维结构把参数空间扫一轮,再挑几个关键点做三维验证,这样计算资源压力小很多。
材料折射率也要检查。InGaAs在1550 nm的折射率约3.6,InP约3.2,InAlAs约3.3。折射率差会在异质结界面产生反射,形成法布里-珀罗驻波,吸收分布可能出现周期性调制。如果FDTD里看到吸收分布有明显条纹,别急着怀疑网格,先检查是不是驻波效应,必要时给结构表面加一层近似减反膜。
3.2 光电耦合:吸收功率到载流子产生率的换算
FDTD算出来的是一份空间吸收功率密度分布P_abs(x,y,z)。CHARGE要用的则是光生载流子产生率G,单位是每立方厘米每秒。转换公式其实很简单:
G(x,y,z) = P_abs(x,y,z) / (hν)
也就是把单位体积内吸收的光功率除以单个光子的能量。光子能量hν用1550 nm波长算出来大约是1.28×10⁻¹⁹焦耳。实际数值转换在Lumerical里有现成的analysis工具组,也可以用脚本批量完成。
有一个省时间的技巧:FDTD只算一次吸收分布,之后做功率扫描时,直接把G按入射光功率做线性缩放就行。因为低光功率下吸收分布基本不随功率变化,除非结构里有明显的非线性吸收机制。把0.1 μW到1 mW的功率扫描全部复用同一份G分布,能省下大量FDTD重复计算时间。
3.3 再算电:CHARGE里的材料、掺杂、复合与雪崩模型
CHARGE部分是整个仿真里最需要耐心的地方。结构几何和FDTD保持一致,把掺杂类型和浓度填进去,一张常用的掺杂初值表长这样:
| 区域 | 掺杂类型 | 浓度范围 |
|---|---|---|
| p型接触层 | p | 1×10¹⁹ cm⁻³ |
| 倍增层 | n-或轻掺杂 | 1×10¹⁵~1×10¹⁶ cm⁻³ |
| 电荷层 | p | 5×10¹⁶~1×10¹⁸ cm⁻³ |
| 吸收层 | n- | 1×10¹⁵~5×10¹⁵ cm⁻³ |
| n型接触层 | n | 1×10¹⁸~1×10¹⁹ cm⁻³ |
复合模型要开全:SRH复合、俄歇复合、辐射复合。InGaAs是窄带隙材料,俄歇复合在高注入时尤其重要,它会把高功率下的有效载流子浓度拉低,影响饱和行为。SRH寿命是暗电流仿真的决定因素,实际外延材料的寿命可能远低于理想值,这里建议用和暗电流实测标定过的值。
雪崩电离模型是CHARGE里的重头戏。Lumerical提供了van Overstraeten-de Man等经验模型,公式里需要输入每种材料的电离系数参数。InP和InAlAs的系数取值差别很大,而且不同文献报道的InP电离系数并不完全一致。我在仿真前通常会用暗电流IV或者击穿电压做一个标定:调节电离系数参数,让仿真击穿电压和文献或实验值对上,再继续后面的工作。这一步不做好,后面所有增益和饱和数据都不靠谱。
求解方面,偏压扫描的步长不是均匀的。低偏压区可以大步长,接近击穿电压时步长要切小,比如每0.1 V一步。CHARGE的Newton求解器对于强非线性问题比较敏感,后面我会专门说怎么处理收敛问题。
4. 功率饱和度仿真复现:定义、扫描与结果解读
4.1 饱和功率的两种定义:1dB压缩与增益塌陷
工程上常用两个口径定义功率饱和度。一个是1dB压缩功率P1dB,对应输出光电流相对理想线性响应偏离1 dB时的入射光功率。另一个是增益塌陷点,通常取增益M下降20%~50%对应的功率。哪种口径更合适,取决于你的接收机系统对失真的容忍程度。
仿真方法其实很直接:在固定偏压(比如0.9倍的击穿电压)下,把入射光功率从0.1 μW一路扫到1 mW,按十倍步进切档。每一档等收敛后记录输出光电流,然后绘制对数坐标系下的I-P曲线。理想情况是斜率等于1的直线,功率增大到某个点后曲线开始向下弯曲,这个弯曲点就是饱和的起点。
4.2 参数扫描设计:倍增层厚度、电荷层掺杂、吸收层厚度
功率饱和度不是单一参数决定的,它和倍增层厚度、电荷层掺杂浓度、吸收层厚度、台面尺寸都有关系。我常用的扫描范围如下:
| 参数 | 扫描范围 | 对饱和的影响方向 |
|---|---|---|
| 倍增层厚度 | 200~600 nm | 越薄电场越集中,雪崩越陡,但太薄会引入隧穿漏电 |
| 电荷层掺杂浓度 | 5×10¹⁶~1×10¹⁸ cm⁻³ | 决定倍增层电场峰值,直接影响空间电荷容忍度 |
| 吸收层厚度 | 1~3.5 μm | 越厚响应度越高,但强光下载流子堆积更严重 |
| 台面直径 | 20~80 μm | 影响串联电阻、电容和单位体积载流子密度 |
批量扫描可以用Lumerical的脚本/Python API来做,把参数组合循环跑一遍,最后出一张等高线图,横轴是倍增层厚度,纵轴是电荷层掺杂,颜色是饱和功率。这种图很容易看出最优区域在哪,比一个个参数单独试要直观得多。
4.3 从I-V到I-P:把饱和行为完整画出来
只看I-P曲线还不够,我强烈建议把CHARGE算出的能带图和电场分布导出来看。饱和现象最直观的证据,就是倍增区里的电场峰值随光功率增大而下降。
我在仿真里见过非常典型的例子:1 μW光功率下,倍增区电场峰值接近50万V/cm;光功率加到100 μW后,电场峰值被压低了将近20%,对应的增益M直接从10掉到6附近。这就是空间电荷屏蔽效应在CHARGE结果里的直接体现。如果你只盯着I-P曲线,可能只会说一句"它饱和了",但结合电场分布,你就能定位到底是谁在拖后腿。
另一个值得对比的点是两种材料体系的饱和行为差异。在相同几何结构下,InAlAs倍增层因为击穿电场更高、k值更低,单位增益对应的偏压更高,电场也更集中。仿真结果通常显示InAlAs体系的饱和功率比InP体系高几个dBm,这和实验文献里报道的趋势一致。差距的来源在于:InAlAs倍增层可以用更薄的设计达到同样的增益,薄倍增层意味着更小的空间电荷体积,强光注入时电场被屏蔽的幅度更小。
5. 优化出手:把两类APD的饱和功率顶上去
5.1 结构方面的三个杠杆
第一个杠杆是倍增层厚度。减薄倍增层可以让电场更陡、倍增更集中,这是提高增益-带宽积的手段,对饱和功率也有正向帮助。但不能无限减薄,太薄会导致隧穿电流增大,暗电流暴涨。仿真扫描时要把"暗电流"和"饱和功率"两个目标放在一起看,找一个帕累托最优区间。
第二个杠杆是电荷层。电荷层的掺杂浓度和厚度决定了倍增层的电场强度,等于是在给雪崩过程"撑腰"。提高电荷层掺杂,可以让倍增电场更高、更集中,对抗空间电荷屏蔽的能力也更强。但这个方向会让击穿电压升高,高偏压又带来额外的功耗和散热问题。我在几个结构上都试过,电荷层掺杂从2×10¹⁷调到5×10¹⁷ cm⁻³,饱和功率能提高2~3 dBm,代价是击穿电压抬高十几伏,后面要靠偏压方案来消化。
第三个杠杆是寄生电阻。把p型接触层做厚一点、掺杂浓度顶到1×10¹⁹ cm⁻³以上,降低欧姆接触电阻;台面侧壁钝化工艺做好,减少表面漏电通道。寄生电阻小了,强光下IR压降就小,有效偏压稳得住,增益塌陷点自然往后推。
5.2 外加偏压与接收机协同的"动态增益"思路
器件结构做到极限之后,系统层面还有一个大招:动态调整APD偏压。既然低光功率需要高增益,强光功率需要低增益,那就不妨让偏压跟随光功率自动变化。光功率大时主动降低偏压,让M降下来,输出电流保持在线性范围内;光功率小时把偏压顶上去,保证弱光灵敏度。这就是光接收机里常见的APD增益自动控制思路,相当于把"硬件问题"变成"系统策略问题"。
这个思路在仿真阶段就能验证:你把偏压从0.95Vbr按功率档位递减到0.8Vbr,再看I-P曲线,整个动态范围能明显拉宽。这一块和Lumerical的INTERCONNECT系统级仿真配合起来,可以直接看接收机链路的眼图和误码率变化。
5.3 迭代优化与验证闭环
结构优化的过程不是一蹴而就的,我个人习惯是三轮迭代。第一轮用低精度网格大范围扫描,把参数空间大致摸清;第二轮在最优区域加密网格,精算饱和功率、暗电流、带宽几个关键指标;第三轮做三维验证和工艺公差分析,看哪些参数对性能波动最敏感。
我实际做过的一个InGaAs/InP结构,初始设计饱和功率只有-10 dBm左右,系统级测试时强光直接削顶。迭代优化后把倍增层减薄到400 nm、电荷层掺杂调高、接触层重新设计,饱和功率抬到了-3 dBm附近,增益和暗电流没有明显恶化。这套流程里,Lumerical帮了大忙,但真正让你少走弯路的,是每一步都盯着电场分布和能带图,而不是只盯着最终曲线。
6. 仿真阶段最容易翻车的细节记录
6.1 网格收敛性与电离模型标定
网格密度不够,击穿电压可以偏出几十伏。倍增层里电场梯度非常大,网格太稀疏会把电场峰值"抹平",导致仿真出来的击穿电压偏高、增益偏低。我在倍增层厚度方向上会保证至少20个网格点,然后做一次网格收敛测试:把网格尺寸减半,看击穿电压和增益的变化是否小于1%。满足这个标准,网格才算通过。
电离模型标定是另一个大坑。InP的电离系数在不同文献里给出的数值差异很明显,直接套某一个公式,仿真击穿电压和实测可能差好几伏。保险的做法是:先固定结构尺寸,拿一个已知击穿电压的实验数据或文献数据做标定,反推电离模型参数,再用这个参数去做其他结构对比。InAlAs也要同样处理,而且要注意铝组分不同时带隙和电离系数都会变。
6.2 FDTD监视器和CHARGE高功率收敛的坑
FDTD里最容易被坑的是吸收监视器的设置。监视器要包裹住吸收层内部,不能碰到PML边界,否则吸收功率会被人工边界吸收掉一部分。另外二维仿真时,光源极化模式(TE/TM)对吸收分布的驻波形态影响很大,如果工艺上无法确定入射光的偏振,建议用圆偏振或分别算两个极化再取平均。
CHARGE高功率下不收敛是神烦的问题。光功率一大,倍增区的载流子浓度剧烈变化,Newton迭代很容易发散。我的经验是:不要直接从0跳到高功率,先做一次完整的暗电流IV扫描,把每个偏压点的解作为高功率扫描的初始猜测,再逐步增加光源功率。功率分档用十倍步进,从0.1 μW到1 mW也就8档,每档在上一档收敛解的基础上继续算,收敛概率会高很多。
如果还是发散,就检查一下复合模型的参数。俄歇复合系数设得不当,会导致高注入下数值振荡。另外可以把求解器的阻尼系数调大一点,牺牲一点计算速度换稳定性。
6.3 什么情况下必须把热效应请回来
如果入射光功率已经到毫瓦级,而且你关心的是连续光下的稳态饱和特性,自热效应就不能忽略。Lumerical有热求解器可以和CHARGE耦合,算结温对增益漂移的影响。但热耦合计算量大一轮,我通常先跑纯电学版本,如果发现去掉热效应后的仿真结果和实测系统性偏差,再启用热耦合排查这部分差异。
需要提醒的是,在对比两种材料体系时,自热效应的贡献可能还不一样。InP和InAlAs的晶格导热性和温度系数不同,强光下的温度漂移幅度也会有差异。如果目标是选型对比,建议把热效应放在第二轮精细化对比里做,避免第一轮扫描矩阵规模爆炸。
我做了这么多次APD仿真,最大的体会就是:功率饱和度这个指标,一开始不重视,后面一定会来找你麻烦。仿真阶段每省一道工,系统实测阶段可能就要花十倍时间补回来。如果你也在设计1550 nm的InGaAs/InP或InGaAs/InAlAs APD,强烈建议从第一天起就把P1dB放进优化目标里,配合Lumerical的光电耦合仿真流程,把饱和行为做透再做结构冻结。这样后面联调接收机链路的时候,会轻松非常多。