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

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

Info

Publication number
CN111062180B
CN111062180B CN201911084556.2A CN201911084556A CN111062180B CN 111062180 B CN111062180 B CN 111062180B CN 201911084556 A CN201911084556 A CN 201911084556A CN 111062180 B CN111062180 B CN 111062180B
Authority
CN
China
Prior art keywords
node
wiring
end point
module
starting
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
Application number
CN201911084556.2A
Other languages
English (en)
Other versions
CN111062180A (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 CN201911084556.2A priority Critical patent/CN111062180B/zh
Publication of CN111062180A publication Critical patent/CN111062180A/zh
Application granted granted Critical
Publication of CN111062180B publication Critical patent/CN111062180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明提供一种FPGA布线方法及装置,通过确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合,将一个终点集合作为一个逻辑终点,建立起始节点到各终点集合的布线路径,再将终点集合内的各终点节点连接到该布线路径上,这种布线方式避免针对每一个终点都要建立一条布线路径,使得在尽量少的节点遍历过程中完成布线,提高布线资源的使用效率,从而减小布线冲突,提高布线速度并降低内存开销。

Description

一种FPGA布线方法及装置
技术领域
本发明涉及现场可编程门阵列(FPGA)技术领域,尤其涉及一种FPGA布线方法及装置。
背景技术
随着电子技术的飞速发展,数字电路的设计脚步也逐渐加快,FPGA的问世使得数字电路的设计变得简单快速。随着应用场景和市场需求的多样化,数字电路的设计规模不断扩大,FPGA设计软件的逻辑处理能力受到挑战,运行时间和内存开销的控制成为了一个重要的课题。
目前布线算法中比较通用的是A*算法,这是一种以代价值函数驱动的图搜索算法。A*算法的基本公式为:
f(n)=g(n)+h(n)
其中,n为中间节点,g(n)为从起始节点到节点n的实际代价值,h(n)为从节点n到终点节点的预估代价值。
A*算法在布线过程的总运行时间和内存均与搜索节点的数目有关,搜索的节点数目越多,所需时间越长,占用内存也越大。
在A*布线算法中,对一个net而言,其各终点的布线过程是相互独立的,代价值驱动的算法使得各个终点在布线过程中趋向各自不同的最优解,因此,针对每个终点都要建立一条从起点到终点的路径进行布线。这就导致在大规模、复杂的电路设计中,布线过程会花费大量的运算时间,并且可能产生严重的布线路径冲突,解决这些冲突同样将花费大量的运行时间和内存。
发明内容
本发明提供一种FPGA布线方法及装置,解决现有大规模电路设计中布线运行时间长和内存消耗较大的问题。
为解决上述技术问题,本发明提供了一种FPGA布线方法,包括:
确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合;
将一个终点集合作为一个逻辑终点,建立所述起始节点到各所述逻辑终点的布线路径;
将所述终点集合内的各终点节点连接到所述布线路径上。
可选地,所述将起始节点对应的各终点节点划分为至少一个终点集合包括:
获取每一个终点节点的坐标值;
根据所述坐标值将所述终点节点划分为至少一个集合;
或者,
将具有至少一个共用中间节点的终点节点划分到一个集合中。
可选地,所述建立所述起始节点到各所述终点集合的布线路径包括:
确定各终点集合对应的中间节点;
对所述起始节点到各所述中间节点进行布线。
可选地,所述确定各终点集合对应的中间节点包括:
利用布线算法分别计算出所述起始节点到各终点集合的多个布线路径的代价值;
确定最小代价值所对应的节点为该终点集合的中间节点。
可选地,所述建立所述起始节点到各所述终点集合的布线路径之后还包括:
当所述起始节点到各所述终点集合的布线路径存在相同的布线路径时,将所述相同的布线路径对应的终点集合合并成一个集合。
本发明还提供了一种FPGA布线装置,包括:
确定模块,用于确定作为布线起点的起始节点;
集合划分模块,用于将起始节点对应的各终点节点划分为至少一个终点集合;
布线模块,用于将一个终点集合作为一个逻辑终点,建立所述起始节点到各所述逻辑终点的布线路径;还用于将所述终点集合内的各终点节点连接到所述布线路径上。
可选地,所述集合划分模块具体用于获取每一个终点节点的坐标值,根据所述坐标值将所述终点节点划分为至少一个集合;或者,所述集合划分模块具体还用于将具有至少一个共用中间节点的终点节点划分到一个集合中。
可选地,所述确定模块还用于确定各终点集合对应的中间节点;所述布线模块用于对所述起始节点到各所述中间节点进行布线。
可选地,所述确定模块还包括:
计算模块,用于利用布线算法分别计算出所述起始节点到各终点集合的多个布线路径的代价值,则确定最小代价值所对应的节点为该终点集合的中间节点。
可选地,FPGA布线装置还包括:
集合合并模块,用于当所述起始节点到各所述终点集合的布线路径存在相同的布线路径时,将所述相同的布线路径对应的终点集合合并成一个集合。
有益效果
本发明针对现有技术大规模电路设计中布线运行时间长和内存消耗较大的问题,提供了一种FPGA布线方法及装置,通过确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合,将一个终点集合作为一个逻辑终点,建立起始节点到各终点集合的布线路径,再将终点集合内的各终点节点连接到该布线路径上,这种布线方式避免针对每一个终点都要建立一条布线路径,使得在尽量少的节点遍历过程中完成布线,提高布线资源的使用效率,从而减小布线冲突,提高布线速度并降低内存开销。
附图说明
图1为现有FPGA布线逻辑示意图;
图2为本发明实施例一提供的FPGA布线逻辑示意图;
图3为本发明实施例一提供的FPGA布线方法的基本流程图;
图4为本发明实施例一提供的FPGA布线方法的集合划分的示意图;
图5为本发明实施例一提供的FPGA布线方法的集合合并的示意图;
图6为本发明实施例一提供的FPGA布线方法的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
为了减少现有大规模电路设计中布线运行时长和内存的消耗,本发明提供了一种FPGA布线方法。
参见图1所示,图1为现有FPGA中一条net的布线逻辑示意图。该net有8个终点(实际可能多达几千个),需要分别从起点D布8条路径到对应的终点,同时这8条布线路径需要与其他net的布线路径竞争布线资源。这种布线方式在在大规模、复杂的电路设计中,会花费大量的运算时间,并且可能产生严重的布线路径冲突,同时为了解决这些冲突也将花费大量的运行时间和内存。
本实施例中,为了解决现有技术大规模电路设计中布线运行时间长和内存消耗较大的问题,对FPGA中的布线方法进行了优化。优化后的布线逻辑示意图参见图2,将该net的终点按照特定规则划分为3个集合,布线时从起点D布三条路径到三个终点集合附近,再分别处理从中间节点到终点之间的短距离布线,这样可以节省布线资源,减少布线冲突,从而缩短布线时间。
本实施例中,FPGA布线方法的具体流程参见图3:
S301、确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合。
应当理解的是,FPGA为一种可编程的器件,可以根据实现的功能来选择布线资源,也就是说,不同功能的实现其布线起点可能是不同的,因此,要确定好布线起点,将该布线起点则为起始节点。
本实施例中,将布线过程中起始节点对应的各终点节点划分为至少一个终点集合的方法包括但不限于根据终点节点的坐标来划分终点集合或者将具有至少一个共用中间节点的终点节点划分到一个终点集合中。
本实施例中,以根据终点节点的坐标来划分终点集合作为示例,对终点集合的划分做进一步详细说明。
参见图4,图4为终点集合划分的示意图。布线起点确定后,获取布线起点对应的各终点节点的坐标,根据坐标将在FPGA中位置临近的终点节点划分到一个终点集合中,如图所示,将布线起点对应的各终点节点划分为了5个集合。
需要说明的是,判断位置临近的终点节点可以为判断各相邻终点节点间的距离是否大于预设阈值,具体的,根据坐标计算出各相邻节点间的距离,判断该距离是否大于预设阈值,若小于等于预设阈值,则将对应的终点节点划分到一个终点集合中;还可以为将相对布线起点一定角度内的终点节点与布线起点之间的距离小于等于预设阈值的终点节点划分到一个终点集合中。
应当理解的是,根据终点节点的坐标划分好终点集合后,可能存在终点集合内的终点节点与确定的中间节点没有对应的布线资源,因此,本实施例中还可以将具有至少一个共用中间节点的终点节点划分到一个终点集合中,方便后续工作的进行。
S302、将一个终点集合作为一个逻辑终点,建立起始节点到各逻辑终点的布线路径。
本实施例中,将各终点节点划分为至少一个终点集合,可以将每一个终点集合看作与起始节点对应的一个逻辑终点,则FPGA布线过程相当于对起始节点到各逻辑终点进行布线。建立的这条起始节点到逻辑终点的布线路径为起始节点到对应终点集合内各终点节点的共用路径。
本实施例中,建立起始节点到各逻辑终点的布线路径具体为确定各终点集合对应的各中间节点,对起始节点到各中间节点进行布线。
本实施例中,采用的布线算法为A*算法,这是一种以代价值函数驱动的图搜索算法,因此基于A*算法的布线器可以根据代价值函数灵活选择最优的路径。
需要说明的是,起始节点到一个逻辑终点可能存在多条路径,利用A*算法算出每条路径相应的代价值,选择代价值最小的确定为该逻辑终点的中间节点,即该中间节点为该逻辑终点对应的终点集合的中间节点。本实施例中,要分别计算出各终点集合对应的中间节点。
本实施例中,各终点集合对应的中间节点确定好后,将起始节点和所有的中间节点组成一个新的net,这些中间节点是这个新net的终点。可以认为这个net是原始net的主干,称之为主干net。
需要说明的是,起始节点到各逻辑终点的布线路径建立好之后,可能存在布线路径相同的情况,这时候,可以将相同布线路径对应的终点集合合并成为一个集合。具体的,参见图5,将终点节点划分为三个终点集合,分别为终点集合1、终点集合2以及终点集合3,将每一个终点集合分别作为一个逻辑终点,根据A*算法确定出每一个终点集合对应的中间节点,终点集合1对应的中间节点为节点B,终点集合2对应的中间节点为中间节点B,终点集合3对应的中间节点为中间节点C,中间节点确定好后,对起始节点A到中间节点B和起始节点A到中间节点C分别进行布线,由此可知,起始节点A到终点集合1以及起始节点A到终点集合2的布线路径相同,因此将终点集合1和终点集合2合并成为一个集合。
S303、将终点集合内的各终点节点连接到布线路径上。
本实施例中,起始节点到中间节点的布线路径建好后,对中间节点到与之对应的终点集合内的各终点节点进行布线。中间节点到各中间节点的布线也遵循A*算法。
本实施例中,对每一个终点集合,使用对应的中间节点作为起点构造一个新net,称之为子net。
需要说明的是,主干net和各子net均作为一个独立的net进行布线,将这些布线路径拼接即得到原始net的完整布线结果。具体参见图6,图6为FPGA布线方法的完整布线路径示意图。
图6中,原始的net被划分为一个终点节点数目较少的主干net和多个小范围的子net。中间节点H、C、K三个节点同时作为主干net的终点和三个子net的起点;对拆分后的主干net和子net分别进行布线,得到对应的布线结果。如图所示,每一个方框都表示布线过程中的一个独立net布线结果;布线完成后,对属于同一个原始net的主干net和子net,将其布线结果进行拼接,得到原始net的完整布线结果。
本发明提供了一种FPGA布线方法,通过确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合,将一个终点集合作为一个逻辑终点,建立起始节点到各终点集合的布线路径,再将终点集合内的各终点节点连接到该布线路径上,这种布线方式避免针对每一个终点都要建立一条布线路径,使得在尽量少的节点遍历过程中完成布线,提高布线资源的使用效率,从而减小布线冲突,提高布线速度并降低内存开销。
实施例二:
本实施例还提供了一种FPGA布线装置,该装置用于实现如上述实施例的FPGA布线方法至少一个步骤。
该FPGA布线装置包括确定模块、集合划分模块以及布线模块,其中,确定模块用于确定作为布线起点的起始节点,集合划分模块用于将起始节点对应的各终点节点划分为至少一个终点集合,布线模块用于将一个终点集合作为一个逻辑终点,建立起始节点到各逻辑终点的布线路径以及将终点集合内的各终点节点连接到该布线路径上。
可选的,本实施例中,集合划分模块可以用于获取每一个终点节点的坐标,根据坐标将终点节点划分为至少一个集合;还可以用于将具有至少一个共用中间节点的终点节点划分到一个集合中。
可选的,本实施例中,确定模块还用于确定各终点集合对应的中间节点;布线模块用于对起始节点到各所述中间节点进行布线。
可选的,本实施例中,确定模块还包括计算模块,用于利用布线算法分别计算出起始节点到各终点集合的多个布线路径的代价值,则确定最小代价值所对应的节点为该终点集合的中间节点。
需要说明的是,布线算法为A*算法,基于A*算法的布线器可以根据代价值函数灵活选择最优的路径。
可选的,FPGA布线装置还包括集合合并模块,用于当起始节点到各终点集合的布线路径存在相同的布线路径时,将相同的布线路径对应的终点集合合并成一个集合。
本发明提供了一种FPGA布线装置,该装置通过确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合,将一个终点集合作为一个逻辑终点,建立起始节点到各终点集合的布线路径,再将终点集合内的各终点节点连接到该布线路径上,这种布线方式避免针对每一个终点都要建立一条布线路径,使得在尽量少的节点遍历过程中完成布线,提高布线资源的使用效率,从而减小布线冲突,提高布线速度并降低内存开销。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (6)

1.一种FPGA布线方法,其特征在于,包括:
确定作为布线起点的起始节点,将起始节点对应的各终点节点划分为至少一个终点集合;
将一个终点集合作为一个逻辑终点,建立所述起始节点到各所述逻辑终点的布线路径;所述建立所述起始节点到各所述逻辑终点的布线路径包括:确定各终点集合对应的各中间节点;对所述起始节点到各所述中间节点进行布线;所述确定各终点集合对应的中间节点包括:利用布线算法分别计算出所述起始节点到各终点集合的多个布线路径的代价值;确定最小代价值所对应的节点为该终点集合的中间节点;
将所述终点集合内的各终点节点连接到所述布线路径上。
2.如权利要求1所述的FPGA布线方法,其特征在于,所述将起始节点对应的各终点节点划分为至少一个终点集合包括:
获取每一个终点节点的坐标;
根据所述坐标将所述终点节点划分为至少一个集合;
或者,
将具有至少一个共用中间节点的终点节点划分到一个终点集合中。
3.如权利要求1所述的FPGA布线方法,其特征在于,所述建立所述起始节点到各所述逻辑终点的布线路径之后还包括:
当所述起始节点到各所述终点集合的布线路径存在相同的布线路径时,将所述相同的布线路径对应的终点集合合并成一个集合。
4.一种FPGA布线装置,其特征在于,包括确定模块、集合划分模块以及布线模块;
确定模块,用于确定作为布线起点的起始节点;
集合划分模块,用于将起始节点对应的各终点节点划分为至少一个终点集合;
布线模块,用于将一个终点集合作为一个逻辑终点,建立所述起始节点到各所述逻辑终点的布线路径;还用于将所述终点集合内的各终点节点连接到所述布线路径上;
所述确定模块还用于确定各终点集合对应的中间节点;所述布线模块用于对所述起始节点到各所述中间节点进行布线;
所述确定模块还包括:计算模块,用于利用布线算法分别计算出所述起始节点到各终点集合的多个布线路径的代价值,则确定最小代价值所对应的节点为该终点集合的中间节点。
5.如权利要求4所述的FPGA布线装置,其特征在于,所述集合划分模块具体用于获取每一个终点节点的坐标,根据所述坐标将所述终点节点划分为至少一个集合;或者,所述集合划分模块具体还用于将具有至少一个共用中间节点的终点节点划分到一个集合中。
6.如权利要求4所述的FPGA布线装置,其特征在于,还包括:
集合合并模块,用于当所述起始节点到各所述终点集合的布线路径存在相同的布线路径时,将所述相同的布线路径对应的终点集合合并成一个集合。
CN201911084556.2A 2019-11-08 2019-11-08 一种fpga布线方法及装置 Active CN111062180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911084556.2A CN111062180B (zh) 2019-11-08 2019-11-08 一种fpga布线方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911084556.2A CN111062180B (zh) 2019-11-08 2019-11-08 一种fpga布线方法及装置

Publications (2)

Publication Number Publication Date
CN111062180A CN111062180A (zh) 2020-04-24
CN111062180B true CN111062180B (zh) 2023-07-18

Family

ID=70298521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911084556.2A Active CN111062180B (zh) 2019-11-08 2019-11-08 一种fpga布线方法及装置

Country Status (1)

Country Link
CN (1) CN111062180B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115203485B (zh) * 2022-07-21 2023-07-18 北京芯思维科技有限公司 图数据的处理方法、装置、电子设备及计算机可读介质
CN118133765A (zh) * 2024-02-26 2024-06-04 苏州异格技术有限公司 芯片布线方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0850608A (ja) * 1994-08-05 1996-02-20 Nec Corp 配線経路表示方法
CN108846174A (zh) * 2018-05-29 2018-11-20 珠海格力电器股份有限公司 布线方法、装置、计算机设备和存储介质
CN109710998A (zh) * 2018-02-27 2019-05-03 上海安路信息科技有限公司 内存优化型静态时序分析方法及其系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06283603A (ja) * 1993-03-29 1994-10-07 Mitsubishi Electric Corp 配線装置及び配線方法
JP2000082082A (ja) * 1998-09-04 2000-03-21 Hitachi Plant Eng & Constr Co Ltd 配線トレイネットワーク表示装置
JP4532893B2 (ja) * 2003-12-15 2010-08-25 キヤノン株式会社 電気配線と光接続を有する回路の設計装置
US7263678B2 (en) * 2005-03-15 2007-08-28 Lsi Corporation Method of identifying floorplan problems in an integrated circuit layout
CN101980216B (zh) * 2010-10-18 2012-11-28 清华大学 基于网块的快速多层布线方法
CN102054110A (zh) * 2011-01-27 2011-05-11 复旦大学 Fpga可编程逻辑块通用装箱方法
CN103246554A (zh) * 2013-04-10 2013-08-14 上海安路信息科技有限公司 基于图形处理单元的布线方法及其系统
US9047434B2 (en) * 2013-07-24 2015-06-02 Mentor Graphics Corporation Clustering for processing of circuit design data
CN104616207B (zh) * 2015-01-27 2018-01-09 中国科学院计算机网络信息中心 电网拓扑可视化系统和方法
CN105205205B (zh) * 2015-08-18 2018-08-28 北京大学 基于网表位置信息最优划分的fpga粗粒度并行布线方法
CN105808856B (zh) * 2016-03-09 2019-03-22 中车青岛四方机车车辆股份有限公司 电气设备布线信息的显示方法和装置
CN106096118B (zh) * 2016-06-06 2018-12-25 厦门大学 用于机电集成产品中基于橡皮筋的三维电路自动布线方法
CN106527448B (zh) * 2016-12-16 2019-05-31 浙江工业大学 适用于仓库环境的改进a*机器人最优路径规划方法
CN106682306B (zh) * 2016-12-26 2020-07-07 西安电子科技大学 一种快速fpga布线方法
CN109710981B (zh) * 2018-02-27 2021-02-02 上海安路信息科技有限公司 Fpga的布线方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0850608A (ja) * 1994-08-05 1996-02-20 Nec Corp 配線経路表示方法
CN109710998A (zh) * 2018-02-27 2019-05-03 上海安路信息科技有限公司 内存优化型静态时序分析方法及其系统
CN108846174A (zh) * 2018-05-29 2018-11-20 珠海格力电器股份有限公司 布线方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN111062180A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN109451540B (zh) 一种网络切片的资源分配方法和设备
CN111062180B (zh) 一种fpga布线方法及装置
CN106339350B (zh) 众核处理器片上访存距离优化的方法及其装置
CN113919272A (zh) 利用空置逻辑资源来提升布线效率的fpga布线方法
US6766504B1 (en) Interconnect routing using logic levels
CN114386356A (zh) 芯片设计的布线方法及装置、设备、存储介质
CN111709205A (zh) Fpga布线方法
CN116822422A (zh) 数字逻辑电路的分析优化方法及相关设备
CN114297959A (zh) 通过裂分线网以提高布线效率的fpga布线方法
CN114239451A (zh) 一种电源开关单元的连接关系优化方法和装置
EP3910522A1 (en) Methods and computer readable media for synthesis of a network-on-chip for deadlock-free transformation
JPH09293086A (ja) 自動配線方法
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
CN114154455A (zh) 可编程器件的布线方法、装置、电子设备及存储介质
KR20010024944A (ko) 전자 소자 및 장치의 설계 및 제조 방법
Vansteenkiste et al. A connection router for the dynamic reconfiguration of FPGAs
JP5590725B2 (ja) 配線経路作成プログラム及び配線経路作成方法
CN112183006A (zh) 时延评估方法及装置、可读存储介质
CN111309265A (zh) 基于神经网络的节点存储方法、系统、服务器及存储介质
Liu et al. Multilayer pin assignment for macro cell circuits
US9009646B1 (en) Finding I/O placement with a router
CN115293083B (zh) 集成电路时序预测方法、装置、电子设备及存储介质
CN113806270B (zh) RapidIO网络的路径规划方法、装置、电子设备及存储介质
CN112957734B (zh) 一种基于二次搜索的地图寻路方法及装置
CN117155848A (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