DFT可测试性设计规则与检查:确保芯片可测试性的关键步骤
概述
可测试性设计规则(Design for Testability Rules, DFT Rules)是确保芯片可测试性的关键准则,通过在设计过程中遵循这些规则,可以显著提高芯片的测试覆盖率和测试效率。DFT规则检查是验证设计是否符合可测试性要求的重要环节,通过自动化工具检查设计是否违反DFT规则,及时发现和修复可测试性问题。
本文将深入探讨DFT可测试性设计规则的基本概念、常用规则和检查方法,帮助读者全面理解DFT规则检查的关键要点。
DFT设计规则基本概念
2.1 DFT规则定义
DFT规则是一组用于指导芯片设计的准则,旨在提高芯片的可测试性。
规则类型:
- 结构性规则:关于电路结构的规则
- 功能性规则:关于电路功能的规则
- 时序性规则:关于电路时序的规则
- 物理性规则:关于电路物理实现的规则
规则目标:
- 提高信号的可控性和可观测性
- 确保所有寄存器都在扫描链中
- 避免不可测试的电路结构
- 优化测试覆盖率和测试效率
2.2 可控性和可观测性
可控性和可观测性是DFT规则的核心概念。
可控性(Controllability):
- 从芯片外部控制内部信号的能力
- 可控性高意味着可以方便地设置内部信号的值
- 可控性低会导致难以生成有效的测试向量
可观测性(Observability):
- 从芯片外部观测内部信号的能力
- 可观测性高意味着可以方便地获取内部信号的值
- 可观测性低会导致难以检测内部故障
可控性和可观测性的重要性:
- 直接影响测试覆盖率
- 影响测试向量生成的难度
- 影响故障诊断的效率
2.3 DFT规则检查流程
DFT规则检查通常包括以下步骤:
规则定义:
- 定义需要检查的DFT规则
- 确定规则的检查方法和标准
- 制定规则违反的处理策略
规则检查:
- 使用自动化工具检查设计是否违反DFT规则
- 生成规则检查报告
- 识别规则违反的位置和原因
规则修复:
- 分析规则违反的原因
- 制定修复方案
- 修改设计,消除规则违反
验证:
- 重新检查修复后的设计
- 确保所有规则违反都已修复
- 验证修复没有引入新的问题
常用DFT设计规则
3.1 扫描链规则
扫描链规则确保所有寄存器都正确地包含在扫描链中。
规则1:所有寄存器必须在扫描链中
- 确保所有寄存器都被包含在扫描链中
- 避免不可测试的寄存器
- 提高寄存器的可控性和可观测性
规则2:扫描链必须完整
- 确保扫描链的完整性
- 避免扫描链断裂
- 确保测试数据能够正确传输
规则3:扫描链长度必须合理
- 扫描链长度不宜过长
- 过长的扫描链会增加测试时间
- 考虑扫描链数量和长度的平衡
规则4:扫描使能信号必须可靠
- 确保扫描使能信号在正常模式下不会被意外激活
- 避免扫描使能信号的毛刺
- 确保扫描使能信号的时序满足要求
3.2 组合逻辑规则
组合逻辑规则确保组合逻辑的可测试性。
规则1:避免异步反馈环路
- 异步反馈环路会导致不可测试的状态
- 影响测试向量的生成
- 增加测试难度
规则2:避免不可控的信号
- 不可控的信号无法被测试向量控制
- 影响测试覆盖率
- 需要通过测试点插入等方式提高可控性
规则3:避免不可观测的信号
- 不可观测的信号无法被测试响应观测
- 影响故障检测能力
- 需要通过测试点插入等方式提高可观测性
规则4:避免冗余逻辑
- 冗余逻辑会增加电路复杂度
- 影响测试覆盖率
- 增加测试时间
3.3 时序逻辑规则
时序逻辑规则确保时序逻辑的可测试性。
规则1:所有时钟必须可控
- 确保所有时钟信号都可以被外部控制
- 避免不可控的时钟
- 确保测试模式下的时钟控制
规则2:避免时钟域交叉问题
- 时钟域交叉会导致不可预测的行为
- 影响测试向量的生成
- 需要使用同步器等方式处理
规则3:避免异步复位
- 异步复位会导致不可测试的状态
- 影响测试覆盖率
- 建议使用同步复位
规则4:确保寄存器的建立时间和保持时间
- 寄存器的时序约束必须满足
- 避免时序违规
- 确保测试模式下的时序正确
3.4 边界扫描规则
边界扫描规则确保边界扫描电路的正确性。
规则1:所有引脚必须包含在边界扫描单元中
- 确保所有输入输出引脚都有对应的边界扫描单元
- 避免遗漏的引脚
- 确保边界扫描的完整性
规则2:边界扫描单元必须正确连接
- 确保边界扫描单元按照正确的顺序连接
- 避免边界扫描链断裂
- 确保测试数据能够正确传输
规则3:TAP控制器必须符合IEEE 1149.1标准
- 确保TAP控制器的行为符合标准要求
- 避免自定义的TAP控制器实现
- 确保与其他JTAG设备的兼容性
规则4:边界扫描指令必须正确实现
- 确保标准边界扫描指令的正确实现
- 避免指令解码错误
- 确保边界扫描功能的正确性
3.5 BIST规则
BIST规则确保BIST电路的正确性。
规则1:BIST电路必须不影响正常功能
- 确保BIST电路在正常模式下不影响芯片功能
- 避免BIST电路的副作用
- 确保BIST电路的隔离性
规则2:BIST控制器必须可靠
- 确保BIST控制器能够正确控制测试流程
- 避免控制信号的错误
- 确保BIST操作的正确性
规则3:TPG必须生成有效的测试向量
- 确保测试生成器能够生成有效的测试向量
- 避免无效的测试向量
- 确保测试覆盖率
规则4:RA必须正确分析测试响应
- 确保响应分析器能够正确分析测试响应
- 避免响应分析错误
- 确保测试结果的正确性
DFT规则检查方法
4.1 静态检查
静态检查是在设计阶段对电路进行的检查,不涉及动态仿真。
方法:
- 使用DFT规则检查工具对RTL代码进行检查
- 分析电路结构,识别规则违反
- 生成静态检查报告
优势:
- 检查速度快
- 可以在设计早期发现问题
- 不需要测试向量
局限:
- 无法检测时序相关的问题
- 可能产生误报
- 需要人工分析检查结果
4.2 动态检查
动态检查是通过仿真对电路进行的检查,涉及测试向量的应用和响应的观测。
方法:
- 使用DFT规则检查工具生成测试向量
- 对电路进行仿真,观察测试响应
- 分析测试响应,识别规则违反
优势:
- 可以检测时序相关的问题
- 检查结果更准确
- 可以验证静态检查的结果
局限:
- 检查速度慢
- 需要测试向量
- 可能遗漏某些规则违反
4.3 形式验证
形式验证是使用数学方法对电路进行的检查,不涉及仿真。
方法:
- 使用形式验证工具对电路进行分析
- 通过数学证明验证电路是否符合规则
- 生成形式验证报告
优势:
- 检查结果准确
- 可以覆盖所有可能的情况
- 不需要测试向量
局限:
- 计算复杂度高
- 适用于小规模电路
- 工具支持有限
4.4 混合检查
混合检查结合多种检查方法,提高检查效率和准确性。
方法:
- 使用静态检查进行初步检查
- 使用动态检查验证静态检查的结果
- 使用形式验证对关键部分进行验证
优势:
- 检查效率高
- 检查结果准确
- 适用于各种规模的电路
局限:
- 工具集成复杂
- 需要协调多种检查方法
- 增加设计流程的复杂度
DFT规则检查实现流程
5.1 规则定义阶段
规则选择:
- 根据芯片的具体需求选择合适的DFT规则
- 考虑芯片的类型、规模和应用场景
- 确定规则的优先级
规则配置:
- 配置DFT规则检查工具的参数
- 设置规则的检查标准
- 制定规则违反的处理策略
规则文档:
- 编写DFT规则文档
- 说明规则的目的和检查方法
- 提供规则违反的修复建议
5.2 规则检查阶段
静态检查:
- 使用DFT规则检查工具对RTL代码进行静态检查
- 生成静态检查报告
- 识别规则违反的位置和原因
动态检查:
- 使用DFT规则检查工具生成测试向量
- 对电路进行仿真,观察测试响应
- 分析测试响应,识别规则违反
形式验证:
- 使用形式验证工具对关键部分进行验证
- 通过数学证明验证电路是否符合规则
- 生成形式验证报告
5.3 规则修复阶段
规则违反分析:
- 分析规则违反的原因
- 确定修复方案
- 评估修复对设计的影响
设计修改:
- 根据修复方案修改设计
- 消除规则违反
- 确保修改没有引入新的问题
重新检查:
- 重新运行DFT规则检查工具
- 确保所有规则违反都已修复
- 验证修复的正确性
5.4 验证阶段
功能验证:
- 验证修复后的设计功能正确性
- 确保修复没有影响芯片的正常功能
- 测试各种功能模式
时序验证:
- 验证修复后的设计时序约束
- 确保时序满足要求
- 考虑修复对时序的影响
覆盖率验证:
- 使用修复后的设计进行故障模拟
- 验证测试覆盖率是否达到目标
- 确保修复没有影响测试质量
DFT规则检查应用实践
6.1 应用一:RTL设计阶段规则检查
在RTL设计阶段进行DFT规则检查,可以早期发现可测试性问题。
检查场景:
- 在RTL代码编写完成后进行规则检查
- 识别不可测试的电路结构
- 指导RTL代码修改
检查方法:
- 使用静态检查工具对RTL代码进行检查
- 分析电路结构,识别规则违反
- 生成规则检查报告
优势:
- 在设计早期发现问题
- 修复成本低
- 提高设计质量
6.2 应用二:综合阶段规则检查
在综合阶段进行DFT规则检查,可以确保综合后的电路符合可测试性要求。
检查场景:
- 在综合完成后进行规则检查
- 确保综合过程没有引入规则违反
- 验证扫描链的完整性
检查方法:
- 使用DFT规则检查工具对门级网表进行检查
- 验证扫描链的连接正确性
- 生成规则检查报告
优势:
- 确保综合后的电路符合要求
- 避免综合过程中的问题
- 提高综合质量
6.3 应用三:物理实现阶段规则检查
在物理实现阶段进行DFT规则检查,可以确保物理实现后的电路符合可测试性要求。
检查场景:
- 在布局布线完成后进行规则检查
- 确保物理实现没有破坏扫描链
- 验证边界扫描电路的正确性
检查方法:
- 使用DFT规则检查工具对物理实现后的电路进行检查
- 验证扫描链的物理连接正确性
- 生成规则检查报告
优势:
- 确保物理实现后的电路符合要求
- 避免布局布线过程中的问题
- 提高物理实现质量
DFT规则检查设计挑战与解决方案
7.1 规则复杂度挑战
问题: DFT规则数量众多,检查复杂度高。
解决方案:
- 根据芯片的具体需求选择关键规则进行检查
- 使用自动化工具进行规则检查
- 建立规则检查的优先级体系
7.2 误报问题
问题: DFT规则检查可能产生误报,增加设计人员的负担。
解决方案:
- 优化规则检查工具的参数,减少误报
- 对规则检查结果进行人工分析
- 建立误报数据库,积累经验
7.3 规则冲突问题
问题: 不同的DFT规则可能存在冲突,难以同时满足。
解决方案:
- 在规则之间进行权衡,确定优先级
- 使用混合DFT技术,满足不同规则的要求
- 优化设计,同时满足多个规则
7.4 工具支持问题
问题: DFT规则检查需要专门的工具支持,增加设计成本。
解决方案:
- 使用集成的DFT工具,减少工具数量
- 建立DFT规则检查的设计流程
- 培训设计人员,提高规则检查能力
DFT规则检查技术未来发展趋势
8.1 AI驱动的规则检查
人工智能技术正在应用于DFT规则检查。
发展方向:
- 机器学习算法预测规则违反
- AI辅助的规则检查优化
- 智能规则检查系统
8.2 自适应规则检查
自适应规则检查可以根据设计特性动态调整检查策略。
发展方向:
- 实时分析设计特性
- 动态选择需要检查的规则
- 自适应调整检查参数
8.3 三维规则检查
随着3D IC技术的发展,DFT规则检查需要考虑垂直方向的规则。
发展方向:
- 3D IC的DFT规则定义
- 硅通孔的规则检查
- 多层芯片的协同规则检查
总结
DFT可测试性设计规则是确保芯片可测试性的关键准则,通过在设计过程中遵循这些规则,可以显著提高芯片的测试覆盖率和测试效率。DFT规则检查是验证设计是否符合可测试性要求的重要环节,通过自动化工具检查设计是否违反DFT规则,及时发现和修复可测试性问题。
在实际工程中,需要根据芯片的具体需求,综合考虑规则的优先级、检查方法和工具支持等因素,制定合理的DFT规则检查策略。同时,随着技术的不断发展,DFT规则检查技术也在不断演进,需要关注最新的技术趋势和工具发展。
参考文献
1 IEEE Standard for Test Access Port and Boundary-Scan Architecture, IEEE Std 1149.1-2013.
2 Abramovici, M., Breuer, M. A., & Friedman, A. D. (1994). Digital systems testing and testable design. IEEE Press.
3 Agrawal, V. D. (1993). Design for testability: A survey. Proceedings of the IEEE, 81(1), 143-166.
4 IEEE Standard for Design for Testability of Integrated Circuits, IEEE Std 1149.1-2013.
5 Williams, T. W., & Parker, K. P. (1983). Design for testability---a survey. Proceedings of the IEEE, 71(1), 97-112.