CN111709205B - Fpga布线方法 - Google Patents
Fpga布线方法 Download PDFInfo
- Publication number
- CN111709205B CN111709205B CN202010476973.8A CN202010476973A CN111709205B CN 111709205 B CN111709205 B CN 111709205B CN 202010476973 A CN202010476973 A CN 202010476973A CN 111709205 B CN111709205 B CN 111709205B
- Authority
- CN
- China
- Prior art keywords
- wiring
- resource
- priority
- factor
- resources
- 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
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/347—Physical level, e.g. placement or routing
-
- 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]
Abstract
FPGA布线方法,涉及集成电路技术。本发明包括下述步骤:1)检测是否存在目标器件布线模型,若不存在则报告错误,反之则进入下一步;2)解析模型并构造布线资源图;3)初始布线;4)检查布线次数是否已满,如果已满则直接输出布线结果,反之则进入下一步;5)检查是否存在未处理的布线拥挤,若存在则拆线重布,更新拥挤度信息,再次检测是否存在拥挤;若不存在则将布线次数加1并转到步骤4);其特征在于,所述步骤3)包括:(3.1)根据时序分析和布线资源对每条网线进行优先级计算;(3.2)按照优先级顺序对线网进行布线。本发明使得布线工具的效率得到明显提高。
Description
技术领域
本发明涉及集成电路技术。
背景技术
随着FPGA器件逻辑规模的增加和性能需求的增长,布线算法逐渐成为FPGA编译流程中运算时间的瓶颈。在设计配套的支持软件过程中,布线确定了逻辑单元之间的连线,是最为关键的步骤之一,它不仅影响到延时、功耗等方面的性能,也是FPGA支持软件流程中最耗时的步骤。
目前工业界及学术界的布线引擎大多都是基于路径搜索器(pathfinder)算法,主要是在减少布线资源冲突和时序优化两个目标之间寻找一个平衡点。时序关键路径设置较高的权重以便在资源发生冲突的时候优先使用时序关键资源达到时序最优,而时序不关键路径逐渐被推开,以解决拥塞问题。其流程如图1所示,在布线资源结点的基本成本下,对所有线网进行第一次布线,每条连线均以最小延时为目标进行布线,第一次布线结束后若存在布线重用冲突,这时不是只针对有布线冲突的线网进行布线,而是先提升布线资源结点的成本,然后对所有线网再次逐一布线。在迭代过程中,提升布线资源结点的成本就是通过协商机制决定某一布线资源结点分配给哪一个线网最为合适。这样反复地拆线重布电路中的各条线网,直到所有的拥挤度问题得到解决。
现有的pathfinder布线算法虽然能较好地兼顾拥挤度和延时,但是在布线过程中拆线重布次数过多,在多次拆线重布迭代过程中需要消耗大量的内存空间来存储所有的结点信息以及较长的执行时间来生成布线结果,导致布线时间过长,布线工具效率降低。
发明内容
本发明所要解决的技术问题是,针对上述pathfinder布线方法中拆线重布次数过多的问题提出了一种基于网线(源端到漏端)优先级分级的FPGA布线算法,通过计算网线的延时裕量和可用布线资源数确定每条网线的布线优先级顺序,减少布线过程中布线迭代的次数,提高布线工具运行效率。
本发明解决所述技术问题采用的技术方案是,FPGA布线方法,包括下述步骤:
1)检测是否存在目标器件布线模型,若不存在则报告错误,反之则进入下一步;
2)解析模型并构造布线资源图;
3)初始布线;
4)检查布线次数是否已满,如果已满则直接输出布线结果,反之则进入下一步;
5)检查是否存在未处理的布线拥挤,若存在则拆线重布,更新拥挤度信息,
再次检测是否存在拥挤;若不存在则将布线次数加一并转到步骤4);
其特征在于,
所述步骤3)包括:
(3.1)根据时序分析和布线资源对每条网线进行优先级计算;
(3.2)按照优先级顺序对线网进行布线。
所述步骤(3.1)包括:
(a)对于n条网线的集合S={s0,s1,…,si,…,sn-1},通过时序分析获得每条网线的延时裕量T={t0,t1,…,ti,…,tn-1},ti为网线si的延时裕量;
通过布线资源分析获得每条网线的资源数R={r0,r1,…,ri,…,rn-1},其中ri=rin+rout表示网线si的资源数;rin为输入资源数,表示其它模块到该漏端的路径数;rout为输出资源数,表示源端通过配对的布线资源模块的可到其它模块的路径数;
根据T和R计算网线延时余量因子T′={t0′,t1′,…,ti′,…,t′n-1}和布线资源因子R′={r0′,r1′,…,ri′,…,r′n-1};
(b)计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,gi值越小,优先级越高;G与延时余量因子T′和布线资源因子R′相关,其计算公式如下:
其中,Wt和Wr为预设的权重常数。
本发明对每条网线进行了优先级计算,按照优先级顺序依次布线,使得优先级越高的网线越先布线(优先级越高优先选择的资源的权利越大),大大减少了布线过程中拆线重布的次数,减少了布线迭代次数,最终使得布线工具的效率得到明显提高。
附图说明
图1是现有技术的流程图。
图2是本发明的流程图。
图3是实施例的示意图。
图4是实施例的开关盒内部结构示意图。
具体实施方式
本发明的发明点如下:
·采用优先级计算方式,结合时序分析和布线资源分析结果;
·按照优先级顺序对每条网线进行布线,以保证优先级最高的网线采用延时最短的路径最先开始布线,低优先级网线不占用高优先级线网资源,从而减少布线过程中的布线迭代次数。
·布线成本与网线优先级挂钩。
本发明的布线系统模块按功能可以分为四个模块,时序分析模块、布线资源分析模块、布线资源解析器和布线器。时序分析模块负责时序分析获得每条网线的延时裕量;布线资源分析模块负责布线资源分析获得每条网线的资源数;布线资源解析器负责解析布线资源模型,生成布线资源图;布线器利用布线资源图,结合合时序分析模块和布线资源分析模块得到的网线延时裕量和资源数级计算网线优先级顺序并依次布线,负责布线过程中的拥塞处理、成本更新和布线迭代。
本发明的布线算法的总体流程图如图2所示,其步骤如下:
1、检测是否存在目标器件布线模型,若不存在则报告错误,反之则进入下一步;
2、解析模型并构造布线资源图;
3、根据时序分析和布线资源对每条网线进行优先级计算;
4、按照优先级顺序对线网进行布线;
5、检查布线次数是否已满,如果已满则直接输出布线结果,反之则进入下一步;
6、检查是否存在未处理的布线拥挤,若存在则拆线重布,更新拥挤度信息,再次检测是否存在拥挤;若不存在转到5)。
其中,步骤3需要根据静态时序分析结果和布线资源分析,计算每个网线的优先级,具体实施:
设n条网线集合为S={s0,s1,…,si,…,sn-1},通过时序分析获得每条网线的延时裕量T={t0,t1,…,ti,…,tn-1},ti为网线si的延时裕量。通过布线资源分析获得每条网线的资源数R={r0,r1,…,ri,…,rn-1},ri=rin+rout为网线si的资源数。其中,rin输入资源数,表示其它模块到该漏端的路径数。rout为输出资源数,表示源端通过配对的布线资源模块的可到其它模块的路径数。
两个确定端点(起点到终点)之间的路线,即为需要布设的网线。例如图3,逻辑块L0的O0点到逻辑块L5的I1点,之间的路径即为一条网线。上述参数S、T的确定系现有技术,故不赘述。
图3为逻辑块通过开关盒互联示意图。其中L0-L5是功能逻辑块,M0-M5是开关盒。编号相同的是同一组。
图4为开关盒的内部结构。由于开关盒M的I0和I2端口连接对应逻辑块L的输出接口,因此计算通过开关盒输出端口的资源数时不应包含I0和I2。同理,M的O1端口连接到对应L的输入端口,因此计算源端通过开关盒M的输入端口的资源数时,不应包含O1。需要统计的M的端口都应该与L有之间关联,即I0,I2和O1,其资源数如下:
I0:2(I0-O0、I0-O2)
I2:1(I2-O2)
O1:2(I1-O1、I3-O1)
举例:线网L2的O0端口需要连接到L4的I1端口。
L2的O0连接M2的I0,故其资源数rout为2;L4的I1端口由M4的O1端口输入,因此资源数rin为2;总资源数为4(2+2)。
根据T和R计算网线延时余量因子T′={t0′,t1′,…,t′i,…,t′n-1}和布线资源因子R′={r0′,r1′,…,r′i,…,r′n-1}。
计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,G与延时余量因子T′和布线资源因子R′相关,其计算公式如下
其中,Wt和Wr为权重常数,可根据具体情况进行设定;G为优先级判断标准,G值越小,优先级越高。当ti′=0时,线网的延时裕量为0,将线网优先级标准置零。
其中,步骤4根据网线优先级进行布线,与现行布线策略的不同在于优先级越高越先进行布线(优先级越高优先选择的资源的权利越大)。按照gi值从小到大进行布线。
网线si使用布线资源结点m的布线成本可定义为
cost(m,i)=gi*delayElmore+ti′*b(m)*p(m)*h(m)
其中,delayElmore为延时项,b(m)、p(m)、h(m)分别代表了结点的基本成本、当前拥挤度成本和历史拥挤度成本(按照常规方法进行计算,具体解释如下)。
为了节省CPU运行时间,让逻辑单元块输入引脚和漏端的基本成本值b(m)都小于1。不管长度如何,将互连线段的成本设为1所得到的电路速度最快,这是因为它倾向于尽可能使用最少的布线资源。p(m)为当前拥挤度,只要一根网线被拆线重布时,就要更新当前拥挤度惩罚因子,可表示为
p(m)=1+max(0,[occupancy(m)+1-capacity(m)]pfac)
其中,occupancy(m)是当前使用布线资源m的线网数目,capacity(m)是有效使用结点m的最大线网数。只有在完成一次完整的布线迭代后,才会更新历史拥挤度惩罚因子。第i次布线迭代时其值为
每一次布线迭代时hfac和pfac就定义了所谓的布线策略,hfac可保持为一个常数,通常在0.2-1之间的任意取值所得到的效果都差不多。pfac初始值应当较小,这样对拥挤度的惩罚就小,然后在迭代过程中慢慢增大惩罚力度。
针对布线资源分析模块可进一步优化,在计算网线的资源数时,端口的资源数与具体器件和端口所在位置相关,故可以针对一个具体器件计算出其每个端口的资源数并进行存储。无论用户设计如何变化,只有其端口位置与器件具体位置相对应即可查表寻值,提高优先级计算速度。存储表设计应包括:端口名,作为输入端口时可用资源数/资源因子,作为输出端口时可用资源数/资源因子,作为输入输出端口时可用资源数/资源因子。此外,端口的可用资源数不仅可以简单的计算成通往其它资源的路径数,也可对路径进行分类处理,增加分类计算因子,从而减少计算网线可用布线资源数的时间。
Claims (1)
1.FPGA布线方法,包括下述步骤:
1)检测是否存在目标器件布线模型,若不存在则报告错误,反之则进入下一步;
2)解析模型并构造布线资源图;
3)初始布线;
4)检查布线次数是否已满,如果已满则直接输出布线结果,反之则进入下一步;
5)检查是否存在未处理的布线拥挤,若存在则拆线重布,更新拥挤度信息,再次检测是否存在拥挤;若不存在则将布线次数加1并转到步骤4);
其特征在于,
所述步骤3)包括:
(3.1)根据时序分析和布线资源对每条网线进行优先级计算;
(3.2)按照优先级顺序对线网进行布线;
所述步骤(3.1)包括:
(a)对于n条网线的集合S={s0,s1,…,si,…,sn-1},通过时序分析获得每条网线的延时裕量T={t0,t1,…,ti,…,tn-1},ti为网线si的延时裕量;
通过布线资源分析获得每条网线的资源数R={r0,r1,…,ri,…,rn-1},其中ri=rin+rout表示网线si的资源数;rin为输入资源数,表示其它模块到漏端的路径数;rout为输出资源数,表示源端通过配对的布线资源模块的可到其它模块的路径数;
根据T和R计算网线延时余量因子T′={t′0,t′1,…,t′i,…,t′n-1}和布线资源因子R′={r′0,r′1,…,r′i,…,r′n-1};
(b)计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,gi值越小,优先级越高;G与延时余量因子T′和布线资源因子R′相关,其计算公式如下:
其中,Wt和Wr为预设的权重常数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476973.8A CN111709205B (zh) | 2020-05-29 | 2020-05-29 | Fpga布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476973.8A CN111709205B (zh) | 2020-05-29 | 2020-05-29 | Fpga布线方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709205A CN111709205A (zh) | 2020-09-25 |
CN111709205B true CN111709205B (zh) | 2023-05-16 |
Family
ID=72538922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010476973.8A Active CN111709205B (zh) | 2020-05-29 | 2020-05-29 | Fpga布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709205B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149378A (zh) * | 2020-11-04 | 2020-12-29 | 深圳华大九天科技有限公司 | 一种基于拥塞协商的拆线重布方法、设备及可读存储介质 |
CN112651208A (zh) * | 2020-12-30 | 2021-04-13 | 杭州加速科技有限公司 | 一种fpga芯片内各模块之间的布线拥塞优化方法 |
CN113468839B (zh) * | 2021-09-01 | 2021-11-30 | 中科亿海微电子科技(苏州)有限公司 | 一种提高时序性能的布线方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043213A (zh) * | 2007-03-15 | 2007-09-26 | 复旦大学 | 一种现场可编程逻辑阵列布线资源结构及其建模方法 |
CN102768692A (zh) * | 2011-05-06 | 2012-11-07 | 中国科学院微电子研究所 | 应用于fpga测试的导航布局布线方法 |
CN111159967A (zh) * | 2019-12-27 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于网页排名算法的fpga电路布局与资源分配方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3068492B2 (ja) * | 1997-04-21 | 2000-07-24 | 日本電気アイシーマイコンシステム株式会社 | 自動配置配線方法 |
JP4037944B2 (ja) * | 1998-01-13 | 2008-01-23 | 松下電器産業株式会社 | 配線経路決定方法および遅延推定方法 |
JPH11312739A (ja) * | 1998-04-30 | 1999-11-09 | Nec Corp | 自動配線方法及び自動配線装置並びに自動配線プログラムを記録したコンピュータ読取可能な記録媒体 |
US8042083B2 (en) * | 2008-06-02 | 2011-10-18 | The Chinese University Of Hong Kong | Methods and systems for FPGA rewiring |
CN102375902B (zh) * | 2010-08-20 | 2013-01-30 | 雅格罗技(北京)科技有限公司 | 异构现场可编程门阵列的布局方法 |
CN103136386B (zh) * | 2011-11-25 | 2015-05-20 | 中国科学院微电子研究所 | Fpga芯片布线方法 |
CN104683428B (zh) * | 2013-11-26 | 2019-02-19 | 华为技术有限公司 | 网络业务处理方法与装置 |
CN103886137B (zh) * | 2014-03-03 | 2017-02-08 | 西安电子科技大学 | 一种实现现场可编程门阵列快速布局布线的方法 |
CN110313002B (zh) * | 2015-12-28 | 2023-02-24 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
US10691797B2 (en) * | 2016-04-21 | 2020-06-23 | Big Stream Solutions, Inc. | Systems and methods for compiler guided secure resource sharing |
CN107967372B (zh) * | 2016-10-20 | 2021-05-28 | 上海复旦微电子集团股份有限公司 | 一种fpga总体布局合法化方法 |
CN106682306B (zh) * | 2016-12-26 | 2020-07-07 | 西安电子科技大学 | 一种快速fpga布线方法 |
CN109710981B (zh) * | 2018-02-27 | 2021-02-02 | 上海安路信息科技有限公司 | Fpga的布线方法及系统 |
CN109543217B (zh) * | 2018-10-16 | 2023-05-02 | 成都华微电子科技股份有限公司 | 串行等效的fpga并行布局方法 |
CN110705204B (zh) * | 2019-09-27 | 2023-03-24 | 福州大学 | 基于多阶段策略的时序感知层分配方法 |
CN111177989B (zh) * | 2019-12-27 | 2023-03-24 | 广东高云半导体科技股份有限公司 | 以布线结果为导向的布局布线控制方法及装置、系统 |
-
2020
- 2020-05-29 CN CN202010476973.8A patent/CN111709205B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043213A (zh) * | 2007-03-15 | 2007-09-26 | 复旦大学 | 一种现场可编程逻辑阵列布线资源结构及其建模方法 |
CN102768692A (zh) * | 2011-05-06 | 2012-11-07 | 中国科学院微电子研究所 | 应用于fpga测试的导航布局布线方法 |
CN111159967A (zh) * | 2019-12-27 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于网页排名算法的fpga电路布局与资源分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111709205A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709205B (zh) | Fpga布线方法 | |
US9054977B2 (en) | Automatic NoC topology generation | |
CN109710981B (zh) | Fpga的布线方法及系统 | |
Trik et al. | A hybrid selection strategy based on traffic analysis for improving performance in networks on chip | |
Hu et al. | Energy-and performance-aware mapping for regular NoC architectures | |
US8601423B1 (en) | Asymmetric mesh NoC topologies | |
WO2021253684A1 (zh) | 基于拓扑优化和启发式搜索的总体布线方法 | |
US8782591B1 (en) | Physically aware logic synthesis of integrated circuit designs | |
CN106682306B (zh) | 一种快速fpga布线方法 | |
US11329690B2 (en) | Network-on-Chip topology generation | |
US8181139B1 (en) | Multi-priority placement for configuring programmable logic devices | |
CN115983187A (zh) | 基于多策略的考虑总线偏差的层分配方法 | |
CN115099177A (zh) | Fpga的时序优化方法和系统 | |
CN112257368A (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
JPWO2005098612A1 (ja) | 重要成分優先計算方式ならびに装置 | |
CN114297959A (zh) | 通过裂分线网以提高布线效率的fpga布线方法 | |
CN113822008B (zh) | 基于多引脚同时扩散搜索的超大规模集成电路布线方法 | |
Zhu et al. | Minideviation: an efficient multi-stage bus-aware global router | |
CN112131813B (zh) | 基于端口交换技术的用于提升布线速度的fpga布线方法 | |
CN109800468B (zh) | 一种基于寄存器重定时的多流水级时序电路装箱操作方法 | |
CN105302947A (zh) | 基于扇圆的多扇出路径的中继器插入方法 | |
Tino et al. | Power and performance tabu search based multicore network-on-chip design | |
Zhang et al. | Predicted congestion using a density-based fast neural network algorithm in global routing | |
CN112183006A (zh) | 时延评估方法及装置、可读存储介质 | |
CN113919273A (zh) | 一种减少布线图占用内存的fpga布线方法 |
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 | ||
CB02 | Change of applicant information |
Address after: No. 2201 and 2301, Floor 22-23, Building 1, No. 1800, Middle Section, Yizhou Avenue, Chengdu High-tech Zone, China (Sichuan) Free Trade Pilot Zone, Chengdu, Sichuan 610000 Applicant after: Chengdu Hua Microelectronics Technology Co.,Ltd. Address before: 610000 22 / F, building 1, No. 1800, middle section of Yizhou Avenue, hi tech Zone, Chengdu City, Sichuan Province Applicant before: CHENGDU SINO MICROELECTRONICS TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |