CN114861591A - 一种可微分时序驱动的芯片布局优化方法 - Google Patents
一种可微分时序驱动的芯片布局优化方法 Download PDFInfo
- Publication number
- CN114861591A CN114861591A CN202210793017.1A CN202210793017A CN114861591A CN 114861591 A CN114861591 A CN 114861591A CN 202210793017 A CN202210793017 A CN 202210793017A CN 114861591 A CN114861591 A CN 114861591A
- Authority
- CN
- China
- Prior art keywords
- chip
- delay
- differentiable
- layout
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公布了一种可微分时序驱动的芯片元件布局方法,设计可微分时序分析引擎,在每一步元件布局迭代过程中,计算芯片的性能指标并直接计算性能指标对元件位置的梯度,进行元件布局迭代更新;梯度直接给出时序驱动芯片元件布局的优化调整方向,本发明方法包括步骤对芯片的电路图进行预处理,布线估计,可微分互连线延迟计算,可微分延迟传播,时序指标反向求导,元件布局迭代更新。可微分时序分析引擎可使用GPU加速计算梯度时序性能指标和梯度,并与芯片元件布局过程深度融合,减少迭代过程中数据交互的开销,更高效地完成元件布局,同时得到更优的芯片性能指标。本发明具有目标明确、反馈迅速、聚焦全局优化的技术优点。
Description
技术领域
本发明属于集成电路设计自动化技术领域,涉及集成电路时序驱动芯片元件布局优化技术,具体涉及一种可微分时序驱动的芯片布局优化方法,使用可微分时序分析引擎优化芯片元件布局,通过计算芯片时序指标对元件位置的梯度来调整元件位置,从而直接优化芯片的性能,提升了芯片元件自动化布局的效率和质量。
背景技术
元件布局优化是芯片设计自动化的核心步骤之一。在这一步骤中,芯片设计自动化软件将芯片的所有元件摆放在芯片版图中的合适位置,其中元件指的是芯片中的逻辑门等标准设计单元,而芯片的版图一般是一个矩形的区域,其中芯片的每个元件有对应的占用面积。芯片的元件之间有互连线,代表了芯片设计中信号在不同元件之间的传递关系。元件在版图上的位置布局,决定了电信号在芯片元件之间传播的距离和模式,进而直接影响包括芯片性能在内的各种核心设计指标。因此,元件布局优化对芯片设计的质量至关重要。
芯片的时序是芯片的核心设计指标之一,指的是信号在电路中传播延迟和传播路径的分析。由于电信号在逻辑门和互连线上传递需要时间,在芯片的一个时钟周期内,信号需要从一级寄存器的输出端口正确到达下一级寄存器的输入端口,因此时序直接决定了芯片的性能。时序驱动芯片元件布局,就是将芯片的性能作为布局优化的目标。
在芯片设计自动化软件中,元件布局是一个迭代优化的过程,从一个初始布局出发,不断调整元件的位置,使得元件在版图上分散开来,互相之间不重叠。同时,布局的过程关注元件之间的互连关系,尽可能减少互连线的长度,以减少信号在互连线上传播需要的时间。其中,一种常用的优化目标是最小化所有互连线的长度总和。这种方法广泛应用在现有的元件布局方法中,虽然能够减少互连线的长度,却并没有对电路中时序的瓶颈做针对优化。为了芯片的性能达到最好,芯片的设计过程应当关注信号传播速度较慢的路径,即“关键路径”,以及这些路径上的所有互连线。对这些互连线的优化比其他互连线更重要。由于版图上的布局面积有限,优化的精力分散以后很难对关键路径达到较好的优化效果,因此基于互连线总长度优化的传统方法并不能设计出性能最佳的芯片。一种改进的方式是给每个互连线附加一个权重,通过动态调整来在优化过程中更多关注关键路径。然而,这一过程仍然是针对每个互连线做优化,缺乏对整个电路中时序的全局信息,权重调整的反馈周期长,高度依赖方法设计者的经验,在现代的超大规模先进制程芯片设计中难以达到较好的性能优化效果。
除了需要关注芯片元件布局的设计质量,还需要关注设计流程的效率,也就是元件布局的耗时。时序驱动元件布局方法需要芯片元件布局引擎和时序分析引擎合作完成,需要在每一轮迭代过程对芯片进行时序分析。由于元件布局通常需要成百上千次迭代才能完成,因此时序分析也需要进行成百上千次,在元件布局引擎和时序分析引擎之间频繁的数据交互工作给整个元件布局过程带来了很大的性能损失,同时时序分析引擎本身效率也较低,这导致传统的时序驱动元件布局方法需要很长的时间,拖慢了芯片的设计周期。
综上所述,现有的时序驱动元件布局方法具有优化目标不直接、优化效果不理想、计算代价较大的缺点,影响了现代芯片设计流程的质量和效率。
发明内容
本发明的目的是提供一种可微分时序驱动的芯片元件布局方法,以克服现有的时序驱动芯片元件布局技术存在的不足,能够更高效地完成芯片元件布局,同时得到更优的芯片性能指标。
本发明提出了一个可以求微分的时序分析引擎,在每一步元件布局迭代过程中,不仅可以计算芯片的性能指标,还可以直接计算性能指标对元件位置的梯度,即偏导数。这一梯度直接给出了时序驱动芯片元件布局的优化调整方向,具有目标明确、反馈迅速、聚焦全局优化的特点。本发明设计了GPU加速的可微分时序分析引擎,包括:可微分互连线延迟计算模块、可微分延迟传播模块、时序指标反向求导模块,可以使用GPU并行高效计算芯片时序性能指标和对应芯片元件位置的梯度,进行元件布局迭代更新。本发明将芯片时序分析引擎和芯片元件布局过程深度融合,减少了迭代过程中数据交互的开销。
本发明的技术方案是:
一种可微分时序驱动的芯片元件布局方法,包括步骤:对芯片的电路图进行预处理,布线估计,可微分互连线延迟计算,可微分延迟传播,时序指标反向求导,元件布局迭代更新。在电路图预处理步骤中,将芯片设计表示为元件和互连线的集合,每个元件上有若干个管脚;将电路图表示为一个有向无环图,其中节点代表管脚,边代表信号的传递关系;将电路图进行扁平化和拓扑排序,得到分层的有向无环图节点列表。在布线估计步骤中,计算每个互连线包含的管脚在芯片版图上的当前位置;针对每个互连线,使用一棵布线树将所有管脚相连,使得布线树的长度最短;通过当前迭代的元件位置,在布线树的每个节点上计算接地电容,在每条边上计算电阻。在可微分互连线延迟计算步骤中,在每个节点的布线树上,通过布线估计步骤得到的电阻和电容值,求解互连线信号传递的时间和电平转换的时间,并记录求解过程的中间变量用作后续的微分计算。在可微分延迟传播步骤中,在分层的有向无环图节点列表上,由前至后计算每个管脚的信号到达时间,对信号最快到达时间和最慢到达时间进行可微分的光滑化处理;通过芯片的时序约束要求,计算管脚的到达时间约束满足情况,获得芯片的性能指标。在时序指标反向求导步骤中,针对前述可微分延迟传播、可微分互连线延迟计算、布线估计的过程,按照计算的相反顺序,依次求解芯片性能指标对每个管脚信号到达时间的偏导数、芯片性能指标对互连线延迟的偏导数、芯片性能指标对布线树电容和电阻的偏导数,最后得到芯片性能指标对元件位置的偏导数,即梯度,完成可微分时序分析的计算。在元件布局迭代更新步骤中,利用芯片性能指标对元件位置的梯度,更新当前迭代的元件布局,重复进行布线估计、可微分互连线延迟计算、可微分延迟传播、时序指标反向求导步骤多次对元件布局进行调整更新,直到芯片元件布局基本收敛,元件位置分散不重叠,且性能指标达到要求为止。具体包含以下步骤:
A. 对芯片的电路图进行预处理
将芯片设计表示为元件和互连线的集合,每个元件上有多个管脚,元件之间的互连线代表元件之间的信号传递关系,具体表示为不同元件上的管脚之间的互连线。
将电路图表示为一个有向无环图,其中,有向无环图的节点代表管脚,有向无环图的边代表管脚之间的信号传递关系。管脚之间的信号传递关系有两种,分别是互连线传递关系和元件内部传递关系,每个元件内管脚之间的边代表单个标准设计单元(即元件)内部信号的传递关系,不同元件管脚之间的边代表两个元件之间的互连线。
将电路图进行扁平化和拓扑排序,得到分层的有向无环图节点列表(简称分层列表);在得到的分层的有向无环图节点列表中,若能够通过任意节点x到达另一个节点y,则x的位次在y之前。
B. 布线估计
计算每个互连线包含的芯片元件管脚在芯片版图上的当前位置,计算方式是将管脚所属的元件位置与管脚在元件上的偏移坐标相加。
针对每个互连线,使用一棵布线树将所有管脚相连,使得布线树的长度最短,布线树也称斯坦纳树(Steiner Tree),布线树的节点是元件上的管脚或元件上的中转点,中转点又称斯坦纳点,是信号从单个元件分发到多个元件时的分叉点,布线树的边代表节点之间信号传递的关系。
在布线树的每个节点上,通过节点的芯片版图位置信息来计算节点的接地电容,在每条边上,通过相连两个节点在芯片版图上的距离计算节点之间的电阻;
本发明设计的可微分时序分析引擎包括:可微分互连线延迟计算模块、可微分延迟传播模块、时序指标反向求导模块;具体实现包括步骤C、D、E;本发明设计的可微分时序分析引擎是芯片元件布局引擎的一部分,内置在芯片元件布局过程中,并通过内存与芯片元件布局过程进行数据交互,从元件布局过程中获取元件位置信息,并将芯片性能指标和梯度反馈给元件布局过程,以此实现芯片元件布局的优化。
C. 通过可微分互连线延迟计算求解得到互连线延迟,包括互连线信号传递时间和电平转换时间;
在每个节点的布线树上,本发明通过布线估计步骤得到的电阻和电容值,求解互连线的延迟,包含互连线信号传递时间和电平转换时间。求解方式是使用低阶近似模型或近似方程来模拟电压源通过电阻给芯片电路中的电容充电的过程。
可微分互连线延迟计算的过程直接实现在元件布局方法内部,求解互连线延迟所需的数据(包括电路图结构和元件在芯片版图上的位置),由元件布局的迭代过程直接从内存中提供给内置的可微分时序分析引擎,与传统芯片布局优化方法相比,不再需要通过数据文件读写的方式与外置的时序分析引擎通信。
在互连线延迟求解的过程中,记录低阶近似模型或近似方程计算过程的中间变量,用作后续步骤E的微分计算。记录的中间变量在微分计算中用来求解低阶近似模型或近似方程的梯度,具体使用方法是在低阶近似模型或近似方程上使用数学上的偏导数计算法则和链式求导法则。
具体实施时,中间变量包括:节点的负载,信号传递时间,子树累计负载延迟,以及电平转换时间参数Beta。
D.可微分延迟传播,包括:通过计算得到每个管脚的信号到达时间;对信号到达时间进行可微分的光滑化处理;计算管脚的信号到达时间约束满足情况,获得芯片的性能指标;
在分层的有向无环图节点列表上,由前至后计算每个管脚的信号到达时间,分为信号最快到达时间和信号最慢到达时间两种。本发明中,两种信号到达时间的计算方式均是,从上一级管脚的到达时间出发,累加互连线的信号传递时间和逻辑门延迟,记录信号最快到达时间和最慢到达时间来源的上一级管脚和对应的互连线或逻辑门,并将信号最快到达时间和最慢到达时间与互连线延迟求解的中间变量关联起来,用于后续步骤E的微分计算。逻辑门延迟的计算方法是,通过下游互连线的电平转换时间对逻辑门物理模型进行查询和模拟得到。
对信号最快到达时间和最慢到达时间进行可微分的光滑化处理,具体来讲是将到达时间最小值和最大值计算的过程表示为数学上光滑的近似函数,使每个管脚的最快到达时间和最慢到达时间相对分层有向无环图节点列表之前管脚的到达时间(即上游到达时间)的偏导数形成稠密矩阵,偏导数的值与上游到达时间的相对大小有关。
通过芯片标准单元物理模型(元件)内置的时序约束要求,即一个数值,代表元件管脚的信号到达时间要求,将这一数值与管脚的最快到达时间和最慢到达时间做差,计算得到管脚的到达时间约束满足情况,获得芯片的性能指标,本发明具体实施中,芯片的性能指标包括最坏时序违例(Worst Negative Slack)和总时序违例(Total Negative Slack),性能指标的值是两个负数,其绝对值大小表示时序违例的程度,具体计算方法分别是将所有管脚的到达时间约束满足情况取最小值或求和。时序驱动元件布局的过程需要最大化这两个负数,也就是最小化这两个性能指标的绝对值,以减小违反时序违例的关键路径长度。
E. 时序指标反向求导步骤,通过时序指标反向求导,得到芯片性能指标对元件位置的偏导数,即梯度;
针对前述可微分延迟传播、可微分互连线延迟计算、布线估计的过程,按照计算的相反顺序,依次求解,具体过程如下:
求解延迟传播的微分,获得芯片性能指标对每个管脚信号到达时间的偏导数。
基于对信号到达时间的偏导数,求解互连线延迟的微分,获得芯片性能指标对互连线延迟的偏导数。
基于对互连线延迟的偏导数,求解布线估计的微分,获得芯片性能指标对布线树电容和电阻的偏导数,最后得到芯片性能指标对元件位置的偏导数,即梯度。
完成时序指标反向求导步骤后,即完成可微分时序分析的计算。
F. 元件布局迭代更新步骤,使用芯片性能指标对元件位置的梯度信息完成更新;
利用芯片性能指标对元件位置的梯度,更新当前迭代的元件布局,具体方法是,将梯度与步长相乘,并与当前元件布局相加。步长是一个正数,表示本轮迭代过程的元件布局沿着梯度进行更新的距离,由元件布局使用的优化算法(本发明具体实施采用Nesterov优化算法)动态决定并随着迭代过程更新。
G.重复进行步骤B布线估计、步骤C可微分互连线延迟计算、步骤D可微分延迟传播、步骤E时序指标反向求导、步骤F对元件布局进行调整更新多次,直到芯片元件布局基本收敛,元件位置分散不重叠,且性能指标达到设定要求为止。
通过以上A,B,C,D,E,F,G步骤,即可实现可微分时序驱动的芯片元件布局。
与现有技术相比,本发明的有益效果在于:
本发明提出了一个可以求微分的时序分析引擎,在每一步元件布局迭代过程中,可以直接计算性能指标对元件位置的梯度,得到时序驱动芯片元件布局的优化调整方向,具有目标明确、反馈迅速、聚焦全局优化的特点。本发明提出的可微分时序分析引擎可以使用GPU加速计算梯度时序性能指标和梯度,并且与芯片元件布局过程深度融合,减少了迭代过程中数据交互的开销,能够更高效地完成元件布局,同时得到更优的芯片性能指标。
附图说明
图1为本发明提供的可微分时序驱动的芯片元件布局优化方法的流程框图。
图2为本发明具体实施例中电路图预处理步骤的示意图。
图3为本发明具体实施例中可微分互连线延迟计算步骤的示意图。
图4为本发明具体实施例中可微分延迟传播步骤中计算逻辑门延迟模型过程的示意图。
具体实施方式
下面结合附图,通过实施例,进一步阐述本发明。
本发明提供一种可微分时序驱动的芯片元件布局方法,包含一个可以求微分的时序分析引擎,在每一步元件布局迭代过程中,除了计算芯片的性能指标外,还可以直接计算性能指标对元件位置的梯度,获得时序驱动芯片元件布局的优化调整方向,具有目标明确、反馈迅速、聚焦全局优化的特点。本发明还设计了GPU加速的可微分时序分析引擎,可以使用GPU并行高效计算时序性能指标和对应的梯度。本发明将时序分析引擎和芯片元件布局过程深度融合,减少了迭代过程中数据交互的开销。本发明提出的这一时序驱动芯片元件布局方法能够更高效地完成元件布局,同时得到更优的芯片性能指标。
本发明具体实施中处理芯片元件布局的过程如图1所示。图1中的实线箭头代表方法不同步骤之间的处理顺序,步骤包括电路图预处理、布线估计、可微分互连线延迟计算、可微分延迟传播、时序指标反向求导、元件布局迭代更新。
A. 电路图预处理
我们把芯片设计表示为元件和互连线的集合,每个元件上有若干个管脚,元件之间的互连线代表元件之间的信号传递关系,具体表示为元件管脚之间的互连线。图2所示为具体实施时电路图预处理的步骤,在图2中,(L)代表芯片的版图,是一个矩形的区域;(C1)(C2) (C3)是芯片版图上的三个元件,分别是一个缓冲器,一个寄存器和一个与门;(C1)上有两个管脚a,c,(C2)上有三个管脚b,e,d,(C3)上有三个管脚f,g,h,再加上芯片的外围输入输出管脚(PI1) (PI2) (PO),一共有11个管脚。
将电路图表示为一个有向无环图,其中节点代表管脚,边代表管脚之间的信号传递关系。管脚之间的信号传递关系有两种,分别是互连线传递关系和元件内部传递关系,每个元件内管脚之间的边代表单个标准设计单元内部信号的传递关系,不同元件管脚之间的边代表两个元件之间的互连线。在图2的例子中,(D1)是在(C1) (C2)之间的边,代表互连线c->e上信号的传递;(D2)是(C2)内部的边,代表寄存器时钟端口和输出端口之间信号的依赖传递关系。
将电路图进行扁平化和拓扑排序,得到分层的有向无环图节点列表。对于图2的例子,扁平化的分层的有向无环图节点列表结果是:第一层(PI1) (PI2);第二层:a, b;第三层:c;第四层:e, f;第五层:d;第六层:g;第七层:h;第八层:(PO)。容易验证,此列表满足若能够通过任意节点x到达另一个节点y,则x在y的分层列表之前。
B. 布线估计
在元件布局迭代中的每个时刻,每个元件都有对应的版图位置,如图2中展示的三个元件在版图上的相对位置排布;同时,每个管脚在元件上也有位置,如图2中元件(C1)上的管脚a,这个位置相对元件来说是固定不变的。计算每个互连线包含的管脚在版图上的当前位置,计算方式是将管脚所属的元件位置与管脚在元件上的位置,即偏移坐标相加。
针对每个互连线,使用一棵布线树将所有管脚相连,使得布线树的长度最短,布线树也称斯坦纳树(Steiner Tree),布线树的节点是管脚或中转点,中转点又称斯坦纳点,布线树的边代表节点之间信号传递的关系。如图2中互连线c,e,f构成一棵布线树,其中c是根节点,e,f是两个叶节点,中间未标出的中转位置就是一个斯坦纳点。在本实施例中,最小布线树可以使用FLUTE算法加以计算,也可以使用其他算法计算,只需求出近似的结果即可适用于我们的时序驱动芯片布局优化方法。
在布线树的每个节点上,通过节点的版图位置信息来计算接地电容,在每条边上,通过相连两个节点在版图上的距离计算电阻。这一过程是芯片设计流程中的寄生参数提取(Parasitic Extraction)过程的近似,在实施例中我们设定每单位长度的布线树边具有一定大小的电阻和电容,其中电容值平均分配给这条布线树边的两个端点。
C. 可微分互连线延迟计算
在每个节点的布线树上,通过布线估计步骤得到的电阻和电容值,求解互连线的延迟,包含互连线信号传递时间和电平转换时间。求解方式是使用低阶近似模型或近似方程来模拟电压源通过电阻给电路中的电容充电的过程。在本实施例中,我们采用Elmore延迟模型来计算互连线的延迟,并给出这一延迟模型的微分中间变量和求微分方式。如图3所示的可微分互连线延迟计算步骤,Elmore延迟模型的正向计算包含四次布线树上的动态规划过程,即图中的(F-Load), (F-Delay), (F-LDelay), (F-Beta),分别计算节点的负载,信号传递时间,子树累计负载延迟,以及电平转换时间参数Beta。布线树上这四次动态规划过程(F-Load), (F-Delay), (F-LDelay), (F-Beta)对应的方程分别表示如下:
以上公式中,u为节点;v为u的子节点;child v表示枚举u的所有子节点v;Load(u)代表节点u的负载,Cap(u)代表节点u的接地电容,Delay(u)代表从布线树根节点到节点u的信号传递时间,fa(u)代表节点u在布线树上的父节点,Res(fa(u)->u)代表从布线树上u的父节点到u的这条树边的电阻,LDelay(u)代表节点u的子树累计负载延迟,Beta(u)代表节点u的电平转换时间参数Beta。
本发明中,根据以上公式设计了反向的微分计算公式,表示如下:
以上公式中,∇Impulse代表电平转换脉冲的梯度,∇Load, ∇Cap, ∇Delay, ∇Res, ∇LDelay, ∇Beta分别代表负载、接地电容、信号传递时间、树边电阻、子树累计负载延迟、电平转换时间参数各自的梯度值(即加倒三角符号表示相应参数的梯度值)。
反向微分计算过程可以实现为逆向的布线树上四次动态规划过程,如图3中的(R-Beta),(R-LDelay), (R-Delay), (R-Load)。
本发明先进行可微分互连线延迟计算,再可微分延迟传播,再时序指标反向求导。时序指标反向求导需要使用反向微分计算公式(即以上六个方程),反向微分计算方程基于对信号到达时间的偏导数求解互连线延迟的微分,获得芯片性能指标对互连线延迟的偏导数。
具体地,根据布线树上四次动态规划公式就可以完成可微分互连线延迟的计算,而反向的微分计算公式在后续的时序指标反向求导过程中实际完成计算。为此,我们要在完成互连线延迟求解的过程中,记录四次动态规划公式中出现的中间变量,包括负载,信号传递时间,子树累计负载延迟,以及电平转换时间参数Beta,用作后续时序指标反向求导过程中的反向微分计算。
可微分互连线延迟计算的过程直接实现在元件布局方法内部,求解互连线延迟所需的数据,如图1中各元件(C1) (C2) (C3)的位置,以及布线树的结构,由元件布局的迭代过程直接从内存中提供,不再需要通过数据文件读写的方式与外置的时序分析引擎通信。
D. 可微分延迟传播
在分层的有向无环图节点列表上,由前至后计算每个管脚的信号到达时间,分为信号最快到达时间和信号最慢到达时间两种。到达时间的计算方式是,从上一级管脚的到达时间出发,累加互连线的信号传递时间和逻辑门的延迟。逻辑门延迟的计算方法是,通过下游互连线的电平转换时间对逻辑门物理模型进行查询和模拟,本实施例使用NLDM模型完成逻辑门延迟计算,计算过程如图4所示,其中x0,x1,x2,x3,y0,y1,y2,y3是NLDM模型查找表的索引,x,y是查找表的输入坐标,来自电平转换时间和电路的负载;v21,v31,v22,v32是查找表在x,y位置单元格的四个端点值,进行可微分NLDM逻辑门延迟查询的公式如下所示:
其中x0,x1,x2,x3,y0,y1,y2,y3,x,y,v21,v22的含义与图4中含义相同;v2y,v3y分别是查找表在y方向完成初步插值后得到的沿x方向的两个端点值;∇xvxy是NLDM模型查找表在x,y位置上的x方向梯度。通过上述公式实现了通过使用NLDM模型完成逻辑门延迟计算。
对信号最快到达时间和最慢到达时间进行可微分的光滑化处理,具体来讲是修改到达时间最小值和最大值计算的过程为数学上光滑的近似函数,使最快到达时间和最慢到达时间相对上游到达时间的偏导数形成稠密矩阵,导数值与上游到达时间的相对大小有关。在本实施例中,采用Log-Sum-Exp(LSE)近似函数,近似最慢到达时间(即Max函数)的LSE近似函数表达如下所示:
其中γ为LSE的参数,调控近似和光滑的相对程度,n表示需要求最大值的自变量个数,x1,x2,…,xn表示所有自变量,xi表示第i个自变量,log,exp分别表示自然对数和自然指数函数。
通过芯片标准单元物理模型内置的时序约束要求,与管脚的到达时间做差,计算管脚的到达时间约束满足情况,获得芯片的性能指标,包括最坏时序违例(Worst NegativeSlack)和总时序违例(Total Negative Slack),是两个负数,其绝对值大小表示时序违例的程度。时序驱动元件布局的过程需要最大化这两个负数,也就是最小化这两个性能指标的绝对值,以减小违反时序违例的关键路径长度。
E. 时序指标反向求导步骤
针对前述可微分延迟传播、可微分互连线延迟计算、布线估计的过程,按照计算的相反顺序,依次求解,具体过程如下:
求解延迟传播的微分,获得芯片性能指标对每个管脚信号到达时间的偏导数。
基于对信号到达时间的偏导数,求解互连线延迟的微分,获得芯片性能指标对互连线延迟的偏导数。
基于对互连线延迟的偏导数,求解布线估计的微分,获得芯片性能指标对布线树电容和电阻的偏导数,最后得到芯片性能指标对元件位置的偏导数,即梯度。
在本实施例中,以上过程使用深度学习框架PyTorch的计算图构建和反向求导来完成。
完成时序指标反向求导步骤后,即完成可微分时序分析的计算。
F. 元件布局迭代更新步骤
利用芯片性能指标对元件位置的梯度,更新当前迭代的元件布局,具体方法是,将梯度与步长相乘,并与当前元件布局相加。步长是一个正数,由元件布局使用的优化算法动态决定并随着迭代过程更新。在本实施例中,我们采用以下元件布局优化算法目标函数:
在上式中,x,y表示所有元件的位置向量,net e表示每个互连线e,WL代表互连线长度,第一项是互连线长度的总和,第二项D代表元件密度,λ表示元件密度的系数,第三项和第四项中,TNS代表总时序违例,WNS代表最坏时序违例,也就是本实施例可以支持同时优化互连线总长度和芯片性能,γ为前述LSE的参数,t1,t2分别是总时序违例和最坏时序违例的系数。上式中的系数λ, t1,t2和迭代更新的步长由Nesterov优化算法根据迭代性质动态选择和更新。
设置性能指标阈值;重复进行布线估计、可微分互连线延迟计算、可微分延迟传播、时序指标反向求导,元件布局迭代更新步骤,直到芯片元件布局基本收敛,元件位置分散不重叠,且迭代中计算得到的性能指标达到布局方法输入的给定阈值为止。
通过以上A,B,C,D,E,F步骤,即可实现可微分时序驱动的芯片元件布局。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种可微分时序驱动的芯片元件布局方法,其特征是,设计内置的可微分时序分析引擎,并通过内存与芯片元件布局过程进行数据交互,从元件布局过程中获取元件位置信息;在每一步元件布局迭代过程中,计算芯片性能指标并直接计算性能指标对元件位置的梯度,并将芯片性能指标和梯度反馈给元件布局过程,进行元件布局迭代更新,以此实现芯片元件布局的优化;所述梯度直接给出时序驱动芯片元件布局的优化调整方向;
所述可微分时序驱动的芯片元件布局方法包括如下步骤:
A. 对芯片的电路图进行预处理,包括:
将芯片表示为元件和互连线的集合,每个元件上有多个管脚;元件之间的互连线代表元件之间的信号传递关系;
将电路图表示为一个有向无环图;有向无环图的节点代表管脚,边代表管脚之间的信号传递关系;管脚之间的信号传递关系包括:互连线传递关系和元件内部传递关系;
将电路图进行扁平化和拓扑排序,得到分层的有向无环图节点列表;若通过任意节点到达另一个节点,则在得到分层的有向无环图节点列表中,该任意节点的位次在另一个节点之前;
B. 进行布线估计,包括:
计算每个互连线包含的管脚在芯片版图上的当前位置;
针对每个互连线,通过一棵布线树将所有管脚相连,使得布线树的长度最短;布线树的节点是元件的管脚或元件的中转点;布线树的边代表节点之间信号传递的关系;
计算布线树的每个节点的接地电容;
计算每条边上相连两个节点之间的电阻;
C. 通过可微分互连线延迟计算求解得到互连线延迟,包括互连线信号传递时间和电平转换时间;
在每个节点的布线树上,使用布线估计得到的存放在内存中的电阻和电容数据,模拟电压源通过电阻给芯片电路中的电容充电的过程求解互连线的延迟;可微分互连线延迟计算的过程直接实现在元件布局上;在互连线延迟求解的过程中,记录中间变量;
D.可微分延迟传播,包括:通过计算得到每个管脚的信号到达时间;对信号到达时间进行可微分的光滑化处理;计算管脚的信号到达时间约束满足情况,获得芯片的性能指标;
在分层的有向无环图节点列表上,由前至后计算每个管脚的信号到达时间,包括信号最快到达时间和信号最慢到达时间;
信号到达时间的计算方式为,从上一级管脚的到达时间出发,累加互连线的信号传递时间和逻辑门延迟;逻辑门延迟的计算方法为,通过下游互连线的电平转换时间对逻辑门物理模型进行查询和模拟得到;
对信号最快到达时间和最慢到达时间进行可微分的光滑化处理,具体是通过采用光滑的近似函数计算得到最快到达时间和最慢到达时间,使得每个管脚的最快到达时间和最慢到达时间相对其上游到达时间的偏导数形成稠密矩阵;
通过计算管脚的到达时间约束,获得芯片的性能指标;在时序驱动元件布局的过程中,最小化性能指标的绝对值,以减小违反时序违例的关键路径长度;
E. 通过时序指标反向求导,得到芯片性能指标对元件位置的偏导数,即梯度;
即按照可微分延迟传播、可微分互连线延迟计算、布线估计的过程的相反顺序,依次求解;具体过程如下:
求解延迟传播的微分,获得芯片性能指标对每个管脚信号到达时间的偏导数;
基于对信号到达时间的偏导数,求解互连线延迟的微分,获得芯片性能指标对互连线延迟的偏导数;
基于对互连线延迟的偏导数,求解布线估计的微分,获得芯片性能指标对布线树电容和电阻的偏导数,最后得到芯片性能指标对元件位置的偏导数,即梯度;
完成时序指标反向求导步骤后,即完成可微分时序分析的计算;
F. 元件布局迭代更新:使用芯片性能指标对元件位置的梯度信息完成更新;
利用芯片性能指标对元件位置的梯度,更新当前迭代的元件布局;具体方法是将梯度与步长相乘,并与当前元件布局相加;
G.重复进行步骤B~F多次,直到芯片元件布局基本收敛,元件位置分散不重叠,且性能指标达到设定要求为止;
通过以上步骤,即可实现可微分时序驱动的芯片元件布局。
2.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,步骤B进行布线估计时,计算每个互连线包含的管脚在芯片版图上的当前位置,计算方式是将管脚所属的元件位置与管脚在元件上的偏移坐标相加。
3.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,步骤B进行布线估计时,在布线树的每个节点上,具体是通过节点的版图位置信息计算节点的接地电容;在每条边上,通过相连两个节点在版图上的距离计算节点之间的电阻。
4.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,步骤C通过可微分互连线延迟计算求解得到互连线延迟时间,具体是:
在每个节点的布线树上,通过布线估计得到的电阻和电容,使用低阶近似模型或近似方程来模拟电压源通过电阻给电路中的电容充电的过程,求解互连线的延迟。
5.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,步骤C具体是采用Elmore延迟模型计算互连线的延迟;Elmore延迟模型的正向计算包含四次布线树上的动态规划过程,分别用于计算节点的负载、信号传递时间、子树累计负载延迟、电平转换时间参数;
使用反向微分计算过程进行时序指标反向求导;反向微分计算方程基于对信号到达时间的偏导数求解互连线延迟的微分,获得芯片性能指标对互连线延迟的偏导数;反向的微分计算过程为逆向的布线树上四次动态规划过程,表示如下:
式中,Load(u)代表节点u的负载,Cap(u)代表节点u的接地电容,Delay(u)代表从布线树根节点到节点u的信号传递时间,LDelay(u)代表节点u的子树累计负载延迟,Beta(u)代表节点u的电平转换时间参数Beta;∇Load, ∇Cap, ∇Delay, ∇Res, ∇LDelay, ∇Beta分别代表负载、接地电容、信号传递时间、树边电阻、子树累计负载延迟、电平转换时间参数各自的梯度值;u为节点;v为u的子节点;child v表示枚举u的所有子节点v;fa(u)代表节点u在布线树上的父节点;Res(fa(u)->u)代表从布线树上u的父节点到u的边的电阻;∇Impulse代表电平转换脉冲的梯度。
6.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,中间变量包括负载,信号传递时间,子树累计负载延迟,以及电平转换时间参数。
7.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,步骤D具体是通过芯片元件内置的时序约束要求,与管脚的最快到达时间和最慢到达时间做差,计算管脚的到达时间约束满足情况,获得芯片的性能指标。
8.如权利要求7所述可微分时序驱动的芯片元件布局方法,其特征是,芯片的性能指标包括最坏时序违例和总时序违例;性能指标的值是两个负数,其绝对值大小表示时序违例的程度;时序驱动元件布局的过程需要最大化性能指标的值,减小违反时序违例的关键路径长度。
9.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,所述步长表示本轮迭代过程的元件布局沿着梯度进行更新的距离;步长为一个正数并随着迭代过程更新。
10.如权利要求1所述可微分时序驱动的芯片元件布局方法,其特征是,所述可微分时序分析引擎为GPU加速的可微分时序分析引擎,使用GPU并行计算时序性能指标和对应的梯度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210793017.1A CN114861591B (zh) | 2022-07-07 | 2022-07-07 | 一种可微分时序驱动的芯片布局优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210793017.1A CN114861591B (zh) | 2022-07-07 | 2022-07-07 | 一种可微分时序驱动的芯片布局优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114861591A true CN114861591A (zh) | 2022-08-05 |
CN114861591B CN114861591B (zh) | 2022-09-27 |
Family
ID=82626095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210793017.1A Active CN114861591B (zh) | 2022-07-07 | 2022-07-07 | 一种可微分时序驱动的芯片布局优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114861591B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659900A (zh) * | 2022-12-23 | 2023-01-31 | 全芯智造技术有限公司 | 用于呈现集成电路版图的方法、设备和介质 |
CN115758989A (zh) * | 2023-01-10 | 2023-03-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
CN116542209A (zh) * | 2023-07-05 | 2023-08-04 | 上海韬润半导体有限公司 | 一种soc芯片的布局优化方法及装置 |
CN116776790A (zh) * | 2023-08-17 | 2023-09-19 | 华芯巨数(杭州)微电子有限公司 | 一种时序分析的快速计算方法、装置及计算机设备 |
CN118013924A (zh) * | 2024-04-07 | 2024-05-10 | 奇捷科技(深圳)有限公司 | 一种电子设计自动优化的方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6301693B1 (en) * | 1998-12-16 | 2001-10-09 | Synopsys, Inc. | Non-linear optimization system and method for wire length and delay optimization for an automatic electric circuit placer |
US7219048B1 (en) * | 2001-01-02 | 2007-05-15 | Magma Design Automation, Inc. | Methodology and applications of timing-driven logic resynthesis for VLSI circuits |
CN101206686A (zh) * | 2006-12-14 | 2008-06-25 | 国际商业机器公司 | 设计时钟域中锁存器的布图的方法和计算机系统 |
US20090254874A1 (en) * | 2006-05-18 | 2009-10-08 | Subhasis Bose | Methods and systems for placement and routing |
CN101661517A (zh) * | 2008-08-25 | 2010-03-03 | 扬智科技股份有限公司 | 芯片布局方法 |
CN101986315A (zh) * | 2010-11-19 | 2011-03-16 | 杭州开鼎科技有限公司 | 一种深亚微米下专用集成电路芯片物理实现方法 |
CN102768506A (zh) * | 2012-07-18 | 2012-11-07 | 复旦大学 | 带时序约束的fpga时序驱动布局方法 |
CN108287932A (zh) * | 2017-01-10 | 2018-07-17 | 上海复旦微电子集团股份有限公司 | 一种基于解析方法的总体fpga自动化布局方法 |
CN112257364A (zh) * | 2020-10-23 | 2021-01-22 | 北京大学 | 一种gpu加速计算的集成电路静态时序分析方法 |
CN113688593A (zh) * | 2021-08-11 | 2021-11-23 | 上海交通大学 | 一种三维集成电路片间混合键合布局布线优化方法 |
CN113836846A (zh) * | 2021-09-13 | 2021-12-24 | 北京大学 | 一种gpu加速计算的集成电路无悲观路径分析方法 |
CN113935275A (zh) * | 2021-10-12 | 2022-01-14 | 福州大学 | 时序松弛约束下绕障X结构Steiner最小树构造方法 |
-
2022
- 2022-07-07 CN CN202210793017.1A patent/CN114861591B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6301693B1 (en) * | 1998-12-16 | 2001-10-09 | Synopsys, Inc. | Non-linear optimization system and method for wire length and delay optimization for an automatic electric circuit placer |
US7219048B1 (en) * | 2001-01-02 | 2007-05-15 | Magma Design Automation, Inc. | Methodology and applications of timing-driven logic resynthesis for VLSI circuits |
US20090254874A1 (en) * | 2006-05-18 | 2009-10-08 | Subhasis Bose | Methods and systems for placement and routing |
CN101206686A (zh) * | 2006-12-14 | 2008-06-25 | 国际商业机器公司 | 设计时钟域中锁存器的布图的方法和计算机系统 |
CN101661517A (zh) * | 2008-08-25 | 2010-03-03 | 扬智科技股份有限公司 | 芯片布局方法 |
CN101986315A (zh) * | 2010-11-19 | 2011-03-16 | 杭州开鼎科技有限公司 | 一种深亚微米下专用集成电路芯片物理实现方法 |
CN102768506A (zh) * | 2012-07-18 | 2012-11-07 | 复旦大学 | 带时序约束的fpga时序驱动布局方法 |
CN108287932A (zh) * | 2017-01-10 | 2018-07-17 | 上海复旦微电子集团股份有限公司 | 一种基于解析方法的总体fpga自动化布局方法 |
CN112257364A (zh) * | 2020-10-23 | 2021-01-22 | 北京大学 | 一种gpu加速计算的集成电路静态时序分析方法 |
CN113688593A (zh) * | 2021-08-11 | 2021-11-23 | 上海交通大学 | 一种三维集成电路片间混合键合布局布线优化方法 |
CN113836846A (zh) * | 2021-09-13 | 2021-12-24 | 北京大学 | 一种gpu加速计算的集成电路无悲观路径分析方法 |
CN113935275A (zh) * | 2021-10-12 | 2022-01-14 | 福州大学 | 时序松弛约束下绕障X结构Steiner最小树构造方法 |
Non-Patent Citations (4)
Title |
---|
ZHIFENG CHEN 等: "Design of a Visualization System of Sequential Logic Chip Based on SVG", 《2010 INTERNATIONAL CONFERENCE ON COMPUTER DESIGN AND APPLIATIONS》 * |
ZIZHENG GUO 等: "A Provably Good and Practically Efficient Algorithm for Common Path Pessimism Removal in Large Designs", 《 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
刘大为: "性能驱动的力指向布局算法研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
汪康: "FPGA布局的混合优化算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659900A (zh) * | 2022-12-23 | 2023-01-31 | 全芯智造技术有限公司 | 用于呈现集成电路版图的方法、设备和介质 |
CN115758989A (zh) * | 2023-01-10 | 2023-03-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
CN115758989B (zh) * | 2023-01-10 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
CN116542209A (zh) * | 2023-07-05 | 2023-08-04 | 上海韬润半导体有限公司 | 一种soc芯片的布局优化方法及装置 |
CN116542209B (zh) * | 2023-07-05 | 2023-09-15 | 上海韬润半导体有限公司 | 一种soc芯片的布局优化方法及装置 |
CN116776790A (zh) * | 2023-08-17 | 2023-09-19 | 华芯巨数(杭州)微电子有限公司 | 一种时序分析的快速计算方法、装置及计算机设备 |
CN116776790B (zh) * | 2023-08-17 | 2023-12-08 | 华芯巨数(杭州)微电子有限公司 | 一种时序分析的快速计算方法、装置及计算机设备 |
CN118013924A (zh) * | 2024-04-07 | 2024-05-10 | 奇捷科技(深圳)有限公司 | 一种电子设计自动优化的方法及系统 |
CN118013924B (zh) * | 2024-04-07 | 2024-06-14 | 奇捷科技(深圳)有限公司 | 一种电子设计自动优化的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114861591B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114861591B (zh) | 一种可微分时序驱动的芯片布局优化方法 | |
CN103080938B (zh) | 用于同时切换噪声优化的方法 | |
CN102799698B (zh) | 一种用于专用集成电路的时钟树规划的方法和系统 | |
US8726211B2 (en) | Generating an equivalent waveform model in static timing analysis | |
CN101539958B (zh) | 一种标准单元库和集成电路的设计方法和装置 | |
Rao et al. | Switch-level timing simulation of MOS VLSI circuits | |
CN103164585B (zh) | 缓冲器的插入方法及装置 | |
CN114117943B (zh) | 物理设计布局阶段的时序预测方法 | |
US9443050B2 (en) | Low-voltage swing circuit modifications | |
CN112560373B (zh) | 毛刺功率分析和优化引擎 | |
CN111553120A (zh) | 一种数字电路局部时钟网络spice网表的生成方法 | |
CN112347722A (zh) | 高效评估芯片Feed-through流水级数的方法及装置 | |
US6643832B1 (en) | Virtual tree-based netlist model and method of delay estimation for an integrated circuit design | |
CN116401987A (zh) | 一种芯片时序优化方法、系统、设备及介质 | |
CN112836454B (zh) | 一种集成电路仿真方法及系统 | |
Chaiyakul et al. | Timing models for high-level synthesis | |
CN104992032A (zh) | 一种多电压域设计中保持时间的修正方法 | |
CN113673195B (zh) | 一种基于网络拓扑顺序的电路门尺寸优化方法 | |
US7047175B1 (en) | System and method for enhancing the speed of dynamic timing simulation using delay assessment at compile time | |
US10831954B1 (en) | Technology lookup table-based default assertion generation and consumption for timing closure of VLSI designs | |
CN107862132B (zh) | 一种用于电路近似计算的自动化节点删除方法 | |
CN116861782B (zh) | 基于机器学习和节点有效电容的线延时预测方法 | |
KR100475014B1 (ko) | 인터콘넥터의 지연 시간 계산방법 | |
CN116911245B (zh) | 一种集成电路的布局方法、系统、设备和存储介质 | |
US11663384B1 (en) | Timing modeling of multi-stage cells using both behavioral and structural models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |