如何验证光电探测器与CMOS电路的接口?
解读
面试官抛出该问题,核心想考察三点:
- 是否理解“光→电→数字”跨域接口的异质性——光电探测器输出通常是nA~µA级电流脉冲,而CMOS数字端是0/1电平,中间隔着跨阻放大器(TIA)、比较器、ADC或CDR等模拟/混合信号链路。
- 能否把传统IC验证方法学(UVM、覆盖率、形式化)扩展到混合信号场景,解决“模拟精度”与“数字效率”之间的矛盾。
- 是否具备国内流片厂(SMIC、TSMC南京、HuaHong Grace等)的交付经验,知道如何把验证结果写到sign-off报告里,让后端、封装、测试厂都能看懂并复现。
因此,回答要体现“混合信号建模→指标分解→平台搭建→边界场景→覆盖率闭合→sign-off”完整闭环,并给出可落地的国内项目实例。
知识点
- 光电探测器电气模型:PIN/APD的电流源模型Iph = R·Popt,暗电流Idark,结电容Cj,温度系数,工艺corner。
- 跨阻增益与噪声:TIA的跨阻Rf、输入阻抗、等效输入噪声电流密度i_n,决定最小可探测光功率。
- 数字接口协议:脉冲宽度调制(PWM)、LVDS、SLVS、CMOS单端,以及自定义并口,需查协议手册建立协议检查器。
- 混合信号验证方法:
- Real-Number Modeling (RNM/Wreal) 在SystemVerilog里用
wreal或nettype real跑数模协同,兼顾速度与精度。 - 行为级ADC/比较器模型,用SystemVerilog
analog function或SystemVerilog-AMS,在VCS/Questa混合信号选项下编译。 - 分段验证:先跑“模拟小信号”+“数字协议”分开验证,再跑“光-电-数字”全链路。
- Real-Number Modeling (RNM/Wreal) 在SystemVerilog里用
- 关键指标:灵敏度(Sensitivity)、动态范围(DR)、误码率/误脉冲率(BER/MPER)、饱和光功率、时序抖动(Jitter)、功耗。
- 边界场景:
- 工艺corner:ff/ss、-40 °C/125 °C、1.08 V/1.32 V(针对国内55 nm 1.2 V标准逻辑)。
- 光电极端:光照0 lux、弱光1 mlux、强光100 klx、突发激光脉冲、50 Hz/60 Hz 背景光调制。
- 电源干扰:DC-DC 500 mV纹波、IO同时切换噪声SSO。
- 覆盖率:
- 功能覆盖:光功率分段、温度分段、工艺corner交叉。
- 协议覆盖:脉冲宽度±5 %、占空比40 %
60 %、突发间隔1 µs1 ms。 - 断言覆盖:TIA输出饱和告警、比较器亚稳态窗口。
- 形式验证与加速:
- 对数字协议部分用SVA + formal,证明在任何光脉冲序列下不会出现死锁或毛刺。
- 对大数据量图像传感器接口,用Zynq UltraScale+ FPGA原型做实时光注入,跑24小时老化。
- Sign-off交付:
- 指标汇总表:灵敏度-40 dBm,BER<1E-12,抖动RMS<20 ps,功耗<2 mW。
- 覆盖率报告:代码覆盖率100 %,功能覆盖率98.7 %,未覆盖点列出原因+风险评估。
- 第三方复核:由国内封测厂(通富、长电)用ATE重复光注入测试,结果与验证平台误差<0.2 dB。
答案
我把它拆成六步,每一步都给出国内项目可落地的做法。
第一步:需求澄清与指标分解
拿到设计spec后,先跟算法/光学/模拟团队对齐:
- 光波长850 nm,探测器 responsivity 0.55 A/W。
- 数字端要求单端CMOS 1.2 V,脉冲宽度8 ns±500 ps,误脉冲率<1E-12。
- 工作温度-40~85 °C,SMIC 55 nm 1.2 V/2.5 V工艺。
把光功率灵敏度-28 dBm换算成电流:Iph = 0.55 A/W × 10^(-28/10) mW ≈ 0.22 µA,这就是验证平台要灌入的最小电流。
第二步:建立可综合的混合信号Testbench
- 光电探测器用SystemVerilog
wreal电流源模型:
Iph = (Popt * R + Idark) * temp_factor;
其中temp_factor用二次曲线拟合-40~125 °C。 - TIA行为模型:零极点传递函数,输入噪声电流密度i_n=6 pA/√Hz,输出饱和摆幅1.0 V。
- 比较器+CDR:用SV写状态机,检测脉冲宽度、抖动,并输出数字码流。
- 把模拟部分封装成
dpi-C接口,VCS-MS混合信号仿真器支持,速度比SPICE快100倍,精度误差<3 %。
第三步:搭建UVM验证环境
- Agent:光激励Agent负责在runtime动态改变Popt;数字协议Agent负责发送配置寄存器、读取CDR输出。
- Scoreboard:把光激励的“理论到达时间”与CDR输出的“实际到达时间”比较,统计抖动直方图。
- Coverage:cross
Popt_cg,temp_cg,corner_cg,pulse_width_cg,确保-28 dBm~-3 dBm每2 dB一格全扫到。
第四步:边界场景与异常注入
- 弱光+高温+ss corner:验证噪声是否导致误触发,跑Monte-Carlo 200次,要求MPER<1E-12。
- 强光-ff corner:检查TIA饱和恢复时间,用断言检查恢复时间<20 ns。
- 电源100 mV 100 kHz纹波:在VDD上叠加sin波,跑抖动测试,确保RMS jitter增量<3 ps。
- 光串扰:两路探测器间隔50 µm,一路加PRBS光,一路关光,检查串扰<1 mV。
第五步:形式验证与硬件加速
- 对数字协议FSM写SVA:
assert property (@(posedge clk) disable iff (reset) pulse_width >= 7.5ns && pulse_width <= 8.5ns);
用Questa Formal证明无违反。 - 把UVM Testbench封装成Zynq UltraScale+ FPGA原型,跑24小时,累计光脉冲>1E14,零误码,直接写进sign-off报告,国内代工厂认可。
第六步:覆盖率闭合与sign-off
- 代码覆盖率:行覆盖、条件覆盖、FSM覆盖均100 %。
- 功能覆盖率:98.7 %,未覆盖的1.3 %是>85 °C且<-25 dBm组合,评估为户外场景极小概率,风险可接受,写进评审纪要。
- 输出《光电接口验证报告》PDF,含环境版本、脚本tag、原始log、第三方ATE复核数据,提交给SMIC PD部门,一次流片成功。
拓展思考
-
如果工艺升级到28 nm,电源降到0.9 V,TIA输出摆幅只有400 mV,如何验证亚阈值区比较器的随机失调?
提示:在验证平台里加入蒙特-Carlo失调电压模型,用形式化工具证明在±3σ失调下仍能满足灵敏度。 -
面对车规AEC-Q100 Grade 0(-40~150 °C),温度跨度变大,暗电流指数上升,如何缩短仿真时间?
提示:用分段线性+温度插值,把150 °C高温点用行为模型外推,再用FPGA原型跑高温老化,互补验证。 -
国内封测厂缺乏高精度光注入设备,如何用ATE电注入等效替代?
提示:在探测器前级加电流镜,ATE直接灌电流,验证平台里把光响应曲线换算成电流表,保证电-光等效误差<0.1 dB,写入《可测试性设计规范》,降低量产测试成本。