扫描链设计与实现:Scan insertion、压缩技术、测试时钟
面试问答卡片
面试问题:请描述扫描链插入的基本流程,并说明如何确定每条链的长度。
面试官考察点:候选人对 EDA 工具流程的理解、对链长/链数权衡的工程判断、对时序和功耗影响的意识。
回答框架:流程三步法:① 综合时指定扫描 MUX 插入方式;② 工具自动替换普通触发器为扫描触发器并连接成链;③ 后处理优化链平衡与时钟门控。链长确定:基于时钟域、功耗预算、测试时间约束,通常每条链 200~500 个触发器,通过 ATPG 工具反馈调整。
示例回答:(85字)扫描插入流程包括综合前定义测试模式、工具执行扫描替换与连接、以及后 STA 验证链时序。链长平衡可通过 set_scan_configuration 设置 max_length,再根据功耗仿真微调。我曾在 28nm 项目中将链长从 800 降至 400,测试时间仅增加 15%,但动态功耗降低 35%。
可能追问:如何处理异步复位信号的扫描链?scan chain 与 functional path 的时序差异如何分析?
面试问题:比较 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 态导致测试覆盖丢失?怎样计算压缩器输入/输出端口数?
面试问题:扫描测试中如何处理跨时钟域(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 脉冲?如何验证测试时钟与功能时钟的相位关系?
项目案例模板
| 项目名称 | 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%。” |