CN115099177A - Fpga的时序优化方法和系统 - Google Patents
Fpga的时序优化方法和系统 Download PDFInfo
- Publication number
- CN115099177A CN115099177A CN202210774464.2A CN202210774464A CN115099177A CN 115099177 A CN115099177 A CN 115099177A CN 202210774464 A CN202210774464 A CN 202210774464A CN 115099177 A CN115099177 A CN 115099177A
- Authority
- CN
- China
- Prior art keywords
- lookup table
- time sequence
- lookup
- net
- logic
- 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.)
- Pending
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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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的时序优化方法和系统。该方法包括:基于布局布线后分配的查找表的物理位置进行时序更新;基于时序更新结果确定目标时序违规路径,遍历目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表;分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。本申请的实施方式可以有效减少时序路径经过的逻辑单元级数,更大程度地减少时序违规路径的数据信号延时。
Description
技术领域
本申请涉及集成电路领域,特别涉及FPGA的时序优化技术。
背景技术
逻辑综合和布局布线是FPGA设计流程中最重要的两个阶段。逻辑综合阶段通过电路转换,优化和映射等步骤将RTL网表转换为基于查找表组合逻辑单元的门级网表,布局布线阶段对电路中的逻辑单元进行布局布线和时序优化,完成满足时序要求的电路的物理级实现。目前的FPGA集成电路自动化设计软件基本上都只在布局布线阶段前,即逻辑综合阶段进行组合逻辑单元查找表的电路优化,在布局布线阶段很少再进行查找表的电路逻辑优化。原因之一是传统的集成电路自动化设计流程概念里电路逻辑优化只在逻辑综合阶段进行,原因之二是因为对于FPGA集成电路来说,在布局即电路逻辑单元物理位置确定之后,进行电路逻辑优化来有效提升电路性能的难度较大。
现有的布局布线阶段的时序优化过程主要通过调整时序违规路径上的逻辑单元的物理位置,以达到减少时序违规路径上的延时的目的。对于规模大复杂度高的FPGA集成电路来说,仅仅依靠逻辑单元的物理位置调整的手段已经很难有效的解决时序违规路径的时序问题。因此,其他的时序优化方法开始被逐渐采用,包括时序违规路径上的逻辑单元复制优化,违规路径逻辑单元连接管脚优化和违规路径上的查找表输入连接交换方法。这些优化方法在一定程度上帮助提高了时序优化的效率,但是基本上都不涉及电路逻辑优化的操作。而目前FPGA集成电路自动化设计软件在布局布线阶段的时序优化方法主要包含逻辑单元位置调整优化,时序违规路径上的逻辑单元复制优化,违规路径逻辑单元连接管脚优化和违规路径上的查找表输入连接交换方法等。这些优化方法的目的基本上是通过降低路径上某段线网延时或者某个逻辑单元延时的方法来减少时序违规路径的数据信号延时,因为基本不涉及电路逻辑优化的操作,很难做到路径逻辑单元级数的降低,因此对于复杂度高规模大的FPGA集成电路来说有时候不能有效地解决时序违规路径的时序问题。
发明内容
本申请的目的在于提供一种FPGA的时序优化方法和系统,可以有效减少时序路径经过的逻辑单元级数,更大程度地减少时序违规路径的数据信号延时。
本申请公开了一种FPGA的时序优化方法,包括:
基于布局布线后分配的查找表的物理位置进行时序更新;
基于时序更新结果确定目标时序违规路径,遍历所述目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据所述FPGA中查找表的最大输入信号数目配置;
分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
在一个优选例中,所述分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作之前,还包括:
根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算所述查找表对的逻辑重构优化成本;
根据查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果。
在一个优选例中,所述分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作时,还包括:确定所述排序结果中的当前查找表对中任一查找表之前执行过逻辑重构操作,则放弃对当前查找表对进行逻辑重构操作。
在一个优选例中,所述方法还包括:根据计算所述查找表对的逻辑重构优化成本,其中n1、m1分别表示查找表对中前一个查找表的输入线网数目、输入线网时间裕量为正的数目,n2、m2分别表示查找表对中后一个查找表的输入线网数目、输入线网时间裕量为正的数目,i表示查找表对中两个查找表连接线网的扇出数目。
在一个优选例中,所述根据所述查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果,进一步包括:对于所有查找表对,根据时间裕量从低到高进行排序,并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序,得到排序结果。
在一个优选例中,所述方法还包括:选择时间裕量最小的预设百分比的时序违规路径作为所述目标时序违规路径。
本申请还公开了一种FPGA的时序优化系统包括:
时序更新模块,用于基于布局布线后分配的查找表的物理位置进行时序更新;
查找表对选取模块,用于基于时序更新结果确定目标时序违规路径,遍历所述目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据所述FPGA中查找表的最大输入信号数目配置;
逻辑重构模块,用于分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
在一个优选例中,所述系统还包括计算与排序模块,用于根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算所述查找表对的逻辑重构优化成本,并且根据查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果;
所述逻辑重构模块还用于确定所述排序结果中的当前查找表对中任一查找表之前执行过逻辑重构操作,则放弃对当前查找表对进行逻辑重构操作。
在一个优选例中,所述计算与排序模块还用于根据 计算所述查找表对的逻辑重构优化成本,其中n1、m1分别表示查找表对中前一个查找表的输入线网数目、输入线网时间裕量为正的数目,n2、m2分别表示查找表对中后一个查找表的输入线网数目、输入线网时间裕量为正的数目,i表示查找表对中两个查找表连接线网的扇出数目。
在一个优选例中,所述计算与排序模块还用于对于所有查找表对,根据时间裕量从低到高进行排序,并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序,得到排序结果;
所述系统还包括目标时序违规路径选择模块,所述目标时序违规路径选择模块用于选择时间裕量最小的预设百分比的时序违规路径作为所述目标时序违规路径。
本申请实施方式中,至少包括以下优点和有益技术效果:定义查找表对,并以查找表对为单位进行逻辑重构优化,进而通过逻辑重构优化减少时序违规路径经过的查找表级数,从而减少路径延时优化时序。进一步地,提出查找表对的逻辑重构成本及其计算方法,并同时基于时间裕量和逻辑重构成本对选取的查找表对进行排序,基于排序结果对查找表对依次进行逻辑重构优化操作,有助于优先选择回报率最大候选进行操作,可更有效的提高优化效率。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是一个示例的时序路径示意图。
图2是根据本申请第一实施方式FPGA的时序优化方法流程示意图。
图3(a)是满足条件的示例1的查找表对示意图。
图3(b)是不满足条件的示例2的两个查找表示意图。
图4是根据本申请对一个示例查找表对进行逻辑重构的过程示意图。
图5是根据本申请对另一个示例查找表对进行逻辑重构的过程示意图。
图6根据本申请一个实施例的FPGA的时序优化方法流程示意图
图7是根据本申请第二实施方式的FPGA的时序优化系统结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
现场可编程门阵列:Field-Programmable Gate Array,简称FPGA,它是在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模块。
逻辑综合:将RTL(Register Transfer Level寄存器传输级)网表转换成门级网表的过程,包括电路转换、电路优化、电路映射三个步骤。
布局布线:对于逻辑综合之后的门级网表进行物理实现的过程,包括对逻辑单元分配物理位置,进行物理连线和时序优化。
电路优化:逻辑综合中的优化过程,包含但不限于以下几个方面:去除无用逻辑,合并等效逻辑,时序优化等。
查找表:Look Up Table,简称LUT,一种通过输入编码快速查找结果的电路结构,FPGA中所有的组合逻辑都是通过查找存储器中的真值表来实现。LUT后面的数字一般表示查找表的输入信号数目,LUT4是4输入查找表,LUT5是5输入查找表,LUT6是6输入查找表。
真值表:Truth Table,表征逻辑事件输入和输出之间全部可能状态的表格,通常以1表示真,0表示假,可以用于描述组合逻辑电路的行为。
时序路径:时序电路设计中需要约束和优化的路径,包含从输入到寄存器、寄存器到寄存器、寄存器到输出、输入到输出这四类非时钟信号路径。
时间裕量:时序路径数据信号实际到达时间减去数据信号要求到达时间称为时间裕量(slack),路径的时间裕量小于0代表时序违规。
时序违规路径:时序路径时间裕量为负,即路径的数据信号实际到达时间晚于数据信号要求到达时间,代表路径时序违规。时间裕量为负且数值越小,时序路径违规越严重。要解决时序违规,一般可通过减小数据信号实际到达时间,即减小数据信号路径延时来实现。
时序关键路径:时序违规路径里时间裕量最差的路径,时序关键路径直接影响电路工作频率的大小,时序关键路径的时间裕量值越小,电路最高频率越低。
时序路径的数据信号路径延时:数据信号路径延时由路径经过的所有逻辑单元的延时和经过的所有线网的延时相加得到。路径经过的逻辑单元级数越高,路径延时越长的可能性越高。要解决时序路径时序违规的问题,降低路径延时是最直接的手段。降低路径延时最常用的方法包括降低逻辑单元级数,减少延时长的逻辑单元延时和减少延时长的线网延时。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
通常,一条时序路径从起点时序器件经过若干查找表(LUT)到达终点时序器件。以图1示例的时序路径为例,路径从起点Reg_start经过了n个查找表和n+1条线网到达终点Reg_end。时序路径时序违规的主要原因之一是数据信号路径延时过长。路径的数据信号延时path_delay等于这n个查找表延时lut_delay(i)和n+1条线网延时net_delay(i)之和,总共2n+1段延时组成。目前布局布线阶段主要的时序优化方法是通过减少某几段查找表延时或线网延时来减低数据信号路径延时,路径经过的查找表级数基本没有变化,path_delay还是由2n+1段延时组成,只是其中若干段延时数值下降。
为了解决至少上述问题,本申请的第一实施方式提出一种FPGA的时序优化方法,该方法有机会将路径经过的查找表级数从n级降低若干级,从而减少路径延时段数,更大程度的减少路径延时优化时序。
该FPGA的时序优化方法的流程如图2所示,该方法包括以下步骤:
在步骤201中,基于布局布线后分配的查找表的物理位置进行时序更新。
之后,进入步骤202,基于时序更新结果确定目标时序违规路径,遍历该目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据该FPGA中查找表的最大输入信号数目配置。
N可以根据FPGA中支持的单个查找表的最大输入信号数目进行配置。例如,目前主流FPGA芯片最高支持六输入的查找表,则N可配置为6,因为若后一个查找表是六输入查找表,即输入线网数目为N=6,重构成功时序改善的机会非常渺茫。并且,随着技术的更新,将来FPGA芯片最高支持M输入(M>6)的查找表时,则N可以配置为M。
查找表对的选取条件是对于时间裕量为负的输入线网越多,查找表重构后时序变好的概率越低,连接线网扇出数目越大,重构后时序影响越大,时序变好的概率越低,后一个查找表如果是FPGA最高支持的单个查找表输入数目,重构成功时序改善的机会非常渺茫等进行的综合考量得到。如图3(a)示出了示例1查找表对,其输入线网a,c,d,e,g,h时间裕量为正,b,f时间裕量为负,满足条件,应该选取其进行后续逻辑重构优化,如图3(b)示出了示例2的两个查找表,其输入线网a,b,c,d时间裕量都为负,不满足条件ⅰ)和ⅲ),不应被选取进行后续逻辑重构优化。
目标时序违规路径的选择方法多种多样。例如,可以选择时间裕量最小的预设百分比的时序违规路径作为该目标时序违规路径。例如,还可以选择所有时序违规路径作为该目标时序违规路径。且不限于此。
之后,进入步骤203,分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
可选地,该步骤203之前,还包括以下步骤①和②:①根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算该查找表对的逻辑重构优化成本;②根据查找表对的时间裕量、查找表之间线网长度和该逻辑重构优化成本对所有查找表对进行排序,得到排序结果。
上述步骤①的实现方式多种多样。在一个实施例中,可以根据公式 计算该查找表对的逻辑重构优化成本Cost,其中n1、m1分别表示查找表对中前一个查找表的输入线网数目、输入线网时间裕量为正的数目,n2、m2分别表示查找表对中后一个查找表的输入线网数目、输入线网时间裕量为正的数目,i表示查找表对中两个查找表连接线网的扇出数目。以图3(a)的示例1的查找表对为例,其逻辑优化成本是 如果其中两个查找表连接线网扇出数目为5,则其逻辑优化成 在其他实施例中,可以根据上述实施例的公式的任意变形计算该查找表对的逻辑重构优化成本。
上述步骤②的实现方式多种多样。例如,在一个实施例中,对于所有查找表对,根据时间裕量从低到高进行排序(即时间裕量s越低,排序越靠前),并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序(即时间裕量s相同,计算线网长度l和优化成本c的商,即l/c,l/c越大,排序越靠前),得到排序结果。在其他实施例中,可以对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的差值从高到低进行排序,得到排序结果。且不限于此。
可选地,该步骤203还可以包括以下步骤:按照排序依次对排序结果中的查找表对执行能够实现时序提升的逻辑重构,如果该排序结果中的当前查找表对中任一个查找表之前执行过逻辑重构,则放弃对当前查找表对进行逻辑重构,直到排序结果队列里所有候选查找表对都优化过,整个优化流程结束。其中,逻辑重构的目的是减少当前时序违规路径经过的查找表级数,重构之后查找表的输入和逻辑表达式都需要更新,以保证逻辑正确。
下面对查找表对的逻辑重构过程进行举例说明:图4示出了一个示例查找表对进行逻辑重构的过程,其中最差时序违规路径从线网a通过LUT3,经由线网f通过LUT4输出到线网o,为了减少时序违规路径的延时,可以对LUT3和LUT4进行逻辑重构成一个LUT6,原最差时序违规路径从线网a通过LUT6直接到达线网o,路径经过的查找表的级数数目下降1,路径延时可以下降时序违规路径时序得以提升。图5示出了另一个示例查找表对进行逻辑重构的过程,其中最差时序违规路径从线网b通过LUT4_1,经由线网f通过LUT4_2输出到线网o,将LUT4_1和LUT4_2进行逻辑重构,用一个LUT3和LUT5替代,原时序违规路径从线网b直接通过LUT5输出到线网o,路径延时减少时序违规路径时序得到提升。
如图6示出了根据本申请的一个实施例的FPGA的时序优化方法的流程图。该实施例是对于布局后基于物理位置的时序更新过的设计,根据时间裕量从小到大对时序违规路径进行排序,选取头部5%的时序违规路径进行遍历。遍历选择满足条件的查找表对作为逻辑重构候选,并计算每对候选查找表对的逻辑重构优化成本。根据时间裕量、线长和计算的重构优化成本对每对候选查找表对进行排序,按照排序的顺序依次对每对候选查找表对进行逻辑重构操作尝试,执行能够实现时序提升的逻辑重构操作(即逻辑重构后更新时序检查时序是否提升,如果提升的话接受目前的逻辑重构操作,否则保持原来的查找表逻辑)并分配新新查找表的物理位置,直至完成排序结果中所有候选查找表对的逻辑重构操作尝试。该实施例中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
本申请的第二实施方式提出一种FPGA的时序优化系统,其结构如图7所示,该FPGA的时序优化系统包括时序更新模块、查找表对选取模块和逻辑重构模块。其中,时序更新模块用于基于布局布线后分配的查找表的物理位置进行时序更新;查找表对选取模块用于基于时序更新结果确定目标时序违规路径,遍历该目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据该FPGA中查找表的最大输入信号数目配置;逻辑重构模块用于分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
可选地,该系统还包括计算与排序模块,用于根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算该查找表对的逻辑重构优化成本,并且根据查找表对的时间裕量、查找表之间线网长度和该逻辑重构优化成本对所有查找表对进行排序,得到排序结果;该逻辑重构模块还用于确定该排序结果中的当前查找表对中任一查找表之前执行过逻辑重构操作,则放弃对当前查找表对进行逻辑重构操作。
在一个实施例中,该计算与排序模块根据计算该查找表对的逻辑重构优化成本,其中n1、m1分别表示查找表对中前一个查找表的输入线网数目、输入线网时间裕量为正的数目,n2、m2分别表示查找表对中后一个查找表的输入线网数目、输入线网时间裕量为正的数目,i表示查找表对中两个查找表连接线网的扇出数目。在其他实施例中,该计算与排序模块根据上述公式的任意变形计算该查找表对的逻辑重构优化成本。
在一个实施例中,该计算与排序模块对于所有查找表对,根据时间裕量从低到高进行排序,并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序,得到排序结果。在其他实施例中,该计算与排序模块对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的差值从高到低进行排序,得到排序结果。且不限于此。
可选地,该系统还包括目标时序违规路径选择模块,该目标时序违规路径选择模块用于选择时间裕量最小的预设百分比的时序违规路径作为该目标时序违规路径。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述FPGA的时序优化系统的实施方式中所示的各模块的实现功能可参照前述FPGA的时序优化方法的相关描述而理解。上述FPGA的时序优化系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述FPGA的时序优化系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
Claims (10)
1.一种FPGA的时序优化方法,其特征在于,包括:
基于布局布线后分配的查找表的物理位置进行时序更新;
基于时序更新结果确定目标时序违规路径,遍历所述目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据所述FPGA中查找表的最大输入信号数目配置;
分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
2.根据权利要求1所述的FPGA的时序优化方法,其特征在于,所述分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作之前,还包括:
根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算所述查找表对的逻辑重构优化成本;
根据查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果。
3.根据权利要求2所述的FPGA的时序优化方法,其特征在于,所述分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作时,还包括:
确定所述排序结果中的当前查找表对中任一个查找表之前执行过逻辑重构操作,则放弃对当前查找表对进行逻辑重构操作。
5.根据权利要求2所述的FPGA的时序优化方法,其特征在于,所述根据所述查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果,进一步包括:
对于所有查找表对,根据时间裕量从低到高进行排序,并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序,得到排序结果。
6.根据权利要求1-5中任意一项所述的FPGA的时序优化方法,其特征在于,所述方法还包括:选择时间裕量最小的预设百分比的时序违规路径作为所述目标时序违规路径。
7.一种FPGA的时序优化系统,其特征在于,包括:
时序更新模块,用于基于布局布线后分配的查找表的物理位置进行时序更新;
查找表对选取模块,用于基于时序更新结果确定目标时序违规路径,遍历所述目标时序违规路径上的查找表以选取查找表对,所选取的查找表对是满足条件ⅰ)每个查找表均有时间裕量为正的输入线网、ⅱ)两个查找表之间的线网不是高扇出线网和ⅲ)后一个查找表的输入线网数目少于N的任意前后相连的两个查找表,其中N根据所述FPGA中查找表的最大输入信号数目配置;
逻辑重构模块,用于分别对所选取的查找表对执行能够实现时序提升的逻辑重构操作,并为重构后的新查找表分配对应的物理位置。
8.根据权利要求7所述的FPGA的时序优化系统,其特征在于,所述系统还包括计算与排序模块,用于根据查找表输入线网数目、查找表输入线网的时间裕量和查找表连接线网的扇出数目计算所述查找表对的逻辑重构优化成本,并且根据查找表对的时间裕量、查找表之间线网长度和所述逻辑重构优化成本对所有查找表对进行排序,得到排序结果;
所述逻辑重构模块还用于确定所述排序结果中的当前查找表对中任一个查找表之前执行过逻辑重构操作,则放弃对当前查找表对进行逻辑重构操作。
10.根据权利要求7-9中任意一项所述的FPGA的时序优化系统,其特征在于,所述计算与排序模块还用于对于所有查找表对,根据时间裕量从低到高进行排序,并且对于相同时间裕量的查找表对根据查找表之间的线网长度和逻辑重构优化成本的商从高到低进行排序,得到排序结果;
所述系统还包括目标时序违规路径选择模块,所述目标时序违规路径选择模块用于选择时间裕量最小的预设百分比的时序违规路径作为所述目标时序违规路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210774464.2A CN115099177A (zh) | 2022-07-01 | 2022-07-01 | Fpga的时序优化方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210774464.2A CN115099177A (zh) | 2022-07-01 | 2022-07-01 | Fpga的时序优化方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115099177A true CN115099177A (zh) | 2022-09-23 |
Family
ID=83294209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210774464.2A Pending CN115099177A (zh) | 2022-07-01 | 2022-07-01 | Fpga的时序优化方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115099177A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577662A (zh) * | 2022-11-23 | 2023-01-06 | 山东启芯软件科技有限公司 | 一种基于多fanout逻辑的时序器件资源优化方法 |
CN116663464A (zh) * | 2023-08-01 | 2023-08-29 | 上海合见工业软件集团有限公司 | 一种关键时序路径的优化方法及系统 |
-
2022
- 2022-07-01 CN CN202210774464.2A patent/CN115099177A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577662A (zh) * | 2022-11-23 | 2023-01-06 | 山东启芯软件科技有限公司 | 一种基于多fanout逻辑的时序器件资源优化方法 |
CN115577662B (zh) * | 2022-11-23 | 2023-03-10 | 山东启芯软件科技有限公司 | 一种基于多fanout逻辑的时序器件资源优化方法 |
CN116663464A (zh) * | 2023-08-01 | 2023-08-29 | 上海合见工业软件集团有限公司 | 一种关键时序路径的优化方法及系统 |
CN116663464B (zh) * | 2023-08-01 | 2023-10-20 | 上海合见工业软件集团有限公司 | 一种关键时序路径的优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115099177A (zh) | Fpga的时序优化方法和系统 | |
US6701505B1 (en) | Circuit optimization for minimum path timing violations | |
CN109710981B (zh) | Fpga的布线方法及系统 | |
US7337100B1 (en) | Physical resynthesis of a logic design | |
US8984464B1 (en) | Detailed placement with search and repair | |
US7747973B2 (en) | Clustering circuit paths in electronic circuit design | |
US5490268A (en) | Method for changing an arrangement of an initial combinational circuit to satisfy prescribed delay time by computing permissible functions of output gates and remaining gates | |
JP5303449B2 (ja) | 集積回路の設計を最適化するための方法とシステム | |
US20150135148A1 (en) | Decision modules | |
US8782591B1 (en) | Physically aware logic synthesis of integrated circuit designs | |
US7996797B1 (en) | Method and apparatus for performing multiple stage physical synthesis | |
US6813754B2 (en) | Placement processing for programmable logic devices | |
CN114861591B (zh) | 一种可微分时序驱动的芯片布局优化方法 | |
CN111914500A (zh) | 一种快速单磁通量子rsfq电路布局方法和装置 | |
CN111709205A (zh) | Fpga布线方法 | |
CN112667024A (zh) | 延时计算电路、芯片运行频率获取方法、装置及电子设备 | |
US6192508B1 (en) | Method for logic optimization for improving timing and congestion during placement in integrated circuit design | |
US9275184B1 (en) | Method and apparatus for performing timing closure analysis when performing register retiming | |
CN112257368A (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
US7000206B2 (en) | Timing path detailer | |
US7734456B2 (en) | Method and apparatus for priority based data processing | |
US7984415B1 (en) | Merging of equivalent logic blocks in a circuit design | |
CN112464609A (zh) | 一种集成电路相对位置布局优化方法、装置及存储介质 | |
US10031994B1 (en) | Systems and methods for congestion and routability aware detailed placement | |
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 |
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 |