3、光互连链路建模:光发射机模型、光纤信道模型、光接收机模型
做CPO系统仿真,说白了就是要把光信号从发射到接收的整个路径,用数学模型给描述出来。我刚开始接触这块时,总觉得建模是个纯理论活,后来踩过几次坑才明白——模型建得对不对,直接决定了仿真结果能不能信。
今天咱们就聊聊光互连链路里的三个核心模块:光发射机、光纤信道、光接收机。这三个东西串起来,就是一条完整的光链路。
3.1 光发射机模型
光发射机,就是把电信号转成光信号的家伙。在CPO系统里,我们通常用VCSEL(垂直腔面发射激光器)或者微环调制器。我个人习惯用VCSEL多一些,因为它的功耗和成本在短距互连里确实有优势。
建模时,我一般关注这几个关键参数:
- 输出光功率:典型值在0.5~2 mW之间,别贪大,大了反而容易引入非线性
- 调制带宽:决定了你能跑多快的数据率,25Gbps的VCSEL带宽大概在18~20 GHz
- 消光比:就是"1"和"0"的光功率比值,一般要求大于6 dB
- 相对强度噪声:这个容易被忽略,但它会直接影响接收端的信噪比
嗯,这里要注意。VCSEL的建模不能只看静态参数。我在一个25Gbps的项目里,就吃过这个亏——静态指标都达标,但眼图一测,抖动大得离谱。后来发现是VCSEL的弛豫振荡频率没建对。
一个简单的VCSEL大信号模型,可以用速率方程来描述:
dN/dt = ηI/qV - N/τn - vg·g(N,S)·S
dS/dt = Γ·vg·g(N,S)·S - S/τp + Γ·β·N/τn
这里N是载流子密度,S是光子密度。你想想看,这两个方程耦合在一起,就决定了VCSEL的瞬态响应。我建议刚开始做仿真时,先用这个模型跑一下阶跃响应,看看有没有过冲和振铃。
小技巧:VCSEL的调制电流不要直接加方波,最好加一个预加重滤波器。我曾经试过不加预加重,结果眼图张不开,后来加了2阶预加重,眼图立马干净了。
3.2 光纤信道模型
光纤信道,说白了就是光信号在光纤里跑的时候,会经历哪些"折磨"。在CPO系统里,我们通常用多模光纤(MMF),因为耦合效率高、成本低。
光纤信道的主要损伤有三个:
- 衰减:850nm窗口的MMF,衰减大概在2.5~3.5 dB/km。短距离互连(<100m)基本可以忽略
- 色散:包括模间色散和材料色散。模间色散是MMF的主要问题,OM4光纤的模间色散大概在0.2 ps/m
- 模式耦合:这个在长距离里才明显,短距互连可以先不考虑
我记得有一次做系统级仿真,眼图怎么都闭不上。查了半天,发现是光纤的差分模式时延(DMD)参数设错了。OM4光纤的DMD典型值在0.14 ps/m左右,我设成了0.3 ps/m,结果眼图直接塌了。
光纤信道的频域响应可以这样建模:
H(f) = exp(-α·L) · exp(-j·2π·f·τ) · exp(-(π·σ·f)²)
其中α是衰减系数,L是光纤长度,τ是群时延,σ是色散导致的脉冲展宽。说白了,光纤就像一个低通滤波器,频率越高,衰减越厉害。
核心要点:对于短距CPO互连(<10m),光纤信道的色散影响其实不大。真正要命的,是连接器的插损和回损。我建议仿真时至少留0.5 dB的插损余量。
3.3 光接收机模型
光接收机,就是把光信号再变回电信号。CPO系统里常用的是PIN光电二极管,或者APD(雪崩光电二极管)。APD灵敏度高,但偏压高、噪声大。我个人偏好PIN,简单可靠。
接收机建模要关注这几个方面:
- 响应度:PIN的典型值在0.5~0.9 A/W,850nm波长下大概0.6 A/W
- 带宽:决定了你能接收多高速率的信号,25Gbps需要至少18 GHz的带宽
- 暗电流:PIN的暗电流很小,nA级别,基本可以忽略
- 热噪声和散粒噪声:这两个是接收机的主要噪声源
接收机的等效电路模型,我一般用这个:
I_photo = R · P_in
I_noise = sqrt(2·q·I_photo·B + 4·k·T·B/R_load)
这里R是响应度,P_in是输入光功率,q是电子电荷,B是带宽,k是玻尔兹曼常数,T是温度,R_load是负载电阻。你看,噪声电流跟带宽的平方根成正比——所以带宽越高,噪声越大,这是个trade-off。
避坑指南:我曾经在一个项目中,接收机的TIA(跨阻放大器)带宽设得太高,结果噪声把信号淹没了。后来把带宽从25 GHz降到20 GHz,灵敏度提升了3 dB。记住,不是带宽越高越好,够用就行。
3.4 链路预算与眼图评估
三个模块都建好了,怎么评估链路性能?我一般看两个东西:链路预算和眼图。
链路预算就是算一下光功率从发射端到接收端还剩多少:
| 项目 | 典型值 | 备注 |
|---|---|---|
| 发射光功率 | 0 dBm | VCSEL输出 |
| 连接器插损 | -1 dB | 两个连接器 |
| 光纤衰减 | -0.3 dB | 100m MMF |
| 接收灵敏度 | -10 dBm | PIN @ 25Gbps |
| 链路余量 | 8.7 dB | 够用 |
眼图就更直观了。我习惯用蒙特卡洛方法跑10000个比特,然后叠加出眼图。眼图的张开高度和宽度,直接反映了链路的信号质量。
经验之谈:眼图张开高度低于200 mV,或者眼宽低于0.5 UI,基本就要出误码了。我一般留20%的余量,比如目标眼高250 mV以上。
下面这张图,是我总结的光互连链路建模的核心逻辑:
说白了,光互连链路建模就是把发射、信道、接收三个模块串起来,然后用链路预算和眼图来验证。我做了这么多年仿真,最大的体会是:模型不用太复杂,但关键参数一定要准。尤其是VCSEL的弛豫振荡频率和光纤的DMD,这两个参数稍微偏一点,仿真结果就完全不一样了。
嗯,今天就聊到这儿。记住,建模的目的是为了指导设计,不是为了炫技。把基础模型建扎实了,后面的系统级仿真才能靠谱。