CN112257364A - 一种gpu加速计算的集成电路静态时序分析方法 - Google Patents

一种gpu加速计算的集成电路静态时序分析方法 Download PDF

Info

Publication number
CN112257364A
CN112257364A CN202011143632.5A CN202011143632A CN112257364A CN 112257364 A CN112257364 A CN 112257364A CN 202011143632 A CN202011143632 A CN 202011143632A CN 112257364 A CN112257364 A CN 112257364A
Authority
CN
China
Prior art keywords
delay
node
gpu
structure diagram
circuit structure
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
Application number
CN202011143632.5A
Other languages
English (en)
Other versions
CN112257364B (zh
Inventor
郭资政
黃琮蔚
林亦波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN202011143632.5A priority Critical patent/CN112257364B/zh
Publication of CN112257364A publication Critical patent/CN112257364A/zh
Application granted granted Critical
Publication of CN112257364B publication Critical patent/CN112257364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公布了一种GPU加速计算的集成电路静态时序分析方法,包括:计算RC时延和进行延迟更新;将输入电路信息表示为电路结构图,对电路结构图进行扁平化,将电路结构图中的边关系表示为父结点指针或压缩邻接表形式,并设计电路结构图上的动态规划和拓扑排序算法,设计集成电路的静态时序分析的GPU算法;GPU算法符合单指令多线程体系结构,使得CPU‑GPU计算任务的时间合并。采用本发明提供的技术方案,能够降低集成电路静态时序分析的成本,进而提升时序驱动的芯片设计自动化算法的性能。

Description

一种GPU加速计算的集成电路静态时序分析方法
技术领域
本发明属于集成电路设计自动化领域,涉及一种GPU加速计算的集成电路静态时序分析方法,具体涉及对集成电路后端设计中静态时序分析过程中的算法步骤的并行化处理并使用GPU进行加速计算的方法。
背景技术
在时序逻辑芯片设计中,每到时钟上升沿,集成电路中的寄存器会寄存输入端的数据,寄存器的输出端和下一个计算步骤的寄存器的输入端之间由组合逻辑相连。依规格不同,寄存器对输入端的数据准备时间提出了要求,在时钟上升沿到来以前一段时间,输入端的数据要保持稳定;在时钟上升沿到来以后,输入端的数据仍要保留一段时间不变,也就是寄存器之间的组合逻辑不可以过快,也不可以过慢。对时序的违反将会导致芯片工作不稳定或运算结果出现错误。因而,在集成电路设计自动化中,对电路进行时序分析,对保证芯片设计的正确性、提高芯片的工作效率至关重要。
静态时序分析,就是依照简化的组件和布线的延迟模型进行时序分析,避免每次都对电路进行详细的模拟,因而可以在较短的时间内完成。常用的布线延迟模型有Elmore延迟模型、低阶Pi模型等;常用的组件延迟模型有非线性延迟模型、CCS模型等。
时序分析通常会被放到设计自动化步骤(比如布局和布线)的内层循环中作为优化的目标,因而会被大量多次运行,而对于超大规模集成电路,其基本元件个数通常为千万级别,这使得静态时序分析步骤占用了大量时间,成为了设计自动化步骤中的一个瓶颈,因而,如何加速这一步骤的运行,就成为了一个亟待解决的问题。
传统的静态时序分析加速方法存在以下不足之处:
(1)传统的静态时序分析加速主要依托于CPU,通过设计多线程的算法在多核CPU上运行来加速。但是此类方法受制于CPU上线程切换的巨大开销,以及线程之间不协同、不规则的计算模式,其加速效果在8~16核时就会饱和,无法利用更多的核心做到更大的加速比。
(2)传统的依托GPU的静态时序分析加速方法,只对时序分析步骤中的“延迟传播”步骤进行了加速设计,而另外的步骤如“RC时延计算”和“电路结构图分层预处理”占用整个时序分析流程时间的大部分,这些步骤仍然在CPU上运行,并没有为之设计高效的GPU算法。
(3)针对已经在GPU上运行的“延迟传播”步骤,考虑到在CPU和GPU之间进行数据格式转换,以及主存和显存之间数据拷贝的时间,传统的加速工作并不能够显著的提供性能的提升,有时性能甚至有所下降。比如Murray等人发表在FPT上的工作显示,单独考虑核心计算时间,GPU上运行的“延迟传播”计算时间相比CPU上有6.2倍的加速,但CPU和GPU之间数据拷贝的时间是不能省略的,加上这部分开销以后,GPU反而比CPU慢了一些。
综上所述,现有的静态时序分析加速方法受制于CPU多线程的缺点,没有充分利用GPU的硬件加速潜力,缺乏对整个时序分析过程的全流程加速能力,从而并不能达到很好的性能提升。
发明内容
针对上述现有技术存在的不足,本发明提供了一种GPU加速计算的集成电路静态时序分析方法,针对集成电路静态时序分析的整个流程中的每个步骤都提供了并行化加速方案。
本发明通过对原有电阻-电容(Resistance-Capacitance,RC)时延计算、电路结构图分层预处理的算法和数据结构进行改进,使之适用于GPU的“单指令多线程”体系结构,进而可以使用GPU高效完成每个步骤的计算任务。针对CPU和GPU之间数据格式转换和数据拷贝的时间开销,本发明通过将计算步骤拆分成任务节点,通过分析任务节点的数据依赖关系,在GPU执行计算任务的同时,CPU同时完成数据转换和拷贝的操作,重叠了两部分的时间开销,为静态时序分析问题构建了一个CPU-GPU协同计算的异构计算框架。
本发明的基本原理是,通过对输入的电路设计信息表示为一个图结构,对该电路结构图进行扁平化(Flatten),将电路结构图中的边关系用父结点指针或压缩邻接表形式表示,并相应的重新设计在图结构上的动态规划和拓扑排序算法,使之能在GPU上以较高的并行度运行。这一设计的侧重点在于平衡GPU上不同线程的计算负载,并且减少或消除计算流程的分支。通过使用CUDA开发框架的异步数据传送机制,在开始进行当前任务的核心计算时,同时启动下一个任务的数据传送,进而将两部分时间重叠进行,完成当前任务的核心计算后,下一个任务的数据传送也已经完成,就可以立刻开始下一个任务的核心计算过程,通过这种方式,减少了主存-显存数据传送的开销。
本发明的技术方案是:
一种GPU加速计算的集成电路静态时序分析方法,包括:计算RC时延、电路结构图分层预处理和延迟传播;在计算RC时延步骤中,将集成电路的每个线网表示为一棵有根树,通过在有根树上进行多轮动态规划计算得到集成电路的RC时延,将有根树扁平化并将树上的节点从属关系用父节点指针表示,并设计动态规划算法;在电路结构图分层预处理步骤中,将输入电路信息表示为一个电路结构图(有向无环图),其中节点为电路的管脚,有向边表示两个管脚之间信号传送的时延,有向边包括线网边和标准组件边,对电路结构图进行扁平化,即将电路结构图中的边关系表示为压缩邻接表形式,并设计电路结构图上的拓扑排序算法,完成有向无环图的分层;在延迟传播时,在电路结构图的分层图上完成延迟更新,其中有向边中的标准组件边引入的延迟用二维线性插值计算,线网的延迟由RC时延计算步骤获得;设计集成电路的静态时序分析以上所有步骤的GPU算法(包括RC时延计算、电路结构图分层预处理和延迟传播),且GPU算法符合“单指令多线程”体系结构,使得CPU-GPU计算任务的时间合并;包含以下步骤:
A.RC时延计算;
集成电路的电路结构图中,线网边的延迟使用RC延迟模型定义,每个线网都是一棵有根树。有根树的节点表示电路布线的管脚(即电路结构图的节点)和中间的转折点;边表示节点之间的互连;父节点驱动子节点传播信号。树上的边和节点处有当前线网的物理属性和规格(如边的电阻,点的接地电容)。线网的延迟即集成电路的RC时延通过这种物理属性的信息,在树上递归定义。其计算方法为在树上进行多轮动态规划。首先,对输入的电路结构图中每一个线网的有根树通过一次广度优先搜索,并将节点存在数组中,该数组中节点出现的顺序满足特点:每个父节点出现在它的所有子节点之前。
然后,在节点顺序的数组上进行动态规划的更新操作。根据动态规划的递归计算方向,分别进行不同的处理。如果动态规划的递归式为自下而上更新,则从后往前扫描节点顺序的数组,每个节点更新其父节点。如果动态规划自上而下更新,则从前往后扫描节点顺序的数组,每个节点从其父节点处取得自己的值。计算载荷的GPU算法是,从后往前扫描节点顺序数组,每个节点更新其父节点,完成动态规划递推式自下而上的更新;计算延迟(delay)的GPU算法是,从前往后扫描节点顺序数组,每个节点从其父节点处取得自己的值,完成动态规划递推式自上而下的更新;使用这种设计方式,在每个节点处的更新操作具有相同的工作量,不受每个树上节点的度数不同造成的影响,计算流程没有分支。此流程需要重复四次,分别针对最大/最小延迟和高/低电平的情况加以处理,完成布线延迟计算,得到集成电路的RC时延。本发明利用GPU相邻线程交错访问内存的特性(Memory Coalesce),对算法的内存排布做了如下处理以提高访问效率,具体操作为,将四种情况(最大延迟/高电平、最小延迟/高电平、最大延迟/低电平、最小延迟/低电平)下计算RC时延所需要的数据(即存储载荷、延迟和后续公式中其他中间量(ldelay和beta)的数组)在内存中依元素顺序交错存放,使得相邻四个GPU线程在访问一块内存区域后便可得到计算四种情况所需的数据,减小了流处理器访问显存的开销。
进行延迟更新,包括电路结构图分层预处理和延迟传播;
布线延迟计算完成后,接下来静态时序分析的任务是,对集成电路中的每个寄存器的输入端(在电路结构图中是一些特殊的点,代表寄存器的输入管脚),找出总延迟最大和最小的路径,并检查这些路径是否满足该寄存器时钟上升沿前后数据准备和保持的要求,具体来说,在最大延迟模式下,数据信号必须在时钟上升沿前一段时间到达;在最小延迟模式下,时钟上升沿后数据信号必须保持一段时间以后才允许改变。一个完整电路结构图中,节点表示管脚,边有布线构成的边和标准组件构成的边,分别引入了线延迟和门延迟,二者共同构成了一个有向无环图,图上的每个路径就对应了电路中电平信号的一个传播途径。在这个有向无环图上依照拓扑序完成延迟更新。为了达到最大的并行程度,本发明将更新分成两个步骤,即电路结构图分层预处理和延迟传播。
B.采用GPU并行方法进行电路结构图分层预处理;
电路结构图分层预处理步骤的主要工作是按照拓扑序对电路结构图进行分层,每一层内部没有连边,而层与层之间有先后顺序的关系,保证层与层之间的连边,一定是从前面的层连向后面的层。此过程可以通过为每个点贪心地分配最靠前的一层,使之不违反层与层之间连边的先后关系来实现。本发明设计了电路结构图分层预处理的GPU并行算法。该算法首先取出此有向无环图中出度为零的点,这些点对应整体电路的输出端口,将它们作为第一层,同时称这些点为初始的“边界点”集合。接下来,算法并行地对“边界点”集合中的点进行处理,枚举它们的入边集合并删除这些边。当一个点的出边全都被删除以后,这个点将会加入下一层中,此操作称为边界点集合的“扩展”操作。然后,算法将当前的“边界点”集合设为第二层中的点,再并行地扩展它,得到第三层的点,以此类推,直到所有的点都被取出,就完成了电路结构图的分层操作,得到分层图。
C.延迟传播:利用步骤B得到的分层图,将每一层内部并行、不同层之间按顺序完成延迟更新;
延迟传播就是在分好层的有向无环图上依照拓扑序,用“贪心”算法进行“最大延迟”和“最小延迟”的更新。本发明利用上一步骤获得的分层图的性质,同一层的节点更新互不影响,进而每一层内部并行完成延迟更新操作,不同层之间则按顺序完成。对于布线形成的边,其延迟按照RC时延计算获得的延迟来计算;对于标准组件构成的边,本发明采用非线性延迟模型,在延迟传播的过程中,通过标准组件边的前驱节点已经算出的电平转换速率(slew)值和接地电容值,在标准组件提供的延迟规格查找表中通过二维线性插值获得标准组件构成的边的延迟。
以上是对集成电路静态时序分析中三个步骤的GPU实现。通过A、B、C三个步骤就可以完成一个完整的静态时序分析过程。
与现有技术相比,本发明的有益效果在于:
本发明为集成电路静态时序分析的全部三个步骤(包括RC时延计算、电路结构图分层预处理和延迟传播)都设计了GPU算法,并且GPU算法的设计符合“单指令多线程”体系结构的要求,控制流和内存均为GPU友好的设计。同时,通过重叠CPU-GPU计算任务的时间,减小了主存-显存数据拷贝给总时间消耗带来的不利影响。通过以上技术方案,本发明降低了静态时序分析的成本,进而提升时序驱动的芯片设计自动化算法的性能。
附图说明
图1是本发明提供的GPU加速计算的集成电路静态时序分析方法的流程框图。
图2是本发明具体实施时采用Elmore延迟模型中,每个线网表示为一棵有根树的结构图。
图3是本发明方法将有根树通过广度优先遍历获得一个遍历序的扁平化表示的示意图;
其中父节点出现在所有的子节点之前,所有的树边都是由左指向右。
图4是本发明具体实施时,表示为一个有向无环图的简单电路示例;包含一个与门,两个或门和一个非门。
图5是本发明具体实施时以分段线性函数表示的一维查找表查找过程示例。
具体实施方式
下面结合附图,通过实施例,进一步阐述本发明,但不以任何方式限制本发明的范围。
本发明提供一种GPU加速计算的集成电路静态时序分析方法,将输入电路信息表示为一个电路结构图,对该电路结构图进行扁平化,将电路结构图中的边关系表示为父结点指针或压缩邻接表形式,并设计电路结构图上的动态规划和拓扑排序算法;设计集成电路的静态时序分析所有步骤的GPU算法,且GPU算法符合“单指令多线程”体系结构,使得CPU-GPU计算任务的时间合并。采用本发明方法,能够降低静态时序分析的成本,进而提升时序驱动的芯片设计自动化算法的性能。
本发明处理静态时序分析问题的步骤如图1所示,图1中的实线箭头表示方法步骤的处理顺序关系。深色步骤为GPU上的运算步骤,包括扁平化RC树、RC时延计算、电路结构图分层预处理、时序前向传播。
A.RC时延计算
对于RC时延计算过程,本实施例采用Elmore延迟模型。在这个延迟模型中,每个线网是一棵有根树,如图2所示。根节点Z是线网的驱动引脚。每条树边上有一个电阻(如RA→B),每个树节点上有一个接地电容(如CA)。RC时延的计算过程有两个步骤。首先,将这个有根树通过广度优先遍历获得一个遍历序,作为这棵有根树的扁平化表示,如图3所示,其中父节点出现在所有的子节点之前,所有的树边都是由左指向右。然后,在这个遍历序上完成动态规划的数次更新操作,将在后面介绍。
在Elmore延迟模型中,节点u的载荷(load)值定义为点u在RC树上所有子孙节点的接地电容之和,即
Figure BDA0002739008370000061
比如,loadA=CA+CB+CC+CD=CA+loadB+loadD.
从根节点Z到每个节点u的延迟计算公式为
Figure BDA0002739008370000062
其中RZ→v定义为从Z到v的路径上经过的电阻之和。如RZ→B=RZ→A+RA→B。LCA指最近公共祖先(lowest common ancestor),如LCA(A,E)=Z,LCA(B,D)=A。一般地,设u的父节点为f,根节点的延迟delayZ=0,则上式等价于
delayu=delayf+Rf→uloadu
如,delayB=RZ→ACA+RZ→ACD+RZ→BCB+RZ→BCC=delayA+RA→BloadB.
类似的,我们还定义ldelay值和beta值,分别为
Figure BDA0002739008370000063
Figure BDA0002739008370000064
其处理方式分别与load和delay类似。
下面给出本发明计算载荷(load)的GPU算法。如果动态规划的递归式为自下而上更新,则从后往前扫描节点顺序的数组,每个节点更新其父节点。首先我们定义符号:parent[i]表示任意节点i的父节点;R[i,j]表示边(i,j)的电阻值;cap[i]表示节点i的电容值;load[i]表示节点i的载荷;delay[i]表示节点i的延迟。假设节点已经按照遍历序排好了顺序。计算load的伪代码如下,该伪代码的含义为,从右向左枚举节点的遍历序,将父节点的load值load[parent[i]]每次由一个子节点的load值load[i]累加更新。
Figure BDA0002739008370000071
下面给出本发明计算延迟(delay)的GPU算法。如果动态规划自上而下更新,则从前往后扫描节点顺序的数组,每个节点从其父节点处取得自己的值。根据延迟计算公式的等价形式
delayu=delayf+Rf→uloadu,
上式中,节点u的延迟等于节点u的父节点f的延迟加上边f→u的贡献,其中贡献的计算方式为这条边的长度乘以节点u的载荷。延迟的递推式是自下而上更新的,伪代码如下,其中子节点的延迟delay[i]由父节点的延迟delay[parent[i]]和父亲边的贡献load[i]*R[parent[i],i]计算得来:
delay[1]=0
for i=2 to n do
delay[i]=delay[parent[i]]+load[i]*R[parent[i],i]
end for
在GPU上,每4个线程处理一个线网,分别负责最大/最小延迟和高/低电平的四种组合。GPU的每个线程块(block)包含256个线程,并行处理64个线网。
B.电路结构图的分层预处理
一个电路设计整体是一个有向无环图,如图4中的简单电路示例包含一个与门,两个或门和一个非门。有向无环图上的边有线网边和组件边两种,如a到d的边是与门的组件边,e到g的边是线网{e,g,h}中的边,它们分别有一定的延迟时间的范围,由最小值和最大值给出,如a到d的边的延迟为30ns~35ns。为了说明清晰,图中只标出了少量的边,实际上PI2到b/c,c到e,e到h,k到PO2等都是这个有向无环图的边。时序计算包含两个步骤,首先是将电路结构图分为若干层,然后是在这些层上并行传播延迟值,这里先介绍电路结构图的分层预处理。
下面通过图4的示例展示本发明的电路结构图分层预处理GPU算法。首先找出图中没有出边的点,在本图中是{PO1,PO2},把这个集合作为初始的“边界点”集。接下来并行地访问PO1和PO2的所有入边并删除这些边,在本例中是j到PO1和k到PO2的边。然后找出不再有出边的点,在本例中j和k都不再有其他出边,则集合{j,k}就成为新的“边界点”集。以此类推,我们依次找到的集合是{PO1,PO2},{j,k},{f,g,h,i},{d,e,PI3},{a,b,c},{PI1,PI2}。将这些集合依照发现的顺序排序,我们就得到了电路结构图的分层结果。在此算法中,核心步骤是从一个“边界点”集得到下一个“边界点”集的操作,称为“扩展”,令F为当前“边界点”集合,首先初始化F为无出边的节点集合,然后对F进行扩展操作,每次初始化空集合F’,枚举F中的点的入边,将新节点加入F’中,最后将F’设为新的边界点集合,伪代码如下:
Figure BDA0002739008370000081
在每一次“扩展”操作中,每个GPU线程处理一个点,完成枚举此点的入边、更新边界点集的操作。每个线程块(block)包含128个线程,线程块的数量和每次边界点集的大小相关。
C.时延传播
时延传播包含前向传播和后向传播两部分,其中前向传播占用大部分时间,因此本发明重点对前向传播进行了优化。前向传播的过程是在上一步获得的电路结构图分层结果上进行的,算法从左到右依次处理每一层,对层内并行地处理每一个点,通过其前驱计算出该点的最晚/最早到达时间,伪代码如下:
Figure BDA0002739008370000091
按顺序处理每个层,每个层内并行进行到达时间的更新。在时延传播过程中,需要计算标准元件引入边的延迟,本发明采用非线性延迟模型,需要在延迟规格查找表上代入自变量做二维插值。由于延迟规格查找表的大小一般不超过10×10,本发明抛弃传统的二分查找法,而是采用顺序查找的方式,此方式更适用于GPU计算,这样可以获得更小的时间常数和更少的分支数。由于线性插值分为内插值和外插值两种,例如,图5是一个一维查找表(以分段线性函数表示),上有四个点,横坐标分别为x1,x2,x3,x4。查询q1落在x1的左侧,因而需要在线段x1,x2向左的延长线上获得查询的值,此为外插值。查询q2落在x3和x4之间,因此需要在线段x3,x4内部查询,此为内插值。由于插值是线性的,在固定左右端点后,内插值和外插值的数学表达是一样的,本发明利用这一点,将内外插值不加分类地统一完成。寻找左右/上下端点并进行二维线性插值的伪代码如下,其中lut_lookup的输入是查找表(长、宽、横纵坐标索引向量,以及值矩阵)和待查询的坐标位置:
Figure BDA0002739008370000092
Figure BDA0002739008370000101
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。

Claims (9)

1.一种GPU加速计算的集成电路静态时序分析方法,其特征是,包括:计算RC时延和进行延迟更新;进行延迟更新包括电路结构图分层预处理和延迟传播;
将集成电路的每个线网表示为一棵有根树,通过在有根树上进行多轮动态规划计算得到集成电路的RC时延;所述有根树的节点为布线的管脚和中间的转折点;边表示节点之间的互连;父节点驱动子节点传播信号;树上的边和节点处设有当前线网的物理属性和规格;
在计算RC时延时,将有根树扁平化并将有根树上的节点从属关系用父节点指针表示,并通过物理属性信息在所述有根树上递归定义进行多轮动态规划计算线网的延迟,即集成电路的RC时延;
将输入电路信息表示为电路结构图,电路结构图中节点为电路的管脚,有向边表示两个管脚之间信号传送的时延,有向边包括线网边和标准组件边;对电路结构图进行扁平化,将电路结构图中的边关系表示为压缩邻接表形式,并设计电路结构图上的拓扑排序算法,完成有向无环图的分层;
在电路结构图的分层图上完成延迟更新,有向边中的标准组件边引入的延迟用二维线性插值计算,线网的延迟由RC时延计算步骤在有根树上递归计算;
通过设计集成电路的静态时序分析的GPU算法,包括RC时延计算、电路结构图分层预处理和延迟传播,使得CPU-GPU计算任务的时间合并;所述GPU算法符合单指令多线程体系结构。
2.如权利要求1所述GPU加速计算的集成电路静态时序分析方法,其特征是,进行多轮动态规划计算线网的延迟包括如下步骤:
A1.通过一次广度优先搜索,将输入的电路结构图中每一个线网的有根树转化为一个节点顺序的数组;数组中节点出现的顺序满足每个父节点出现在它的所有子节点之前;
A2.在节点顺序的数组上进行动态规划的更新操作,具体是:
分别针对最大延迟/高电平、最小延迟/高电平、最大延迟/低电平、最小延迟/低电平四种情况下计算RC时延所需要的数据进行内存排布,在内存中依元素顺序交错存放,使得相邻四个GPU线程在访问一块内存区域后便可得到计算四种情况所需的数据,减小了流处理器访问显存的开销;
根据动态规划的递归计算方向,计算载荷的GPU算法是,从后往前扫描节点顺序数组,每个节点更新其父节点,完成动态规划递推式自下而上的更新;计算延迟的GPU算法是,从前往后扫描节点顺序数组,每个节点从其父节点处取得自己的值,完成动态规划递推式自上而下的更新;重复四次,分别针对最大延迟/高电平、最小延迟/高电平、最大延迟/低电平、最小延迟/低电平四种情况,完成布线延迟计算,得到集成电路的RC时延。
3.如权利要求2所述GPU加速计算的集成电路静态时序分析方法,其特征是,设定节点已经按照遍历序排好了顺序,计算载荷的GPU算法具体从右向左枚举节点的遍历序,将父节点的load值load[parent[i]]每次由一个子节点的load值load[i]累加更新;其中,load值为载荷值;定义parent[i]表示任意节点i的父节点;load[i]表示节点i的载荷。
4.如权利要求2所述GPU加速计算的集成电路静态时序分析方法,其特征是,计算延迟的GPU算法具体是:子节点的延迟delay[i]由父节点的延迟delay[parent[i]]和父亲边的贡献load[i]*R[parent[i],i]计算得到。
5.如权利要求2所述GPU加速计算的集成电路静态时序分析方法,其特征是,进行延迟更新具体通过集成电路中的每个寄存器的输入端找出总延迟最大和最小的路径,在电路结构图上依照拓扑序完成延迟更新;包括如下步骤:
B1.采用GPU并行方法,按照拓扑序进行电路结构图分层预处理;
首先取出此有向无环图中出度为零的点,作为第一层,这些点对应整体电路的输出端口,并组成初始边界点集合;
接下来,进行边界点集合的扩展操作:并行地对边界点集合中的点进行处理,枚举入边集合并删除边;当一个点的出边全都被删除,将该点加入下一层中;
然后,将当前的边界点集合设为第二层中的点,再并行地进行扩展,得到第三层的点;
重复操作,直到所有的点都被取出,即完成电路结构图的分层操作,得到分层图;
B2.延迟传播:利用步骤B1得到的分层图,采用贪心算法进行最大延迟和最小延迟的更新;每一层内部并行、不同层之间按顺序完成延迟更新;
由此即完成一个完整的静态时序分析过程。
6.如权利要求5所述GPU加速计算的集成电路静态时序分析方法,其特征是,步骤B2延迟传播,具体地,分层图中,同一层的节点更新互不影响,每一层内部并行完成延迟更新操作,不同层之间按顺序完成;对于布线形成的边,按照RC时延计算获得的延迟来计算;对于标准组件构成的边,采用非线性延迟模型,在延迟传播的过程中,通过标准组件边的前驱节点已经算出的电平转换速率值和接地电容值,在标准组件提供的延迟规格查找表中通过二维线性插值获得标准组件构成的边的延迟。
7.如权利要求1所述GPU加速计算的集成电路静态时序分析方法,其特征是,GPU上的运算步骤包括扁平化RC树、RC时延计算、电路结构图分层预处理和时序前向传播。
8.如权利要求1所述GPU加速计算的集成电路静态时序分析方法,其特征是,RC时延计算过程具体采用Elmore延迟模型,根节点Z是线网的驱动引脚,每条树边上有一个电阻,每个树节点上有一个接地电容。
9.如权利要求1所述GPU加速计算的集成电路静态时序分析方法,其特征是,通过广度优先遍历获得有根树的一个遍历序,作为有根树的扁平化表示,其中父节点出现在所有的子节点之前,所有的树边均由左指向右。
CN202011143632.5A 2020-10-23 2020-10-23 一种gpu加速计算的集成电路静态时序分析方法 Active CN112257364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011143632.5A CN112257364B (zh) 2020-10-23 2020-10-23 一种gpu加速计算的集成电路静态时序分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011143632.5A CN112257364B (zh) 2020-10-23 2020-10-23 一种gpu加速计算的集成电路静态时序分析方法

Publications (2)

Publication Number Publication Date
CN112257364A true CN112257364A (zh) 2021-01-22
CN112257364B CN112257364B (zh) 2022-05-20

Family

ID=74263558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011143632.5A Active CN112257364B (zh) 2020-10-23 2020-10-23 一种gpu加速计算的集成电路静态时序分析方法

Country Status (1)

Country Link
CN (1) CN112257364B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064870A (zh) * 2021-03-22 2021-07-02 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
CN113095022A (zh) * 2021-04-22 2021-07-09 国微集团(深圳)有限公司 门级电路的并行仿真处理方法、计算机可读存储介质
CN113536722A (zh) * 2021-07-08 2021-10-22 北京华大九天科技股份有限公司 一种基于依赖关系进行参数求值的方法
CN113822003A (zh) * 2021-11-24 2021-12-21 南京集成电路设计服务产业创新中心有限公司 一种基于fpga的静态时序分析延迟计算加速系统及方法
CN113836846A (zh) * 2021-09-13 2021-12-24 北京大学 一种gpu加速计算的集成电路无悲观路径分析方法
CN113973061A (zh) * 2021-10-27 2022-01-25 深圳鸿芯微纳技术有限公司 电路时延预测方法、装置、终端设备和可读存储介质
CN113992208A (zh) * 2021-11-22 2022-01-28 东北大学 一种优化流数据处理性能的半解压数据压缩方法
CN114691375A (zh) * 2022-06-02 2022-07-01 青岛展诚科技有限公司 基于并行算法的集成电路电阻抽取方法
CN114861591A (zh) * 2022-07-07 2022-08-05 北京大学 一种可微分时序驱动的芯片布局优化方法
CN115964973A (zh) * 2022-12-30 2023-04-14 南京邮电大学 一种复合电流源模型的单元延时计算方法
CN116090383A (zh) * 2022-12-27 2023-05-09 广东高云半导体科技股份有限公司 实现静态时序分析的方法、装置、计算机存储介质及终端
TWI813401B (zh) * 2022-07-27 2023-08-21 瑞昱半導體股份有限公司 靜態時序分析方法及靜態時序分析系統
CN117787162A (zh) * 2023-12-27 2024-03-29 苏州异格技术有限公司 一种多端角静态时序分析方法、装置、计算机设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040194043A1 (en) * 2003-03-24 2004-09-30 Sun Microsystems, Inc. Method and apparatus for signal electromigration analysis
CN102169515A (zh) * 2010-02-26 2011-08-31 国际商业机器公司 一种专用集成电路中时钟树延迟时间的估计方法和系统
CN104376138A (zh) * 2013-08-15 2015-02-25 龙芯中科技术有限公司 集成电路芯片的时序确定方法和装置
CN107203676A (zh) * 2017-06-22 2017-09-26 上海兆芯集成电路有限公司 用以提升集成电路设计的时序性能的方法及数据处理系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040194043A1 (en) * 2003-03-24 2004-09-30 Sun Microsystems, Inc. Method and apparatus for signal electromigration analysis
CN102169515A (zh) * 2010-02-26 2011-08-31 国际商业机器公司 一种专用集成电路中时钟树延迟时间的估计方法和系统
CN104376138A (zh) * 2013-08-15 2015-02-25 龙芯中科技术有限公司 集成电路芯片的时序确定方法和装置
CN107203676A (zh) * 2017-06-22 2017-09-26 上海兆芯集成电路有限公司 用以提升集成电路设计的时序性能的方法及数据处理系统

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064870B (zh) * 2021-03-22 2021-11-30 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
CN113064870A (zh) * 2021-03-22 2021-07-02 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
CN113095022A (zh) * 2021-04-22 2021-07-09 国微集团(深圳)有限公司 门级电路的并行仿真处理方法、计算机可读存储介质
CN113536722A (zh) * 2021-07-08 2021-10-22 北京华大九天科技股份有限公司 一种基于依赖关系进行参数求值的方法
CN113836846B (zh) * 2021-09-13 2023-10-17 北京大学 一种gpu加速计算的集成电路无悲观路径分析方法
CN113836846A (zh) * 2021-09-13 2021-12-24 北京大学 一种gpu加速计算的集成电路无悲观路径分析方法
CN113973061A (zh) * 2021-10-27 2022-01-25 深圳鸿芯微纳技术有限公司 电路时延预测方法、装置、终端设备和可读存储介质
CN113992208B (zh) * 2021-11-22 2024-05-03 东北大学 一种优化流数据处理性能的半解压数据压缩方法
CN113992208A (zh) * 2021-11-22 2022-01-28 东北大学 一种优化流数据处理性能的半解压数据压缩方法
CN113822003B (zh) * 2021-11-24 2022-03-11 南京集成电路设计服务产业创新中心有限公司 一种基于fpga的静态时序分析延迟计算加速系统及方法
CN113822003A (zh) * 2021-11-24 2021-12-21 南京集成电路设计服务产业创新中心有限公司 一种基于fpga的静态时序分析延迟计算加速系统及方法
CN114691375A (zh) * 2022-06-02 2022-07-01 青岛展诚科技有限公司 基于并行算法的集成电路电阻抽取方法
CN114861591A (zh) * 2022-07-07 2022-08-05 北京大学 一种可微分时序驱动的芯片布局优化方法
CN114861591B (zh) * 2022-07-07 2022-09-27 北京大学 一种可微分时序驱动的芯片布局优化方法
TWI813401B (zh) * 2022-07-27 2023-08-21 瑞昱半導體股份有限公司 靜態時序分析方法及靜態時序分析系統
CN116090383A (zh) * 2022-12-27 2023-05-09 广东高云半导体科技股份有限公司 实现静态时序分析的方法、装置、计算机存储介质及终端
CN115964973A (zh) * 2022-12-30 2023-04-14 南京邮电大学 一种复合电流源模型的单元延时计算方法
CN117787162A (zh) * 2023-12-27 2024-03-29 苏州异格技术有限公司 一种多端角静态时序分析方法、装置、计算机设备及介质

Also Published As

Publication number Publication date
CN112257364B (zh) 2022-05-20

Similar Documents

Publication Publication Date Title
CN112257364B (zh) 一种gpu加速计算的集成电路静态时序分析方法
US11861786B2 (en) Determining lighting information for rendering a scene in computer graphics using illumination point sampling
US7353491B2 (en) Optimization of memory accesses in a circuit design
US10853544B2 (en) Selective execution for partitioned parallel simulations
US5729466A (en) Optimization multiple performance criteria by simulating the behavior of a constraint graph expanded by subgraphs derived from PWL convex cost functions
US5663891A (en) Optimization of multiple performance criteria of integrated circuits by expanding a constraint graph with subgraphs derived from multiple PWL convex cost functions
US6782511B1 (en) Behavioral-synthesis electronic design automation tool business-to-business application service provider
CN106919769B (zh) 一种基于多层次方法和赋权超图的层次式fpga布局布线方法
US20020188922A1 (en) Method for storing multiple levels of design data in a common database
JP2002123563A (ja) コンパイル方法および合成装置ならびに記録媒体
US9558306B2 (en) Retiming a design for efficient parallel simulation
CN114647635B (zh) 数据处理系统
CN113779924A (zh) 超导集成电路的布线优化方法和装置、存储介质和终端
Dhar et al. GDP: GPU accelerated detailed placement
Yang et al. Logic synthesis optimization sequence tuning using RL-based LSTM and graph isomorphism network
CN108875914A (zh) 对神经网络数据进行预处理和后处理的方法和装置
Zapletina et al. Improving pathfinder algorithm perfomance for FPGA routing
Guo et al. Accelerating Static Timing Analysis Using CPU–GPU Heterogeneous Parallelism
CN112131813B (zh) 基于端口交换技术的用于提升布线速度的fpga布线方法
JPWO2005098612A1 (ja) 重要成分優先計算方式ならびに装置
CA2495812A1 (en) Technique for improving the efficiency of reconfigurable hardware
Brayton et al. An integrated technology mapping environment
Werner et al. Parallel and pipelined filter operator for hardware-accelerated operator graphs in semantic web databases
JPH096821A (ja) 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法
Work Algorithms and software tools for mapping arbitrarily connected tasks onto an asynchronous array of simple processors

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