文章目录
目录
3.2.1 增量时序分析(Incremental Timing Analysis)
4.2.1 Partition-Based Net Constraint Placement
4.2.2 Force Directed Net Constraint Placement
5.1.2 Electrical/Timing Constraints
5.5 Graph Based Differential Timing
前言
自学使用。重点在线网加权、动态线网加权,详细布局相关。线网加权通过使用线网权重隐式地改善时序,动态线网加权使得权重可以随着迭代发生改变。
时序布局综述
一、简介
时序驱动布局,也叫TDP,专门针对时序关键路径上的布线而设计的。值得注意的是,一个单元通常与两个或更多个单元连接,当移动单元使得的关键路径上的延迟减小,但其他路径可能变得关键。因此,时序驱动的布局必须以非常仔细和平衡的方式执行。传统方法里,常用的方法有基于线网的方法和基于路径的方法(但最近的可微的方法结果最好)。
二、时序驱动布局的基本构建块
2.1 线网模型
一般来说,小型网(例如,少于5个引脚)可以使用团模型,但是对于具有大量引脚的大型网络,团模型对于矩阵求解器不友好,因为它创建密集矩阵。星星模型对于大型网是首选的。
边界框、团和星星模型是三种最流行的线网模型。还有其他的线网模型,如Steiner树,它对于具有四个或更多引脚的线网更精确,但在计算上的花费会更多。
2.2 时序分析与设计
顾名思义,时序驱动的布局必须由一些时序指标来指导,而这些时序指标又需要延迟建模和时序分析。一般来说,门电路的开关级RC模型和互连线的Elmore延迟模型是足够的。
然后在任何时间点t的松弛是其所需的到达时间减去其到达时间的差。
最常用的时序收敛度量是最坏负松弛(WNS)。(另外TNS是总负松弛)
然而,WNS仅给出关于最差路径的信息。可能两个布局解决方案具有相似的WNS值,但一个只有一条关键路径,而另一个有数千条关键路径和近关键路径。品质因数(FOM)是另一个非常重要的时序收敛度量。
2.3 时序驱动布局概述
时序驱动布局的概述如图2所示。它有三个基本组成部分:时序分析、核心布局算法以及它们之间的接口,这是通过将时序分析/度量转换成核心布局引擎的某些权重或约束来驱动和引导时序驱动的布局。
从哪个网表开始以便于我们就可以有一个有意义的时序分析,合理的策略可以如下:首先,我们从一些初始位置开始(例如,线长驱动),然后执行一些粗略的缓冲/扇出优化,以获得整个芯片的合理时序估计,从而指导时序驱动的布局引擎
时序驱动布局最有趣的方面是将时序度量(timing metrics)转换为驱动核心布局引擎(drive the core place engines)的操作机制。
对于基于线网的方法,它处理的是单个网络,时序信息被转换为线网约束或线网净权重以指导时序驱动的布局引擎。网络约束生成(或延迟预算)的主要思想是将每条路径的松弛分配给其组成网络,从而获得零松弛解。每个网络的延迟预算,然后转化为它的线长约束在布局。网络加权的主要思想是在最小化总加权线长目标的同时,为更多的时序关键网络分配更高的网络权重。网络加权通过缩短关键网络为时序优化提供了方向,但它没有精确的控制,因为目标是总的加权线长;网络约束方法指定了这一点,但就全局优化而言,它可能受到太多的约束。这两个过程都可以迭代地细化,因为在放置期间获得了更准确的定时信息。显式扰动控制的系统方法对于基于网络的算法是重要的
基于路径的方法直接作用于所有路径或路径的子集。大多数这种方法将问题公式化为数学规划框架(例如,线性规划)。它通常在布局优化期间保持准确的时序视图[7](精确度更高),然而它的缺点在于其可扩展性和复杂性。基于线网和基于路径的方法也可以进行组合。
三、基于线网权重的方法
为不同的网络分配不同的权重,使得布局器最小化总加权线长(如果所有权重都相同,则退化为经典的线长驱动放置)。为了实现更好的整体时序,该为更多的时序关键线网分配更高的权重,希望布局引擎将减少这些关键线网的长度,从而减少它们的延迟。虽然线网加权似乎很简单,但要产生一个好的线网加权并不容易。静态线网加权在时间驱动放置之前分配一次权重,并且权重在时间驱动放置期间不会更改。动态线网加权在时间驱动的放置过程中更新权重。
3.1静态线网加权
静态净权重在时序驱动布局前计算一次净权重。它可以分为两类:经验净加权和基于灵敏度的净加权。经验净加权方法根据某些关键性因素(如松弛、周期时间和扇出)计算权重。关键网络被分配更高的网络权重。基于灵敏度的净权重根据净权重对WNS和FOM等因素的灵敏度分析计算权重。
3.1.1 基于slack的线网加权
具有负松弛的网络是临界网络,并且被分配比具有正松弛的网络更高的网络权重。 (略)
3.1.2 基于sensitivity的线网加权
在太多的线网上使用较高的权重可能严重加剧线长,引发拥塞和新的关键路径,因此要在导致更高时序变化的线网上分配更高的权重。通过详细的敏感性分析,可以将更大的权重分配给权重变化对延迟影响更大的网络。
如何估计松弛敏感度和总负松弛TNS对净权重的敏感度,以及如何使用这些敏感度来计算净权重。(略)
3.2 动态线网加权
一个简单的动态净加权方案是运行多个布局和净加权迭代,但可能会产生震荡问题:一个线网在临界网和非临界网之间交替(意思大概是在迭代中一个时序关键的线网被改善后,导致了新的时序关键网,再处理新的时序关键网时,又影响了原来的那个线网,使它重新变得关键)。为了缓解这个问题,需要在布局过程中定期重新计算时序[2] [61]或使用历史净权重信息来实现稳定性[51] [18]。
3.2.1 增量时序分析(Incremental Timing Analysis)
为了在布局期间周期性地更新权重,需要在布局期间重新计算时序。可以像[5]那样增量地更新时序,它仅使用对线长的延迟灵敏度来计算由线长增量引起的增量松弛。
使用灵敏度分析可以为增量时序分析提供快速估计。还可以执行更精确的增量时序分析。
3.2.2 增量线网加权
为了使用更新的权重使布局稳定,我们可以使用历史权重,即所谓的增量线网权重。有的利用前一步的历史数据,有的使用前两个步骤。
在每一步中,它首先计算线网的临界度,用关键性描述线网通常的关键程度,通过关键度来更新线网的权重。
3.2.3 布局的实施
动态净加权算法可以应用于大多数布局算法,例如,基于分区的布局[5] [28] [46],二次布局[51]和力定向布局[18]。在二次和力定向布局上实现动态净加权是比较容易的。
对于纯基于分区的布局,也可以使用类似的方法,即在每个分区步骤之间更新权重。也可以对分割算法实施一些切割约束。
四、基于线网约束的方法
4.1 线网约束生成
由于互连延迟主要由其网络长度决定,因此控制延迟的一个自然的方法是通过线网长度约束 (NLC:net length constraint),其限制网络的最大长度。与普通的线网加权方法相比,线网约束方法对于权重具有更精确的控制。然而,问题是如何生成一组良好的网络约束,这些约束不会过度约束以限制解空间。常见的组合流程可以是组合线网加权和线网约束,例如,具有用于引导全局时序驱动的布局和用于增量/迭代改进的网络约束生成的加权。
4.1.1生成有效的NLC
许多技术与用于创建净权重的方法类似。一个原始的方法是试图创建一个满足时序要求 in a “single shot”, a set of NLCs,最近一些方法认为应产生使设计的目标频率逐步提高的NLC。
4.1.2 “Single Shot” NLC 生成
“single shot” NLC 生成的目标是执行松弛预算,为每个网络提供时序约束,当实现时将满足时序频率目标。在[42]中,提出了零松弛算法(ZSA)。基于延迟上界,生成线长约束。线网约束生成被配制成一个线性规划(LP)问题,最大限度地提高了每个网的允许长度的范围内,受到LP约束,时序要求得到满足。在[68]中提出了一种改进,其中基于每单位负载函数的延迟执行加权松弛预算。一些其他的松弛预算问题研究(略)
4.1.3 增量NLC生成
最初,在网络的子集上创建一组松散的NLC,这可能不会产生满足时序要求的布局。进一步的迭代细化NLC,收紧每次迭代时关键网络的边界,因此松弛量逐渐改善。在[10]中提出了一种增量传递函数,该函数使用基于线性规划的网络约束生成技术。该技术逐步产生网约束,并迭代地减少了小增量的关键网的长度。[22]采用凸规划方法生成线网约束。
4.2 线网约束布局
生成线网约束后,布局器必须在生成合法的布局和优化线长时有效地满足约束。线网约束布局算法已经被提出用于许多全局和细节布局算法。本节探讨两种全局布局方法:partitioning and force directed(分区和力导向?),以及几种详细的布局方法。
4.2.1 Partition-Based Net Constraint Placement
基于最小割的方法[22]和两种基于分析划分的方法[63,24]。第一个基于线网约束的全局布局发表于[63],这篇论文是第一个认识到,其他连接单元对于计算引脚重量是重要的。一些其他研究(略)
4.2.2 Force Directed Net Constraint Placement
在[48]中提出了一种针对线网约束进行优化的力导向布局器。详细略
4.2.3 基于线网约束的详细布局
已经提出了几种线网约束详细布局算法[26,29,10]。在[29]中,Mongrel [30]的ripplemove算法适用于包括违反其约束的线网的成本。在[26]中,提出了模拟退火[61,58,57,60]和Domino [15]的线网约束驱动版本。模拟退火的变化是对SA成本函数的一个非常简单的补充,它反映了不满足其NLC的网络的成本。对多米诺运输成本函数进行了改进,提出了几种新的断裂子单元重组技术。
在[10]中提出了一种局部移动方法,该方法采用线性规划来减少具有约束的线网,同时最小化无约束线网的移动。目标函数最小化线网边界框中心的平方移动。这种方法将造成重叠,必须通过合法化阶段解决,而合法化阶段并没有线网约束感知。
五、基于路径的方法
基于路径指的是直接对于时序进行建模的算法。基于路径的方法的好处是,它是明确的时序驱动,不像基于线网的方法通过将时序约束转换为线网权重或线长约束来隐式地进行时序驱动。这种方法的缺点是直接建模布局中的时序的复杂性,因为路径的数量可能是禁止的[7]。
一种更强大的技术是将时序图嵌入到时序驱动布局公式中。它隐含地考虑了所有的拓扑路径,并通过引入中间辅助变量(如到达时间)将它们表示成某种数学规划框架。基于线性规划(LP)的公式很受欢迎,因为半参数有线长度模型可以精确地表示为线性规划框架。接下来分析各种详细技术
5.1 The LP-Based Formulation
基于线性规划(LP)的公式化一般由两组变量和约束组成(physical and electrical)。物理变量/约束处理表示单元位置和线网长度的变量和方程(例如,通过半周长线长模型计算)。电子变量/约束处理门和线网延迟模型,通过关键路径方法的到达时间传播,并满足所有要求的到达时间在时序端点的约束。目标函数可以是最大化更差或总负松弛或加权线长等。
5.1.1 Physical Constraints
对于单元来说,是中心坐标。对于线网来说,是其边界框的左、右、顶和底位置。
5.1.2 Electrical/Timing Constraints
令门级延迟 GDelayi(k,o) 表示从单元i的输入引脚k到输出引脚o的引脚延迟,它可以建模为输出引脚负载电容和输入引脚斜率(过渡时间)的线性函数。还有线网延迟(The delay for net ej, NDelayj(i1, o, i2, k)) 在LP中使用简化的Elmore模型[19]通过等式建模(具体略)。其他参数略
5.1.3目标函数
5.2 基于分区的重叠消除
基于LP的规划可能会产生大量重叠。基于分区的方法可以与基于LP的公式一起使用,以消除单元重叠,如在原始的基于时序图的布局器Allegro [31]中所提出的。在每个划分步骤,它制定了一个LP问题,以确定细胞的位置。每个分区被划分为两个子分区,并且基于LP位置对其单元进行排序以确定新的指派分区。
5.3拉格朗日松弛法
拉格朗日松弛法以迭代的方式将原始的约束LP公式转化为一组无约束问题,例如,如[59]中所述。当[59]中使用的目标函数是二次导线长度时,拉格朗日松弛法的原理是相同的。
5.4 模拟退火
模拟退火算法是一种通用的全局优化概率算法。它随机移动门,并根据一定的成本函数接受或拒绝移动。它非常灵活,即,如果需要,它可以采用任何目标函数并考虑精确的定时模型。在[61]中,模拟退火算法通过增加成本函数以包括基于路径的定时信息来用于定时驱动布局。模拟退火成本函数是线长成本和定时成本函数的组合。
5.5 Graph Based Differential Timing
该方法相对于参考静态时序分析,基于电路的所有引脚处的延迟、到达和所需时间的差异来优化初始全局布局。这种方法称为差分时序分析[11]。该差分时序分析仪在参考静态时序附近几乎精确,包括建立时间和锁存透明度的建模。它还介绍了另一个改进图形定时基于布局。延迟和斜率方程(26)中使用的常数仅对于输出负载和输入斜率的值的范围是准确的。
六、其他技术
如前所述,基于网络和基于路径的算法都有优点和缺点。最近提出了一种混合方法[39],将网络权重和网络约束与基于LP的公式结合在一起。此外,由于现代布局问题的复杂性和从全局布局到详细/法律的布局的迭代精化性质,在布局迭代之间具有稳定性是非常重要的。
6.1 基于混合线网和路径的方法
在[39]中,提出了一种混合方法,基于线网特别是线网加权复杂度低且拓展性好,但通常完全忽略转换传播。由于时序本质上是基于路径的,因此有效的线网加权算法应该基于路径分析并考虑时序传播。
[39]中的混合方法使用混合线网和基于路径的延迟灵敏度,并将有限级转换传播作为线网加权的基础。目标函数是一组关键路径的加权线长。LP公式不仅考虑时间关键路径上的单元,而且还考虑逻辑上与关键路径相邻的单元,以统一的方式,通过加权LP目标函数和线网边界约束。这种方法适用于增量时序改进。
6.2 Hippocrates: A Detailed Placer Without Degrading Timing
另一种时序驱动的增量布局算法[49]有助于减少总线长并同时改善时序。它特别保持了时序约束,同时减少了详细布局过程中的线长。它使用的详细布局算法可以是任何常用的基于移动的变换,即,单元交换、单元移动等。它不是对路径约束进行建模,而是对每个输入引脚处的时序约束进行建模。优点是降低了计算复杂度,可以对每个时序路径上的时序约束进行建模。
通过将由移动单元改变的增量延迟约束为小于每个引脚上的增量到达时间,它保证定时端点处的最终到达时间不会降低。它还对压摆和负载电容约束进行建模。
6.3 更精确的线网建模
其他工作如[11]提出了同时进行详细布局和布线以优化时序。该算法是稳定的和增量的,它减少了WNS的9- 14%,虽然运行时间是相当高的。它从一个布局和全局布线网表开始,并使用非凸数学规划模型优化k个最关键的路径,该模型在捕获单元移动和全局路由的Steiner点变化的定时影响的同时优化松弛。
七、结论
由于问题的规模和复杂性不断增长,关于时序驱动布局许多挑战仍然存在。此外,现代复杂的SOC设计通常具有多个时钟域,甚至多个周期路径,这使得时序驱动的布局问题更加复杂。随着技术扩展到100 nm以下,新的物理和制造效应,特别是泄漏/功率的变化,必须在时序驱动布局期间与时序闭合一起考虑[9,35],这需要持续创新以提高质量和生产率。