作为一名芯片设计DFT工程师专家,做好scan insertion(扫描插入)是确保芯片可测试性(DFT)的关键步骤之一。以下是一些关于如何做好scan insertion的详细建议:
一、明确Scan Insertion的目标与要求
提高测试覆盖率:通过扫描链,更容易地控制和观测电路内部状态,从而覆盖更多的故障模式。
简化测试生成:扫描链使得测试模式生成(ATPG)更加简单和高效。
降低测试成本:通过提高测试效率,减少测试时间和所需的测试设备资源。
二、掌握Scan Insertion的基本原理与流程
扫描触发器(Scan Flip-Flop):
结构:扫描触发器是普通触发器的扩展,具有两个输入端(数据输入和扫描输入)和一个输出端(数据输出和扫描输出)。
工作模式:功能模式和扫描模式。在功能模式下,扫描触发器像普通触发器一样工作;在扫描模式下,扫描触发器通过扫描链传递测试数据。
扫描链:由多个扫描触发器串联而成的链路,用于在扫描模式下传递测试数据。
Scan Insertion流程:
扫描配置(Configure scan settings):描述扫描链规划的初始设置,确定扫描设计的总体结构,包括扫描链数量、扫描单元类型、扫描单元在扫描链内的布置方式等。
扫描替换(Scan Replacement):将可测试设计中的原始存储单元替换为扫描单元。
扫描连接(Scan Stitching):将所有扫描单元连接在一起以形成扫描链,包括将每个扫描单元的扫描输出(SO)连接到下一个扫描单元的扫描输入(SI),以及将每个扫描链的首尾连接到适当的扫描链输入/输出端口。
扫描重新排序(Scan Reordering):基于物理扫描单元位置对扫描链中的扫描单元重新排序,以最小化扫描链的连线数量。
三、实施Scan Insertion的关键步骤与注意事项
选择合适的扫描单元:
根据芯片的设计规范和测试需求,选择合适的扫描单元类型。
考虑扫描单元的功耗、面积、性能等因素。
优化扫描链配置:
根据芯片的规模和复杂度,合理配置扫描链的数量和长度。
避免扫描链过长或过短,以平衡测试效率和资源消耗。
处理特殊逻辑:
对于多时钟域、异步逻辑、复位逻辑等特殊逻辑,需要特别处理以确保扫描链的正确性和完整性。
可能需要添加额外的扫描单元或逻辑来支持这些特殊逻辑的测试。
验证与调试:
在完成Scan Insertion后,进行仿真和验证以确保扫描链的正确性和功能性。
调试任何可能的问题,如扫描链断裂、测试数据丢失等。
考虑测试策略与故障模型:
根据芯片的故障模型和测试需求,选择合适的测试策略和方法。
利用ATPG工具生成高效的测试向量,并根据测试结果进行优化。
文档与记录:
记录Scan Insertion的详细过程和参数配置。
提供清晰的文档和说明,以便后续测试和验证人员理解和使用。
四、持续优化与改进
收集反馈与数据:
从测试过程中收集关于扫描链性能和测试覆盖率的反馈数据。
分析这些数据以识别任何潜在的问题或改进点。
优化扫描链设计:
根据反馈数据,调整扫描链的配置和参数以优化测试效率和覆盖率。
考虑使用更先进的扫描链设计技术或算法来提高测试性能。
更新测试策略与工具:
随着芯片设计的更新和测试需求的变化,不断更新测试策略和工具。
引入新的测试技术和方法来提高测试效率和准确性。
综上所述,做好scan insertion需要深入理解其基本原理和流程,掌握关键步骤和注意事项,并持续优化与改进以适应不断变化的设计需求和测试挑战。