静态时序分析签核 – 一种全面而稳健的方法
关键总结
一旦芯片流片,就无法更改设计,这凸显了静态时序分析 (STA) 签核作为防止硅故障的重要性。
全面的 STA 签核方法必须包括一整套检查,以识别结构问题并确保正确执行所有时序分析。
串扰是一个使时序收敛复杂化的重要问题,必须通过特定的限制和缓解策略进行管理,以保持时钟网络的完整性。
在 STA 签核过程中,早期反馈和主动识别潜在瓶颈对于实现更快的时序收敛至关重要。
未能实施概述的 STA 签核方法可能会导致昂贵的设计修复,对上市时间产生负面影响,并降低签核过程的可信度。
一旦芯片流片,就不可能改变设计——硅是无情的,不允许进行后期制作修改。相比之下,软件可以在发布后更新,但芯片保持固定。静态时序分析 (STA) 签核是防止硅故障的重要保障。
在现代 VLSI 设计中,错误代价极高,会影响关键应用的财务、上市时间、产品可信度和安全性。仅错过一项 STA 检查就可能导致数百万美元的损失和严重的项目延误。
“只有偏执狂才能生存——谨慎而彻底的方法对于 STA 签核至关重要”
良好的 STA 签核方法的目标
一套全面的签核检查 - 检查每一个细节
需要进行 STA 签核检查,以满足技术、设计、项目和块制定的规范。这些签核检查必须识别结构问题,准确正确地执行STA,执行所有强制的时序分析,并纳入与特定节点或设计相关的任何自定义检查。
确保完美的签核,没有错误或遗漏
对签核规范和代码实施进行全面审查,结合所有签核输出日志和报告的自动化流程和日志解析的集成,以及正确应用豁免和就未放弃的签核违规行为进行有效沟通,对于确保稳健的 STA 签核质量至关重要。
在签核规范和极端约束中发现悲观情绪
STA 签核过程应有效地识别不切实际的约束并提供可靠的调试报告。按违规类型、严重性、设计和作模式构建报告,并辅以清晰的图表和频率直方图等统计摘要,可显著提高清晰度。此外,及早识别夸大的需求对于确保有效的 STA 签核至关重要。
早期定时关闭反馈以主动解决问题
优先考虑可能导致未来瓶颈的基本签核检查,同时提供清晰的反馈、调试数据和建议的解决方案,有助于实现更快的时序收敛周期。
STA 签核方法的关键属性

虽然本文不讨论每个 STA 签核检查的详细算法,但此处提供了一个包含详细信息的单签核检查。
网络上的串扰 – 自定义 STA 签核检查串扰
串扰会导致与模式相关和角敏感的延迟变化,从而破坏建立和保持时间,从而使时序收敛变得复杂。它引入的噪声可能会导致毛刺、错误捕获和抖动增加,从而降低整体设计裕度。串扰还否定了 CPPR 信用,并且由于最坏情况分析,对同一时序路径的捕获和启动产生负面影响。块到顶部的不相关也归因于边界网上的串扰。这可能会迫使成本高昂的 ECO,涉及重新布线、屏蔽,并对电源、DRC 和 EMI 收敛产生潜在的连锁反应。
为数据路径、时钟中继和时钟叶网络设置串扰限制,并在设计中验证每个网络非常重要。下面给出了一个示例和详细信息。

干线网络通常以零串扰延迟分量为目标,因为过多的串扰会使时序收敛复杂化。常见的串扰缓解方法包括双倍间距和屏蔽。在关键路由上,可以采用差分时钟路由。在实践中,有些网络可能达不到这个目标,因此建议建立一个保守合理的串扰限制。目标是保持串扰干净的时钟干线网络。由于每条路径都可能涉及大量网络,因此保持时钟干线网络没有串扰至关重要,因为它会沿路径累积。
叶网不能屏蔽或隔离,因为它们代表时钟网络的最后阶段,并连接到相同数量的顺序设备,这使得屏蔽和隔离(通过双倍或三倍间距)资源密集型。因此,通常允许每个叶网上有 4-5 ps 的串扰。为了管理潜在问题,可以为时钟路径中网络的总串扰建立累积限制,从而能够监督单个叶网上的过度串扰以及来自树干和叶网串扰的综合影响。
例如,结构化方法涉及分析每个时钟域的 1000 条路径,收集与捕获时钟路径相关的所有网络,并提取与交叉耦合效应相关的延迟。构建串扰延迟间隔范围为1ps至10 ps的频率分布表有助于评估时钟网络与交叉耦合相关的性能。此外,执行此签核验证并一致地比较结果可以提供任何时钟网络降级的早期指示。及时识别出现的问题对于有效的时序收敛至关重要。
分类的“STA 签核”检查和描述
STA 签核检查列表非常全面,至少有 50 个签核检查;以下是带有简要说明的关键。所有检查的详细报道不在本文的讨论范围之内。
STA 签核规范实施检查 – 第一个签核步骤
STA 边距 – 验证应用于每个相关检查的边距和保护带,无论是工具生成的还是用户定义的。
定时降额 – 检查设计 /cell /net / constraints / checkTypes 的过程、电压、温度、老化、辐射、MixVT 和基于距离的降额。
时钟不确定性 – 根据时钟周期百分比或每个时钟或设计的平面数字检查时钟不确定度规格。
全周期抖动 – 测量抖动,建模为额外的时钟不确定性,通常指定为 PLL 抖动和 CTS 网络抖动的复合均方根和。
半周期抖动 – 与全周期抖动类似,测量应用于半周期路径的抖动和最小脉冲宽度检查。
输入驱动器 – 在时序分析期间,检查是否存在驱动单元,并根据 PVT 条件确认每个端口的默认或自定义驱动器。
输出负载 – 验证默认最小负载,以及基于 I/O 焊盘的存在或输出驱动程序的特殊外部规范的自定义负载。
STA 流变量 – 数百个变量指导准确的签核 STA,由工具版本、技术节点或代工厂规范、项目意图、STA 方法和签核规范决定的要求。
STA 命令选项 – 与 STA 流变量相同的详细信息适用于命令中用于执行 STA 步骤的选项。
STA 角 – 检查以确保签核规范与执行分析的 STA 角匹配。(PVTRC x 功能/扫描/JTAG/CDC ...
最大转换限制 – 验证最大转换报告是否反映了项目/设计设置的时钟域或设计的最小库约束和任何过度约束,以实现卓越的时序性能。
最大电容限制(Max Cap Limits) – 与最大转换限制相同的详细信息适用于最大电容检查。通常,库默认值用于内部节点。
异步时钟组 – 从所有时钟组组合中收集具有有限松弛的时序路径,并跟踪主时钟和生成的时钟,以确定不属于同一系列的报告路径的时钟交叉。
输入验收标准 – 防止垃圾输入垃圾输出场景网表质量 – 确认准确的读取设计过程并检查任何网表结构或层次结构绑定错误或警告。
时序约束质量 – 确保准确读取约束文件,没有不可放弃的错误和警告,确认主时钟和生成的时钟定义的正确性,并验证时序异常的正确实现。
注释寄生质量 – 检查寄生注释文件的正确读取,审核提取日志以进行签核(层、流变量、提取文件的日志解析、正确的技术文件使用、包含金属填充、寄生中的位置信息(如果适用)。
设计库使用正确性 – 从已发布的库数据库中的各种选择中验证标准单元、IO 焊盘、存储器、自定义 IP 的正确库使用。
工具版本正确性 – 用于计时、提取、约束生成、IP 模型生成和 Unix 使用(csh、python、lsf/bsub 等)的正确工具版本
文件版本 – 检查文件的正确版本,以了解变体 (POCV/SOCV)、电源配置 (UPF)、网表 (.vg、.libs)、寄生 (SPEF)、STA 流版本。
结构检查 – 设计、结构、备份 STA 检查中的重大缺陷 不使用单元 – 时钟和数据不根据晶圆代工厂、项目和基于单元强度和时序路径中的位置使用单元。
必须使用单元 – 时钟和数据单元类型(翻牌类型、时钟缓冲区、I/O 驱动程序......
同步器单元类型 – 检查 stage1 和 stage2 同步器的特定允许模式(库单元、强度、vt 类型)
同步器单元接近度 – 检查以确保同步器的 2 级彼此相邻或彼此相邻放置,以获得最佳的亚稳态失效时间。
同步器单元结构 – 检查以确保在同步器的 2 个阶段之间仅存在网络且不存在单元。
延迟单元和结构 – 检查以确保正确的延迟单元类型和强度,以及时序路径中允许的连续延迟单元的最大数量,以确保延迟单元变化建模不乐观。
锁定锁存器结构正确性 – 半周期路径锁定锁存捕获极性正确性(不能依赖外部工具)、锁定锁存单元类型以及锁定锁存器靠近发射时钟的位置(目的地可以吸收时钟偏差而不是源)
备用电池密度 – 检查每个模块的备用电池密度规格。
端口扇出 – 确保所有关键数据或时钟端口的单扇出,以避免上层实例化中的过载,并确保与空间降额边界框相关的块/顶部相关性。
输入端口净长度 – 当模块在更高级别进行倍增实例化时,确保最佳净负载。
时序路径深度 – 每个时钟域检查关键路径深度,都必须确保时序收敛阶段的低风险有限限制,如果在预布局 STA 中完成,这也是时序收敛风险的早期指标。
电源管理单元结构 – 单元类型和隔离器、电平转换器、使能电平转换器、电压接口单元、保留器、保留存储器、电源开关、复位隔离单元、始终开启缓冲器、钳位单元和总线保持单元的正确实例化。
VT 类型使用情况 – 根据每个块和芯片总体使用情况的规范,各种 VT 类型的使用百分比。
MixVT 使用情况 – VT 规范基于时钟或数据路径的单个 VT 使用情况。如果使用 MixVT,则必须应用额外的 VT 惩罚。需要检查以检测 MixVT 并修复设计结构,或应用额外的裕量/降额。
STA 运行正确性检查 - 签核过程有效性
设计链接 – 检查是否链接了所有设计、任何端口不匹配、空模块、黑匣子等。确保每个设计元素都有定时,并且覆盖每个时序弧线而无需进行分析覆盖率调试至关重要。
寄生注释覆盖率 – 确保所有网络都标有电阻、接地电容和耦合电容,并检查浮动/悬空网络。
正确的 SPEF 变换 – 当多个 SPEF 在较高级别缝合时,必须通过 PDEF 或自定义命令读取正确的方向和块大小,以便在基于距离的降额中使用正确的距离计算。此外,即使工具自动处理设计原点和方向,也不能相信任何具有正确计算的工具。此检查对于涵盖诸如未从 SPEF 文件中读取此类位置详细信息等问题也非常重要。
约束、分析覆盖率和质量 – STA 分析模式下的未时钟顺序单元和未定时时序端点是每个 STA 检查的两个最关键的覆盖范围项目。此外,案例分析中的冲突、忽略的异常、主时钟不传播到生成的时钟、任何约束不传播。
降额和裕量覆盖范围 – 检查降额应用中的电池、网络、与过程、电压、温度、老化、辐射、混合 VT 使用相关的约束(设置、保持、最小脉冲宽度)。还要检查保护带或边距,以了解预布局、块特定或附加签核悲观情绪。
日志解析 - 最重要的签核步骤,在竖起大拇指流片或 STA 签核之前,必须标记、审查、验证和关闭每个错误或警告。这必须在自动化机制中对 STA 的每个区块、每次回归都运行。没有借口。
PBA/GBA 融合 – 大多数 PD 工具和 STA 在后台运行 GBA,然后使用 GBA 基线执行 PBA 分析。PBA 的 100% 覆盖率是通过各种自定义算法实现的。当工具无法收敛时,它们会回退到这些特定路径上的 GBA 计时,并发出有关非收敛的消息。必须进行检查以确保 100% PBA GBA 收敛,以消除悲观情绪是时机(这无害,但不准确且耗时,关闭 GBA 时机)
STA 单位正确性 – SDC 时间单位、电容单位、电阻单位 – SDC 单位以 sdc 格式指定,从库读取解码或在 STA 流程中设置。每个工具都有不同的优先级规则来解释单位。正确的用法对于解释 SDC 至关重要。报告单位与库单位不同。库单元由工具处理,而报告单元则帮助 STA 用户以一致性和已知格式解释报告。
STA 视图完整性 – 检查以确保所有功能和扫描模式以及所有 PVTRC 分析角都已根据项目规范进行分析。
STA 运行完整性 – 根据执行的所有 STA 视图,确保每次运行正确结束,执行 STA 的所有阶段,以及来自 Unix/LSF/BSUB 的作业状态没有意外终止,由于磁盘故障、TMP 空间、额外的许可证可用性等导致 STA 中出现任何问题。
STA 指标检查 – 真正的 STA 检查签核标准时序路径检查 – 设置、保持、恢复、删除、时钟门控、数据到数据检查。
设计规则检查 – 最大转换(转换)、最大电容、最大扇出
特殊检查 – 最小周期/时钟周期、最小脉冲宽度、噪声、双时钟。
STA 自定义检查 – 用于高质量 STA 签核的额外稳健性检查
最大时钟偏斜 – 偏斜从来都不是签核的标准,因为它的影响已经被各种时序违规所吸收,但过度的偏斜会暴露变化建模缺陷并可能导致硅故障,因此在任何路径中对偏斜进行合理的限制都是一个很好的做法。
过度的 Xtalk – 定时收敛的关键组成部分,同时损害设置/保持,对于最小脉冲宽度等检查是致命的。加剧块与顶部的相关性,影响共同路径悲观消除 (CPPR) 信用,并影响任何路径中的小区/网络延迟。必须在数据路径和时钟的耦合网络的耦合上限或延迟或转换时间方面设置适当的限制。
动态抖动验证 – 对于每个时钟域,通过将源 PLL 抖动与 CTS 网络抖动(每个级单元 CTS 网络抖动的均方根)复合来计算动态抖动,并根据每个时钟域抖动规范进行验证。仅用于高性能设计,我们非常保守地将平坦抖动数应用于所有时钟或时钟组。
半周期路径 – 自定义时序报告,用于分析半周期路径,因为它们具有半周期抖动和自定义不确定性和裕度、IP 接口、扫描路径等。
而且这个名单是无穷无尽的——基于技术节点、公司 STA 理念、签核所有者的偏执狂,天空是自定义 STA 检查的极限。
未能实施上述 STA 签核方法将导致频繁的错误,对上市时间产生负面影响,导致昂贵的设计修复周期,并降低签核过程的可信度,这是最关键的因素。


评论