CN116738925B - 一种fpga详细布局方法及系统 - Google Patents
一种fpga详细布局方法及系统 Download PDFInfo
- Publication number
- CN116738925B CN116738925B CN202311009100.6A CN202311009100A CN116738925B CN 116738925 B CN116738925 B CN 116738925B CN 202311009100 A CN202311009100 A CN 202311009100A CN 116738925 B CN116738925 B CN 116738925B
- Authority
- CN
- China
- Prior art keywords
- node
- critical path
- layout
- candidate
- path
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000003068 static effect Effects 0.000 claims description 15
- 238000005457 optimization Methods 0.000 claims description 13
- 238000012300 Sequence Analysis Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000001934 delay Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000002922 simulated annealing Methods 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- 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/337—Design optimisation
-
- 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/347—Physical level, e.g. placement or routing
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种FPGA详细布局方法及系统,通过划分一定区域所覆盖的坐标位置来为关键路径上的每个节点选择候选位置集合,进而根据关键路径的节点走向构建有向层次图,为动态规划搜索最短路径提供了可能。通过使用动态规划搜索最短路径的方法,解决了模拟退火详细布局运行时间长、容易陷入局部最优的问题,并提高了详细布局的质量。
Description
技术领域
本发明属于可编程逻辑器件的软件设计领域,尤其是涉及一种FPGA详细布局方法及系统。
背景技术
FPGA布局的目的是确定电路中的可编程逻辑块(CLB)、输入/输出管脚(Input/Output Block,IOB)、存储器(BRAM)、数字信号处理(DSP)等逻辑单元在FPGA芯片上的物理位置。布局是FPGA CAD流程中的一个重要阶段,其结果直接影响了电路的布通率和性能。随着FPGA容量和复杂性的增加,高性能的FPGA布局算法已成为当前CAD领域的一个研究热点。提高FPGA布局算法的性能,对于提升整个CAD工具的水平,缩短应用电路的设计周期,具有十分重要的作用。
当前主流的FPGA布局算法包含三个阶段:初始布局、全局布局和详细布局。初始布局阶段通过随机或模拟退火等方法,为布局的所有逻辑块分配初始的坐标位置。全局布局阶段通过求解数学方程的方法来最小化线长,求解方程之后得到的布局结果存在大量的逻辑块重叠,是非法的。因此需要再通过合法化移动来移开重叠的逻辑块,产生合法的布局结果。但这通常会导致布局质量的下降,如线长和延时的增加。详细布局阶段是对合法布局结果的进一步优化,进而提高电路的性能。目前详细布局采用较多的方法是模拟退火算法。但是模拟退火算法在详细布局中存在运行时间长,且容易陷入局部最优的问题。
发明内容
本发明所要解决的技术问题是针对当前详细布局效率较低的问题,提出了一种FPGA详细布局方法及系统。
为解决上述技术问题,本发明所采用的技术方案是:
一种FPGA详细布局方法,包括以下步骤:
步骤1:获取电路网表和全局布局的结果;
步骤2:对所述电路网表和全局布局的结果使用静态时序分析方法进行分析,计算拟详细布局电路的关键路径延时Dbest;
步骤3:根据静态时序分析结果,解析出关键路径集合L,对关键路径集合L中每条关键路径p上的各节点寻找候选位置集;
步骤4:根据每条关键路径p上各节点的候选位置集,构建每条关键路径p的有向层次图;
步骤5:根据有向层次图,使用动态规划方法搜索出每条关键路径p的最短路径,并使用最短路径上的节点更新相应关键路径的布局位置;
步骤6:对对更新布局位置后的电路网表进行静态时序分析,计算出最新的关键路径延时D;
步骤7:减小候选位置集中的候选位置数量,增大关键路径的条数,如果最新的关键路径延时D小于Dbest,将D赋予Dbest,并记录当前的布局结果为最优布局结果,返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,否则认为此轮迭代布局失败,判断布局失败的总次数是否超过预设次数,超过则将当前布局结果还原为最优布局结果,并增大候选位置集中的候选位置数量,减小关键路径条数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,没超过则记录失败次数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化;
步骤8:输出最优布局结果。
进一步地,步骤3中为各节点寻找候选位置集的方法是:为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域,当候选区域内的某一坐标位置和当前节点资源类型相同时,将该坐标位置作为当前节点的候选位置,以此方法对候选区域内的每一个坐标位置进行判断,形成候选位置集。
进一步地,为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域是指,以每个节点为中心,以预设的长度为边长形成的正方形所覆盖的区域。
进一步地,步骤4中构建有向层次图的方法是:
以一条关键路径上的每个节点为一个层次,以每个节点的候选位置集中的候选位置为该节点所处层次上的节点,有向层次图中的方向是按照关键路径节点的顺序,从前往后的方向依次构建;上一层中的每个节点分别连接指向下一层中的每个节点,两个节点之间的边的权重是两个节点所在坐标位置之间的延时。
进一步地,步骤5中动态规划的方法是:
步骤5.1:在有向层次图的基础上,计算每一节点的输出延时,所述输出延时为一节点所在层次之前路径上的最短延时加上当前节点与下一层次连接的节点之间的输出边的延时,所述最短延时是指取当前层次上所有节点的输入延时的最小值,输入延时也就是上一节点到当前节点的输出延时;
步骤5.2:最短路径为从最后一个层次开始从后往前依次取当前层次上所有节点的输入延时最小值所在的节点所形成的路径。
进一步地,当不同节点覆盖的候选区域重叠时,确定覆盖范围内的坐标位置属于哪个节点的候选位置的方法是:
对于关键路径p的每个节点n,在为其划分的覆盖范围内判断每个坐标位置的资源类型,如果当前坐标位置r的资源类型与当前节点n的资源类型相同,将节点n加入到位置r的邻接列表中;
计算覆盖范围内的每个坐标位置r与邻近的关键路径节点n之间的距离,并将该距离信息记录到坐标位置r的邻接列表中;
将每个坐标位置r邻接列表中的关键路径节点,按照坐标位置r与关键路径节点之间的距离从小到大的顺序进行排序;
遍历每个坐标位置r其邻接列表中的每个关键路径节点,首先找到距离最近的第一个关键路径节点n1,将坐标位置r加入到节点n1的候选位置集合中,然后找到距离第二近的关键路径节点n2,如果n2与n1在当前关键路径上是相连的,则将坐标位置r也加入到节点n2的候选位置集合中;否则继续寻找坐标位置r的下一个邻近位置,直到坐标位置r的邻接列表遍历完或者坐标位置r已加入到2个节点的候选位置集合中为止。
进一步地,步骤3中根据静态时序分析的结果,解析出关键路径集合L的方法是:
步骤1)、静态时序分析结果包括电路网表中各条连接的时序裕度和关键度,首先将所有连接按照关键度从大到小的顺序进行排序,排序后的连接保存在连接集合S中;
步骤2)、从连接集合S中选择关键度最大的所有连接形成集合S’;
步骤3)、从集合S’中的第一条连接开始拼接关键路径p,遍历集合S’中的其他连接c’,如果连接c’的连向点是关键路径p的头结点,则将连接c’加入到关键路径p的头部,连接c’的起始点作为关键路径p新的头节点;如果连接c’的起始点是关键路径p的终节点,连接c’加入到关键路径p的尾部,连接c’的连向点作为关键路径p新的终节点,当关键路径的头节点是时序图的路径起点类型,并且终节点是时序图的路径终点类型时,则关键路径p拼接完成,将p加入都关键路径集合L中;
步骤4)、判断当前关键路径集合L中路径的个数是否达到预设的个数N,如果没有达到,返回到步骤2),继续解析下一条关键路径;如果达到N,解析完成。
本发明提供了一种FPGA详细布局系统,使用了前面所述的一种FPGA详细布局方法中的各步骤。
采用上述技术方案,本发明具有如下有益效果:
本发明提供的一种FPGA详细布局方法及系统,通过划分一定区域所覆盖的坐标位置来为关键路径上的每个节点选择候选位置集合,进而根据关键路径的节点走向构建有向层次图,为动态规划搜索最短路径提供了可能。通过使用动态规划搜索最短路径的方法,解决了模拟退火详细布局运行时间长、容易陷入局部最优的问题,并提高了详细布局的质量。
附图说明
图1为本发明系统流程图;
图2为一条关键路径节点候选位置的示意图;
图3为一条关键路径层次有向图的示意图;
图4为本发明的解析关键路径集合流程的示意图;
图5为本发明的为一条关键路径上节点寻找候选位置方法的示意图;
图6为关键路径附近坐标位置邻接列表的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1至图6示出了本发明一种FPGA详细布局方法的具体实施例,如图1所示,包括以下步骤:
步骤1:获取电路网表和全局布局的结果;
步骤2:对所述电路网表和全局布局的结果使用静态时序分析方法进行分析,计算拟详细布局电路的关键路径延时Dbest;
步骤3:根据静态时序分析结果,解析出关键路径集合L,对关键路径集合L中每条关键路径p上的各节点寻找候选位置集。
本实施例中,如图4所示,根据静态时序分析的结果,解析出关键路径集合L的方法是:
步骤1)、静态时序分析结果包括电路网表中各条连接的时序裕度和关键度,首先将所有连接按照关键度从大到小的顺序进行排序,排序后的连接保存在连接集合S中;
步骤2)、从连接集合S中选择关键度最大的所有连接形成集合S’;
步骤3)、从集合S’中的第一条连接开始拼接关键路径p,遍历集合S’中的其他连接c’,如果连接c’的连向点是关键路径p的头结点,则将连接c’加入到关键路径p的头部,连接c’的起始点作为关键路径p新的头节点;如果连接c’的起始点是关键路径p的终节点,连接c’加入到关键路径p的尾部,连接c’的连向点作为关键路径p新的终节点,当关键路径的头节点是时序图的路径起点类型,并且终节点是时序图的路径终点类型时,则关键路径p拼接完成,将p加入都关键路径集合L中;
步骤4)、判断当前关键路径集合L中路径的个数是否达到预设的个数N,如果没有达到,返回到步骤2),继续解析下一条关键路径;如果达到N,解析完成。
本实施例中,步骤3中为各节点寻找候选位置集的方法是:为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域,当候选区域内的某一坐标位置和当前节点资源类型相同时,将该坐标位置作为当前节点的候选位置,以此方法对候选区域内的每一个坐标位置进行判断,形成候选位置集。而为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域是指,以每个节点为中心,以预设的长度为边长形成的正方形所覆盖的区域。如图2所示,对于关键路径A-B-C中的每个节点,分别划分得到预设边长为5的正方形覆盖范围。然后对于关键路径的每个节点,从相应的正方形范围内,选择逻辑资源类型相同的位置作为该节点的候选位置。但是由于不同节点所覆盖的区域可能有重叠时,会导致同一个坐标位置会被多个节点都选为候选位置,此时,当不同节点覆盖的候选区域重叠时,如图2和图6的三个虚线框所框起来的范围所示,分别以节点边框为粗线框表示的三个关键路径节点A、B、C为中心,预设边长为5的正方形虚线框范围具有重叠的部分,如图5所示,确定覆盖范围内的坐标位置属于哪个节点的候选位置的方法是:
对于关键路径p的每个节点n,在为其划分的覆盖范围内判断每个坐标位置的资源类型,如果当前坐标位置r的资源类型与当前节点n的资源类型相同,将节点n加入到坐标位置r的邻接列表中。
计算覆盖范围内的每个坐标位置r与邻近的关键路径节点n之间的距离,并将该距离记录到坐标位置r的邻接列表中;如图6所示重叠区域内的一个坐标位置上显示的A-1、B-3、C-4表示该位置为三个节点的覆盖区域,且关键路径节点A距离该位置为1,关键路径节点B距离该位置为3,关键路径节点C距离该位置为4。
将每个坐标位置r邻接列表中的关键路径节点,按照坐标位置r与关键路径节点之间的距离从小到大的顺序进行排序;
遍历每个坐标位置r其邻接列表中的每个关键路径节点,首先找到距离最近的第一个关键路径节点n1,将坐标位置r加入到节点n1的候选位置集合中,然后找到距离第二近的关键路径节点n2,如果n2与n1在当前关键路径上是相连的,则将坐标位置r也加入到节点n2的候选位置集合中;否则继续寻找坐标位置r的下一个邻近位置,直到坐标位置r的邻接列表遍历完或者坐标位置r已加入到2个节点的候选位置集合中为止。结合图2和图6来进行说明,对于图2中以虚线边框表示的位置AB,在图6中,显示该位置的邻接表为A-2、C-3、B-4,表示该位置上距离其最近的关键路径节点是A,距离为2,因此首先将位置AB加入到节点A的候选位置集合中。距离虚线边框的位置AB第二近的关键路径节点是C,距离为3,但在当前关键路径A-B-C(节点边框为粗线框,使用粗线条连接起来的三个节点)中,C与A并不相连,因此不会将位置AB加入到节点C的候选位置集合中。接着考虑下一个邻近位置B,距离为4,在当前关键路径上B与A相连,因此将位置AB加入到节点B的候选位置集合中。
步骤4:根据每条关键路径p上各节点的候选位置集,构建每条关键路径p的有向层次图。
本实施例中,构建有向层次图的方法是:
以一条关键路径上的每个节点为一个层次,如图3所示,对于一个包含n个节点的关键路径,为其建立的有向图也含有n个层次。以每个节点的候选位置集中的候选位置为该节点所处层次上的节点,有向层次图中的方向是按照关键路径节点的顺序,从前往后的方向依次构建;上一层中的每个节点分别连接指向下一层中的每个节点,相同名称的节点不进行连接。两个节点之间的边的权重是两个节点所在坐标位置之间的延时,比如A-B 这条边的延时是delay(A,B)。图3中,如A、B、C、D、E等使用纯字母表示的点代表关键路径上节点原来的位置,字母后带有数字的点表示相应字母节点的候选位置,数字表示相应字母节点的第几个候选位置,每个节点上的字母表示该位置属于哪些节点的候选位置,比如A1表示是节点A的第1个候选位置,BC1、BC2、BC3分别代表这个位置是节点B和C的第1个候选位置、第2和第3个候选位置。如在关键路径节点A这一层有一个候选位置A1,表示关键路径节点A只有一个候选位置,用A1来表示;关键路径节点B这一层,因为节点B有多个候选位置,所以就用B1、B2…来表示。
步骤5:根据有向层次图,使用动态规划方法搜索出每条关键路径p的最短路径,并使用最短路径上的节点更新相应关键路径的布局位置。
本实施例中,动态规划的方法是:
步骤5.1:在有向层次图的基础上,计算每一节点的输出延时,所述输出延时为一节点所在层次之前路径上的最短延时加上当前节点与下一层次连接的节点之间的输出边的延时,所述最短延时是指取当前层次上所有节点的输入延时的最小值,输入延时也就是上一节点到当前节点的输出延时;
步骤5.2:最短路径为从最后一个层次开始从后往前依次取当前层次上所有节点的输入延时最小值所在的节点所形成的路径。
步骤6:对更新布局位置后的电路网表进行静态时序分析,计算出最新的关键路径延时D;
步骤7:减小候选位置集中的候选位置数量,增大关键路径的条数,如果最新的关键路径延时D小于Dbest,说明此轮迭代的详细布局优化成功,将D赋予Dbest,并记录当前的布局结果为最优布局结果,返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,否则认为此轮迭代布局失败,判断布局失败的总次数是否超过预设次数I,超过则将当前布局结果还原为最优布局结果,并增大候选位置集中的候选位置数量,减小关键路径条数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,没超过则记录失败次数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化。本实施例中,允许在一定迭代次数内时序性能的下降,不会立即将布局结果还原成最优结果,而是继续下一轮迭代,直到连续失败优化的次数的超过了一定数量I时,就会把布局结果还原成最优结果P,同时会适当增加动态规划搜索最短路径的窗口大小和减少需要优化的关键路径个数N,目的是为了增加关键路径中搜索最短路径的候选节点范围,并把优化重点集中在最需要优化的关键路径上。当迭代次数达到最大迭代次数时,本方法停止优化。
本实施例中,减小或增大候选位置集中的候选位置数量,是以减小或增大以节点为中心所预设的长度,预设的长度减小,则以预设长度为边长形成的正方形所覆盖的区域面积减小,则覆盖的候选位置的数量减少,增大预设长度,则增大了以预设长度为边长形成的正方形所覆盖的区域面积,从而覆盖的候选位置的数量增大。减小或增大的幅度都以当前预设长度为基础按照一定比例进行减小或增大,或者根据经验值进行设置。
步骤8:输出最优布局结果。
本发明还提供了一种FPGA详细布局系统,使用了前面所述的一种FPGA详细布局方法中的各步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种FPGA详细布局方法,其特征在于,包括以下步骤:
步骤1:获取电路网表和全局布局的结果;
步骤2:对所述电路网表和全局布局的结果使用静态时序分析方法进行分析,计算拟详细布局电路的关键路径延时Dbest;
步骤3:根据静态时序分析结果,解析出关键路径集合L,对关键路径集合L中每条关键路径p上的各节点寻找候选位置集;
步骤4:根据每条关键路径p上各节点的候选位置集,构建每条关键路径p的有向层次图;构建有向层次图的方法是:
以一条关键路径上的每个节点为一个层次,以每个节点的候选位置集中的候选位置为该节点所处层次上的节点,有向层次图中的方向是按照关键路径节点的顺序,从前往后的方向依次构建;上一层中的每个节点分别连接指向下一层中的每个节点,两个节点之间的边的权重是两个节点所在坐标位置之间的延时;
步骤5:根据有向层次图,使用动态规划方法搜索出每条关键路径p的最短路径,并使用最短路径上的节点更新相应关键路径的布局位置;动态规划的方法是:
步骤5.1:在有向层次图的基础上,计算每一节点的输出延时,所述输出延时为一节点所在层次之前路径上的最短延时加上当前节点与下一层次连接的节点之间的输出边的延时,所述最短延时是指取当前层次上所有节点的输入延时的最小值,输入延时也就是上一节点到当前节点的输出延时;
步骤5.2:最短路径为从最后一个层次开始从后往前依次取当前层次上所有节点的输入延时最小值所在的节点所形成的路径;
步骤6:对更新布局位置后的电路网表进行静态时序分析,计算出最新的关键路径延时D;
步骤7:减小候选位置集中的候选位置数量,增大关键路径的条数,如果最新的关键路径延时D小于Dbest,将D赋予Dbest,并记录当前的布局结果为最优布局结果,返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,否则认为此轮迭代布局失败,判断布局失败的总次数是否超过预设次数,超过则将当前布局结果还原为最优布局结果,并增大候选位置集中的候选位置数量,减小关键路径条数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化,没超过则记录失败次数后返回步骤3进行下一轮迭代直到达到最大迭代次数则停止布局优化;
步骤8:输出最优布局结果。
2.根据权利要求1所述的一种FPGA详细布局方法,其特征在于,步骤3中为各节点寻找候选位置集的方法是:为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域,当候选区域内的某一坐标位置和当前节点资源类型相同时,将该坐标位置作为当前节点的候选位置,以此方法对候选区域内的每一个坐标位置进行判断,形成候选位置集。
3.根据权利要求2所述的一种FPGA详细布局方法,其特征在于,为关键路径中的每个节点划分出一片用于覆盖多个节点位置的候选区域是指,以每个节点为中心,以预设的长度为边长形成的正方形所覆盖的区域。
4.根据权利要求3所述的一种FPGA详细布局方法,其特征在于,当不同节点覆盖的候选区域重叠时,确定覆盖范围内的坐标位置属于哪个节点的候选位置的方法是:
对于关键路径p的每个节点n,在为其划分的覆盖范围内判断每个坐标位置的资源类型,如果当前坐标位置r的资源类型与当前节点n的资源类型相同,将节点n加入到位置r的邻接列表中;
计算覆盖范围内的每个坐标位置r与邻近的关键路径节点n之间的距离,并将该距离记录到坐标位置r的邻接列表中;
将每个坐标位置r邻接列表中的关键路径节点,按照坐标位置r与关键路径节点之间的距离从小到大的顺序进行排序;
遍历每个坐标位置r其邻接列表中的每个关键路径节点,首先找到距离最近的第一个关键路径节点n1,将坐标位置r加入到节点n1的候选位置集合中,然后找到距离第二近的关键路径节点n2,如果n2与n1在当前关键路径上是相连的,则将坐标位置r也加入到节点n2的候选位置集合中;否则继续寻找坐标位置r的下一个邻近位置,直到坐标位置r的邻接列表遍历完或者坐标位置r已加入到2个节点的候选位置集合中为止。
5.根据权利要求4所述的一种FPGA详细布局方法,其特征在于,步骤3中根据静态时序分析的结果,解析出关键路径集合L的方法是:
步骤1)、静态时序分析结果包括电路网表中各条连接的时序裕度和关键度,首先将所有连接按照关键度从大到小的顺序进行排序,排序后的连接保存在连接集合S中;
步骤2)、从连接集合S中选择关键度最大的所有连接形成集合S’;
步骤3)、从集合S’中的第一条连接开始拼接关键路径p,遍历集合S’中的其他连接c’,如果连接c’的连向点是关键路径p的头结点,则将连接c’加入到关键路径p的头部,连接c’的起始点作为关键路径p新的头节点;如果连接c’的起始点是关键路径p的终节点,连接c’加入到关键路径p的尾部,连接c’的连向点作为关键路径p新的终节点,当关键路径的头节点是时序图的路径起点类型,并且终节点是时序图的路径终点类型时,则关键路径p拼接完成,将p加入都关键路径集合L中;
步骤4)、判断当前关键路径集合L中路径的个数是否达到预设的个数N,如果没有达到,返回到步骤2),继续解析下一条关键路径;如果达到N,解析完成。
6.一种FPGA详细布局系统,其特征在于,使用权利要求1至5任一项所述的一种FPGA详细布局方法中的各步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311009100.6A CN116738925B (zh) | 2023-08-11 | 2023-08-11 | 一种fpga详细布局方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311009100.6A CN116738925B (zh) | 2023-08-11 | 2023-08-11 | 一种fpga详细布局方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116738925A CN116738925A (zh) | 2023-09-12 |
CN116738925B true CN116738925B (zh) | 2023-11-03 |
Family
ID=87902925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311009100.6A Active CN116738925B (zh) | 2023-08-11 | 2023-08-11 | 一种fpga详细布局方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116738925B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117574820A (zh) * | 2024-01-15 | 2024-02-20 | 中科亿海微电子科技(苏州)有限公司 | 一种增量时序分析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169276A (zh) * | 2021-10-21 | 2022-03-11 | 深圳市紫光同创电子有限公司 | 布局布线后的时序优化方法、系统、设备及存储介质 |
CN115859885A (zh) * | 2023-02-14 | 2023-03-28 | 成都市硅海武林科技有限公司 | 一种fpga冗余容错方法及fpga芯片 |
CN116401992A (zh) * | 2023-05-16 | 2023-07-07 | 上海思尔芯技术股份有限公司 | 一种节点路由路径优化方法及装置 |
-
2023
- 2023-08-11 CN CN202311009100.6A patent/CN116738925B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169276A (zh) * | 2021-10-21 | 2022-03-11 | 深圳市紫光同创电子有限公司 | 布局布线后的时序优化方法、系统、设备及存储介质 |
CN115859885A (zh) * | 2023-02-14 | 2023-03-28 | 成都市硅海武林科技有限公司 | 一种fpga冗余容错方法及fpga芯片 |
CN116401992A (zh) * | 2023-05-16 | 2023-07-07 | 上海思尔芯技术股份有限公司 | 一种节点路由路径优化方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种多线程FPGA 时序驱动布线算法;于梦薇 等;《太赫兹科学与电子信息学报》;第15卷(第6期);第1066-1070页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116738925A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10796053B2 (en) | Computer implemented system and method for generating a layout of a cell defining a circuit component | |
Pan et al. | FastRoute 2.0: A high-quality and efficient global router | |
US9852253B2 (en) | Automated layout for integrated circuits with nonstandard cells | |
US8423940B2 (en) | Early noise detection and noise aware routing in circuit design | |
US20030005398A1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
CN116738925B (zh) | 一种fpga详细布局方法及系统 | |
US8266566B2 (en) | Stability-dependent spare cell insertion | |
US8949755B2 (en) | Analyzing sparse wiring areas of an integrated circuit design | |
US20120110536A1 (en) | Statistical method for hierarchically routing layout utilizing flat route information | |
US9298872B2 (en) | Apportioning synthesis effort for better timing closure | |
US9292638B1 (en) | Method and apparatus for performing timing closure analysis when performing register retiming | |
US8504970B1 (en) | Method and apparatus for performing automated timing closure analysis for systems implemented on target devices | |
US8196081B1 (en) | Incremental placement and routing | |
US10331840B2 (en) | Resource aware method for optimizing wires for slew, slack, or noise | |
US8196083B1 (en) | Incremental placement and routing | |
US11983476B2 (en) | Technology-independent line end routing | |
US9940422B2 (en) | Methods for reducing congestion region in layout area of IC | |
US11074379B2 (en) | Multi-cycle latch tree synthesis | |
US10031994B1 (en) | Systems and methods for congestion and routability aware detailed placement | |
US8032855B1 (en) | Method and apparatus for performing incremental placement on a structured application specific integrated circuit | |
US10831971B1 (en) | Net layer promotion with swap capability in electronic design | |
JP5510280B2 (ja) | 設計支援装置、設計支援方法および設計支援プログラム | |
JP2023536765A (ja) | 人工知能に基づく回路設計方法及び実装システム | |
US20200050730A1 (en) | Re-routing time critical multi-sink nets in chip design | |
CN113011124B (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 |