解释光网络中的前向纠错验证
解读
面试官问“解释光网络中的前向纠错验证”,并不是想听一段科普,而是考察三件事:
- 你是否知道光通信链路对误码率(BER)的极致要求(≤1E-12);
- 你是否能把“前向纠错(FEC)”这一算法模块当成普通 RTL 一样,拆解出验证场景、激励、参考模型和覆盖率;
- 你是否具备把协议指标(pre-FEC BER、post-FEC BER、Net Coding Gain)翻译成可量化的验证目标的能力。
一句话:他要确认你既能看懂 ITU-T G.975.1 的算法伪代码,也能用 UVM 把它验到 sign-off。
知识点
-
光网络 FEC 分类
• 带外 FEC:如 RS(255,239),线路速率提升固定比例,验证重点在 symbol error 分布。
• 带内 FEC:如 OTN 的 RS(1023,1007),线路速率不变,验证重点在 interleaver 深度与突发错误容限。
• 软判决 LDPC:100G/400G 相干系统,验证需浮点 LLR 参考模型与定点位宽误差分析。 -
关键参数与公式
• pre-FEC BER:进入 FEC 解码器前的误码率,通常 1E-3 量级。
• post-FEC BER:解码后残余误码率,需 ≤1E-12。
• Net Coding Gain:NCG = 20·log10(dFEC) – 20·log10(dReference),d 为对应 BER 下的 Q 因子。
• Error Floor:LDPC 在低 BER 段出现斜率变缓,验证必须跑到 1E-14 以下确认无 floor。 -
验证对象划分
• 编码器:symbol 正确性、parity 生成、pipeline 延迟。
• 解码器:iterative 次数收敛、early termination、 Syndrome=0 判定。
• 适配层:Interleaver/De-interleaver 地址生成、RAM 读写冲突、反压反跳。
• 配置寄存器:code rate 切换、动态重传、Alarms(如 uncorrectable_codeword)。 -
验证方法学
• 黄金参考:C++/SystemC 浮点模型,经 MATLAB 验证后封装 DPI-C,供 Scoreboard 调用。
• 错误注入:在 PHY 层用 PRBS31+ 噪声生成器,精确控制 error pattern(随机、突发、burst+random 混合)。
• 覆盖率:
– 功能覆盖:codeword type、error symbol count、error magnitude、iteration number。
– 代码覆盖:对解码器中的 Min-Sum、Layered scheduling 必须 100 % 条件覆盖。
• 形式验证:对 8-bit symbol 字段做等价性检查,证明 parity 生成与参考模型逐周期一致。
• 硬件加速:将 400G LDPC 解码器放到 ZeBu 上,跑 24 h 相当于 RTL 仿真 3 个月,验证 NCG 无回退。 -
sign-off 标准(国内头部光芯片公司 checklist)
• post-FEC BER ≤1E-12 @ pre-FEC BER = 1E-3,置信度 95 %,样本量 ≥ 3E12 bits。
• Error Floor 斜率与理论差值 < 0.2 dB。
• 连续 72 h 无 uncorrectable_codeword 中断。
• 所有覆盖率达到 100 %,无 waiver。
答案
“在光网络芯片里,FEC 验证的核心是把‘协议指标’转成‘可闭合的验证目标’。
第一步,我会根据产品规格选定 FEC 类型——例如 400G 相干场景用 LDPC(576,432),code rate 0.75。
第二步,搭建 UVM 环境:Driver 把 PRBS 流量灌给编码器,Sequence 里嵌套 error injection task,可按 symbol 粒度注入 18 bit 错误;Reference Model 用 DPI-C 调用公司算法部提供的浮点 LDPC 解码 C 模型,输出 corrected codeword 和 iteration 次数;Scoreboard 对比 RTL 解码结果与参考模型,统计 post-FEC BER。10、突发长度 1
第三步,定义覆盖率:功能覆盖点包括 error pattern 的汉明重量 150 symbol、iteration 次数 112;代码覆盖要求对 Min-Sum 核心里每一层每一阶都 toggle 到。
第四步,跑性能区间:在 pre-FEC BER 1E-3、1E-4、1E-5 三档各跑 1E13 bits,用硬件加速器把仿真速度提到 4 MHz,确保 24 h 内收敛到 1E-12 以下。
第五步,做 corner 测试:把 SNR 降到理论门限再降 0.5 dB,确认 error floor 不出现;同时用形式验证工具证明 parity 生成矩阵与 IEEE 802.3 文档等价。
最终交付的 sign-off 报告里,我会给出 post-FEC BER 曲线、NCG 数值、覆盖率清单、error floor 截图以及 72 h 无中断日志,确保设计一次流片成功。”
拓展思考
- 动态 reconfiguration 场景:如果线路质量变好,DSP 通过寄存器把 LDPC 从 0.75 切换到 0.84 高码率以节省功耗,验证如何证明切换过程不掉包?需要引入“无缝重配”用例,在 mid-frame 切换并检查 Syndrome 连续为零。
- 多通道 skew 影响:400G 由 4×100G 物理 lane 组成,各 lane 经历不同光纤长度导致 1000 UI 的 skew,验证必须构造 lane-to-lane de-skew 与 FEC 解码的联合场景,确认 interleaver 深度足够覆盖最大 skew。
- AI 辅助误码预测:国内有团队尝试用轻量级神经网络在线预测 BER 趋势,再触发 FEC 参数自适应。验证人员需要把 AI 模型也当成 DUT 的一部分,对其输出触发条件做断言验证,确保不会出现“误降码率”导致系统掉线。