CN111709205B - Fpga布线方法 - Google Patents

Fpga布线方法 Download PDF

Info

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
Application number
CN202010476973.8A
Other languages
English (en)
Other versions
CN111709205A (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.)
Chengdu Hua Microelectronics Technology Co ltd
Original Assignee
Chengdu Hua Microelectronics Technology 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 Chengdu Hua Microelectronics Technology Co ltd filed Critical Chengdu Hua Microelectronics Technology Co ltd
Priority to CN202010476973.8A priority Critical patent/CN111709205B/zh
Publication of CN111709205A publication Critical patent/CN111709205A/zh
Application granted granted Critical
Publication of CN111709205B publication Critical patent/CN111709205B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design 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编译流程中运算时间的瓶颈。在设计配套的支持软件过程中,布线确定了逻辑单元之间的连线,是最为关键的步骤之一,它不仅影响到延时、功耗等方面的性能,也是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};
Figure BDA0002516161230000021
Figure BDA0002516161230000022
(b)计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,gi值越小,优先级越高;G与延时余量因子T′和布线资源因子R′相关,其计算公式如下:
Figure BDA0002516161230000031
其中,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}。
Figure BDA0002516161230000051
Figure BDA0002516161230000052
计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,G与延时余量因子T′和布线资源因子R′相关,其计算公式如下
Figure BDA0002516161230000053
其中,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次布线迭代时其值为
Figure BDA0002516161230000061
每一次布线迭代时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};
Figure DA00041260884651612867
Figure FDA0004126088460000012
(b)计算网线优先级G={g0,g1,…,gi,…,gn-1},gi为网线si的优先级权重数,gi值越小,优先级越高;G与延时余量因子T′和布线资源因子R′相关,其计算公式如下:
Figure FDA0004126088460000021
其中,Wt和Wr为预设的权重常数。
CN202010476973.8A 2020-05-29 2020-05-29 Fpga布线方法 Active CN111709205B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 广东高云半导体科技股份有限公司 以布线结果为导向的布局布线控制方法及装置、系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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