描述生物传感器噪声抑制验证的方法

解读

面试官抛出此题,核心想考察三件事:

  1. 是否理解“生物信号”特有的噪声谱(0.1 Hz–10 kHz 内同时存在基线漂移、1/f 噪声、50 Hz 工频、肌电/运动伪迹、电极极化电位等);
  2. 能否把模拟/数字混合的噪声抑制算法(模拟前端斩波、数字滤波、相关双采样、Kalman、自适应 LMS、小波阈值等)拆解成可量化、可覆盖的验证场景;
  3. 是否具备从“算法→RTL→Netlist→Silicon”逐级验证的闭环思维,并能给出可 sign-off 的量化指标(SNR、CMRR、NF、ENOB、误码率、功耗等)。
    国内芯片公司普遍把生物传感 IP 做成“模拟前端+数字信号链+低功耗 MCU 接口”的混合信号子系统,验证团队常面临模拟波形难以直接断言、噪声随机性强、黄金模型缺失三大痛点。回答时必须体现“混合信号 + 随机噪声 + 算法性能”三位一体的验证方法,而不是简单罗列 UVM 组件。

知识点

  1. 生物电信号特征:ECG 0.05–150 Hz、EEG 0.5–100 Hz、EMG 10–500 Hz;基线漂移可高达 300 mV,SNR 常低于 0 dB。
  2. 噪声源建模:热噪声、1/f 噪声、50/60 Hz 及其谐波、电极–皮肤接触阻抗变化、运动伪迹(0.3–3 Hz 随机相位)。
  3. 抑制算法:
    – 模拟域:斩波稳定(Chopper)、自动归零(AZ)、相关双采样(CDS)、仪表放大器共模反馈。
    – 数字域:IIR/FIR 陷波、Kalman 滤波、自适应 LMS 消除、小波软阈值、独立成分分析(ICA)。
  4. 验证指标:输入参考噪声(IRN)< 1 µVrms、共模抑制比 CMRR > 120 dB、电源抑制比 PSRR > 90 dB、信噪比提升 > 26 dB、功耗 < 5 µA/通道。
  5. 混合信号验证方法:
    – 实数建模(wreal/SystemVerilog real) + 行为级噪声源;
    – Wreal/SV–D 联合仿真,事件驱动与 SPICE 节点同步;
    – 形式验证仅用于数字逻辑等价性,模拟通路需统计验证;
    – FPGA 原型必须回灌真实电极数据,不可仅用正弦波。
  6. 低功耗场景:Duty-cycling 下时钟门控是否引入瞬态噪声,验证需覆盖电源唤醒瞬间 100 µs 窗内的噪声毛刺。
  7. 国内流片厂(SMIC 55/40 nm、TSMC 22 nm ULP)对生物芯片的 sign-off 要求:三温测试通过 3σ,噪声指标在 0.9 V 电源下仍满足规格。

答案

验证分“五层漏斗”进行,每层给出可量化目标与平台实现。

  1. 算法层黄金模型
    用 MATLAB/Python 建立浮点黄金模型,含电极–皮肤阻抗随机变化、运动伪迹 AR 模型、50 Hz 谐波 + 白噪声。输出 SNR 提升 ≥ 26 dB、CMRR ≥ 120 dB 作为 0-Golden。该模型通过 UVM 的 DPI-C 封装为 “golden_noise_suppressor”,供后续实时比对。

  2. 行为级混合仿真
    在 SystemVerilog 中例化 wreal 的模拟前端(仪表放大器 + 斩波调制器),噪声源用 $random_gaussian 与 1/f 噪声滤波器生成,采样率 2 kS/s。测试用例采用受约束随机:基线漂移幅度 0–300 mV、工频幅度 0–10 mV、肌电带宽 20–500 Hz。Scoreboard 计算每帧 1 s 数据的 SNR 与 CMRR,若低于 golden 值 2 dB 即报错。此阶段跑 10 k 随机种子,确保统计收敛。

  3. RTL 级功能验证
    将数字滤波链(级联 IIR 陷波 + Kalman + LMS)封装为 DUT,接口采用 AMBA APB 配置,数据流 AXI-Stream。UVM 环境内置 “noise_sequence” 可随机插入斩波时钟抖动、ADC 丢点、电源纹波采样。覆盖率收集:
    – 陷波中心频率 45–55 Hz 步进 0.5 Hz;
    – Kalman 过程噪声协方差 Q 在 1e-41e-1 之间随机;
    – LMS 步长 µ 在 2^-12
    2^-6 之间随机;
    采用功能覆盖率 + 断言双保险,确保 100 % 覆盖。

  4. 门级与功耗验证
    对 RTL 综合后网表做 SDF 反标,运行 50 组工艺角(TT/SS/FF、0.9 V/1.0 V/1.1 V、-40 °C/27 °C/85 °C)。重点检查:
    – 时钟门控开启瞬间是否引入 < 10 µV 的电荷注入噪声;
    – 电源关断恢复后 100 µs 内 Kalman 滤波是否收敛;
    功耗仿真使用 VCD+SAIF,目标动态功耗 < 3 µA@1 V/2 kS/s。

  5. FPGA 原型与真实数据回灌
    将完整信号链部署 Xilinx Zynq-7020,通过 24-bit ADC 采集真实人体 ECG/EEG 数据,采样率 2 kS/s。FPGA 端运行与 RTL 同构的滤波逻辑,ARM 端运行 Python 黄金模型。两路结果做逐点相关,相关系数 ρ > 0.99 视为通过。连续采集 24 h,统计误码率(定义:输出波形与 golden 差值 > 5 µV 的点数占比)< 0.01 %。

Sign-off 标准:
– 输入短路噪声 < 1 µVrms(0.1–150 Hz);
– 50 Hz 工频抑制 > 55 dB;
– 运动伪迹恢复时间 < 0.5 s;
– 三温验证 3σ 良率 > 97 %;
– 功耗在 0.9 V 下 < 5 µA/通道。
全部指标由验证团队出具加密版 Excel 报告,经设计、量产、质量三方评审后方可 tape-out。

拓展思考

  1. 如果工艺从 55 nm 降至 22 nm,1/f 噪声 corner 频率升高,如何在不增加功耗前提下验证数字补偿算法仍能满足 < 1 µVrms?
    提示:可在 RTL 级插入可编程 1/f 噪声模型,通过随机 corner 频率 10 Hz–1 kHz 覆盖,再用自适应 LMS 的系数收敛时间作为附加覆盖率。

  2. 多通道阵列(64/128 通道)场景,通道间串扰(<-80 dB)如何量化验证?
    提示:在 UVM 环境中例化阵列级 crosstalk 矩阵,随机激励相邻通道幅度差 40 dB,通过相关矩阵特征值分解自动检查串扰能量。

  3. 国内医疗认证(YY0782-2010、GB9706.26)要求提供临床可重复性报告,验证团队如何提前在 FPGA 原型阶段生成符合标准的测试数据库?
    提示:与医院合作采集 100 例临床数据,脱敏后标注 QRS/EEG 特征点,FPGA 端跑实时算法输出特征点,与医生标注做一致性 κ > 0.9,可提前暴露算法缺陷,减少流片后临床迭代。