CN109710981B - Fpga的布线方法及系统 - Google Patents
Fpga的布线方法及系统 Download PDFInfo
- Publication number
- CN109710981B CN109710981B CN201811466368.1A CN201811466368A CN109710981B CN 109710981 B CN109710981 B CN 109710981B CN 201811466368 A CN201811466368 A CN 201811466368A CN 109710981 B CN109710981 B CN 109710981B
- Authority
- CN
- China
- Prior art keywords
- congestion
- cost
- delay
- wiring
- time sequence
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请涉及集成电路领域,公开了一种FPGA的布线方法及系统。在进行时序驱动布线过程后,增加了时序改进布线过程。该时序改进布线过程是根据对关键时序路径以及布线资源使用情况的具体分析,对关键时序路径上线网的连线延时进行优化,使集成电路的速度更快、性能越好。
Description
技术领域
本申请涉及集成电路领域,特别涉及一种FPGA的布线方法及系统。
背景技术
FPGA集成电路的自动布线器,在逻辑单元的物理位置确定之后,开始对逻辑单元的连接关系进行信号线的实际物理连接。通常在FPGA布线器中,电路的布线资源结构被描述成一个有向无环的布线资源图:图中每一个节点n表示一个逻辑单元的引脚或者是一根连接线;图中的边表示所有可能发生的连接关系。对一个线网进行布线的过程,就是在布线资源图中找到一条连接线网的逻辑单元引脚所对应节点的路径,为了不占用过多的资源,路径通常是越短越好,同时也不能用光其他线网所必须的布线资源。
要解决不同的线网对布线资源的竞争,避免拥堵,布线器对资源图G中的每一个节点n赋予一个和连接线拥堵相关的成本cong_cost(n),并在算法中寻找成本最低的路径对线网布线。除了连通率外,布线器要考虑的另外一个重要的目标是电路要满足时序约束。时序驱动的布线器针对在关键时序路径上的线网布线时要选取短的路径和速度快的布线资源,以减少信号在线网上的延时。对于用缓冲器实现开关盒的FPGA电路来说,一条路径上的信号延时可以简单的计算成信号在路径所包含的所有连接线上的延时之和。因此针对此FPGA结构的时序驱动的布线器中,对每一个节点n还可以赋予一个和延时相关的成本delay_cost(n)。在对不同的线网布线时,根据线网的时序关键度,时序驱动的布线器会对节点的拥堵成本cong_cost(n)和延时成本delay_cost(n)采用不同的偏重,然后寻找成本最小的布线路径。
以著名的学术FPGA设计工具VPR【1】中的时序驱动布线器为例,对于从线网的源端到漏端i的连接布线时,布线资源图中节点n的成本cost(n)是:
cost(n)=crit(i)*delay_cost(n)+(1-crit(i))*cong_cost(n)
式中,crit(i)是从线网的源端到漏端i的时序关键度,其计算方法如下:
crit(i)=1-slack(i)/D
其中,D是电路关键时序路径的最大延时,slack(i)是线网的源端到漏端i间满足最大延时D限制的延时裕量。如上,时序关键度crit(i)是一个介于0和1之间的数字:当线网漏端i在电路的关键时序路径上或者延时裕量接近于0时,crit(i)接近1,布线器采用偏重延时delay_cost(n)的成本来寻找综合成本最小的布线路径;当线网漏端i不在受约束的时序路径上或者延时裕量相对很大时,crit(i)接近0,布线器采用偏重拥堵度cong_cost(n)的成本来寻找综合成本最小的布线路径。
上述典型的FPGA集成电路的时序驱动布线器采用简单的非直接的方式,在对电路布线的过程中,在减少拥堵和控制线网延时之间加以平衡。与布通率驱动的布线器相比,这种方法使电路布线后的速度更快,但电路时序仍然有很大的改进空间。在实践当中,也会出现偏重过多线网的延时成本而使电路整体布通困难,或者某些之前不在关键时序路径上的线网在布线时为了减少拥堵选取了过长的路径而导致违反时序约束的“乒乓”现象。
发明内容
本申请的目的在于提供一种FPGA的布线方法及系统,在时序驱动布线过程后,根据对关键时序路径以及布线资源使用情况的具体分析,对关键时序路径上线网的延时问题进行优化,使集成电路满足时序约束,工作速度更快、性能越好。
为了解决上述问题,本申请公开了一种FPGA的布线方法,包括:
对集成电路进行时序驱动布线;
至少一次执行以下各步骤,直至判断第二时序结果与第一时序结果相比不再提高:
对集成电路进行时序分析得到第一时序结果;
选取该集成电路中关键时序路径上的线网漏端,并依次根据偏重延时的综合成本对该各线网漏端重新布线;
选取该集成电路中布线路径上存在拥堵的线网漏端,并依次根据偏重拥堵的综合成本对该各线网漏端重新布线;
如果布线资源仍存在拥堵并且拥堵总和减少,则经过多次迭代过程调整布线资源的拥堵成本,并对布线路径上存在拥堵的线网漏端重新布线;
对该集成电路进行时序分析得到第二时序结果,并比较所述第二时序结果和所述第一时序结果。
在一个优选例中,拥堵成本=b(n)*h(n)*p(n),其中n表示布线资源的节点,b(n)是节点n的基本资源成本,h(n)表示节点n的历史拥堵总和,p(n)是节点在当前迭代的资源拥堵成本。
在一个优选例中,该选取该集成电路中关键时序路径上的线网漏端,进一步包括:根据第一公式
来选取集成电路中关键时序路径上的线网漏端;其中,V和E表示有向无环的时序图G=(V,E)上的节点的集合和边的集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间,Ti表示PO中节点的指定的信号要求到达时间,Δcong(i)表示对线网漏端i偏重延时重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重延时重新布线后的延时与重新布线前的延时的差值。
在一个优选例中,该根据偏重延时的综合成本对该各线网漏端重新布线进一步包括:
采用偏重延时的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=xi*delay_cost(n)+(1-xi)*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
在一个优选例中,选取该集成电路中布线路径上存在拥堵的线网漏端,进一步包括:根据第二公式
来选取布线资源中路径上存在拥堵的线网漏端,其中,V和E表示有向无环的时序图G=(V,E)上的节点的集合和边的集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间,Ti表示PO中节点的指定的信号要求到达时间,Δcong(i)表示对线网漏端i偏重拥堵重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重拥堵重新布线后的延时与重新布线前的延时的差值。
在一个优选例中,该根据偏重拥堵的综合成本对该各线网漏端重新布线进一步包括:
采用偏重拥堵的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=(1-xi)*delay_cost(n)+xi*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
在一个优选例中,在计算所述第一公式和所述第二公式的过程中,把xi∈{0,1}的整数约束放松为区间约束0≤xi≤1,转化为一个相关的多项式时间可解的一般线性规划问题,之后选取松弛后求解的变量xi值大于预设阈值的线网漏端i按照xi值从大到小的顺序拆线并重新布线。
本申请还公开了一种FPGA的布线系统,包括:
时序驱动布线模块,用于对集成电路进行时序驱动布线;
时序改进布线模块,用于对该集成电路进行时序分析得到第一时序结果;选取集成电路中关键时序路径上的线网漏端并根据偏重延时成本依次对各线网漏端重新布线;选取该集成电路中布线路径上存在拥堵的线网漏端并根据偏重拥堵成本依次对各线网漏端重新布线;计算并判断布线资源的拥堵总和是否减少,对仍存在拥堵的布线资源经过多次迭代过程调整其拥堵成本同时对布线路径存在拥堵的线网漏端重新布线;以及对该集成电路进行时序分析得到第二时序结果,并判断该第二时序结果与该第一时序结果相比是否有提高,如果是则重复时序改进布线过程。
本申请还公开了一种基于FPGA的布线系统,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行该计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式中,在进行现有的时序驱动布线过程后,增加包括时序改进布线过程,至少优化解决了以下问题:
(1)解决电路时序问题:对于现有时序驱动布线过程后的电路,首先选取一系列在关键时序路径上的线网漏端,对这些线网漏端偏重延时重新布线;
(2)解决电路拥堵问题:上述针对时序问题的重新布线后,使电路的时序结果变好,但是会产生布线资源拥堵的问题,为了解决资源拥堵,选取一系列路径存在拥堵的线网,进行重新布线,然后根据资源拥堵情况,调整布线资源图中节点的拥堵成本;并重复此重新布线减少拥堵的过程,直到拥堵为0或不再减少,如果电路不存在拥堵,并且时序变好,则继续重复上述改进时序的流程,直到电路满足时序约束或者时序不再变好为止。
(3)解决现有技术中“违反时序约束的“乒乓”现象”的问题:与现有技术中采用简单的非直接的方式的FPGA电路的时序驱动布线器相比,本申请的实施方式中通过把时序约束和布通率综合阐述成线性规划问题进行分析,避免了传统方法在实践上出现的“顾此失彼”的缺点,能够有效的改进电路布线后的时序。
综上,本申请是根据对关键时序路径以及布线资源使用情况的具体分析,对关键时序路径上线网的延时问题进行优化,使集成电路满足时序约束,速度更快、性能越好。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的一种FPGA的布线方法流程示意图
图2是根据本申请第二实施方式的一种FPGA的布线系统结构示意图
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
1.FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物;FPGA采用了逻辑单元阵列LCA(LogicCell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统集成电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他集成电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
2.线网的源端和漏端:线网把集成电路中器件的端口连接起来,表示一个数字信号的传输,线网的源端和漏端即为数字信号的输入端口和输出端口。
3.时序约束:为满足设计目标,对集成电路提出时序上的要求,在设计流程中尽量去满足这个要求,并且检验电路是否满足要求。一般来说其可以细分为内部时钟约束、IO口时序约束、偏移约束、静态路径约束和例外路径约束等等;例如,内部时钟约束就是对时钟的周期等提出设计要求:数字信号通过走线在器件中传输,必然产生延迟;数字电路中时钟的最小周期由信号的传输延迟来决定;电路设计流程中会尽量减少信号延迟以满足对时钟最小周期的设计要求。
4.时序路径:时序路径是一个点到点的数据通路,数据沿着时序路径进行传递。每条时序路径有一个起点(Startpoint)和一个终点(Endpoint),时序路径可以是输入端口到寄存器、寄存器到寄存器、寄存器到输出端口、输入端口到输出端口。
5.关键时序路径:时序路径是一个数字信号通路,数字信号沿着时序路径进行传递。每条时序路径有一个起点和一个终点:起点可以为电路输入端口或者触发器或寄存器的时钟引脚;终点可以为电路输出端口或者时序器件的除时钟引脚外的所有输人引脚;时序分析工具会找到且分析集成电路中的所有时序路径;数字信号在时序路径上传输存在延时,延时最长的一条或多条时序路径称为关键时序路径。
6.时序分析:时序电路的行为是由输入、输出和电路当前状态决定的。输出和下一状态是输入和当前状态的函数,通过对时序电路进行分析,可以得到关于输入、输出和状态三者的时序的一个合理描述。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种FPGA的布线方法,其流程如图1所示,该方法包括以下步骤:
开始,执行步骤101:对集成电路进行时序驱动布线。
时序驱动布线是现有常用的FPGA布线方法,以著名的学术FPGA设计工具VPR【1】中的时序驱动布线器为例,对于从线网的源端到漏端i的连接布线时,布线资源图中节点n的成本cost(n)是:
cost(n)=crit(i)*delay_cost(n)+(1-crit(i))*cong_cost(n)
式中,crit(i)是从线网的源端到漏端i的时序关键度,其计算方法如下:
crit(i)=1-slack(i)/D
其中,D是电路关键时序路径的最大延时,slack(i)是线网的源端到漏端i间满足最大延时D限制的延时裕量;时序关键度crit(i)是一个介于0和1之间的数字:当线网漏端i在电路的关键时序路径上或者延时裕量接近于0时,crit(i)接近1,布线器采用偏重延时delay_cost(n)的成本来寻找综合成本最小的布线路径;当线网漏端i不在受约束的时序路径上或者延时裕量相对很大时,crit(i)接近0,布线器采用偏重拥堵度cong_cost(n)的成本来寻找综合成本最小的布线路径。
之后,执行步骤102:对该集成电路进行时序分析得到第一时序结果。
之后,执行步骤103:选取该集成电路中关键时序路径上的线网漏端,并依次根据偏重延时的综合成本对该各线网漏端重新布线。
可选地,在步骤103中,在选取关键时序路径上的线网漏端进行重新布线时,应优先选取重新布线后对电路时序改进较大,并且产生的资源拥堵较小的线网漏端;为了预估线网重新布线后对时序和资源拥堵的影响,首先对每个在关键时序路径上的线网漏端i,尝试性的寻找最小延时成本的布线路径,然后比较线网中目前的布线路径,最后得到对线网漏端i重新布线后的预估延时(延时)的改进Δdelay(i)(通常为负值,表示重新布线后延时减少)和资源拥堵的增加Δcong(i)(通常为正值,表示重新布线后拥堵增加);有了这些信息,就可以把关键时序路径上的线网漏端选取阐述成下面的0-1型整数线性规划问题,表示为第一公式:
在第一公式中,V和E表示有向无环的时序图G=(V,E)上的节点集合和边集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,其中xi和xj的值为0或者1是公式中条件(4),PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间(Si为给定值,是公式中条件(1)),Ti表示PO中节点的指定的信号要求到达时间(Ti为给定值,是公式中条件(3)),Δcong(i)表示对线网漏端i偏重延时重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重延时重新布线后的延时与重新布线前的延时的差值,公式中条件(2)表示的是其他节点上的信号到达时间的计算方法。
可选地,在计算该第一公式的过程中,把xi∈{0,1}的整数约束放松为区间约束0≤xi≤1,从而转化为一个相关的多项式时间可解的一般线性规划问题,对松弛后的线性规划问题求解后,通过随机取整算法来获得原整数规划的近似解;之后选取松弛后求解的变量xi值大于预设阈值的线网漏端i按照xi值从大到小的顺序拆线并重新布线。可选地,此预设阈值是用户可以根据情况进行更改和设定的。
可选地,在根据偏重延时的综合成本对该各线网漏端重新布线时,具体的采用偏重延时的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=xi*delay_cost(n)+(1-xi)*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
之后,执行步骤104:选取该集成电路中布线路径上存在拥堵的线网漏端,并依次根据偏重拥堵的综合成本对该各线网漏端重新布线。
在对步骤104的布线路径上存在拥堵的线网漏端重新布线时,一个重要的问题是要避免选取过长的路径,导致重新布线后又损坏电路时序,造成通常所谓的“乒乓”现象。类似上面的方法,为了预估线网重新布线后对时序和资源拥堵的影响,首先对当前布线路径上存在拥堵的线网漏端i,尝试性的寻找最小拥堵成本的布线路径,然后比较线网目前的布线路径,得到对线网漏端i重新布线后的预估资源拥堵的减少Δcong(i)(通常为负值,表示重新布线后拥堵减少)和延时的增加Δdelay(i)(通常为正值,表示重新布线后延时增加)。
可选地,把布线路径上存在拥堵的线网漏端选取,阐述成下面的0-1型整数线性规划问题,表示为第二公式:
其中,第二公式的优化目标是最大化重新布线后减少的拥堵总和,V和E表示有向无环的时序图G=(V,E)上的节点集合和边集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,其中xi和xj的值为0或者1是公式中条件(4),PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间(Si为给定值,是公式中条件(1)),Ti表示PO中节点的指定的信号要求到达时间(Ti为给定值,是公式中条件(3)),Δcong(i)表示对线网漏端i偏重拥堵重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重拥堵重新布线后的延时与重新布线前的延时的差值,公式中条件(2)表示的是其他节点上的信号到达时间的计算方法。
可选地,在计算该第二公式的过程中,把xi∈{0,1}的整数约束放松为区间约束0≤xi≤1,转化为一个相关的多项式时间可解的一般线性规划问题,得到选取线网漏端i重新布线的概率xi,按照xi值从大到小的顺序,对当前布线路径上仍然存在拥堵的线网漏端拆线并重新布线。
可选地,在根据偏重拥堵的综合成本对该各线网漏端重新布线,具体的采用偏重拥堵的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=(1-xi)*delay_cost(n)+xi*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
之后,执行步骤105:判断布线资源仍存在拥堵并且拥堵总和减少。
如果步骤105中拥堵总和减少,则依次重复执行步骤106、步骤104、步骤105经过多次迭代过程调整布线资源的拥堵成本,直到拥堵为0或不再减少为止。
可选地,步骤105中该拥堵总和减少是指执行步骤104后的布线资源拥堵总和与执行步骤104前进行比较后得出的结果是该拥堵总和减少。
可选地,在步骤106中,要抛弃重新布线后拥堵增加的布线结果,以保证整个过程的收敛,重新布线后,之前不存在拥堵的线网可能受到影响,因此减少拥堵的过程需要多次迭代,并在每次迭代增加布线资源的拥堵成本。
可选地,根据公式cong_cost(n)=b(n)*h(n)*P(n)调整资源拥堵成本,需要说明的是:此调整资源拥堵成本的方法与VPR布线器调整资源拥堵成本方法相同,其中,n表示布线资源的节点,b(n)是节点n的基本资源成本,h(n)表示节点n的历史拥堵总和,p(n)是节点在当前迭代的资源拥堵成本,且随资源拥堵程度和迭代次数递增,cong_cost(n)是节点n资源拥堵成本。
之后,执行步骤107:对该集成电路进行时序分析得到第二时序结果。
需要说明的是,步骤107中涉及的“时序分析”是现有技术,可选地,该时序分析是静态时序分析,分析过程包括:1)将电路分解为时序路径,即将电路转换为时序路径的集合;2)计算每个路径上面的延时;3)检查是否满足路径时序约束;最后综合考虑可以得到时序分析的结果。
最后,执行步骤108:判断比较该第二时序结果与该第一时序结果。如果步骤108的判断结果是有提高则继续重复步骤102-108的过程,直到电路满足时序约束,或者时序结果不再有提高为止。
本申请的第二实施方式涉及一种FPGA的布线系统,其结构如图2所示,该系统包括时序驱动布线模块和时序改进布线模块;
其中,该时序驱动布线模块用于对集成电路进行时序驱动布线;该时序改进布线模块用于对该集成电路进行时序分析得到第一时序结果;选取该集成电路中关键时序路径上的线网漏端并根据偏重延时成本依次对各线网漏端重新布线;选取该集成电路中布线路径上存在拥堵的线网漏端并根据偏重拥堵成本依次对各线网漏端重新布线;计算并判断布线资源的拥堵总和是否减少,对仍存在拥堵的布线资源经过多次迭代过程调整其拥堵成本同时对布线路径存在拥堵的线网漏端重新布线;以及对该集成电路进行时序分析得到第二时序结果,并判断该第二时序结果与该第一时序结果相比是否有提高,如果是则重复时序改进布线过程。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述FPGA的布线系统的实施方式中所示的各模块的实现功能可参照前述FPGA的布线系统的相关描述而理解。上述FPGA的布线系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的集成电路而实现。本申请实施例上述FPGA的布线系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本申请实施方式还提供一种FPGA的布线系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(CentralProcessing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,简称“DSP”)、专用集成电路(Application Specific IntegratedCircuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
Claims (11)
1.一种FPGA的布线方法,其特征在于,包括:
对集成电路进行时序驱动布线;
至少一次执行以下各步骤,直至判断第二时序结果与第一时序结果相比不再提高:
对所述集成电路进行时序分析得到第一时序结果;
对该集成电路中每个关键时序路径上的每个线网漏端,尝试性的重新布线以寻找最小延时成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的减少量和资源拥堵的增加量,根据预估结果优先选取延时的减少量相对最大且拥堵的增加量相对最少的各线网漏端,并依次根据偏重延时的综合成本对该各线网漏端重新布线;
对该集成电路中布线路径上存在拥堵的每个线网漏端,尝试性的重新布线以寻找最小拥堵成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的增加量和资源拥堵的减少量,根据预估结果优先选取拥堵的减少量相对最大且延时的增加量相对最少的各线网漏端,并依次根据偏重拥堵的综合成本对该各线网漏端重新布线;
如果布线资源仍存在拥堵并且拥堵总和减少,则经过多次迭代过程调整布线资源的拥堵成本,并对布线路径上存在拥堵的线网漏端重新布线;
对该集成电路进行时序分析得到第二时序结果,并比较所述第二时序结果和所述第一时序结果。
2.根据权利要求1所述的方法,其特征在于,所述拥堵成本=b(n)*h(n)*p(n),其中n表示布线资源的节点,b(n)是节点n的基本资源成本,h(n)表示节点n的历史拥堵总和,p(n)是节点在当前迭代的资源拥堵成本。
3.根据权利要求1所述的方法,其特征在于,所述对该集成电路中每个关键时序路径上的每个线网漏端,尝试性的重新布线以寻找最小延时成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的减少量和资源拥堵的增加量,根据预估结果优先选取延时的减少量相对最大且拥堵的增加量相对最少的各线网漏端,进一步包括:根据第一公式
s.t.
来选取集成电路中关键时序路径上的线网漏端;其中,V和E表示有向无环的时序图G=(V,E)上的节点集合和边集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间,Ti表示PO中节点的指定的信号要求到达时间,Δcong(i)表示对线网漏端i偏重延时重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重延时重新布线后的延时与重新布线前的延时的差值。
4.根据权利要求3所述的方法,其特征在于,所述根据偏重延时的综合成本对该各线网漏端重新布线进一步包括:
采用偏重延时的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=xi*delay_cost(n)+(1-xi)*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
5.根据权利要求1所述的方法,其特征在于,所述对该集成电路中布线路径上存在拥堵的每个线网漏端,尝试性的重新布线以寻找最小拥堵成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的增加量和资源拥堵的减少量,根据预估结果优先选取拥堵的减少量相对最大且延时的增加量相对最少的各线网漏端,进一步包括:根据第二公式
s.t.
来选取布线资源中路径上存在拥堵的线网漏端,其中,V和E表示有向无环的时序图G=(V,E)上的节点集合和边集合,vi和vj分别表示集合V中位于边eij两端的两个节点,xi和xj分别表示选取线网漏端i和j的概率,PI和PO分别表示节点集合V中的时序路径输入和输出节点集合,dj表示从线网源端到漏端节点vj的连线延时,ai和aj分别表示节点vi和vj的信号到达时间,Si表示PI中节点的信号到达时间,Ti表示PO中节点的指定的信号要求到达时间,Δcong(i)表示对线网漏端i偏重拥堵重新布线后的拥堵与重新布线前的拥堵的差值,Δdelay(j)表示对线网漏端j偏重拥堵重新布线后的延时与重新布线前的延时的差值。
6.根据权利要求5所述的方法,其特征在于,所述根据偏重拥堵的综合成本对该各线网漏端重新布线进一步包括:
采用偏重拥堵的综合成本cost(n)来寻找综合成本最小的布线路径,其中cost(n)=(1-xi)*delay_cost(n)+xi*cong_cost(n),式中n表示布线资源的节点,delay_cost(n)表示节点n的延时成本,cong_cost(n)表示节点n的拥堵成本,xi表示选取线网漏端i的概率。
7.根据权利要求3所述的方法,其特征在于,在计算所述第一公式的过程中,把所述xi∈{0,1}的整数约束放松为区间约束0≤xi≤1,转化为一个相关的多项式时间可解的一般线性规划问题,之后选取松弛后求解的变量xi值大于预设阈值的线网漏端i按照xi值从大到小的顺序拆线并重新布线。
8.根据权利要求5所述的方法,其特征在于,在计算所述第二公式的过程中,把所述xi∈{0,1}的整数约束放松为区间约束0≤xi≤1,转化为一个相关的多项式时间可解的一般线性规划问题,之后选取松弛后求解的变量xi值大于预设阈值的线网漏端i按照xi值从大到小的顺序拆线并重新布线。
9.一种FPGA的布线系统,其特征在于,包括:
时序驱动布线模块,用于对集成电路进行时序驱动布线;
时序改进布线模块,用于对所述集成电路进行时序分析得到第一时序结果;对该集成电路中每个关键时序路径上的每个线网漏端,尝试性的重新布线以寻找最小延时成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的减少量和资源拥堵的增加量,根据预估结果优先选取延时的减少量相对最大且拥堵的增加量相对最少的各线网漏端,并根据偏重延时成本依次对各线网漏端重新布线;对该集成电路中布线路径上存在拥堵的每个线网漏端,尝试性的重新布线以寻找最小拥堵成本的布线路径,并与当前布线路径进行比较,预估对每个线网漏端重新布线后的延时的增加量和资源拥堵的减少量,根据预估结果优先选取拥堵的减少量相对最大且延时的增加量相对最少的各线网漏端,并根据偏重拥堵成本依次对各线网漏端重新布线;计算并判断布线资源的拥堵总和是否减少,对仍存在拥堵的布线资源经过多次迭代过程调整其拥堵成本同时对布线路径存在拥堵的线网漏端重新布线;以及对该集成电路进行时序分析得到第二时序结果,并判断所述第二时序结果与所述第一时序结果相比是否有提高,如果是则重复时序改进布线过程。
10.一种基于FPGA的布线系统,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如权利要求1至8中任意一项所述的方法中的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至8中任意一项所述的方法中的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810162066 | 2018-02-27 | ||
CN2018101620669 | 2018-02-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710981A CN109710981A (zh) | 2019-05-03 |
CN109710981B true CN109710981B (zh) | 2021-02-02 |
Family
ID=66253973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811466368.1A Active CN109710981B (zh) | 2018-02-27 | 2018-12-03 | Fpga的布线方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710981B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062180B (zh) * | 2019-11-08 | 2023-07-18 | 深圳市紫光同创电子有限公司 | 一种fpga布线方法及装置 |
CN111222295B (zh) * | 2020-01-07 | 2022-07-12 | 广东高云半导体科技股份有限公司 | 基于布线资源的布局布线控制方法及装置、系统 |
CN111310409B (zh) * | 2020-02-28 | 2022-04-08 | 福州大学 | 一种优化时分复用技术的多阶段fpga布线方法 |
CN111709205B (zh) * | 2020-05-29 | 2023-05-16 | 成都华微电子科技股份有限公司 | Fpga布线方法 |
CN112733485B (zh) * | 2021-04-06 | 2021-07-06 | 南京集成电路设计服务产业创新中心有限公司 | 一种基于快速查找表线长模型的拥塞度预估模型构建方法 |
CN113449477B (zh) * | 2021-06-29 | 2023-08-04 | 海光信息技术股份有限公司 | 数字电路的连接方法、装置、电子设备和存储介质 |
CN113468839B (zh) * | 2021-09-01 | 2021-11-30 | 中科亿海微电子科技(苏州)有限公司 | 一种提高时序性能的布线方法及装置 |
CN114386349A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 系统级数字电路的布线方法及装置、设备、存储介质 |
CN115146579A (zh) * | 2022-07-14 | 2022-10-04 | 东南大学 | 一种数字集成电路布线后路径延时预测方法 |
CN117574820A (zh) * | 2024-01-15 | 2024-02-20 | 中科亿海微电子科技(苏州)有限公司 | 一种增量时序分析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890729A (zh) * | 2011-07-18 | 2013-01-23 | 中国科学院微电子研究所 | 一种对高扇出的可编程门列阵进行布局布线的方法 |
CN103136386A (zh) * | 2011-11-25 | 2013-06-05 | 中国科学院微电子研究所 | Fpga芯片布线方法 |
CN106682306A (zh) * | 2016-12-26 | 2017-05-17 | 西安电子科技大学 | 一种快速fpga布线方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170023632A1 (en) * | 2011-06-17 | 2017-01-26 | Psiber Data Systems, Inc. | System and method for automated testing of an electric cable |
-
2018
- 2018-12-03 CN CN201811466368.1A patent/CN109710981B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890729A (zh) * | 2011-07-18 | 2013-01-23 | 中国科学院微电子研究所 | 一种对高扇出的可编程门列阵进行布局布线的方法 |
CN103136386A (zh) * | 2011-11-25 | 2013-06-05 | 中国科学院微电子研究所 | Fpga芯片布线方法 |
CN106682306A (zh) * | 2016-12-26 | 2017-05-17 | 西安电子科技大学 | 一种快速fpga布线方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109710981A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710981B (zh) | Fpga的布线方法及系统 | |
US11003826B1 (en) | Automated analysis and optimization of circuit designs | |
CN111709205B (zh) | Fpga布线方法 | |
KR20160147435A (ko) | 집적 회로의 수율 예측 방법 및 집적 회로의 설계 최적화 방법 | |
US20200106462A1 (en) | Decoding method and decoder | |
US8181139B1 (en) | Multi-priority placement for configuring programmable logic devices | |
Vasicek et al. | How to evolve complex combinational circuits from scratch? | |
CN114900474A (zh) | 针对可编程交换机的数据包分类方法、系统及相关设备 | |
CN115099177A (zh) | Fpga的时序优化方法和系统 | |
US20030144748A1 (en) | Apparatus for optimizing combinatorial optimization problems | |
JP4310500B2 (ja) | 重要成分優先計算方式ならびに装置 | |
CN104424369A (zh) | 一种fpga映射后网表的时序估算方法 | |
US8776003B2 (en) | System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same | |
Li et al. | Making fast buffer insertion even faster via approximation techniques | |
US7146590B1 (en) | Congestion estimation for programmable logic devices | |
Gunter et al. | A machine learning approach for predicting the difficulty of fpga routing problems | |
CN117151015B (zh) | 集成电路布局布线方法、装置、集成电路芯片 | |
Jabir et al. | MODD: A new decision diagram and representation for multiple output binary functions | |
US7010765B2 (en) | Method for identifying removable inverters in an IC design | |
US11714950B2 (en) | Automated timing closure on circuit designs | |
US10528697B1 (en) | Timing-closure methodology involving clock network in hardware designs | |
WO2024125340A1 (zh) | 时钟树闸延时优化方法、系统、设备及计算机存储介质 | |
JP3766234B2 (ja) | ネットワークにおける遅延改善箇所特定処理方法およびその装置,並びにそのプログラムの記録媒体 | |
WO2023248414A1 (ja) | 求解装置、求解方法および求解プログラム | |
CN117272891A (zh) | 芯片设计中优化冗余缓冲器的方法、计算机及存储介质 |
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 | ||
CP03 | Change of name, title or address |
Address after: 200434 Room 202, building 5, No. 500, Memorial Road, Hongkou District, Shanghai Patentee after: Shanghai Anlu Information Technology Co.,Ltd. Address before: Room a4246, 4th floor, 391-393 dongdaming Road, Hongkou District, Shanghai 200080 Patentee before: SHANGHAI ANLOGIC INFORMATION TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |