扫描链设计与实现:Scan insertion、压缩技术、测试时钟

本章聚焦:扫描链是 DFT 的基石,面试重点考察对插入流程、压缩方法与时钟设计的理解。掌握结构化回答框架,区分不同场景的权衡。
明确测试目标 扫描链架构设计 插入与压缩权衡 时钟与功耗处理 验证与覆盖率分析 回答框架:从目标出发,递进展开设计决策与验证闭环

面试问答卡片

面试问题:请描述扫描链插入的基本流程,并说明如何确定每条链的长度。

面试官考察点:候选人对 EDA 工具流程的理解、对链长/链数权衡的工程判断、对时序和功耗影响的意识。

回答框架:流程三步法:① 综合时指定扫描 MUX 插入方式;② 工具自动替换普通触发器为扫描触发器并连接成链;③ 后处理优化链平衡与时钟门控。链长确定:基于时钟域、功耗预算、测试时间约束,通常每条链 200~500 个触发器,通过 ATPG 工具反馈调整。

示例回答:(85字)扫描插入流程包括综合前定义测试模式、工具执行扫描替换与连接、以及后 STA 验证链时序。链长平衡可通过 set_scan_configuration 设置 max_length,再根据功耗仿真微调。我曾在 28nm 项目中将链长从 800 降至 400,测试时间仅增加 15%,但动态功耗降低 35%。

可能追问:如何处理异步复位信号的扫描链?scan chain 与 functional path 的时序差异如何分析?

避坑提醒:勿回答“工具自动完成无需干预”,面试官期望你参与过 chain balancing 和 scan-mode STA 分析。

面试问题:比较 XOR 压缩与 Muxed-D 压缩技术的优缺点,你会如何选择?

面试官考察点:对常见压缩架构的理解深度、X 态容忍度、面积开销与测试覆盖率之间的 trade-off。

回答框架:先简述两种原理:Muxed-D 通过多路选择器从多个 chain 选一个输出,XOR Compressor 对链输出做异或减少引脚。对比维度:X 态传播(XOR 易泄露 X 态需要 masking)、压缩比、布线资源、兼容性。选择依据:若设计 X 态少且追求高压缩,选 XOR;若 X 态复杂要求低风险,选 Muxed-D。

示例回答:(90字)Muxed-D 面积稍大但无 X 态泄露问题,适合高速复杂 SoC;XOR 压缩比可达 100x 但需额外 mask 逻辑。在 7nm AI 芯片项目中,我们采用 hybrid 方案:核心 chain 用 XOR 压缩,IO 边界用 Muxed-D,最终压缩比 80x 同时保持 99.5% 覆盖率。

可能追问:如何防止 X 态导致测试覆盖丢失?怎样计算压缩器输入/输出端口数?

避坑提醒:不要只讲优点,要主动讨论 X-masking 代价和诊断能力损失,体现全面评估。

面试问题:扫描测试中如何处理跨时钟域(CDC)的扫描链?测试时钟 tree 有哪些设计要点?

面试官考察点:多时钟域 DFT 设计经验、时钟树综合与 scan shift 的协同、测试时钟信号完整性。

回答框架:CDC 处理:通常将不同时钟域的触发器分入不同的 scan chain,并在链间插入同步器或采用 lockup latch 避免 metastability。时钟 tree 要点:① Shift 时钟与 capture 时钟共享同一 tree 但需独立门控;② 时钟 gating 在测试模式下必须 bypass;③ 注意 OCC 电路实现(片上时钟控制),确保 shift 频率低于功能时钟以避免 IR drop。

示例回答:(95字)对于多时钟域,我习惯按时钟域分组 chain,并通过 lockup latch 串联。在 12nm 项目中,我们将 6 个时钟域分为 12 条链,每域独立 OCC。测试时钟树使用 balanced H-tree,shift 频率设为 50MHz 减少动态压降,后仿验证所有时序路径满足 setup/hold。

可能追问:OCC 电路如何产生 at-speed 脉冲?如何验证测试时钟与功能时钟的相位关系?

避坑提醒:切勿忽略 clock gating 在测试模式下的处理,面试官会追问“如果 clock gating cell 没 bypass 会怎样”。

项目案例模板

项目名称28nm 基带 SoC 扫描链设计与压缩实现
业务背景面向 4G/5G 通信基带芯片,需要在 200MHz 功能频率下实现高覆盖率测试,同时控制测试成本。
规模指标触发器数量:1.2M;扫描链总数:32 chains;测试模式频率:50MHz;目标测试覆盖率 ≥98%
技术栈Tessent Scan & ATPG; Synopsys DFT Compiler; PrimeTime for STA; VCS 仿真; OCC (On-Chip Clock Controller)
核心难点多时钟域(6 domains)链平衡;X 态密集导致压缩覆盖率下降;shift 功耗过高触发 IR drop
面试高频追问① 如何解决 X 态对 XOR 压缩的干扰?
② 链平衡算法是如何自动调整的?
③ 如何测量 shift 功耗并设置上限?
可迁移回答话术“在 28nm 项目中,我通过将高 X 态模块(如时钟产生器)独立成链并添加 mask 寄存器,最终压缩比达到 60x 且覆盖率 >98.2%。链平衡使用 Tessent 内置的 rebalancing 脚本,迭代 3 次后最大 skew 小于 5%。”
面试贴士:本章三个话题经常组合考核。练习时尝试将“扫描链插入”与“测试时钟”结合回答,例如描述一条跨时钟域链的完整设计流程。