解释BoW(Bunch of Wires)接口验证要点
解读
BoW 是 OCP-BOC 联盟针对 Chiplet 互连发布的“裸线束”物理层标准,国内头部厂商(如寒武纪、壁仞、华为)在 2.5D/3D 封装项目里用它替代昂贵的高速 SerDes,实现 4~32 Gb/s 单端 NRZ 直连接口。验证环节的核心矛盾是“封装级信号完整性 + 协议级数据完整性”双重风险:一方面,有机基板/硅中介层走线密集、阻抗不连续,极易出现串扰、反射、电源塌陷;另一方面,协议取消了传统 8b10b、改用原始 NRZ+前向时钟,任何一位翻转错误都会直接污染上层 NoC 包。面试官问“验证要点”,实质想确认候选人能否把“SI 效应”翻译成可量化的验证场景,并用 UVM 环境在 RTL 冻结前把它跑完。
知识点
- 物理层特性:单端 1
n GHz 前向时钟、1664 根数据线、无 8b10b、无 AC 耦合、时钟与数据同速率、占空比失真容忍度 <5%。 - 链路训练状态机:Detect→Training→Calibrate→Active→LPI;Training 阶段需完成 Lane Map、Polarity Swap、De-skew(±1 UI 精度)。
- 时序模型:Setup/Hold 基于封装级 IBIS/AMI 仿真给出的 0.55 UI/0.45 UI 窗口;验证时必须把封装寄生参数反标到 RTL 的
specparam中。 - 协议层错误语义:Sync Word 失配、Lane Deskew 溢出、CRC-8 错误、Retry-Buffer 溢出;协议规定最大重放次数 6 次,超则上报 Fatal。
- 功耗状态:Active、LPI(Clock Stop)、DeepSleep;退出 LPI 的 Wake-up Latency <100 ns,需要验证时钟门控与时序收敛。
- 验证方法学:UVM-SV + 自定义
bow_phy_driver注入抖动、共模噪声;用 SystemVerilog Assertion 覆盖 Training FSM 的 16 条合法迁移路径;形式验证工具(VC Formal)证明 Deskew FIFO 在 ±1 UI 范围内永不溢出。 - 国内流片 checklist:封装厂(长电、日月光)提供的 Channel-IL 模型 ≤–8 dB@Nyquist;PI 指标 SSN <50 mV;必须在 sign-off 前跑完 1e14 bit 无错 Bathtub 测试。
答案
BoW 接口验证要点可拆成“五横三纵”框架:
-
物理层信号完整性验证
a. 在 UVM 环境中例化 IBIS 行为模型,把封装厂提供的 S 参数反标到bow_phy_top,用+channel_loss=8dB开关注入插损;
b. 驱动端注入 0.15 UI 的随机抖动、50 mV 共模噪声,接收端检查 Eye Width ≥0.5 UI、Eye Height ≥150 mV;
c. 跑 1000 次 Monte-Carlo Corner(SS/FF/TT + 0.72/1.0/1.1 V + –40/25/125 °C),统计 BER <1e-15。 -
链路训练与初始化
a. 用 UVM sequence 随机化 Lane Map、Polarity Invert、Skew 0~±1 UI,触发 Training FSM;
b. 断言检查training_done拉高后,Deskew FIFO 指针差 ≤1 UI;
c. 形式验证工具证明 Training FSM 无死锁,16 条合法路径覆盖率 100%。 -
协议层数据完整性
a. 在 Active 状态发送 PRBS-31、Walking-0、Walking-1 等 Pattern,CRC-8 错误注入比例 1e-6,检查 Retry-Buffer 正确重放;
b. 构造最大 256 B 的 NoC 拆包/组包场景,验证 Byte-Enable、End-of-Packet 标志无错位;
c. 用 SVA 检查 Sync Word(0x78E1)每 128 bit 出现一次,失配立即触发fatal_err中断。 -
功耗与电源噪声
a. 在 LPI 状态停时钟,检查clk_stop_ack在 10 个时钟周期内返回;
b. 注入 200 mV SSN,监测接收端判决阈值漂移 ≤30 mV;
c. DeepSleep 唤醒后,重新跑 Training,确认链路可在 100 ns 内回到 Active。 -
系统级压力与 Corner
a. 用 FPGA 原型(Xilinx VU19P)跑真实 AI 工作负载,连续 72 h,记录无错码流 >1e14 bit;
b. 与封装厂联合做温度循环(–55~125 °C,1000 次),回片后对比验证环境与硅后结果,BER 差距 <0.3 decade。
sign-off 标准:
- 功能覆盖率(Covergroup)≥95%,断言通过率 100%;
- Bathtub 曲线左右余量均 ≥0.25 UI;
- 功耗状态切换延迟与规格书误差 <10%;
- 所有 Fatal/Error 中断在硅后复现率 <1 ppm。
拓展思考
- Chiplet 生态在国内刚起步,BoW 与 UCIe 并存:下一轮面试可能追问“如何在一个验证平台里同时支持 BoW 和 UCIe 协议复用”。思路是把物理层抽象成
phy_adapter层,用 UVM TLM-2.0 对接,协议差异封装在bow_mac与ucie_mac两个 VIP 中,实现 Layer-Centric Reuse。 - 国内封装厂对 BoW 的通道损耗模型更新滞后,验证团队需要自建“硅后回注”闭环:在测试机台(Advantest 93K)上采集真实眼图,用 Python 脚本把抖动成分拆分成 RJ/DJ,再反标到仿真环境,修正早期验证的悲观/乐观边界。
- 未来 3D 封装会把 BoW 时钟频率推到 32 Gb/s 以上,NRZ 将转向 PAM4,验证重点会从“UI 余量”转向“SNR 余量”,需要引入 ML-Based 信道估计,提前在验证阶段训练均衡器系数,减少硅后调试轮次。