CN105069216A - 一种fpga布线方法及装置 - Google Patents

一种fpga布线方法及装置 Download PDF

Info

Publication number
CN105069216A
CN105069216A CN201510465976.0A CN201510465976A CN105069216A CN 105069216 A CN105069216 A CN 105069216A CN 201510465976 A CN201510465976 A CN 201510465976A CN 105069216 A CN105069216 A CN 105069216A
Authority
CN
China
Prior art keywords
value
cost value
node
treat
expanding node
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
CN201510465976.0A
Other languages
English (en)
Other versions
CN105069216B (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.)
Shenzhen Pango Microsystems Co Ltd
Original Assignee
Shenzhen Pango Microsystems Co Ltd
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 Shenzhen Pango Microsystems Co Ltd filed Critical Shenzhen Pango Microsystems Co Ltd
Priority to CN201510465976.0A priority Critical patent/CN105069216B/zh
Publication of CN105069216A publication Critical patent/CN105069216A/zh
Application granted granted Critical
Publication of CN105069216B publication Critical patent/CN105069216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Advance Control (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开一种FPGA布线方法及装置,该方法包括搜索可扩展为本级路径节点的各待扩展节点;将搜索到的当前待扩展节点的代价值并与第一预设值比较;若大于或等于第一预设值,则判断该节点是否被占用以及是否被标记为已做减法处理;如果未被占用且未被标记为已做减法处理,则将该节点加入拓展队列中且调整其代价值为当前代价值减去第二预设值,并标识已做减法处理;如果该节点已被占用且被标记为已做减法处理,则将该节点加入拓展队列中,且调整其代价值为当前代价值加上第三预设值并将代价值已做减法处理的标识去掉;最终从拓展队列中找出代价值最小的节点进行占用。本发明通过以上技术方案,解决现有布线方法布线时间长且布线方案不优的问题。

Description

一种FPGA布线方法及装置
技术领域
本发明涉及电子技术领域,尤其涉及一种现场可编程门阵列(FPGA)布线方法及装置。
背景技术
从1984年FPGA问世以来,由于其特有的可编程性使得传统数字电路设计的过程大大简化,越来越多的电子设计人员使用FPGA芯片进行电子系统的设计。随着FGPA的规模不断扩大,对软件算法的性能要求也越来越高。比如规模越大意味着布局的跨度越大,即两个相连的点之间的距离可能会比较远(两点之间有连接关系称作一个net),这样就对FPGA布线效率提出了更高的要求。
目前布线算法中比较通用的是PathFinder算法,它使用了代价函数的概念,即用代价函数表示布线路径中某个节点发生冲突的代价,即被多个net争用的情况。代价越低表示通过该节点越有可能到达终点。所以代价越低的节点在布线路径搜索中会优先考虑,即优先从代价低的节点开始路径扩展,反之,代价高的会最后考虑。
如图1所示的节点连接示意图,起点、终点组合分别是net(S1,D1),net(S2,D2),net(S3,D3)。PahFinder算法是基于迭代的。
第一次迭代,任何一个net的起始节点在遍历扩展了A,B,C,D四个节点后,由于B节点距离终点更近,故B点会是下一次扩展的首选节点。在下一次扩展中从B点就很快找到了终点,所以在第一次迭代后路径选择分别为(S1,B,D1),(S2,B,D2),(S3,B,D3)。这样B就产生了冲突,B节点的成本增加。一旦发生冲突,布线器会将所有的冲突路径删除,即之前产生的三个路径都没有了,B点也没有被任何路径占用,但是它的代价值增加了。
第二次迭代或者多次迭代后很可能路径选择为(S1,A,D1),(S2,C,D2),(S3,D,D3)。由于B节点多次产生冲突,代价值升高,故net在选择路径时它的优先级较低,这样选B点的可能性就比较低了。
通过上面的分析,可以看出PathFinder算法能够比较有效的解决拥塞,但是节点扩展的优先顺序完全依靠节点的代价值大小,很可能待布线路径(S2,D2)最优的方案是通过节点B,但是B节点由于不断产生冲突导致成本过高,从而可能最后选择了一条成本更高的路径或者要过经过很多次迭代才可以最终选定B为(S2,D2)的路径节点。迭代的次数越多布线的时间就越长。因此如何缩减布线时间且不影响性能成为布线算法一个不可忽略的因素。
发明内容
本发明提供的一种FPGA布线方法及装置,解决现有的布线方法布线时间长且布线方案不优的问题。
为解决上述技术问题,本发明采用以下技术方案:
一种FPGA布线方法,包括:
搜索可扩展为本级路径节点的各待扩展节点;
读取搜索到的当前待扩展节点的代价值;
将所述代价值与第一预设值比较;
若所述代价值大于或等于所述第一预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;
经过至少一次上述迭代后,从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
在一些实施例中,若所述代价值小于所述第一预设值,则所述经过至少一次上述迭代后,从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用之前,还包括:
将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;
或者,将所述代价值与第四预设值比较,若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉。
在一些实施例中,该FPGA布线方法还包括:
若所述代价值小于第四预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变。
在一些实施例中,该FPGA布线方法还包括通过以下方式设定第一预设值:
计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;
将所述平均值或者大于所述平均值的值设定为所述第一预设值。
在一些实施例中,所述第一预设值为:N*所述平均值,N大于1。
在一些实施例中,所述第二预设值和/或第三预设值为所述平均值的一半。
一种FPGA布线装置,包括:
搜索模块,用于搜索可扩展为本级路径节点的各待扩展节点;
读取模块,用于读取搜索到的当前待扩展节点的代价值;
第一比较模块,用于将所述代价值与第一预设值比较;
第一判断模块,用于若所述代价值大于或等于所述第一预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块,用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;
查询模块,用于从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
在一些实施例中,第一处理模块还用于若所述代价值小于所述第一预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;
在一些实施例中,第一比较模块还用于将所述代价值与第四预设值比较;
第一判断模块还用于若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块还用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉。
在一些实施例中,该FPGA布线装置还包括:
计算模块,用于计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;
设定模块,用于将所述平均值或者大于所述平均值的值设定为所述第一预设值。
本发明采用有条件的记忆擦除机制,即在当前net的路径扩展中,有条件的使某些代价值较高节点的代价值变小,从而在扩展队列中占据优先位置。对于其他的net则使代价值不变会变大,使得其排在扩展队列较后的位置。这样当前net使用这些节点的可能性增加,其他net使用这些节点的可能性降低,从而达到减少冲突、优化布线结果的效果。
附图说明
图1为现有的节点连接示意图;
图2为本发明一实施例提供的FPGA布线装置的示意图。
具体实施方式
本发明对传统的使用代价函数的PathFinder算法做一些改进,采用有条件的记忆擦除机制,在当前net的路径扩展中,有条件的使某些代价值较高节点的代价值变小,从而在扩展队列中占据优先位置。对于其他的net则使代价值不变会变大,使得其排在扩展队列较后的位置,使得当前net使用这些节点的可能性增加,其他net使用这些节点的可能性降低,从而达到减少冲突、优化布线结果的效果。
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本发明一实施例提供的FPGA布线方法的流程图,包括如下流程:
S101、搜索可扩展为本级路径节点的各待扩展节点;
S102、读取搜索到的当前待扩展节点的代价值;
S103、将所述代价值与第一预设值比较;若所述代价值大于或等于所述第一预设值,则进入步骤S104;若所述代价值小于所述第一预设值,则进入步骤S109;
S104、判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理,根据判断结果,对应进入S105、S106、S107或S108;
S105、如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;进入步骤S110;
本步骤是采用记忆擦除机制,有条件的使当前待扩展节点的代价值缩减,加入拓展队列中后在扩展队列中占据优先位置,使得其更容易被当前net占用。
S106、如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;进入步骤S110;
本步骤,为了将让该当前待扩展节点优先给前面已占用它的net来使用,对其代价值做了变大处理,加入拓展队列中后使得其排在扩展队列较后的位置,被当前net占用的可能性降低,从而达到减少冲突、优化布线结果的效果。
S107、如果所述当前待扩展节点未被占用,且被标记为已做减法处理,则有以下两种处理方式可选:
A,将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第七预设值,并将代价值已做减法处理的标识去掉;进入步骤S110;
B,根据已做减法处理的标识判断已做减法处理的次数是否达到预定次数(该预定次数优选的等于2),如果达到预定次数,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第七预设值,并将代价值已做减法处理的标识去掉;如果未达到预定次数,则将所述当前待扩展节点加入拓展队列中,且保持已做减法处理后的代价值不变,并标识所述当前待扩展节点的代价值已做减法处理的次数加1;进入步骤S110;
上述第A种方式,是直接使所述当前待扩展节点的代价值变大,使得其排在扩展队列较后的位置,使得该节点被前面让其代价值做减法处理的net占用的可能性增加,而被当前net占用的可能性减小,从而减少冲突。
上述第B种方式,分两种情况,如果所述当前待扩展节点的代价值已做减法处理的次数达到预定次数,比如2次,则使所述当前待扩展节点的代价值变大,使得其排在扩展队列较后的位置,使得当前net使用这些节点的可能性减小,从而减少冲突;如果小于预定次数,比如只做过1次减法处理,则保持代价值不变,这样使得当前net占用该节点的可能性,与前1次让其代价值做减法处理的net占用该节点的可能性相当。这种方式,使得两个net都进行记忆擦除,而对第三个net不进行记忆擦除,这样优先在两个net间竞争某一个节点,从而该节点被最需要它的net占用。
S108、如果所述当前待扩展节点已被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;进入步骤S110;
S109、若所述代价值小于所述第一预设值,则有以下两种处理方式可选:
C、将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;进入步骤S110;
D、将所述代价值与第四预设值比较,若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;进入步骤S110;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉;进入步骤S110;
如果所述当前待扩展节点已被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;进入步骤S110;
如果所述当前待扩展节点未被占用,且被标记为已做减法处理,则有以下两种处理方式可选:
E,将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第八预设值,并将代价值已做减法处理的标识去掉;进入步骤S110;
F,根据已做减法处理的标识判断已做减法处理的次数是否达到预定次数(该预定次数优选的等于2),如果达到预定次数,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第八预设值,并将代价值已做减法处理的标识去掉;如果未达到预定次数,则将所述当前待扩展节点加入拓展队列中,且保持已做减法处理后的代价值不变,并标识所述当前待扩展节点的代价值已做减法处理的次数加1;进入步骤S110;
若所述代价值小于第四预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变。
上述第D种方式,实际上是对代价值小于第一预设值,且大于或等于第四预设值的情况做进一步处理,相比第C种方式而言,进一步优化布线方案。
S110、经过至少一次上述迭代后,从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
以上实施例中,还包括通过以下方式设定第一预设值:
计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;将所述平均值或者大于所述平均值的值设定为所述第一预设值。例如,第一预设值为:N*所述平均值,N大于1,即为所述平均值的倍数。优选的,第一预设值为4倍的所述平均值,所述第二预设值和/或第三预设值为所述平均值的一半,所述第四预设值为2倍的所述平均值。
图2为本发明一实施例提供的FPGA布线装置的示意图,如图2所示,FPGA布线装置包括:
搜索模块21,用于搜索可扩展为本级路径节点的各待扩展节点;
读取模块22,用于读取搜索到的当前待扩展节点的代价值;
第一比较模块23,用于将所述代价值与第一预设值比较;
第一判断模块24,用于若所述代价值大于或等于所述第一预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块25,用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;
查询模块26,用于从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
在一些实施例中,第一处理模块25还用于若所述代价值小于所述第一预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;
在一些实施例中,第一比较模块23还用于将所述代价值与第四预设值比较;
第一判断模块24还用于若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块25还用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉。
在一些实施例中,FPGA布线装置还包括:
计算模块27,用于计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;
设定模块28,用于将所述平均值或者大于所述平均值的值设定为所述第一预设值。
下面进一步举例,假设计算FPGA中最新参与扩展的500个节点的代价值的平均值,记为cost_ave;
(1)假设当前待扩展节点的代价值f大于或等于cost_ave*4(第一预设值为4倍的平均值),则有以下4种情况:
1.1)如果该当前待扩展节点还没有被任何net占用,且flag=0(即未被标记为已做减法处理),那么就将此节点的代价值缩小为原来的二分之一(第二预设值为f*0.5),即f更新为f*0.5,并使用一个标识flag=1来记录该代价值已做1次减法处理,将该当前待扩展节点加入拓展队列中。对于当前net,这样的处理方式可以使得在后续的节点扩展中,这个节点不至于排在较后的扩展位置,最后这个节点被当前net占用的可能性增大了不少。
1.2)如果该当前待扩展节点已经被某个net占用,且它的flag≠0(说明该节点代价值曾经做了减法处理),那么将此节点的代价值扩大一倍(第三预设值为f*0.5),即恢复成原来的值,因为之前已经缩减了一倍,再扩大一倍后就相当于恢复成原来的值,并更新flag=0,即将代价值已做减法处理的标识去掉,将该当前待扩展节点加入拓展队列中;因为这个节点已被占用且代价值已经缩小了一半。对于当前net,这样的处理方式使得在后续的节点扩展中,这个节点会排在较后的位置,从而降低这个节点被当前net占用的可能性,减少冲突。
1.3)如果该当前待扩展节点还没有被任何net占用,且它的flag≠0(说明该节点代价值曾经做了减法处理),则有以下两种处理方式可选:
1.3.1)将此节点的代价值扩大一倍(第七预设值等于第三预设值,为f*0.5),即恢复成原来的值,并更新flag=0,即将代价值已做减法处理的标识去掉,将该当前待扩展节点加入拓展队列中;
1.3.2)判断flag的值是否等于或大于2(预定次数),如果是,则将此节点的代价值扩大一倍,即恢复成原来的值,并更新flag=0,将该当前待扩展节点加入拓展队列中;如果否,即flag=1,则将该当前待扩展节点加入拓展队列中,且保持代价值f为f*0.5不变,并更新flag=2;
1.4)如果该当前待扩展节点已经被某个net占用,且它的flag=0,则将该当前待扩展节点加入拓展队列中,且维持代价值f不变。
(2)假设当前待扩展节点的代价值f小于cost_ave*4(第一预设值为4倍的平均值),且大于或等于cost_ave*2(第四预设值为2倍的平均值),则有以下4种情况:
2.1)如果这个节点还没有被任何net占用,且flag=0,那么就将此节点的代价值减去平均值(第五预设值为cost_ave),即f更新为f-cost_ave,并使用一个标识flag=1来记录该代价值已做1次减法处理,将该当前待扩展节点加入拓展队列中。对于当前net,这样的处理方式可以使得在后续的节点扩展中,这个节点不至于排在较后的扩展位置,最后这个节点被当前net占用的可能性增大了不少。
2.2)如果该当前待扩展节点已经被某个net占用,且它的flag≠0(说明该节点代价值曾经做了减法处理),那么将此节点的代价值增加一个平均值(第六预设值为cost_ave),即恢复成原来的值(因为flag≠0表明代价值已经缩减了cost_ave,再增加cost_ave,相当于恢复成原来的值)。并更新flag=0,即将代价值已做减法处理的标识去掉,将该当前待扩展节点加入拓展队列中;
2.3)如果该当前待扩展节点还没有被任何net占用,且它的flag≠0(说明该节点代价值曾经做了减法处理),则有以下两种处理方式可选:
2.3.1)将此节点的代价值增加cost_ave(第八预设值为cost_ave),即恢复成原来的值,并更新flag=0,即将代价值已做减法处理的标识去掉,将该当前待扩展节点加入拓展队列中;
2.3.2)判断flag的值是否等于或大于2(预定次数),如果是,则将此节点的代价值增加cost_ave,即恢复成原来的值,并更新flag=0,将该当前待扩展节点加入拓展队列中;如果否,即flag=1,则将该当前待扩展节点加入拓展队列中,且保持代价值f为f-cost_ave不变,并更新flag=2;
2.4)如果该当前待扩展节点已经被某个net占用,且它的flag=0,则将该当前待扩展节点加入拓展队列中,且维持代价值f不变。
(3)假设当前待扩展节点的代价值f小于cost_ave*2,则将该当前待扩展节点加入拓展队列中,且维持代价值f不变。
经过至少一次上述迭代后,从拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
从上面的操作流程我们可以看到,对于一个经常发生冲突且代价值较高的点,我们在后续的布线中会尽量让它分配给某一个竞争它的net,而让其他net更大可能的选择其他节点。本实施例对用到某个节点的两个net都进行记忆擦除,而对第三个用到它的net不进行记忆擦除,这样可以优先在两个net间竞争某一个节点,从而该节点被最需要它的net占用。
本发明是在PahFinder的基础上,针对被多个net竞争的节点进行处理。对于某一个net,对待扩展节点的代价值进行有条件的部分擦除,使得该节点在扩展队列中占据优先位置;对于其他的net,对该节点的代价值进行恢复,使得这些节点排在扩展队列中较后位置。这样就达到了减少冲突次数、获取最优路径的效果。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种FPGA布线方法,其特征在于,包括:
搜索可扩展为本级路径节点的各待扩展节点;
读取搜索到的当前待扩展节点的代价值;
将所述代价值与第一预设值比较;
若所述代价值大于或等于所述第一预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;
经过至少一次上述迭代后,从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
2.如权利要求1所述的FPGA布线方法,其特征在于,若所述代价值小于所述第一预设值,则所述经过至少一次上述迭代后,从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用之前,还包括:
将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;
或者,将所述代价值与第四预设值比较,若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉。
3.如权利要求2所述的FPGA布线方法,其特征在于,还包括:
若所述代价值小于第四预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变。
4.如权利要求1至3任一项所述的FPGA布线方法,其特征在于,还包括通过以下方式设定第一预设值:
计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;
将所述平均值或者大于所述平均值的值设定为所述第一预设值。
5.如权利要求4所述的FPGA布线方法,其特征在于,所述第一预设值为:N*所述平均值,N大于1。
6.如权利要求4所述的FPGA布线方法,其特征在于,所述第二预设值和/或第三预设值为所述平均值的一半。
7.一种FPGA布线装置,其特征在于,包括:
搜索模块,用于搜索可扩展为本级路径节点的各待扩展节点;
读取模块,用于读取搜索到的当前待扩展节点的代价值;
第一比较模块,用于将所述代价值与第一预设值比较;
第一判断模块,用于若所述代价值大于或等于所述第一预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块,用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第二预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第三预设值,并将代价值已做减法处理的标识去掉;
查询模块,用于从所述拓展队列中找出代价值最小的待扩展节点,作为本级路径节点进行占用。
8.如权利要求7所述的FPGA布线装置,其特征在于,第一处理模块,还用于若所述代价值小于所述第一预设值,则将所述当前待扩展节点加入拓展队列中,且维持所述代价值不变;
9.如权利要求7所述的FPGA布线装置,其特征在于,第一比较模块还用于将所述代价值与第四预设值比较;
第一判断模块还用于若所述代价值大于或等于第四预设值,则判断所述当前待扩展节点是否被占用,以及是否被标记为已做减法处理;
第一处理模块还用于如果所述当前待扩展节点未被占用,且未被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值减去第五预设值,并标识所述当前待扩展节点的代价值已做减法处理;
如果所述当前待扩展节点已被占用,且被标记为已做减法处理,则将所述当前待扩展节点加入拓展队列中,且调整所述代价值为所述代价值加上第六预设值,并将代价值已做减法处理的标识去掉。
10.如权利要求7至9任一项所述的FPGA布线装置,其特征在于,还包括:
计算模块,用于计算FPGA中最新参与扩展的M个节点的代价值的平均值,M为大于2的正整数;
设定模块,用于将所述平均值或者大于所述平均值的值设定为所述第一预设值。
CN201510465976.0A 2015-07-31 2015-07-31 一种fpga布线方法及装置 Active CN105069216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510465976.0A CN105069216B (zh) 2015-07-31 2015-07-31 一种fpga布线方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510465976.0A CN105069216B (zh) 2015-07-31 2015-07-31 一种fpga布线方法及装置

Publications (2)

Publication Number Publication Date
CN105069216A true CN105069216A (zh) 2015-11-18
CN105069216B CN105069216B (zh) 2018-08-21

Family

ID=54498582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510465976.0A Active CN105069216B (zh) 2015-07-31 2015-07-31 一种fpga布线方法及装置

Country Status (1)

Country Link
CN (1) CN105069216B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678029A (zh) * 2016-03-02 2016-06-15 深圳市同创国芯电子有限公司 一种fpga布线方法及装置
CN106445880A (zh) * 2016-09-06 2017-02-22 北京深维科技有限公司 一种加速布线方法
CN106650047A (zh) * 2016-12-05 2017-05-10 深圳市紫光同创电子有限公司 可编程逻辑器件布局方法及装置
CN108287932A (zh) * 2017-01-10 2018-07-17 上海复旦微电子集团股份有限公司 一种基于解析方法的总体fpga自动化布局方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134171A (ja) * 1997-10-31 1999-05-21 Mitsubishi Heavy Ind Ltd 汎用型特定処理用演算回路装置
CN102609563A (zh) * 2012-01-11 2012-07-25 中国科学院计算技术研究所 Sram型fpga的低功耗设计方法
CN103366029A (zh) * 2012-03-31 2013-10-23 中国科学院微电子研究所 一种现场可编程门阵列芯片布局方法
CN104462726A (zh) * 2014-12-26 2015-03-25 中国电子科技集团公司第四十七研究所 用于反熔丝的现场可编程门阵列的布线方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134171A (ja) * 1997-10-31 1999-05-21 Mitsubishi Heavy Ind Ltd 汎用型特定処理用演算回路装置
CN102609563A (zh) * 2012-01-11 2012-07-25 中国科学院计算技术研究所 Sram型fpga的低功耗设计方法
CN103366029A (zh) * 2012-03-31 2013-10-23 中国科学院微电子研究所 一种现场可编程门阵列芯片布局方法
CN104462726A (zh) * 2014-12-26 2015-03-25 中国电子科技集团公司第四十七研究所 用于反熔丝的现场可编程门阵列的布线方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678029A (zh) * 2016-03-02 2016-06-15 深圳市同创国芯电子有限公司 一种fpga布线方法及装置
CN106445880A (zh) * 2016-09-06 2017-02-22 北京深维科技有限公司 一种加速布线方法
CN106445880B (zh) * 2016-09-06 2019-07-30 京微齐力(北京)科技有限公司 一种加速布线方法
CN106650047A (zh) * 2016-12-05 2017-05-10 深圳市紫光同创电子有限公司 可编程逻辑器件布局方法及装置
CN106650047B (zh) * 2016-12-05 2020-06-30 深圳市紫光同创电子有限公司 可编程逻辑器件布局方法及装置
CN108287932A (zh) * 2017-01-10 2018-07-17 上海复旦微电子集团股份有限公司 一种基于解析方法的总体fpga自动化布局方法
CN108287932B (zh) * 2017-01-10 2021-09-21 上海复旦微电子集团股份有限公司 一种基于解析方法的总体fpga自动化布局方法

Also Published As

Publication number Publication date
CN105069216B (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
Pan et al. FastRoute 2.0: A high-quality and efficient global router
CN105069216A (zh) 一种fpga布线方法及装置
WO2000038228A1 (fr) Appareil et procede de cablage brute et support d'enregistrement conservant un programme de cablage brute
CN103164585B (zh) 缓冲器的插入方法及装置
CN107832519B (zh) 超大规模集成电路中高性能x结构多层总体布线方法
US10460066B1 (en) Routing framework to resolve single-entry constraint violations for integrated circuit designs
Liu et al. Negotiation-based layer assignment for via count and via overflow minimization
CN115081386B (zh) 一种集成电路的布线优化方法、优化装置和相关设备
CN114386356A (zh) 芯片设计的布线方法及装置、设备、存储介质
CN115526140A (zh) 一种考虑先进制程约束和单元移动的全局布线方法
Hu et al. Taming the complexity of coordinated place and route
CN113987995A (zh) 一种布线方案确定方法、装置、电子设备及存储介质
US20080066043A1 (en) Method and system for clock tree generation
CN107369192B (zh) 一种连接关系处理方法及装置
US7856610B2 (en) Method and apparatus for semiconductor integrated circuit
CN112685991B (zh) 一种满足约束的布线方法
CN116090402A (zh) 一种基于聚类算法的全局布线方法、装置和电子设备
Liu et al. High-quality global routing for multiple dynamic supply voltage designs
Wang et al. IR-aware power net routing for multi-voltage mixed-signal design
CN113919277A (zh) 电路设计方法、平台及终端设备
CN113822008A (zh) 基于多引脚同时扩散搜索的超大规模集成电路布线方法
Chen et al. A novel framework for multilevel full-chip gridless routing
US20150220675A1 (en) System and method for routing buffered interconnects in an integrated circuit
CN105302947A (zh) 基于扇圆的多扇出路径的中继器插入方法
JP2006146712A (ja) 半導体集積回路の設計方法と設計装置並びにプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 518057 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park Road eight South South technology Howare Technology Building 16

Applicant after: Shenzhen Pango Microsystems Co., Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park Road eight South South technology Howare Technology Building 16

Applicant before: SHENZHEN PANGO MICROSYSTEMS CO., LTD.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant