如何验证光子矩阵乘法计算?
解读
“光子矩阵乘法计算”在国内通常指用硅光/光电混合加速器完成 MAC 阵列运算,RTL 侧表现为:
- 光域部分:MZ调制器阵列、微环谐振器权重存储、波导网络、相干检测;
- 电域部分:DAC/驱动、ADC/TIA、数字后处理(缩放、截位、累加);
- 接口:AXI4-Stream 数据输入、输出,配置寄存器,中断,时钟门控,低功耗握手;
- 精度:8-bit 权重×8-bit 激活→20-bit 累加→可配 16/8-bit 输出;
- 性能:256×256 矩阵单周期完成,时钟 1 GHz,目标能效 1 TOPS/W。
验证难点在于“模拟+数字”异构、光学非线性误差、热漂移、ADC 量化噪声、时序跨时钟、功耗-精度折衷。面试官想听到的是:你如何把这些物理效应抽象成可量化的验证目标,并用 SystemVerilog/UVM 搭建闭环环境,最终给出 sign-off 证据。
知识点
- 光电混合建模:用 SystemVerilog real 型 + Wreal 建模光功率衰减、相位噪声、热串扰;在 UVM 中派生 optic_channel 组件,支持温度扫描。
- 误差预算:把光学插损、消光比、ADC ENOB、DAC INL 统一归到“等效 SNR”,再换算成 MAC 的 LSB 误差,作为黄金参考的容差带。
- 分层验证: 层0:单元级(调制器、检测器、ADC)——用 SVA 检查单调性、DNL/INL; 层1:阵列级——用 UVM 序列随机发 0/1 权重,检查输出矩阵与 MATLAB 双精度差 ≤ 1 LSB; 层2:系统级——跑 ResNet-18 特征图,比较光电输出与浮点 golden Top-1 差 ≤ 0.3%。
- 形式验证:对数字后处理部分用 Synopsys VC Formal 证明“累加器永不溢出”“移位截位等价于向下取整”。
- 功耗验证:在 VCS 中插 UPF 2.1,跑 Joules 进行向量级功耗回归,检查光域掉电后静态电流 < 50 μA。
- 时序收敛:光域数据路径为组合波导,电域为 1 GHz,需用多周期 2 约束,PrimeTime 报告跨时钟路径余量 > 100 ps。
- 误差注入:在 UVM 序列里用 $dist_normal 注入热漂移 0~20 mW,检查系统级自适应校准算法能在 32 周期内收敛。
- 覆盖率:MAC 误差分布、温度-消光比二维仓、ADC 码值边界、低功耗状态机,目标 100% 覆盖并交叉。
答案
“我会把验证拆成三步:建模、量化、收敛。
第一步,建模。用 SystemVerilog real 型建立光学通道模型,把插损、串扰、热噪声参数化,通过 UVM config_db 下发。电域部分用标准 UVM 寄存器模型封装配置寄存器,支持动态重配精度。
第二步,量化。先跑 MATLAB 拿到双精度 golden,再把光学非理想效应折算成等效 SNR,换算成 LSB 容差。单元级用 SVA 检查 ADC 单调性,阵列级用 UVM 随机矩阵比对,系统级跑真实 AI 特征图,要求 Top-1 差 ≤ 0.3%。同时用 VC Formal 证明数字后处理无溢出。
第三步,收敛。用覆盖率驱动:MAC 误差分布、温度-消光比二维仓、低功耗状态机全部 100% 交叉覆盖;功耗回归跑 Joules,光域掉电静态电流 < 50 μA;时序用 PrimeTime 签核,跨时钟余量 > 100 ps。最终输出 sign-off 报告,包含功能、性能、功耗、热稳定性四项指标,保证流片一次成功。”
拓展思考
- 如果工艺改为氮化硅波导,热漂移系数降到 1/10,验证平台如何复用?——可把温度扫描范围缩小,重新标定 SNR 容差,其余 UVM 环境无需改动。
- 若需支持在线训练,反向传播路径也要走光学,如何验证梯度精度?——需在参考模型里加入光子乘法的微分非线性,梯度误差容限设为 2×前向,跑 MNIST 收敛曲线对比。
- 面对 3D 封装,光-电-热耦合更复杂,如何加速仿真?——可把光学部分用 Verilog-A 编译成行为级 SO 库,在 VCS 中混合仿真,速度提升 5×,再用 FPGA 原型跑长序列。