CN111310409B - 一种优化时分复用技术的多阶段fpga布线方法 - Google Patents
一种优化时分复用技术的多阶段fpga布线方法 Download PDFInfo
- Publication number
- CN111310409B CN111310409B CN202010126180.3A CN202010126180A CN111310409B CN 111310409 B CN111310409 B CN 111310409B CN 202010126180 A CN202010126180 A CN 202010126180A CN 111310409 B CN111310409 B CN 111310409B
- Authority
- CN
- China
- Prior art keywords
- fpga
- net
- edge
- current
- connection pair
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种优化时分复用技术的多阶段FPGA布线方法,包括以下步骤:步骤S1:采集FPGA集合、FPGA连接对集合、线网集合和线网组集合;步骤S2:根据FPGA集合、FPGA连接对集合、线网集合和线网组集合,在未分配TR的情况下获取线网的布线拓扑;步骤S3:根据每个线网组的时延情况的不同,为每个线网的每条边分配对应的TR;步骤S4:循环进行TR缩减和边合法化,迭代优化TR值大于预设值的线网组,直到满足迭代终止的条件时,得到最优布线方案。本发明可以优化多FPGA原型***的片间信号延迟和可布线性问题。
Description
技术领域
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种优化时分复用技术的多阶段FPGA布线方法。
背景技术
逻辑验证是先进纳米制程下一种重要的步骤。在片上***的设计过程中,据估计专用集成电路(ASIC)设计60%到80%的时间花费在验证过程中。软件仿真和硬件仿真是两种常见的逻辑验证方法,但是,软件仿真需要花费大量的时间和代价对每个逻辑门进行模拟,硬件仿真的实施代价较大。随着集成电路制程的不断发展,芯片的规模越来越大,上述两种逻辑验证方法的缺点越来越明显。
近年来,现场可编程逻辑门阵列(FPGA)被广泛地应用于多种领域,包括机器学习、云计算和原型***。FPGA原型***使得逻辑验证比传统的方法更加便宜快捷。因此,FPGA原型***已经被广泛地使用于工业界。尽管FPGA的芯片规模在不断增长,但是整个原型***依然难以放到一个FPGA中。因此,FPGA原型***通常由多个FPGA组成,多个FPGA相互连接构成了整个多FPGA原型***。
为了通过多FPGA原型***实现一个芯片设计的逻辑验证,一个完整的电路首先被划分为多个子电路,并且每个子电路被放置在一个FPGA中。由于FPGA引脚的数量通常超过了FPGA片间信号的数量,所以需要使用时分复用技术在一个***时钟周期(SCP)内同时传输多个片间信号。这样能够提高整个***的可布线性,但是片间信号的延迟被增大。时分复用技术的优化问题是多FPGA原型***设计中的一个重要问题。
发明内容
有鉴于此,本发明的目的在于提供一种优化时分复用技术的多阶段FPGA布线方法,用以解决时分复用技术的优化问题。
为实现上述目的,本发明采用如下技术方案:
一种优化时分复用技术的多阶段FPGA布线方法,包括以下步骤:
步骤S1:采集FPGA集合、FPGA连接对集合、线网集合和线网组集合;
步骤S2:根据FPGA集合、FPGA连接对集合、线网集合和线网组集合,在未分配TR的情况下获取线网的布线拓扑;
步骤S3:根据每个线网组的时延情况的不同,为每个线网的每条边分配对应的TR;
步骤S4:循环进行TR缩减和边合法化,迭代优化TR值大于预设值的线网组,直到满足迭代终止的条件时,得到最优布线方案。
进一步的,所述步骤S2具体为:
步骤S21:对线网进行预处理,将所有线网基于预设标准进行排序;
步骤S22:基于输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价;
步骤S23:基于建立的当前线网的布线图,采用近似斯坦纳树算法完成当前线网的布线,构造一棵斯坦纳树连接需要连接的FPGA;
步骤S24:记录当前线网的布线拓扑;
步骤S25:更新每个FPGA连接对的代价,即被当前线网选中的用来连接FPGA的FPGA连接对的代价加1;
步骤S26:循环步骤S22-S25直至完成所有线网连接,得到线网的布线拓扑。
进一步的,所述预设标准具体为:所有线网组按照线网的数量从大到小排序;对于每个线网组,所有线网按照FPGA的数量从大到小排序。
进一步的,所述步骤S3具体为:
步骤S31:预处理每个线网组,计算出为每条边分配TR需要的每个线网组ngj,m的边的数量ngecj,m;
步骤S32:计算出使用了当前FPGA连接对的每条边ej,k的权重比pctj,k;
步骤S33:根据步骤S32计算的权重比,将所有边按照权重比从小到大排序;
步骤S34:初始化参数remain为0;
步骤S35:计算当前边的TR;
步骤S36:更新remain;
步骤S37:记录当前边的TR;
步骤S38:循环步骤S35-S37,直至处理完所有边;
步骤S39:循环步骤S32-步骤S38,直至处理完所有连接对,完成TR分配。
进一步的,所述步骤S32具体为:
对于每条边ej,k,权重比计算方法如下:
ngmecj,k={x|x=max(ngecj,1,…,ngecj,β)}
其中,ngj,m是nglj中第m个线网组,ngecj,m是线网组ngj,m的边的数量,ngmecj,k是边ej,k的最大的线网组边数,β是nglj中线网组的数量,pctj,k即为权重比。
进一步的,所述步骤S35具体为:每条边etrj,k的TR的实际计算方法如下:
进一步的,所述步骤S36具体为:remain的更新公式如下所示:
remain=pctj,k+remain-1/etrj,k。
进一步的,所述TR缩减具体为:
(1)选出标准TRstatictr
(2)在该步骤执行之前,先判断当前线网组的TRngtri是否小于等于标准TRstatictr;若小于等于TRstatictr,则跳过当前线网组的处理;反之,继续执行该步骤,其中该步骤初始化参数totalLimit为0,totalLimit表示当前线网组的TR可被缩减的数值;
(3)对于当前线网组中所有线网的所有边,计算每条边的参数curLimit并更新totalLimit,其中curLimit表示每条边TR可被缩减的数值;
(4)在该步骤执行前,先判断totalLimit是否为0。若totalLimit为0,则跳过对该线网组的后续处理步骤;反之,则计算出当前线网组的TR实际需要被缩减的数值totalReduce;
(5)减少每条边的TR并更新包含该边的线网组的TR;
(6)循环(2)-(5),直至处理完所有线网组。
进一步的,所述边合法化,具体为:
(1)在合法化每个FPGA连接对之前先计算出当前最大线网组TRngmtr;
(2)计算当前FPGA连接对所有边的TR倒数之和totalpct并判断totalpct是否小于等于1;若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤;
(3)在不增加最大线网组TRngmtr的前提下增加各边的TR,并更新当前FPGA连接对的totalpct;若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤;
(4)每条边的TR累加2直到该边的TR倒数在机器精度的范围内增加;
(5)更新当前FPGA连接对的totalpct;若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,返回(4)直到该FPGA连接对满足TR约束,即totalpct小于等于1;
(6)循环(2)-(5),直至处理完所有连接对。
本发明与现有技术相比具有以下有益效果:
1.本发明采用时分复用比值分配方法,可以有效的优化FPGA片间信号延迟优化;
2.本发明采用了***时钟周期优化方法,可以有效的优化严重的片间信号延迟。
3.本发明构建的初始布线框架,能够用于有效解决FPGA原型***的可布线性问题。
附图说明
图1是本发明一实施例中时分复用技术示意图
图2是本发明布线方法总体流程图
图3是本发明一实施例中布线拓扑生成流程图
图4是本发明一实施例中TR分配流程图
图5是本发明一实施例中关键SCP优化总体流程图
图6是本发明一实施例中TR缩减流程图
图7是本发明一实施例中边合法化流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图2,本发明提供一种优化时分复用技术的多阶段FPGA布线方法,包括以下步骤:
步骤S1:采集FPGA集合、FPGA连接对集合、线网集合和线网组集合;
步骤S2:根据FPGA集合、FPGA连接对集合、线网集合和线网组集合,在未分配TR的情况下获取线网的布线拓扑;
步骤S3:根据每个线网组的时延情况的不同,为每个线网的每条边分配对应的TR;
步骤S4:循环进行TR缩减和边合法化,迭代优化TR值大于预设值的线网组,直到满足迭代终止的条件时,得到最优布线方案。
在本实施例中,时分复用技术如图1所示,在每条金属线中,每个SCP只能传输一个信号。通过使用时分复用技术,可以让多个信号在一个SCP的时间内分时传输。图1给出了在两个FPGA之间使用时分复用技术的一个简单示意图。其中,大方框表示FPGA,方框中的矩形表示两个FPGA中需要连接在一起的组件。组件间的粗线段表示两个组件之间唯一的金属线。在图1中,不同的线段分别表示三个不同的信号。通过使用时分复用技术,三个信号可以使用一个金属线在一个SCP内分时传输。SCP的使用情况如图中的波形所示,不同的线段代表不同的信号。
在本实施中,片间FPGA布线问题模型具体为:给定一个线网集合N由双FPGA线网或多FPGA线网组成。给定一个线网组集合NG,每个线网组ngi∈NG。给定一个FPGA连接对集合P,每个FPGA连接对pk连接两个FPGA。给定一个FPGA集合F,每两个FPGA之间至多有一个FPGA连接对。每个线网nj可能属于不同的线网组,该线网组子集有
片间FPGA布线问题的基本要求是将每个线网的所有FPGA通过FPGA连接对连接在一起。除此之外,还需要对每个线网nj使用的每个FPGA连接对pk产生的边ej,k赋值TR。根据现实问题的要求,TR需要满足下述要求:
etrj,k∈{x|x=2×y,y∈N*,2≤x≤4294967296} (2)
其中,etrj,k是边ej,k的TR值,elk是使用了FPGA连接对pk的边的集合。出于复用硬连线的实施要求,TR必须是偶数。
***时钟周期是从源点到汇点的抵达时间。当一个线网使用了一个FPGA连接对,对该连接对赋予的TR即为该边的***时钟周期。最大***时钟周期是对***延迟具有重要影响的一个衡量标准。由于线网组的存在,具有最大***时钟周期的线网组决定了整个***的延迟。同时,因为TR反映了***时钟周期的大小,因此本发明的优化目标为最小化线网组最大TR。
每个线网nj和每个线网组ngi的TR定义如下:
其中,elj是属于线网nj的边的集合,nli是属于线网组ngi的线网的集合,ntrj是线网nj的TR,ngtri是线网组ngi的TR。
故,本发明的优化目标定义如下:
Minimize:ngmtr={x|x=max(ngtr1,…,ngtrα)} (5)
其中,α是所有线网组的数量,ngmtr是线网组最大TR。
在本实施例中,如图3所示,布线拓扑生成,包括五个步骤;第一个步骤预处理线网对所有线网排序,第二个步骤到五个步骤循环对整个线网集合进行处理,每次循环连接一个线网的FPGA直到所有线网确定布线拓扑。
第一个步骤:在对每个线网布线之前,所有线网基于两种标准进行排序。首先,所有线网组按照线网的数量从大到小排序,因为线网数量较多的线网组容易产生严重的延迟问题。其次,对于每个线网组,所有线网按照FPGA的数量从大到小排序,因为FPGA数量较多的线网布线较难。最后,所有线网按照顺序提取出来。
第二个步骤:基于输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价。每个FPGA连接对的代价在第一次循环之前被初始化为1,每完成一个线网的布线后更新一次,更新方式如第五个步骤所示。
第三个步骤:基于建立的当前线网的布线图,使用一种快速的近似斯坦纳树算法(K.Mehlhorn,“Afaster approximation algorithm for the Steiner problem ingraphs,”Information Processing Letters,vol.27,no.3,pp.125-128,1988.)完成当前线网的布线,构造一棵斯坦纳树连接需要连接的FPGA。需要注意的是,任何斯坦纳树算法都可以应用于该发明设计的布线器中,增加了布线器的灵活性。
第四个步骤:记录当前线网的布线拓扑。
第五个步骤:更新每个FPGA连接对的代价,即被当前线网选中的用来连接FPGA的FPGA连接对的代价加1。
在本实施例中,设计一种有效的TR分配方法,对每个线网的每条边合理地分配TR。该TR分配方法的流程图如图4所示,共包括7个步骤。第二个步骤到第七个步骤循环处理整个FPGA连接对集合,每次循环为使用了当前FPGA连接对的边分配TR直到所有FPGA连接对都被处理完。第五个步骤到第七个步骤循环处理使用了当前FPGA连接对的边集合,每次循环为当前的边分配TR直到所有边都被处理完。
为了给每个线网分配合适的TR,需要对每个FPGA连接对考虑TR约束条件。根据优化目标,每条边时延的严重程度与其所属的线网组有关。除此之外,时延的严重程度也与线网组的边的数量有关。综上所述,本实施例给出了一种权重比计算方法;对于每条边ej,k,权重比计算方法如下:
ngmecj,k={x|x=max(ngecj,1,…,ngecj,β)} (7)
其中,ngj,m是nglj中第m个线网组,ngecj,m是线网组ngj,m的边的数量,ngmecj,k是边ej,k的最大的线网组边数,β是nglj中线网组的数量,pctj,k即为权重比。基于该权重比,该边的TR计算方法如下:
第一个步骤:预处理每个线网组,计算出为每条边分配TR需要的每个线网组ngj,m的边的数量ngecj,m。
第二个步骤:按照公式(6)计算出使用了当前FPGA连接对的每条边ej,k的权重比pctj,k。
第三个步骤:将使用了当前FPGA连接对的所有边按照权重比从小到大排序。
第四个步骤:初始化参数remain为0。由于机器的精度有限,在计算TR的过程中需要考虑由此造成的误差。remain是每次循环之前的计算所产生的总误差。
第五个步骤:计算当前边的TR。由于机器的精度有限,因此,每条边etrj,k的TR的实际计算方法如下:
第六个步骤:更新remain以记录第五个步骤的计算中存在的误差。remain的更新公式如下所示:
remain=pctj,k+remain-1/etrj,k (10)
第七个步骤:记录当前边的TR。
在本实施例中,在TR分配阶段,每条边被分配了初始TR。由于时延的估计标准是线网组的边数且这种估计方法并不与实际情况完全一致,所以TR需要被进一步优化。优化最大线网组TR方法流程图如图5所示,该流程包含连个步骤,依次是TR缩减步骤和边合法化步骤。该流程的两个步骤循环执行直到满足结束条件。本实施例中给出了三个终止条件:迭代次数不能超过10次;运行时间不能超过1000秒;需要优化的线网组的数量不能超过总数的一半。需要注意的是,终止条件可以根据用户实际需要做出任意调整。
关键SCP优化第一个步骤的流程,即TR缩减步骤的流程,如图6所示。该流程包含五个步骤,第二个步骤到第五个步骤循环处理整个线网组集合,每次循环缩减当前线网组的TR直到所有线网组处理完毕。
TR缩减第一个步骤:选出标准TR(statictr)。本实施例中选择的条件有:如果次大线网组TR与最大线网组TR的差值大于一个阈值,则标准值为次大线网组TR;如果差值不大于阈值,则标准值为最大线网组TR与阈值的差值。阈值的选取可以根据实际情况进行设定。需要注意的是,阈值的选取确定了每次迭代优化的程度。
TR缩减第二个步骤:在该步骤执行之前,先判断当前线网组的TR(ngtri)是否小于等于标准TR(statictr)。若ngtri小于等于statictr,则跳过当前线网组的处理;反之,继续执行该步骤。该步骤初始化参数totalLimit为0。totalLimit表示当前线网组的TR可被缩减的数值。
TR缩减第三个步骤:对于当前线网组中所有线网的所有边,计算每条边的参数curLimit并更新totalLimit。curLimit表示每条边TR可被缩减的数值。对于每条边ej,k,其计算方法如下:
curLimitj,k=mngtrj-mngtro (11)
其中,mngj是nglj中具有最大TR的线网组,mngtrj是mngj的TR,mngtro是与ej,k使用相同FPGA连接对的边eo,k的线网组mngo的TR,etro,k的值在该连接对中大于etrj,k且与etrj,k的差值最小。
TR缩减第四个步骤:在该步骤执行前,先判断totalLimit是否为0。若totalLimit为0,则跳过对该线网组的后续处理步骤;反之,则继续执行该步骤。该步骤计算出当前线网组的TR实际需要被缩减的数值totalReduce,计算方法如图6所示。
TR缩减第五个步骤:减少每条边的TR并更新包含该边的线网组的TR。每条边的TR更新公式如下所示:
etrj,k=etrj,k-curLimitj,k×totalReduce/totalLimit (12)
关键SCP优化第二个步骤的流程,即边合法化步骤的流程,如图7所示。该流程用以保证TR缩减流程的结果能满足TR约束条件。不同于TR缩减流程,该流程的处理过程针对每个FPGA连接对,而不是每个线网组。边合法化流程共包括五个步骤。第二个步骤到第五个步骤循环处理整个FPGA连接对集合,每次循环将当前FPGA连接对合法化直到所有FPGA连接对处理完毕。
边合法化第一个步骤:在合法化每个FPGA连接对之前先计算出当前最大线网组TR(ngmtr)。
边合法化第二个步骤:计算当前FPGA连接对所有边的TR倒数之和totalpct并判断totalpct是否小于等于1。若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤。
边合法化第三个步骤:在不增加最大线网组TR的前提下增加各边的TR,并更新当前FPGA连接对的totalpct。若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤。
边合法化第四个步骤:每条边的TR累加2直到该边的TR倒数在机器精度的范围内增加。
边合法化第五个步骤:更新当前FPGA连接对的totalpct。若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,返回边合法化第五个步骤直到该FPGA连接对满足TR约束,即totalpct小于等于1。
在本实施例中,根据本发明方法构建相应的一种优化时分复用技术的多阶段FPGA布线器。优选的,为了进一步提高布线器的运行效率,布线器的两个步骤可进行多线程并行。第一个步骤是布线拓扑生成。由于每个线网之间存在一定的独立性,图3所示流程第二个步骤到第五个步骤的循环可以进行多线程并行。但是,该流程的第五个步骤需要在竞争资源时加锁避免发生错误。第二个步骤是TR分配。图4所示流程第二个步骤到第七个步骤的循环可以进行多线程并行。基于该布线器的方法,每个FPGA连接对的处理是相互独立的,因此,每个FPGA连接对的处理是可以完全并行而不用加锁的。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (6)
1.一种优化时分复用技术的多阶段FPGA布线方法,其特征在于,包括以下步骤:
步骤S1:采集FPGA集合、FPGA连接对集合、线网集合和线网组集合;
步骤S2:根据FPGA集合、FPGA连接对集合、线网集合和线网组集合,在未分配TR的情况下获取线网的布线拓扑;
步骤S3:根据每个线网组的时延情况的不同,为每个线网的每条边分配对应的TR;
所述步骤S3具体为:
步骤S31:预处理每个线网组,计算出为每条边分配TR需要的每个线网组ngj,m的边的数量ngecj,m;
步骤S32:计算出使用了当前FPGA连接对的每条边ej,k的权重比pctj,k;
步骤S33:根据步骤S32计算的权重比,将所有边按照权重比从小到大排序;
步骤S34:初始化参数remain为0;
步骤S35:计算当前边的TR;
每条边etrj,k的TR的实际计算方法如下:
步骤S36:更新remain;
步骤S37:记录当前边的TR;
步骤S38:循环步骤S35-S37,直至处理完所有边;
步骤S39:循环步骤S32-步骤S38,直至处理完所有连接对,完成TR分配;
步骤S4:循环进行TR缩减和边合法化,迭代优化TR值大于预设值的线网组,直到满足迭代终止的条件时,得到最优布线方案;
所述TR缩减具体为:
(1)选出标准TRstatictr
(2)在该步骤执行之前,先判断当前线网组的是否小于等于标准TRstatictr;若小于等于TRstatictr,则跳过当前线网组的处理;反之,继续执行该步骤,其中该步骤初始化参数totalLimit为0,totalLimit表示当前线网组的TR可被缩减的数值;
(3)对于当前线网组中所有线网的所有边,计算每条边的参数curLimit并更新totalLimit,其中curLimit表示每条边TR可被缩减的数值;
(4)在该步骤执行前,先判断totalLimit是否为0, 若totalLimit为0,则跳过对该线网组的后续处理步骤;反之,则计算出当前线网组的TR实际需要被缩减的数值totalReduce;
(5)减少每条边的TR并更新包含该边的线网组的TR;循环(2)-(5),直至处理完所有线网组。
2.根据权利要求1所述的一种优化时分复用技术的多阶段FPGA布线方法,其特征在于,所述步骤S2具体为:
步骤S21:对线网进行预处理,将所有线网基于预设标准进行排序;
步骤S22:基于输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价;
步骤S23:基于建立的当前线网的布线图,采用近似斯坦纳树算法完成当前线网的布线,构造一棵斯坦纳树连接需要连接的FPGA;
步骤S24:记录当前线网的布线拓扑;
步骤S25:更新每个FPGA连接对的代价,即被当前线网选中的用来连接FPGA的FPGA连接对的代价加1;
步骤S26:循环步骤S22-S25直至完成所有线网连接,得到线网的布线拓扑。
3.根据权利要求2所述的一种优化时分复用技术的多阶段FPGA布线方法,其特征在于,所述预设标准具体为:所有线网组按照线网的数量从大到小排序;对于每个线网组,所有线网按照FPGA的数量从大到小排序。
5.根据权利要求1所述的一种优化时分复用技术的多阶段FPGA布线方法,其特征在于,所述步骤S36具体为:remain的更新公式如下所示:
remain=pctj,k+remain-1/etrj,k。
6.根据权利要求1所述的一种优化时分复用技术的多阶段FPGA布线方法,其特征在于,所述边合法化,具体为:
(1)在合法化每个FPGA连接对之前先计算出当前最大线网组TRngmtr;
(2)计算当前FPGA连接对所有边的TR倒数之和totalpct并判断totalpct是否小于等于1;若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤;
(3)在不增加最大线网组TRngmtr的前提下增加各边的TR,并更新当前FPGA连接对的totalpct;若totalpct小于等于1,则该FPGA 连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,需要进行后续的合法化处理,继续执行下面的步骤;
(4)每条边的TR累加2直到该边的TR倒数在机器精度的范围内增加;
(5)更新当前FPGA连接对的totalpct;若totalpct小于等于1,则该FPGA连接对满足TR约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TR约束,返回(4)直到该FPGA连接对满足TR约束,即totalpct小于等于1;
(6)循环(2)-(5),直至处理完所有连接对。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010126180.3A CN111310409B (zh) | 2020-02-28 | 2020-02-28 | 一种优化时分复用技术的多阶段fpga布线方法 |
US17/776,246 US20220398373A1 (en) | 2020-02-28 | 2020-09-30 | Multi-stage fpga routing method for optimizing time division multiplexing |
PCT/CN2020/119328 WO2021169303A1 (zh) | 2020-02-28 | 2020-09-30 | 一种优化时分复用技术的多阶段fpga布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010126180.3A CN111310409B (zh) | 2020-02-28 | 2020-02-28 | 一种优化时分复用技术的多阶段fpga布线方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310409A CN111310409A (zh) | 2020-06-19 |
CN111310409B true CN111310409B (zh) | 2022-04-08 |
Family
ID=71149369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010126180.3A Active CN111310409B (zh) | 2020-02-28 | 2020-02-28 | 一种优化时分复用技术的多阶段fpga布线方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220398373A1 (zh) |
CN (1) | CN111310409B (zh) |
WO (1) | WO2021169303A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310409B (zh) * | 2020-02-28 | 2022-04-08 | 福州大学 | 一种优化时分复用技术的多阶段fpga布线方法 |
CN112364590B (zh) * | 2020-10-28 | 2022-08-09 | 福州大学 | 一种实用的逻辑验证架构级fpga布线器的构建方法 |
CN113723711B (zh) * | 2021-09-29 | 2022-10-28 | 东南大学 | 一种全局布线中针对单元移动的位置预测方法 |
CN114880978A (zh) * | 2022-05-07 | 2022-08-09 | 福州大学 | 基于时分复用技术的***级fpga布线与优化方法 |
CN114595652B (zh) * | 2022-05-10 | 2022-08-12 | 湖南泛联新安信息科技有限公司 | 一种用于硬件仿真平台的主频评估方法 |
CN115496030B (zh) * | 2022-11-15 | 2023-01-24 | 北京大学 | 可处理电学和几何约束的模拟电路布线自动化方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902774A (zh) * | 2014-03-31 | 2014-07-02 | 福州大学 | X结构下超大规模集成电路总体布线方法 |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
CN108319762A (zh) * | 2018-01-08 | 2018-07-24 | 无锡中微亿芯有限公司 | 一种基于时钟区域支持分段式可编程时钟网络结构 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007254B1 (en) * | 2003-01-17 | 2006-02-28 | Synplicity, Inc. | Method and apparatus for the design and analysis of digital circuits with time division multiplexing |
CN103092060B (zh) * | 2013-02-08 | 2015-04-08 | 西安电子科技大学 | 基于fpga的时间间隔测量***与测量方法 |
FR3009092B1 (fr) * | 2013-07-26 | 2015-08-07 | Flexras Technologies | Procede automatise d'analyse d'une carte portant plusieurs composants de type fpga |
CN106682306B (zh) * | 2016-12-26 | 2020-07-07 | 西安电子科技大学 | 一种快速fpga布线方法 |
CN110785761B (zh) * | 2017-05-17 | 2024-03-15 | 美商新思科技有限公司 | 存在时钟动态重编程时仿真时间线的压缩方法 |
JP2019036199A (ja) * | 2017-08-18 | 2019-03-07 | 富士通株式会社 | 情報処理装置、タイミングエラー解析プログラム及びタイミングエラー解析方法 |
GB2569274B (en) * | 2017-10-20 | 2020-07-15 | Graphcore Ltd | Synchronization amongst processor tiles |
US11163530B2 (en) * | 2018-01-12 | 2021-11-02 | Intel Corporation | Programmable-logic-directed multiplier mapping |
CN109710981B (zh) * | 2018-02-27 | 2021-02-02 | 上海安路信息科技有限公司 | Fpga的布线方法及*** |
CN110472340B (zh) * | 2019-08-16 | 2023-11-03 | 中科亿海微电子科技(苏州)有限公司 | 一种布线结构的建模方法和装置 |
CN111310409B (zh) * | 2020-02-28 | 2022-04-08 | 福州大学 | 一种优化时分复用技术的多阶段fpga布线方法 |
-
2020
- 2020-02-28 CN CN202010126180.3A patent/CN111310409B/zh active Active
- 2020-09-30 WO PCT/CN2020/119328 patent/WO2021169303A1/zh active Application Filing
- 2020-09-30 US US17/776,246 patent/US20220398373A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902774A (zh) * | 2014-03-31 | 2014-07-02 | 福州大学 | X结构下超大规模集成电路总体布线方法 |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
CN108319762A (zh) * | 2018-01-08 | 2018-07-24 | 无锡中微亿芯有限公司 | 一种基于时钟区域支持分段式可编程时钟网络结构 |
Non-Patent Citations (3)
Title |
---|
DPSO Based Octagonal Steiner Tree Algorithm for VLSI Routing;Genggeng Liu;《2012 IEEE fifth International Conference on Advanced Computational Intelligence(ICACI)》;20121018;第383-387页 * |
VLSI中高性能X结构多层总体布线器;刘耿耿;《自动化学报》;20181218;第46卷(第1期);第79-93页 * |
面向卷积神经网络加速器吞吐量优化的FPGA自动化设计方法;陆维娜;《计算机辅助设计与图形学学报》;20181115;第30卷(第11期);第2164-2173页 * |
Also Published As
Publication number | Publication date |
---|---|
US20220398373A1 (en) | 2022-12-15 |
CN111310409A (zh) | 2020-06-19 |
WO2021169303A1 (zh) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111310409B (zh) | 一种优化时分复用技术的多阶段fpga布线方法 | |
US6205571B1 (en) | X-Y grid tree tuning method | |
US6311313B1 (en) | X-Y grid tree clock distribution network with tunable tree and grid networks | |
US4967367A (en) | Synthetic netlist system and method | |
Lienig | A parallel genetic algorithm for performance-driven VLSI routing | |
CN112364590B (zh) | 一种实用的逻辑验证架构级fpga布线器的构建方法 | |
US6425110B1 (en) | Incremental design tuning and decision mediator | |
US6405345B1 (en) | Updating placement during technology mapping | |
US6066178A (en) | Automated design method and system for synthesizing digital multipliers | |
CN101206686A (zh) | 设计时钟域中锁存器的布图的方法和计算机*** | |
US6643832B1 (en) | Virtual tree-based netlist model and method of delay estimation for an integrated circuit design | |
US7134112B1 (en) | Incremental routing in integrated circuit design | |
US6378116B1 (en) | Using budgeted required time during technology mapping | |
US6941532B2 (en) | Clock skew verification methodology for grid-based design | |
US7984415B1 (en) | Merging of equivalent logic blocks in a circuit design | |
Lin et al. | Superfast full-scale CPU-accelerated global routing | |
US20030208737A1 (en) | Method and system for placing logic nodes based on an estimated wiring congestion | |
Koh et al. | Pre-layout clock tree estimation and optimization using artificial neural network | |
JPWO2005098612A1 (ja) | 重要成分優先計算方式ならびに装置 | |
US7146590B1 (en) | Congestion estimation for programmable logic devices | |
CN110032815A (zh) | 基于文化基因的八角形斯坦纳树构建方法 | |
CN111651507A (zh) | 一种大数据加工方法及*** | |
WO2020204741A1 (en) | Device and methods for a quantum circuit simulator | |
Kao et al. | Cross point assignment with global rerouting for general-architecture designs | |
Behjat et al. | Integer linear programming models for global routing |
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 |