描述脉冲编码验证的方法

解读

“脉冲编码”在国内芯片公司通常指 PWM、PCM、PPM、Σ-Δ 等把模拟/并行信息转成时间域脉冲序列的模块,常见于马达驱动、音频 ADC、激光测距、电源管理、高速 SerDes 时钟恢复等场景。
面试官问“验证方法”,并不是想听“写个 testbench 跑一下”这种套话,而是考察三件事:

  1. 你是否能把“模拟+数字”混合特性抽象成可量化的验证目标;
  2. 你是否熟悉国内流片前 sign-off 的强制检查项(如《集成电路设计验证规范》YD/T 1234-2021、客户协议检查表、车规 AEC-Q100 对数字脉冲抖动的要求);
  3. 你能否在有限工期内用最低成本把缺陷收敛到 0。
    因此,答案必须给出“可落地、可量化、可复用”的完整验证套路,而不是简单罗列 UVM phase。

知识点

  1. 脉冲编码关键指标

    • 静态参数:占空比/脉冲宽度精度、满量程线性度 INL/DNL、编码偏移 offset、增益误差。
    • 动态参数:SNR、ENOB、SFDR、THD、相位抖动 RMS/Peak、周期到周期 jitter、脉冲间距离一致性。
    • corner 指标:PVT 下最大/最小脉宽、死区时间、毛刺宽度、亚稳态窗口。
  2. 验证技术

    • 混合域建模:SystemVerilog + Wreal/SV-RNM 实现 10 ps 级时序精度,同时用行为级 C 模型做黄金参考。
    • 断言+形式验证:SVA 描述“脉宽必须在 1.2 ns~128 ns 之间且单调递增”,用 VC-Formal 在 30 分钟内穷举 2^24 状态空间,发现 3 条越界路径。
    • 统计采样:以 5 ps 分辨率对 10 G 个脉冲做直方图,自动计算 RMS jitter 并回写到 coverage 数据库,实现“数字 coverage + 模拟指标”双闭合。
    • 硬件加速:将脉冲计数器/抖动分析逻辑综合到 Zynq UltraScale+,跑 200 MHz 实速,用 2 小时完成原本需要 3 周 RTL 仿真的抖动应力测试。
    • 回归自动化:用 Jenkins + GitLab CI 每日凌晨触发 PVT corner 72 组回归,若 SNR 下降 >0.2 dB 或 jitter 增加 >0.3 ps 即邮件告警。
  3. sign-off 交付物

    • 验证计划(VP)(符合中国赛宝认证中心模板,需评审签字)。
    • 覆盖率报告:代码覆盖率 100%,功能覆盖率 100%,断言覆盖率 100%,模拟指标 coverage 95% 以上(剩余 5% 由硬件加速补充)。
    • 缺陷报告:所有 severity-1/2 缺陷清零,severity-3 缺陷经产品经理与质量代表双签字接受。
    • 第三方复核报告:由公司独立验证部重新跑 24 小时抖动应力,确认 RMS jitter ≤ 1.12 ps(客户规格 1.2 ps)。

答案

脉冲编码验证采用“模拟指标量化 + 数字验证流程”双轮驱动,分五步:
第一步,需求拆解。把协议/Spec 中的“占空比 0.1%~99.9%,分辨率 0.01%,抖动 <1.2 ps”翻译成可测功能点,写入 VP,每条功能点对应一条 covergroup 或断言。

第二步,建模与黄金参考。用 SystemVerilog 写行为级脉冲发生器,周期、脉宽、相位均可参数化;同时用 C++ 写高精度浮点模型(带抖动噪声),输出 CSV 作为黄金数据。

第三步,多平台协同验证。

  • 功能/时序:UVM 环境下用 RNM 模型跑 0.9 V~1.21 V、-40 ℃~125 ℃ 共 72 个 PVT corner,收集代码、功能、断言覆盖率。
  • 形式验证:用 SVA 描述“脉宽寄存器值一旦锁定,下一周期脉宽变化不得超过 ±1 LSB”,VC-Formal 在 20 分钟内证明无越界。
  • 统计性能:把 10 G 个脉冲 dump 到 FSDB,Python 脚本自动算直方图、RMS/Peak jitter、SNR,回写至 UCIS 数据库,实现“模拟指标 coverage”。

第四步,硬件加速与 FPGA 原型。将脉冲计数器、抖动分析逻辑综合到 Zynq UltraScale+,跑 200 MHz 实速,注入 1.6 Gb/s 随机脉冲流,2 小时等效 RTL 仿真 3.6 年,发现亚稳态导致的 1 个偶发错码,推动设计增加二级同步器。

第五步,sign-off 与交付。回归中心每日自动比较 SNR、jitter、INL/DNL,若任何指标劣化 >5% 即停版;所有 severity-1/2 缺陷清零后,由独立验证部重新跑 24 小时应力测试,出具第三方复核报告,最终交付 VP、覆盖率、缺陷清单、复核报告四件套,保障一次流片成功。

拓展思考

  1. 车规功能安全(ISO 26262)场景下,脉冲编码模块通常要求 ASIL-B/C。验证阶段需增加“故障注入 + 诊断覆盖率”指标,例如用 Formal 证明“当脉宽监测器检测到占空比 >99.95% 时,必须在 1 ms 内触发安全中断”,并给出 DC/FC 覆盖率 ≥90% 的证据。
  2. 对于 3 nm 先进工艺,供电噪声对脉冲抖动影响放大,可在验证平台里引入“动态电压 droop”模型,用 100 mV 阶跃激励,观察 jitter 劣化是否仍 <10% 规格,提前发现电源完整性风险。
  3. 国内客户常要求“零下 55 ℃ 仍能工作”,但实验室温箱最低只能到 -45 ℃,此时可用“温度外推 + 老化加速”方法:在 -45 ℃ 测得 jitter 1.05 ps,用阿伦尼乌斯模型外推 -55 ℃ 为 1.14 ps,仍低于 1.2 ps 规格,从而节省 2 周低温实验成本,该思路需在验证报告里给出统计学置信区间,评审方可接受。