CN113822003B - 一种基于fpga的静态时序分析延迟计算加速系统及方法 - Google Patents
一种基于fpga的静态时序分析延迟计算加速系统及方法 Download PDFInfo
- Publication number
- CN113822003B CN113822003B CN202111399112.5A CN202111399112A CN113822003B CN 113822003 B CN113822003 B CN 113822003B CN 202111399112 A CN202111399112 A CN 202111399112A CN 113822003 B CN113822003 B CN 113822003B
- Authority
- CN
- China
- Prior art keywords
- delay
- calculation
- request data
- fpga
- pressure swing
- 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.)
- Active
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/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
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
一种基于FPGA的静态时序分析延迟计算加速系统,包括,上位机和FPGA加速卡,其中,所述上位机,其通过文件读写,向所述FPGA加速卡发送延迟计算请求数据并从所述FPGA加速卡读取计算结果;所述FPGA加速卡,其接收上位机发送的延迟计算请求数据并进行计算,将计算结果发送给所述上位机;在系统内虚拟负责请求的文件和负责输出结果的文件,供所述上位机完成延迟计算请求数据的发送和计算结果的读取。本发明还提供了一种基于FPGA的静态时序分析延迟计算加速方法,大大提高了计算吞吐率,降低了资源消耗;降低了触发器和寄存器资源的消耗,有利于FPGA实现时的时序收敛。
Description
技术领域
本发明涉及数字电路EDA工具领域,具体来说,涉及一种数字电路静态时序分析延迟计算部分的加速方法。
背景技术
静态时序分析(STA)工具是芯片数字后端电子设计自动化(EDA)工具链中的重要一环。用户查看时序报告、布局、布线等环节都需要使用到STA,尤其是布局布线环节,STA会被频繁反复地调用。因此,STA的性能(计算速度)对后端设计的迭代速度的影响举足轻重。而随着数字芯片规模日益提高,STA的计算复杂度进一步加大,这对STA的计算速度也提出了更高的要求。提高STA的计算速度能极大加快研发人员的迭代速度,降低上市时间(time-to-market),对提高社会生产效率和企业产品竞争力,具有重要意义。
现有技术中,STA往往将目标电路用有向无环图来进行建模。有向无环图中的顶点代表元器件的管脚,边则代表管脚之间的连接关系。STA的主要计算工作则是计算所有边两端的管脚之间的信号延迟。随着工艺节点不断提高,特征尺寸不断变小,数字电路的寄生效应作用越来越显著,因此STA的延迟计算模型变得越来越复杂,计算速度越来越慢。因此对延迟计算过程进行加速成为STA计算加速的关键。
在以往的研究项目和商用产品中,CPU多线程技术常常被用来对STA进行计算加速,并取得了明显的加速效果。这种纯软件的方法易于开发、可移植性和维护性强,目前市面上所有的商用STA工具均支持多线程。但用户并不能通过无节制地增加线程数来提升加速效果,计算任务之间的依赖性和对全局共享资源的争夺使得多线程的加速比在线程数增长到一定程度后趋于饱和甚至适得其反。因此研究者开始寻求其他方法来进行突破。通过硬件辅助计算来获得更快的计算速度在近些年得到了广泛关注。
图形计算单元(Graphics Processing Unit,GPU)是常见的计算辅助设备,并在许多领域都取得了显著的计算加速效果(比如神经网络计算加速)。随着GPU计算能力的提高,研究者开始尝试将GPU运用在STA领域中。比如Zizheng Guo等人使用GPU对STA工具OpenTimer进行计算加速并取得了约3.69X的加速效果;Guannan Guo等人利用GPU对基于路径的STA工具进行计算加速并取得了25X-45X的加速效果。在可大规模并行计算,尤其是单指令多数据流(Single Instruction Multiple Data)的应用场景中,GPU能取得显著的加速效果。但对于逻辑分支较多的应用场景,GPU的加速效果将大打折扣。另外,GPU的能效相对较低。
现场可编程门阵列(FPGA)是另一种比较常见的计算辅助硬件设备。FPGA能通过流水化和并行处理的方式对计算密集型应用进行加速,与GPU相比更擅长处理逻辑分支较多的场景,且拥有比GPU高的能效。但利用FPGA来对STA进行计算加速的研究较少。Jason Cong和Hiroshi Yuasa等人曾利用FPGA对基于蒙特卡洛方法的SSTA(Statistical StaticTiming Analysis)进行加速,而对主流的基于图的STA和基于路径的STA则缺少研究。
发明内容
为了解决现有技术中存在的缺陷,本发明的目的在于提供一种基于FPGA的静态时序分析延迟计算加速系统及方法,利用现场可编程门阵列(FPGA)的可定制、并行处理能力,对STA中的延迟计算进行加速。
为了实现上述目的,本发明提供的基于FPGA的静态时序分析延迟计算加速系统,包括,上位机以及FPGA加速卡,其中,
所述上位机,其通过文件读写,向所述FPGA加速卡发送延迟计算请求数据并从所述FPGA加速卡读取计算结果;
所述FPGA加速卡,其接收上位机发送的延迟计算请求数据并进行计算,将计算结果发送给所述上位机;在系统内虚拟负责请求的文件和负责输出结果的文件,供所述上位机完成延迟计算请求数据的发送和计算结果的读取。
进一步地,所述FPGA加速卡,还包括,多个延时计算单元、PCIE DMA通信单元、请求分发单元,以及AXIS交换单元,其中,
所述PCIE DMA通信单元,其将所述上位机的延迟计算请求数据进行协议转换后发送给所述请求分发单元,并将计算结果发送给所述上位机;
所述请求分发单元,其将所述延迟计算请求数据均衡地分发给多个所述延迟计算单元;
所述延迟计算单元,对所述延迟计算请求数据进行计算,并将计算结果发送给所述AXIS交换单元;
所述AXIS交换单元,对来自多个所述延迟计算单元的计算结果进行选通后发送给所述PCIE DMA通信单元。
进一步地,所述PCIE DMA通信单元,其将所述上位机的延迟计算请求数据转换为AXI Stream总线协议格式;其最高数据吞吐率应高于8GB/s。
进一步地,所述延迟计算单元,将所述延迟计算请求数据进行预处理、等效电容计算、门延迟计算和线延迟计算,并将计算结果发送给所述AXIS交换单元。
进一步地,所述延迟计算单元,还包括,预处理模块、等效电容计算模块、门延迟计算模块,以及线延迟计算模块,其中,
所述预处理模块,其从所述延迟计算请求数据中,获取等效电容计算、门延迟计算和线延迟计算所需的参数,并存储在三个不同的分布式RAM中;对所述延迟计算请求数据进行简化。
所述等效电容计算模块,其通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容,获取等效电容对应的单元门延迟和压摆;
所述门延迟计算模块,其根据负载π模型,通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出门延迟时间和压摆;
所述线延迟计算模块,其根据所述门延迟时间和压摆,利用elmore参数计算出线延迟时间和压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出最终的延迟计算结果。
更进一步地,所述预处理模块,其通过将延迟查找表和压摆查找表分别简化为1x8一维数组,实现所述延迟计算请求数据的简化。
为了实现上述目的,本发明还提供一种基于FPGA的静态时序分析延迟计算加速方法,包括以下步骤,
接收延迟计算请求数据并将其转换为AXI Stream总线协议格式;
将所述延迟计算请求数据分发后进行延迟计算;
将计算结果发送给上位机。
进一步地,所述将所述延迟计算请求数据分发后进行延迟计算步骤,还包括,
从所述延迟计算请求数据中,获取等效电容计算、门延迟计算和线延迟计算所需的参数,并存储在三个不同的分布式RAM中;对所述延迟计算请求数据进行简化;
通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容,获取等效电容对应的单元门延迟和压摆;
根据负载π模型,通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出门延迟时间和压摆;
根据所述门延迟时间和压摆,利用elmore参数计算出线延迟时间和压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出最终的延迟计算结果。
更进一步地,对所述延迟计算请求数据进行简化,是将延迟查找表和压摆查找表分别简化为1x8一维数组。
为了实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,在存储器上储存有在处理器上运行的计算机程序,在处理器运行计算机程序时执行如上文所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序运行时执行如上文所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
本发明的基于FPGA的静态时序分析延迟计算加速系统及方法,对STA的计算任务进行了合理划分,将计算复杂、可并行性强的延迟计算部分划分到FPGA中进行计算加速,最大程度的利用了FPGA的并行计算能力,并对STA计算性能瓶颈的关键部分进行加速。在FPGA的设计中,将需要二次样条插值计算简化为一次线性插值,降低了通信压力和FPGA资源消耗。将主要计算过程的牛顿迭代算法使用单步迭代加数据循环的方式来实现,大大提高了计算吞吐率,降低了资源消耗。使用多个RAM来存储提前计算的固定参数,降低了触发器和寄存器资源的消耗,使用分布式的块存储资源替代,平衡了资源使用率,有利于FPGA实现时的时序收敛。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于FPGA的静态时序分析延迟计算加速系统结构示意图;
图2为根据本发明的延迟计算单元结构示意图;
图3为根据本发明的求得等效电容示意图;
图4为根据本发明的基于FPGA的静态时序分析延迟计算加速方法流程图;
图5为根据本发明的延迟计算工作流程图;
图6为根据本发明的戴维南等效电压源模型加π负载电路模型示意图;
图7为利用牛顿-拉夫森方法求解三元非线性方程组求解等效电容示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的基于FPGA的静态时序分析延迟计算加速系统结构示意图,如图1所示,本发明的基于FPGA的静态时序分析延迟计算加速系统,包括,上位机1和FPGA加速卡2,其中,
上位机1,其通过文件读写,向FPGA加速卡2发送延迟计算请求数据并从FPGA加速卡2读取计算结果。
FPGA加速卡2,其接收上位机1发送的延迟计算请求数据进行计算,并将计算结果发送给。
以Linux系统为例,FPGA加速卡2在正确安装驱动后,将在系统内虚拟为两个文件,上位机1通过向其中负责请求的文件中写数据来完成延迟计算请求数据发送,而从负责输出结果的文件读数据来完成计算结果的回读。
本发明实施例中,FPGA加速卡2为全流水的延迟计算单元,即在当前计算任务还未处理完成即可开始接收下一次的请求数据,因此上位机1可以连续地向FPGA加速卡2发送批量计算任务。事实上,由于PCIE DMA的通信吞吐率与单次数据传输的大小正向关,超过一定大小的数据块连续发送才能使得FPGA的加速效果不被PCIE DMA通信吞吐率限制。对于PCIE 3.0 X16的实现来说,连续的512K~2MB的数据块才能使FPGA全速工作,从而得到最好的加速效果。
本发明实施例中,FPGA加速卡2负责对STA计算中的关键部分—延迟计算进行加速,上位机1通过PCIE总线向FPGA加速卡2发送固定格式的延迟计算请求数据,然后再从FPGA加速卡2读回计算结果,由于FPGA中实现了全流水的延迟计算硬件单元,因此在大规模计算任务的场景中,单个延迟计算任务的平均耗时极短,从而获得显著的计算加速效果。
本发明实施例中,FPGA加速卡2,包括,多个延时计算单元20、PCIE DMA通信单元21、请求分发单元22,以及AXIS交换单元23,其中,
PCIE DMA通信单元21,将上位机1发送来的延迟计算请求数据转换为AXI Stream总线协议格式传送给请求分发单元22,并读取AXIS交换单元23输出的AXI Stream总线协议格式的计算结果发送给上位机1。PCIE DMA通信单元21既能完成与上位机1的高速通信,同时其DMA功能也能将上位机1的CPU从频繁的数据通信任务中解放出来,使之在与FPGA加速卡2通信的同时,还可以处理其他的任务。
本发明实施例中,PCIE DMA通信单元21,可使用商用IP来实现,比如Xilinx的XDMA。为了保证能为延迟计算模块20提供足够的数据吞吐率,PCIE DMA通信单元21的最高吞吐率应高于8GB/s。
请求分发单元22,其负责将延迟计算请求数据均衡地分发给多个延迟计算单元20。
延时计算单元20,其接收请求分发单元22发送的延迟计算请求数据并进行计算,将计算结果发送给AXIS交换单元23。
本发明实施例中,延时计算单元20对延迟计算请求数据进行预处理、等效电容计算、门延迟计算和线延迟计算。
AXIS交换单元23,为多路选通器,接收多个延时计算单元20发送的计算结果,并采用Round-Robin的仲裁方法将多个延迟计算单元20的输出接口选通至PCIE DMA通信单元21。
实施例2
图2为根据本发明的延迟计算单元结构示意图,如图2所示,本发明的延迟计算单元,包括,预处理模块201、等效电容计算模块202、门延迟计算模块203,以及线延迟计算模块204,其中,
预处理模块201,其对延迟计算请求数据进行预处理,获取延迟计算所需的参数,并存储在三个不同的分布式RAM中,然后将延迟计算请求数据简化,通过AIXS接口传递给等效电容计算模块。上述延迟计算所需参数,包括,单元门戴维南等效模型中的线性电阻、求取等效电容的方程组常系数、求取单元延迟和线延迟时输出电压公式的常系数等。
本发明实施例中,延迟计算请求数据,包括,单元延迟查找表(DelayLUT)和索引表(DelayIndex)、单元压摆查找表(SlewLUT)和索引表(SlewIndex)、查找表大小(Size)、输入压摆(InSlew)、负载π模型的C1、C2、参数、高低及阈值电压百分比(Vh, Vl, Vth)、连线延迟计算的Elmore和请求序列号ID。
本发明实施例中,单元延迟和压摆计算使用业界典型的非线性延迟模型(NLDM)方法。该方法主要思想是使用单元输入压摆和负载电容进行查表和二次样条插值来计算延迟和压摆。为了降低通信压力,将延迟和压摆查找表的限制为8x8的浮点数二维数组,这适用于典型的时序库文件,也可以将该限制9X9甚至更大的数组,但实现时将占据更多的FPGA硬件资源。本发明为了进一步降低数据通信压力和降低FPGA资源消耗,将8x8的查找表简化为2x8的查找表,以下表为例:
假设表中所示的8x8的查找表,其电容值索引表是[0.01、0.02 … 0.08],输入压摆的索引表是[0.1,、0.2 … 0.8],当输入压摆落在0.4和0.5之间时,将0.4和0.5两行的查找表(绿色部分)数值发送给 FPGA加速卡2,而非整个查找表。同理当输入压摆落在0.2和0.3之间时,将0.2和0.3两行的查找表数值发送给FPGA加速卡2,以此类推。这种简化同时适用于延迟查找表和压摆查找表。预处理模块将查找表进行进一步简化,将2x8简化至1x8,具体方法是利用输入压摆对每列两个数值进行一次插值计算,保留插值计算结果得到1x8的一维数组。这种简化将后续的非线性延迟模型(NLDM)的二次样条插值计算简化为线性样条插值计算。
本发明实施例中,单元延迟和压摆计算时的电路模型采用戴维南等效电压源模型加π负载电路模型(负载π模型)。如图6所示,在后级模块的处理中,负载π模型被等效为有效电容Ceff。线性电阻Rd在预处理模块中被计算出来,但等效电容Ceff,电压源Vs(t)是未知变量,将在后级模块中被计算出来。为了计算它们,原模型的电阻Rd电流、等效模型的Ceff电流、等效模型的输出电压函数Vo(t), 经过扇出线的负载电压函数Vl(t)均需要在后级模块中被计算。本发明为了降低设计资源消耗、提高设计时钟频率,将这些计算公式中的常量系数放在预处理模块中提前计算出来。并将它们存放在三个RAM中。
等效电容计算模块202,其通过牛顿-拉夫森方法求解三元非线性方程组来求得等效电容Ceff。如图7所示,具体方法如下:
负载π模型被等效为有效电容Ceff,利用两模型等效电流()相等、输出电压达到阈值电压Vth的延迟时间相等和输出电压达到低电压Vl的延迟时间相等三个条件建立三元非线性方程组,并通过牛顿-拉夫森迭代方法求解。求解过程中,三个方程的求值和偏微分的求值所需的部分常数系数已经由前级预处理模块计算出来,并存放在RAM中。因此等效电容计算模块202在计算时需要从RAM中读取参数。
由于牛顿-拉夫森方法迭代次数不确定,因此为了节约硬件资源提高吞吐率,等效电容计算模块202只执行一次迭代。如图3所示,等效电容计算模块202有两个下游AXIS接口,Loop和Next,当迭代满足收敛条件,或者超出最大迭代次数时,从Next接口进入下一计算模块,否则将待求变量和迭代次数更新后从Loop接口输出。从Next接口输出的数据包括等效电容Ceff、等效电压源模型Vs(t)参数等。Loop接口通过一个AXIS的选通器重新输入此模块进行下次迭代计算。选通器采用固定优先级,Loop接口的优先级高于前级输入,这里的前级输入来自预处理模块。由于不同的延迟计算请求所对应的方程组参数不同,因此计算时要先从RAM中读取出在预处理模块提前计算出的参数。在迭代收敛时,通过简化后的线性插值求得等效电容所对应的单元门延迟和压摆。
门延迟计算模块203,其使用负载π模型来进行压摆计算。根据负载π模型可以得到输出电压Vo随时间t变换的表达式Vo(t),表达式的部分常量系数在初始化模块中已经提前计算出来,并存储在门延迟计算模块203专用的RAM中。当输出电压Vo(t)等于低电压Vl时,t即低电压延迟tl, 当输出电压Vo(t)等于高电压Vh时,t即高电压延迟th,因此可列出方程
Vo(t)=Vl ………(1)
Vo(t)=Vh ………(2)
方程(1)、(2)的解分别为tl和th,其差值即所求压摆。为了计算方程(1)(2)的解,本发明采用牛顿法和二分法结合的方法进行迭代求解。与等效电容计算模块202类似,本模块只进行一次迭代计算,更新待求参数t。进行迭代更新时,计算出牛顿法和二分法的更新步长,并取其中较长的步长作为本次迭代的更新步长,以此提高收敛速度。迭代收敛后输出的计算结果包括单元压摆和单元延迟,其中单元压摆采用th和tl的差值,单元延迟使用等效电容Ceff进行NLDM查表计算。
本发明实施例中,门延迟计算模块203与等效电容计算模块202类似,也是由一个选通器和单步迭代计算模块组成。不同的是,迭代内部的计算不同、从RAM中读取的参数不同。
线延迟计算模块204,其接收门延迟计算模块203发送的门延迟时间和压摆,采用elmore参数计算出线延迟时间和压摆,其采用的线延迟模型是elmore模型,并使用与门延迟计算模块203完全相同的迭代方法计算出,模型输出端低电压Vl的延迟tl、高电压延迟th和阈值电压延迟tth,将tl和th的差值作为线压摆、tth作为线延迟,并结合等效电容计算模块202输出的单元门延迟和压摆,输出最终延迟计算结果。
本发明的实施例中,等效电容计算模块202、门延迟计算模块203,以及线延迟计算模块204,可以独立地计算出单元门一条时序弧的门延迟和压摆以及其后一条扇出连线的延迟和压摆。根据FPGA芯片资源的多少,可以设置多个相同的延迟计算模块20,以提高整个FPGA加速卡2的整体计算速度。多个延迟计算模块相互独立,并行完成计算任务。例如在Xilinx公司的U250加速卡上以150MHz的频率可以部署4个延迟计算单元。
实施例3
图4为根据本发明的基于FPGA的静态时序分析延迟计算加速方法流程图,下面将参考图4,对本发明的本发明的基于FPGA的静态时序分析延迟计算加速方法进行详细描述。
首先,在步骤401,上位机1将延迟计算请求数据发送给FPGA加速卡2。
本发明实施例中,上位机1通过PCIE总线向FPGA加速卡2发送固定格式的延迟计算请求数据。
在步骤402,接收延迟计算请求数据并将其转换为AXI Stream总线协议格式。
本发明实施例中,FPGA加速卡2的PCIE DMA单元21接收延迟计算请求数据并将其转换为AXI Stream总线协议格式转换后,发送给其请求分发单元22,并将AXI Stream总线协议格式的计算结果发送给上位机1。
在步骤403,请求分发单元22将AXI Stream总线协议格式的延迟计算请求数据发送给延迟计算单元20。
本发明实施例中,请求分发单元22将AXI Stream总线协议格式的延迟计算请求数据均衡地发送给多个延迟计算单元20。
在步骤404,延迟计算单元20通过AXIS从接口接收延迟计算请求数据进行延迟计算,并将计算结果通过AXIS主接口发送给AXIS交换单元23;AXIS交换单元23将多个延迟计算单元20输出的计算结果选通至PCIE DMA单元21。
本发明实施例中,AXIS交换单元23采用Round-Robin的仲裁方法将多个延迟计算模块20输出的计算结果选通至PCIE DMA单元21。
在步骤405,PCIE DMA单元21将AXIS交换单元23发送到计算结果发送给上位机1,完成静态时序分析延迟计算的加速。
实施例4
图5为根据本发明的延迟计算工作流程图,下面将参考图5,对本发明的延迟计算工作流程进行详细描述。
在步骤501,对延迟计算请求数据进行预处理。
本发明实施例中,首先,对延迟计算请求数据进行预处理,获取延迟计算所需的参数,并存储在三个不同的分布式RAM中;然后将延迟计算请求数据简化,通过AIXS接口传递给等效电容计算模块。
本发明实施例中,将延迟计算请求数据简化,是通过将延迟查找表和压摆查找表分别简化为1x8一维数组:利用输入压摆对每列两个数值进行一次插值计算,保留插值计算结果得到1x8的一维数组,这种简化将后续的NLDM的二次样条插值计算简化为线性插值计算。
在步骤502,通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容Ceff。
本发明实施例中,由于牛顿-拉夫森迭代方法的迭代方法和次数不确定,因此为了节约硬件资源提高吞吐率,等效电容计算模块202只执行一次迭代,在迭代收敛时,通过简化后的一次插值求得等效电容所对应的单元门延迟和压摆。
在步骤503,根据负载π模型,并通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合等效电容所对应的单元门延迟和压摆,输出最终的门延迟时间和压摆。
本发明实施例中,门延迟计算模块203采用牛顿-拉夫森迭代和二分查找结合的方法迭代求出压摆,并结合等效电容所对应的单元门延迟和压摆,输出最终的门延迟时间和压摆。
在步骤504,根据门延迟时间和压摆,计算出线延迟时间和压摆,并结合等效电容所对应的单元门延迟和压摆,输出最终的线延迟时间和压摆。
本发明实施例中,线延迟计算模块204,接收门延迟计算模块203发送的门延迟时间和压摆,采用elmore参数计算出线延迟时间和压摆,并结合等效电容计算模块202输出的门延迟时间和压摆,输出延迟计算结果。
实施例5
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,在存储器上储存有在处理器上运行的计算机程序,在处理器运行计算机程序时执行如上文所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序运行时执行如上文所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
本发明的基于FPGA的静态时序分析延迟计算加速系统及方法,使用FPGA进行STA的加速,并对STA的计算任务进行合理划分,将计算复杂、可并行性强的延迟计算部分划分到FPGA中进行计算加速,最大程度的利用了FPGA的并行计算能力,并对STA计算性能瓶颈的关键部分进行加速。在FPGA的设计中,将需要二次样条插值计算简化为一次线性插值,降低了通信压力和FPGA资源消耗。将主要计算过程的牛顿迭代算法使用单步迭代加数据循环的方式来实现,大大提高了计算吞吐率,降低了资源消耗。使用多个RAM来存储提前计算的固定参数,降低了触发器和寄存器资源的消耗,使用分布式的块存储资源替代,平衡了资源使用率,有利于FPGA实现时的时序收敛。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
包括,上位机以及FPGA加速卡,其中,
所述上位机,其通过文件读写,向所述FPGA加速卡发送延迟计算请求数据并从所述FPGA加速卡读取计算结果;
所述FPGA加速卡,其接收上位机发送的延迟计算请求数据并进行计算,将计算结果发送给所述上位机;在系统内虚拟负责请求的文件和负责输出结果的文件,供所述上位机完成延迟计算请求数据的发送和计算结果的读取;
所述延迟计算请求数据,包括,单元延迟查找表和索引表,单元压摆查找表和索引表,查找表大小,输入压摆,负载π模型的C1、C2、参数,高低及阈值电压百分比,连线延迟计算的elmore参数;
所述FPGA加速卡,从所述延迟计算请求数据中,获取等效电容计算、门延迟计算和线延迟计算所需的参数,并存储在三个不同的分布式RAM中;对所述延迟计算请求数据进行简化;通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容,获取等效电容对应的单元门延迟和压摆;根据负载π模型,通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出门延迟时间和压摆;根据所述门延迟时间和压摆,利用elmore参数计算出线延迟时间和压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出最终的延迟计算结果;对所述延迟计算请求数据进行简化,是将延迟查找表和压摆查找表分别简化为1x8一维数组。
2.根据权利要求1所述的基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
所述FPGA加速卡,还包括,多个延时计算单元、PCIE DMA通信单元、请求分发单元,以及AXIS交换单元,其中,
所述PCIE DMA通信单元,其将所述上位机的延迟计算请求数据进行协议转换后发送给所述请求分发单元,并将计算结果发送给所述上位机;
所述请求分发单元,其将所述延迟计算请求数据均衡地分发给多个所述延迟计算单元;
所述延迟计算单元,对所述延迟计算请求数据进行计算,并将计算结果发送给所述AXIS交换单元;
所述AXIS交换单元,对来自多个所述延迟计算单元的计算结果进行选通后发送给所述PCIE DMA通信单元。
3.根据权利要求2所述的基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
所述PCIE DMA通信单元,其将所述上位机的延迟计算请求数据转换为AXI Stream总线协议格式;
其最高数据吞吐率应高于8GB/s。
4.根据权利要求2所述的基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
所述延迟计算单元,将所述延迟计算请求数据进行预处理、等效电容计算、门延迟计算和线延迟计算,并将计算结果发送给所述AXIS交换单元。
5.根据权利要求2所述的基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
所述延迟计算单元,还包括,预处理模块、等效电容计算模块、门延迟计算模块,以及线延迟计算模块,其中,
所述预处理模块,其从所述延迟计算请求数据中,获取等效电容计算、门延迟计算和线延迟计算所需的参数,并存储在三个不同的分布式RAM中;对所述延迟计算请求数据进行简化;
所述等效电容计算模块,其通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容,获取等效电容对应的单元门延迟和压摆;
所述门延迟计算模块,其根据负载π模型,通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出门延迟时间和压摆;
所述线延迟计算模块,其根据所述门延迟时间和压摆,利用elmore参数计算出线延迟时间和压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出最终的延迟计算结果。
6.根据权利要求5所述的基于FPGA的静态时序分析延迟计算加速系统,其特征在于,
所述预处理模块,其通过将延迟查找表和压摆查找表分别简化为1x8一维数组,实现所述延迟计算请求数据的简化。
7.一种基于FPGA的静态时序分析延迟计算加速方法,包括以下步骤,
接收延迟计算请求数据并将其转换为AXI Stream总线协议格式;
将所述延迟计算请求数据分发后进行延迟计算;
将计算结果发送给上位机;
将所述延迟计算请求数据分发后进行延迟计算步骤,还包括,
从所述延迟计算请求数据中,获取等效电容计算、门延迟计算和线延迟计算所需的参数,并存储在三个不同的分布式RAM中;
对所述延迟计算请求数据进行简化;
通过牛顿-拉夫森迭代方法求解三元非线性方程组求得等效电容,获取等效电容对应的单元门延迟和压摆;
根据负载π模型,通过牛顿-拉夫森迭代方法计算单元输出压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出门延迟时间和压摆;
根据所述门延迟时间和压摆,利用elmore参数计算出线延迟时间和压摆,并结合所述等效电容所对应的单元门延迟和压摆,输出最终的延迟计算结果;
对所述延迟计算请求数据进行简化,是将延迟查找表和压摆查找表分别简化为1x8一维数组。
8.一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行计算机程序时执行权利要求7所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行权利要求7所述的基于FPGA的静态时序分析延迟计算加速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399112.5A CN113822003B (zh) | 2021-11-24 | 2021-11-24 | 一种基于fpga的静态时序分析延迟计算加速系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399112.5A CN113822003B (zh) | 2021-11-24 | 2021-11-24 | 一种基于fpga的静态时序分析延迟计算加速系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113822003A CN113822003A (zh) | 2021-12-21 |
CN113822003B true CN113822003B (zh) | 2022-03-11 |
Family
ID=78918123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111399112.5A Active CN113822003B (zh) | 2021-11-24 | 2021-11-24 | 一种基于fpga的静态时序分析延迟计算加速系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113822003B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6069489A (en) * | 1998-08-04 | 2000-05-30 | Xilinx, Inc. | FPGA having fast configuration memory data readback |
CN101271484A (zh) * | 2008-01-11 | 2008-09-24 | 国际商业机器公司 | 集成电路设计中计算由于两个相邻网络之间耦合事件而产生的延迟的统计变化的方法和系统 |
CN101727512A (zh) * | 2008-10-17 | 2010-06-09 | 中国科学院过程工程研究所 | 一种基于变分多尺度方法的通用算法及并行计算系统 |
CN103942372A (zh) * | 2014-04-04 | 2014-07-23 | 天津大学 | 基于fpga的有源配电网暂态实时仿真多速率接口方法 |
CN109669824A (zh) * | 2018-11-20 | 2019-04-23 | 中科曙光信息产业成都有限公司 | 多fpga拓扑的互联检测与延时测量方法 |
CN111725812A (zh) * | 2020-06-04 | 2020-09-29 | 海仿(上海)科技有限公司 | 大规模配电系统的潮流计算方法、装置、设备和存储介质 |
CN112257364A (zh) * | 2020-10-23 | 2021-01-22 | 北京大学 | 一种gpu加速计算的集成电路静态时序分析方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632957A (zh) * | 2017-09-11 | 2018-01-26 | 南京弹跳力信息技术有限公司 | 一种基于大规模fpga芯片的计算加速系统及其加速方法 |
-
2021
- 2021-11-24 CN CN202111399112.5A patent/CN113822003B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6069489A (en) * | 1998-08-04 | 2000-05-30 | Xilinx, Inc. | FPGA having fast configuration memory data readback |
CN101271484A (zh) * | 2008-01-11 | 2008-09-24 | 国际商业机器公司 | 集成电路设计中计算由于两个相邻网络之间耦合事件而产生的延迟的统计变化的方法和系统 |
CN101727512A (zh) * | 2008-10-17 | 2010-06-09 | 中国科学院过程工程研究所 | 一种基于变分多尺度方法的通用算法及并行计算系统 |
CN103942372A (zh) * | 2014-04-04 | 2014-07-23 | 天津大学 | 基于fpga的有源配电网暂态实时仿真多速率接口方法 |
CN109669824A (zh) * | 2018-11-20 | 2019-04-23 | 中科曙光信息产业成都有限公司 | 多fpga拓扑的互联检测与延时测量方法 |
CN111725812A (zh) * | 2020-06-04 | 2020-09-29 | 海仿(上海)科技有限公司 | 大规模配电系统的潮流计算方法、装置、设备和存储介质 |
CN112257364A (zh) * | 2020-10-23 | 2021-01-22 | 北京大学 | 一种gpu加速计算的集成电路静态时序分析方法 |
Non-Patent Citations (2)
Title |
---|
基于FPGA的IGBT开关特性仿真算法优化及实时仿真研究;张照彦 等;《系统仿真学报》;20150131;第27卷(第1期);213-220 * |
静态时序分析中的门延时计算;邵波 等;《半导体技术》;20030723;45-48 * |
Also Published As
Publication number | Publication date |
---|---|
CN113822003A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150088954A1 (en) | System and Method for Sparse Matrix Vector Multiplication Processing | |
US20130198426A1 (en) | Heterogeneous parallel systems for accelerating simulations based on discrete grid numerical methods | |
Li et al. | BLASTP-ACC: Parallel architecture and hardware accelerator design for BLAST-based protein sequence alignment | |
CN105373517A (zh) | 基于Spark的分布式稠密矩阵求逆并行化运算方法 | |
Zhou et al. | Model-architecture co-design for high performance temporal gnn inference on fpga | |
Liu et al. | A heterogeneous processor design for CNN-based AI applications on IoT devices | |
Kim et al. | Low power FPGA-SoC design techniques for CNN-based object detection accelerator | |
Yan et al. | FPGAN: an FPGA accelerator for graph attention networks with software and hardware co-optimization | |
Bhowmik et al. | ESCA: Event-based split-CNN architecture with data-level parallelism on ultrascale+ FPGA | |
Li et al. | Optimized data reuse via reordering for sparse matrix-vector multiplication on fpgas | |
CN105955896B (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
Nguyen et al. | An fpga-based convolution ip core for deep neural networks acceleration | |
CN113822003B (zh) | 一种基于fpga的静态时序分析延迟计算加速系统及方法 | |
Cao et al. | FPGA-based accelerator for convolution operations | |
Kopczynski et al. | Generating core in rough set theory: Design and implementation on FPGA | |
Han et al. | Image segmentation implementation based on FPGA and SVM | |
Wu et al. | Skeletongcn: a simple yet effective accelerator for gcn training | |
Xiao et al. | A mobilenet accelerator with high processing-element-efficiency on fpga | |
Zhan et al. | Accelerating queries of big data systems by storage-side CPU-FPGA co-design | |
CN104320106A (zh) | 基于fpga的高斯粒子滤波硬件实现方法 | |
Yeniceri et al. | An emulated digital wave computer core implementation | |
CN102981798A (zh) | 基于fpga的浮点独立源分析算法的电路结构 | |
Li et al. | Efficient FPGA-Based Sparse Matrix–Vector Multiplication With Data Reuse-Aware Compression | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 | |
Qian et al. | Efficient fpga emulation of quantum fourier transform |
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 |