解释了什么是静态时序分析以及它如何用于时序验证。还描述了功率和可靠性方面的考虑。
概述了纳米设计的静态时序分析程序。本章解决了诸如什么是静态时序分析、噪声和串扰的影响是什么、如何使用这些分析以及这些分析适用于整个设计过程的哪个阶段等问题。
在半导体器件中,金属互连走线通常用于在电路的各个部分之间建立连接以实现设计。众所周知,随着工艺技术的缩小,这些互连走线会影响设计的性能。对于深亚微米或纳米工艺技术,互连中的耦合会引起噪声和串扰——这两种情况都会限制设计的运行速度。虽然噪声和耦合效应在老一代技术中可以忽略不计,但它们在纳米技术中发挥着重要作用。因此,物理设计应考虑串扰和噪声的影响,然后设计验证应包括串扰和噪声的影响。
静态时序分析(也称为 STA)是可用于验证数字设计时序的众多技术之一。用于验证时序的另一种方法是时序仿真,它可以验证设计的功能和时序。术语时序分析用于指代这两种方法之一 - 静态时序分析或时序仿真。因此,时序分析只是指对时序问题的设计进行分析。
STA 是静态的,因为设计分析是静态执行的,不依赖于施加到输入引脚的数据值。这与基于仿真的时序分析形成对比,在基于仿真的时序分析中,对输入信号应用刺激,观察并验证结果行为,然后随着新输入刺激的应用而推进时间,并观察和验证新行为,依此类推。
给定一个设计以及一组输入时钟定义和设计外部环境的定义,静态时序分析的目的是验证设计是否可以以额定速度运行。也就是说,设计可以在指定的时钟频率下安全运行,而不会出现任何时序违规。图 1-1 展示了静态时序分析的基本功能 。DUA 是被分析的设计。一些时序检查的例子是建立和保持检查。建立检查确保数据可以在给定的时钟周期内到达触发器。保持检查确保数据至少保持最短时间,从而不会出现意外的数据通过触发器:也就是说,它确保触发器正确捕获预期数据。这些检查确保正确的数据已准备就绪并可用于捕获并锁定新状态。
静态时序分析更重要的方面是对整个设计进行一次分析,并对设计的所有可能路径和场景执行所需的时序检查。因此,STA 是一种用于验证设计时序的完整而详尽的方法。
分析中的设计通常使用指定的硬件描述语言(例如 VHDL 或 Verilog HDL)。外部环境(包括时钟定义)通常使用 SDC或等效格式指定。 SDC 是一种时序约束规范语言。时序报告采用 ASCII 格式,通常有多列,每一列显示路径延迟的一个属性。
静态时序分析是对设计的所有时序检查的完整而详尽的验证。其他时序分析方法(例如仿真)只能验证设计中受激励影响的部分。通过时序仿真进行验证与所使用的测试向量一样详尽。模拟和验证具有 10-1亿个门的设计的所有时序条件非常缓慢,并且无法完全验证时序。因此,很难通过模拟进行详尽的验证。
另一方面,静态时序分析提供了一种更快、更简单的方法来检查和分析设计中的所有时序路径是否存在任何时序违规。考虑到当今 ASIC 的复杂性,其中可能包含 10 到 1 亿个门,静态时序分析已成为详尽验证设计时序的必要条件。
设计功能及其性能可能会受到噪声的限制。噪声是由于与其他信号的串扰或主输入或电源上的噪声而产生的。噪声影响可以限制设计运作频率,并且也可能导致功能故障。因此,一个设计实现必须经过验证证明它的稳健性,这意味着它可以在不影响设计的额定性能情况下承受噪声。
基于逻辑仿真的验证无法处理串扰、噪声和片上变化的影响。
本书中描述的分析方法不仅涵盖了传统的时序分析技术,还涵盖了噪声分析,以验证包括噪声影响在内的设计。
本节主要描述本书其余部分使用的上下文中的 CMOS数字设计流程。还简要描述了它对 FPGA 和异步设计的适用性。
在 CMOS 数字设计流程中,静态时序分析可以在实现的许多不同阶段执行。图 1-2 显示了一个典型的流程。
STA 很少在 RTL 级别完成,因为此时验证设计的功能性比验证时序更为重要。也不是所有的时序信息都可用,因为块的描述在行为级。一旦 RTL 级的设计被综合到门级,STA 用于验证设计的时序。STA 也可以在执行逻辑优化之前运行 - 目标是识别最差或关键的时序路径。 STA可以在逻辑优化后重新运行来查看是否仍有需要优化的失败路径,或确定关键路径。
在物理设计开始时,时钟树被认为是理想的,即它们具有零延迟。一旦物理设计开始并且在时钟树构建之后,就可以执行 STA 来再次检查时序。实际上,在物理设计期间,可以在每一步执行 STA 以识别最差路径。
在物理实现中,逻辑单元通过互连金属走线连接。金属走线的寄生 RC(电阻和电容)会影响通过这些走线的信号路径延迟。在典型的纳米设计中,互连的寄生效应可以解释设计中的大部分延迟和功耗。因此,任何设计分析都应评估互连对性能特征(速度、功率等)的影响。如前所述,信号走线之间的耦合会产生噪声,设计验证必须包括噪声对性能的影响。
在逻辑设计阶段,由于没有与布局相关的物理信息,因此可以假设为理想互连;可能更有兴趣查看导致最坏路径的逻辑。此阶段使用的另一种技术是使用线载模型估算互连的长度。线载模型根据单元的扇出提供估计的 RC。
在最终确定走线的布线( routing)之前,实施工具使用布线距离的估计来获得布线的 RC 寄生效应。由于布线还没有最终确定,所以这个阶段称为全局布线阶段(global route),以区别于最终布线阶段(final route)。在物理设计的全局布线阶段,简化布线用于估计布线长度,布线估计用于确定计算布线延迟所需的电阻和电容。在这个阶段,不能包括耦合的影响。详细布线完成后,使用提取工具得到的实际 RC 值,可以分析耦合的影响。但是,物理设计工具可能仍会使用近似值来帮助改善计算 RC 值的运行时间。
提取工具用于从布线设计中提取详细的寄生参数(RC 值)。这样的提取工具可以选择在迭代优化期间以较小的运行时间和较不精确的RC值获得寄生参数,也可以选择在最终验证过程中以较大的运行时间提取非常精确的RC值。
总而言之,静态时序分析可以在门级网表上执行,具体取决于:
图 1-2 似乎暗示 STA 是在实现步骤之外完成的,也就是说,STA 是在每个综合、逻辑优化和物理设计步骤之后完成的。实际上,这些步骤中的每一个都在其功能范围内执行集成(和增量)STA。例如,逻辑优化步骤中的时序分析引擎( timing analysis engine),它是用于识别优化器需要处理的关键路径。同样,布局工具中的集成时序分析引擎用于在布局逐步进行时保持设计的时序。
STA 的基本流程在 FPGA 中仍然有效。尽管 FPGA 中的布线受限于通道,但提取寄生效应和执行 STA 的机制与 CMOS 数字设计流程相同。例如,STA执行时,可以假设互联是理想的,或者使用线载模型,假设时钟树是理想的或真实的,假设全局布线,或者使用真实布线进行寄生。
STA 的原理也适用于异步设计。人们可能对从设计中的一个信号到另一个信号的时序更感兴趣,而不是对可能不存在的情况进行建立和保持检查。因此,大多数检查可能是点对点时序检查,或偏斜 (skew)STA 检查。用于分析耦合引起的毛刺的噪声分析适用于任何设计——异步或同步。此外,噪声分析对时序的影响,包括耦合的影响,也适用于异步设计。
在逻辑级(门级,还没有物理设计),STA可以使用:
在物理设计阶段,除了上述模式外,STA 还可以使用:
虽然时序和噪声分析在分析所有可能情况下的时序问题方面做得非常出色,但最先进的技术仍然不允许 STA 完全取代仿真。 这是因为在时序验证的一些方面不能被STA 完全捕获和验证。
STA的一些局限性:
尽管存在这些问题,STA 被广泛用于验证设计的时序,并且带有时序或带有单位延迟的仿真用于检查极端情况的备份,更简单地用于验证设计的正常功能模式。
功耗是设计实施中的一个重要考虑因素。大多数设计需要在电路板和系统的功率预算内运行。由于符合标准和/或由于芯片必须在其中运行的电路板或系统上的热预算,也可能引起功率考虑。总功率和待机功率通常有单独的限制。待机功率限制通常适用于手持设备或电池供电设备。
在大多数实际设计中,功率和时序通常是齐头并进的。设计人员希望使用更快(或更高速度)的单元来满足速度考虑,但可能会遇到可用功耗的限制。在为设计选择工艺技术和单元库时,功耗是一个重要的考虑因素。
设计实现必须满足可靠性要求。如第 1.4.1 节所述,金属互连走线具有限制设计性能的寄生 RC。除了寄生效应之外,还需要设计金属走线宽度,同时考虑可靠性因素。例如,高速时钟信号需要足够宽才能满足可靠性考虑,例如电迁移。
虽然静态时序分析从表面上看可能是一个非常简单的概念,但这种分析背后有很多背景知识。基本概念范围从单元延迟的准确表示到以最小的悲观计算最坏的路径延迟。计算单元延迟、组合块计时、时钟关系、多个时钟域和门控时钟的概念构成了静态时序分析的重要基础。为设计编写正确的 SDC 确实是一个挑战。
这本书是按照自下而上的顺序编写的——首先介绍简单的概念,然后在后面的章节中介绍更高级的主题。本书首先介绍了准确的单元延迟(第 3 章)。以有效的方式估计或计算精确的互连延迟及其表示是第 4 章的主题。计算由单元和互连组成的路径的延迟是第 5 章的主题。信号完整性,即信号切换对相邻网络的影响以及它如何影响沿路径的延迟,是第 6 章的主题。准确地表示具有时钟定义和路径异常的 DUA 环境是第 7 章的主题。STA 中执行的时序检查的详细信息在第 6 章中描述8. 跨各种接口的 IO 时序建模是第 9 章的主题。最后,第 10 章详细介绍高级时序检查,例如片上变化、时钟门控检查、电源管理和统计时序分析。附录提供了 SDC(用于表示时序约束)、SDF(用于表示单元和网络的延迟)和 SPEF(用于表示寄生)的详细描述。
第 7 章到第 10 章提供了 STA 验证的核心。前面的章节为更好地理解STA所需的nuts
and bolts 知识提供了坚实的基础和详细描述。