时序收敛

与路径延迟。tCLK1=tCLK2:两者具有相同的周期。 tsu / th:寄存器的建立时间和保持时间。tc-q / tc-q, cd:寄存器的最大延迟与污染(最小)延迟。tlogic / tlogic, cd:组合逻辑的最大延迟与污染(最小)延迟。]]
时序收敛()是现场可编程逻辑门阵列、特殊應用積體電路等集成电路设计过程中,调整、修改设计等迭代性的设计流程,确保在时钟驱动的同步電路中所有电磁信号满足邏輯閘的时序要求(与系统时钟相关的时序约束、时钟频率等),保证目标时钟频率下正确的数据传输和可靠运行。为了完成上述过程,工程师常常需要在电子设计自动化工具辅助下工作。“时序收敛”一词有时也用于表达这些要求最终被满足的状态。

同步电路由两类原语元件构成:无记忆地处理逻辑函数的组合逻辑门(如非门、与门、或门、与非门、或非门、异或门等),以及能存储数据并由时钟信号触发的时序逻辑电路元件(如触发器、锁存器、寄存器)。通过时序收敛,可以通过改进布局和重构网表等手段来调整电路,以减少路径延迟并确保逻辑门的信号在所需的时钟时序之前完成有效作用。

随着集成电路设计变得日益复杂,包含数十亿个晶体管和高度互联的逻辑,确保所有关键时序路径满足约束的任务也变得愈发困难。未能满足这些时序要求可能导致功能性故障、不可预测的后果或系统级失效。

因此,时序收敛并不是一个简单的最终验证步骤,而是一项全面的迭代优化流程,包括持续改进设计的逻辑结构和物理实现,例如调整门级逻辑结构、精炼放置与互连,以便在整片芯片范围内可靠地满足所有时序约束。

概述
简单情况下,设计师可以手工计算元件之间的路径延迟。但当设计包含十几个或更多元件时,这种做法就不切实际了。例如,从一个D触发器的输出经由组合逻辑门到下一个D触发器输入的路径延迟,必须满足(小于)同步到两级触发器的时钟脉冲之间的时间间隔。当这些元件间的延迟大于时钟周期时,电路将无法正常工作。因此,修改电路以消除时序失败(并消除关键路径)是逻辑设计工程师的重要工作之一。关键路径是指设计中两个时序元件之间延迟最长的路径(以延迟计);它也定义了所有寄存器到寄存器路径中的最大延迟,且该最大延迟不得大于时钟周期时间。

时序约束
在IC设计过程中,IC布局应满足几何约束和时序约束。几何约束指物理设计中由封装/制造工艺强加的规则,例如单元对齐的正确性和最小布线间距。时序约束指所有信号路径应满足的时序要求。通常,在触发器输出信号于时钟沿发生改变之前,该信号在元件内还应保持稳定一段时间,这称为建立时间(setup time)。在电磁信号到达下一级触发器并在时钟沿被采样之后,信号在存储元件中还应保持稳定一段时间,这称为保持时间(hold time)。时序约束分为两类:

建立时间约束(长路径约束):

这类约束规定在触发器时钟沿之前数据输入信号应保持稳定的时间长度,以便数据有足够时间通过一条逻辑路径传播并在下一个时钟沿之前到达下一级触发器。如果路径延迟过长,可能违反建立时间约束,导致错误数据被锁存。

保持时间约束(短路径约束):

这类约束规定在触发器时钟沿之后数据输入信号应保持稳定的时间长度。违反保持时间约束可能导致亚稳态或其他不期望的行为。

保持时间约束公式:t_{logic}>t_h-t_{c{-}q}

建立时间约束公式:t_{logic}

其中:

  • t_{logic}:组合逻辑延迟
  • t_{CLK}:时钟周期
  • t_{su}:建立时间(setup time)
  • t_h:保持时间(hold time)
  • t_{c{-}q}:触发器的clock-to-Q延迟

时序收敛的迭代过程
时序收敛是确保所有信号在所需时间内到达目标,从而使电路可靠工作的关键步骤。设计者从寄存器传输级(RTL)抽象以及描述电路的Verilog或VHDL代码开始。该描述被综合为网表(netlist),网表是逻辑门和连线的集合,并用于配置FPGA硬件。

由于FPGA的逻辑和布线具有灵活性,信号延迟可能会变化。如果信号到达得太晚,设计可能无法满足时序。设计者首先在SDC(Synopsys设计约束)格式中定义准确且现实的时序约束,以反映系统的性能目标。这些约束可能包括时钟周期、输入/输出延迟、多周期路径以及建立/保持要求。基于设计内部的逻辑结构和路径延迟,必须认真分析这些约束是否可实现。这些约束将指导下游的全部时序分析与优化流程。

时序收敛与静态时序分析中的问题
在时钟驱动的同步电路中,主要考虑三类延迟:

门延迟(Gate delays):指输入端发生变化后传播到输出端所需的时间。通常计算为输入发生变化与输出随之变化之间的时间间隔。

线延迟(Wire delays):也称为互连延迟,指数据信号在同步电路中通过金属互连线从一个电路元件传输到另一个电路元件所需的时间。延迟主要由导线的电阻和电容引起。

时钟偏移(Clock skew):指来自同一时钟源的时钟信号,在同步电路不同部分的到达时间差异。当时钟信号从其源(如振荡器或时钟发生器)经由电路中多条不同路径传播时,会经历不同的传播延迟,从而产生时钟偏移。在下图中,芯片上点
i


j
的时钟偏移定义为:
\delta( i,j)=t_i-t_{j}

,其中位置
i


j
可以不同。图示说明了时钟偏移的概念,即不同触发器上时钟信号到达时间的差异。理想情况下,所有时钟信号应同时到达目的地;然而由于布线路径、负载和物理布局的差异,这几乎不可能完全实现。

在逻辑综合和约束分析之后,设计会经历静态时序分析(STA),

单点时钟树由单一时钟源出发,以树状结构将时钟信号分发到所有时序元件。该方法易于实现,适用于低频或多时钟的设计。但对于高频或大规模设计不太适合,因为路径不对称会导致较大的时钟偏移。

时钟网格(Clock mesh)
放置完成后,设计自动化工具会生成连线,将单元在物理上连接起来。实际布线会引入真实的寄生电阻—电容(RC)效应,这些寄生会影响信号延迟。此外,最终布线给出了导线长度与拥塞信息,从而使时序分析更加精确。

时序优化技术
一种常见的提升电路性能的方法是采用时序优化技术,例如在关键路径的组合逻辑之间插入寄存器(流水化)。这可能提高最大工作频率,但会增加电路的总体延迟(即从输入到输出路径上寄存器的最大数量)。

实际的时序优化技术通常包括物理综合(physical synthesis),通过一系列时序优化来消除负余量(negative slack)。物理综合包括制定时序预算(timing budgets)并实施时序修正(timing corrections)。通常,时序预算包含在放置、布线阶段以及时序修正操作中沿路径或网线分配目标延迟。时序修正包括以下几类方法:

  • 门分解(Gate decomposition):将复杂门拆解为更简单的门,例如用NAND-NAND代替 AND-OR,并利用CMOS反相器简化实现以缩短路径延迟。
  • 布尔重构(Boolean restructuring):应用布尔代数规则简化或重表达逻辑式,常能最小化路径延迟或得到更小的实现。

逆向变换
若对总体设计指标(例如面积或功耗)有利,也可以执行逆向操作,例如门尺寸缩小(downsizing)、合并或简化先前扩展的逻辑结构。

这些技术通常由物理综合和放置与布线工具(如 Synopsys IC Compiler、Cadence Innovus、Intel Quartus等)自动应用,但设计者也可以通过约束和优化指令手动引导这些优化。

设计流程
在迭代验证与确认中使用静态时序分析
在布线步骤完成后,设计的物理细节(包括导线长度、电容和电阻)将被检查并确定。需要对设计进行全面的功能验证与确认,例如使用静态时序分析(STA),以保证时序优化后的功能完整性,帮助识别时序违例和延迟,并验证最近一次时序收敛和优化的有效性。设计者还可以使用仿真、形式验证和硬件测试来验证设计的功能与性能。如果电路未能满足时序要求,则需要将整个电路从头重新送入STA流程,进行迭代改进与验证。

在现有技术条件下,所有设计步骤都需要具备“时序感知”(timing-aware),才能使设计正确满足时序要求;而在微米级工艺时代,只有逻辑综合类的 EDA 工具有这种先决条件。

尽管从逻辑综合沿用的一些成熟原则已将“时序感知”扩展到整个流程,时序收敛过程的逻辑阶段与物理阶段仍由不同的设计团队和不同的 EDA 工具分别处理。举例来说,Synopsys的Design Compiler、Cadence的Encounter RTL Compiler、Magma的BlastCreate是逻辑综合工具的例子;而Synopsys的IC Compiler、Cadence的SoC Encounter、Magma的Blast Fusion则是能执行时序感知放置、时钟树综合与布线、用于物理时序收敛的工具示例。

当用户要求电路满足极其苛刻的时序约束时,可能需要利用机器学习程序(例如Plunify的InTime)来搜索一组最优的FPGA综合、映射、放置与布线工具配置参数,从而确保电路能闭合时序。要让EDA工具处理一个时序要求,必须将该要求翻译为工具能识别的静态时序约束。

近年来,时序收敛流程逐步将逻辑综合与物理实现整合到统一平台以便更好地进行优化。比如Synopsys Fusion Compiler、Cadence的Genus-Innovus流程提供端到端的解决方案,在单一环境中结合了逻辑综合、放置、时钟树综合和布线。此外,像OpenROAD和OpenSTA这样的开源工具链在学术界与创业原型开发中也日益受到重视,因为它们支持时序感知的设计闭合工作流。这些现代工具旨在通过对性能、面积与功耗(PPA)之间的折衷进行自动化处理,应对纳米级电路日益增长的复杂性,并在RTL→GDSII的设计流中更早地发现与解决时序违例。

外部链接
*PhysicalTimingClosure.Com. This article is derived from the document [http://physicaltimingclosure.com/docs_timingclosure.html Timing closure] by Alessandro Uber.

相关

  • 设计收敛
  • 電子設計自動化
  • 设计流程
  • 集成电路设计
  • 静态时序分析
  • 非同步電路

参考

评论 (0)

  • 还没有评论,来抢沙发吧。