在现代半导体设计中,DFT(Design for Test)技术的重要性不言而喻。它确保了芯片在制造完成后能够进行高效和可靠的测试。DFT设计规则检查(DRC)作为DFT流程中的一个关键环节,通过一系列自动化工具检测设计中的潜在问题,从而保证设计的可测试性和整体质量。在本文中,我们将详细探讨DFT DRC的概念、重要性、检查流程以及具体的规则和应用。
|
规则检查名 | DRC代码开头 | 描述 |
RAM Rules | A* | RAM相关的检查 |
Assertion Rules | ASSERT | 检查ATPG lb里定义的assert_shift/capture/pattern等 |
BIST Rules | B* | 确保BISTpattern可以正确应用在circuit上 |
Clock Rules | C* | 检查扫描时钟的定义和操作 |
Scan Cell Data Rules | D* | 检查扫描单元是否可控可观测 |
Pre-DFT Clock Rules | DFT_C* | 检查做DFT之前的时钟定义和电路 |
Extra Rules | E* | 检查潜在的设计问题 |
EDT (Finder) Rules | K*/F* | 检查EDT逻辑的连接 |
Flattening Rules | FN,FP,FG | 检查网表的层次结构是否利于flattening |
General Rules | G* | General Rule,最基础的检查项 |
ICL Extraction/Sematic Rules | I*/ICL* | ICL文件格式的检查 |
Procedure Rules | P* | 检查test procedure文件的正确性 |
Core Mapping for ATPG and Scan Pattern Retargeting Rules | R* | 检查设计是否满足pattern retargeting的要求 |
Scannability Rules | S* | 检查设计是否符合扫描要求 |
Scan Chain Trace Rules | T* | 检查扫描链 |
Power-Aware Rules | V* | 检查cpf/upf |
Timing Rules | W* | 检查timeplate到procedure的mapping |
1. 时钟相关检查
时钟在DFT中扮演着重要角色,时钟信号的定义和传递直接影响到芯片的测试效果,在tessent里,任何可能改变时序器件状态的信号,都称之为时钟。时钟相关的DRC检查主要包括以下几方面:
· 时钟定义:确保所有定义的时钟信号能够正确传递到各个存储单元的时钟端。
· 时钟状态:在所有时钟处于关闭状态时,设计中的所有扫描和非扫描存储单元都不能捕获数据。
· 时钟影响:检查时钟信号在不同状态下对数据捕获的影响,确保不会干扰存储单元的数据操作。
2. 扫描相关检查
扫描链的定义和连接是DFT的重要组成部分,扫描相关的DRC检查包括:扫描链定义:确保所有扫描链组至少包含一条有效的扫描链,避免空的扫描链组存在。
时钟定义:确保每个扫描链组都有对应的时钟信号。
扫描链连接:检查扫描链的输入和输出连接,确保其与设计的其余部分正确衔接。
3. BIST规则检查
内建自测试(BIST)是一种常见的DFT技术,BIST规则检查主要包括:
BIST模式:确保BIST模式能够正确应用于电路中。
BIST连接:检查BIST逻辑的连接,确保其与电路其他部分的正确交互。
4. 预DFT时钟规则检查
在插入内建测试之前,预DFT时钟规则检查确保时钟的定义和结构合理,包括:
时钟传递:确保定义的时钟信号能够传递到所有需要的存储单元。
时钟频率:在定义memory时钟时,需指定正确的时钟频率。
如何进行DRC检查
进行DRC检查需要执行一系列特定的命令和操作,这些操作可以帮助设计人员快速识别并修正设计中的问题。以下是一些关键命令和操作步骤:
启动DRC检查
check_design_rules:启动DRC检查过程。
set_system_mode analysis:设置系统模式为分析,准备进行DRC检查。
配置DRC检查
配置DRC检查可以根据需要调整检查规则的严重程度(Error、Warning、Note、Ignore),以便更好地管理和处理DRC检查结果。
set_drc_handling:配置DRC检查的处理方式,根据严重程度进行分类处理。
生成DRC报告
DRC检查完成后,可以生成详细的DRC报告,帮助设计人员了解和修正设计中的问题。
report_drc_rules:生成DRC检查报告,包含所有的DRC违例总结。
report_drc_rules –all_fails:生成包含详细信息的DRC检查报告。
report_drc_rules ID:报告某一类特定的DRC违例。
report_drc_rules ID-num:报告某一个具体的DRC违例。
典型的DRC规则示例
以下是一些典型的DRC规则示例,这些规则在实际设计中经常被用到,用于确保设计的各个方面都符合规范要求。
时钟相关规则
C1:当所有定义的时钟都处于关闭状态时,设计中所有的扫描和非扫描存储单元都不能捕获数据,否则违例。
C2:所有已经定义了的时钟,都应该能向后到达某一个存储单元的时钟端,否则违例。
C6:定义的时钟不能影响存储单元正在捕获的数据。
预DFT时钟规则
DFT-C1:已经定义过的时钟信号必须能够传递到所有存储单元的时钟端。
DFT-C5:在定义memory时钟时,需指定正确的时钟频率,确保其在实际操作中能够正常工作。
扫描相关规则
G1:除了dummy外,所有扫描链组都应该包含至少一条扫描链。定义扫描链或者删除空的扫描链组。
G2:除了dummy外,所有扫描链组都应该有时钟。通过add_clock定义时钟。
G3:如果电路里没有时序存储单元,不能定义时钟。
G4:如果电路里没有时序存储单元,不能定义扫描链组。
G5:如果电路里没有RAM,不能定义写控制信号。
DRC检查的分析与处理
DRC检查完成后,生成的报告可以帮助设计人员详细了解每一个DRC违例,并根据需要进行相应的修正。通过以下命令和操作,设计人员可以高效地分析和处理DRC违例:
report_drc_rules:报告所有的DRC违例(总结)。
report_drc_rules –all_fails:报告所有的DRC违例(详细)。
report_drc_rules ID:报告某一类DRC违例。
report_drc_rules ID-num:报告某一个DRC违例。
此外,Tessent DRC检查工具还提供了GUI界面,通过图形化界面可以更直观地查看和处理DRC违例:
open_visualizer:打开GUI,选择“DRC Violations”标签。
analyze_drc_violation:分析具体的DRC违例。
总结
DFT DRC检查作为保障芯片设计质量和可测试性的关键步骤,通过自动化工具的帮助,设计人员能够及时发现和解决潜在问题,确保最终产品的可靠性和功能性。Tessent DRC工具以其强大的功能和高效的检查流程,成为业界广泛使用的解决方案。希望通过本文的详细介绍,您能更好地理解DFT DRC检查的流程和方法,为您的设计工作提供有价值的参考。