CN112364590B - 一种实用的逻辑验证架构级fpga布线器的构建方法 - Google Patents
一种实用的逻辑验证架构级fpga布线器的构建方法 Download PDFInfo
- Publication number
- CN112364590B CN112364590B CN202011175892.0A CN202011175892A CN112364590B CN 112364590 B CN112364590 B CN 112364590B CN 202011175892 A CN202011175892 A CN 202011175892A CN 112364590 B CN112364590 B CN 112364590B
- Authority
- CN
- China
- Prior art keywords
- tdm
- fpga
- proportion
- net
- edge
- 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/39—Circuit design at the physical level
- G06F30/394—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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种实用的逻辑验证架构级FPGA布线器的构建方法,步骤S1:生成每个线网的布线拓扑:首先对线网进行布线拓扑,在TDM比例未分配前,对于每个线网,其所包含的FPGA在该阶段被连接在一起,用以线网的连通性;步骤S2:进行TDM比例分配:根据每个线网组的时延情况的不同,为每个线网的每条边分配TDM比例;步骤S3:进行系统时延优化:通过迭代的方式,不断地将具有较大TDM比例的线网组进行,当满足迭代终止的条件时,整个布线器的处理过程结束。本发明能够通过降低相应的系统延迟来提高芯片性能。
Description
技术领域
本发明涉及集成电路计算机辅助设计相关技术领域,特别是一种实用的逻辑验证架构级FPGA布线器的构建方法。
背景技术
随着技术节点的发展,逻辑验证成为一个非常耗时的阶段。在SoC设计过程中,据估计,一个专用集成电路(ASIC)设计的60%到 80%的时间用于执行验证。软件逻辑仿真、硬件仿真和FPGA原型方法是逻辑验证的三种方法。软件逻辑仿真花费大量的运行时间来仿真每个逻辑门。硬件仿真需要大量的成本来实现。由于FPGA原型设计方法可以在运行时间和成本之间实现良好的平衡,使得这种方法在工业上得到了广泛的应用,使得逻辑验证成本更低、速度更快。对于一个原型系统,很难在一个FPGA中进行设计。因此,将多个FPGA连接在一起,构成一个完整的系统。
为了设计一个多FPGA原型系统,首先将一个完整的电路划分为多个子电路,使每个子电路都能容纳一个FPGA。其次,每个子电路放置在一个不同的FPGA在板上。最后,在考虑系统性能和布线资源的基础上进行FPGA间布线。由于FPGA间信号的数量通常超过I/O引脚的数量,因此提出了一种TDM(timing division multiplexing,TDM)技术,以不同的时间在同一线路传输不同的信号。然而,信号多路复用延长了FPGA间的信号延迟。
信号复用比(TDM比)可以用来测量系统时延。在整个设计流程中,TDM比率通常是经过FPGA间布线之后确定的。常用的信号复用比优化方法是基于整数线性规划(ILP)的方法,然而,已有的信号复用比优化方法的TDM比通常是任意整数,这与实际问题存在着差距。也有很多方法对时分复用技术进行优化,但是很难在适当的运行时间内得到好的解决方案。
随着VLSI电路规模的快速增长,多FPGA原型系统广泛应用于逻辑验证中。然而,由于FPGA之间的连接数量有限,原型系统的可布线性受到了极大的限制。因此,时分多路复用(TDM)技术被提出来提高原型系统的可用性,但它导致了系统延迟的急剧增加。所以如何降低相应的系统延迟来提高芯片性能变成了急需解决的问题。
发明内容
有鉴于此,本发明的目的是提供一种实用的逻辑验证架构级FPGA 布线器的构建方法,能够通过降低相应的系统延迟来提高芯片性能。
本发明采用以下方案实现:一种实用的逻辑验证架构级FPGA布线器的构建方法,包括以下步骤:
步骤S1:生成每个线网的布线拓扑:首先对线网进行布线拓扑,在TDM比例未分配前,对于每个线网,其所包含的FPGA在该阶段被连接在一起或并行各线网的布线,用以线网的连通性;
步骤S2:进行TDM比例分配:根据每个线网组的时延情况的不同,为每个线网的每条边分配TDM比例或并行分配TDM比例;
步骤S3:对进行布线的多FPGA原型系统时延进行优化:通过迭代的方式,不断地将具有较大TDM比例的线网组进行并行化优化当满足迭代终止的条件时,整个布线器的处理过程结束。
进一步地,所述步骤S1具体包括以下步骤:
步骤S11:所有线网按照一定的优先级进行排序;
步骤S12:根据由FPGA集合、FPGA连接对和线网组构成的数据集,基于其中的输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价;
步骤S13:将已经建立的布线图,使用基于Djjkstra的斯坦纳树算法对当前线网进行布线,构造一棵斯坦纳树,将需要连接的FPGA 连接;
步骤S14:将当前线网的布线拓扑保存记录;
步骤S15:更新布线图中边的代价;每个FPGA连接对的代价在第一次循环之前被初始化为1,被当前线网选中的用来连接FPGA的 FPGA连接对的代价加1;
步骤S16:通过for循环遍历每一个线网判断是否所有线网都完成了连接,若是则结束布线,否则返回步骤S12。
进一步地,步骤S15中所述更新方式的具体内容为:更新每个 FPGA对的代价,如果被当前线网选中,使用该FPGA对连接FPGA,其代价加1。
进一步地,所述步骤S11的具体内容为:
对每个线网进行布线之前,将所有线网根据两种指标进行排序;首先,根据线网的数量,将所有线网组按照从大到小的顺序排序;其次,将每个线网组中的所有线网根据FPGA的数量按照从大到小的顺序进行排序;最后,将所有线网根据已经排好的顺序提取。
进一步地,所述步骤S2具体包括以下步骤:
步骤S21:预处理每个线网组,即通过计数计算包括边ej,k的线网组ngj,m的最大边数ngecj,m;
步骤S22:求当前FPGA连接对的每条边ej,k的权重比pctj,k,进而得到每个线网的每条边分配的TDM比例;
步骤S23:通过for循环遍历每一个线网判断是否处理完所有边,若是,则执行步骤S24,否则返回步骤S22;
步骤S24:计算当前边的TDM比例,并记录当前边的TDM比例;
步骤S25通过for循环遍历每一个线网判断是否处理完所有边,若是,则执行步骤S26,否则步骤S24;
步骤S26:通过for循环遍历每一个线网判断是否处理完所有连接对,若是,则结束,否则返回步骤S22。
进一步地,所述步骤S22的具体内容为:
对于每条边ej,k,权重比计算方法如下:
其中,ngj,m是nglj中第m个线网组,ngecj,m是线网组ngj,m的边的数量,ngmecj,k是边ej,k的最大的线网组边数,β是nglj中线网组的数量,pctj,k即为权重比;基于该权重比,该边的TDM比例etrj,k计算方法如下:
进一步地,所述步骤S3具体包括以下步骤:
步骤S31:对线网组排序:所有线网按其线网组的最大TDM比率从大到小进行排序;
步骤S32:更新线网组ni中边ej,k的etrj,k;
步骤S33:判断是否线网组中所有边都进行了步骤S32中的更新操作;若是则更新nglj,否则返回步骤S32;
步骤S34:判断是否所有线网组都进行了遍历操作;若是则执行步骤S35;否则返回步骤S32;
步骤S35:继续判断FPGA连接对pk是否满足TDM比例约束,若是则更新etrj,k,否则更新增加的etrj,k,合法化减少的etrj,k;
步骤S36:判断是否所有FPGA连接对都进行了更新etrj,k操作,若是则结束,否则返回步骤步骤S35。
进一步地,所述步骤S32的具体内容为:
减少每条边的TDM比例,每条边的TDM比例更新公式如下所示:
其中,etr’j,k是etrj.k新的TDM比例;staratio是ngmtr的优化目标,由用户定义;mngj是具有最大TDM比例的nglj的线网组。
进一步地,所述步骤S35的具体内容为:
计算当前FPGA连接对所有边的TDM比例倒数之和totalpct并判断totalpct是否小于等于1;若totalpct小于等于1,则该FPGA连接对满足TDM比例约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TDM比例约束,需要进行后续的合法化处理,继续执行下面的步骤即TDM比率增加的边ej,k直接使用新的TDM比率etr’j,k;但TDM比率减少的边ej,k,应通过以下等式合法化;
与现有技术相比,本发明具有以下有益效果:
本发明能够通过降低相应的系统延迟来提高芯片性能,同时优化多FPGA原型系统的布线能力和系统延迟。通过对线网组最大时分复用比的有效优化,有效稳定地优化了系统时延,提高了原型系统的性能。
附图说明
图1为本发明实施例的时分复用技术示意图。
图2为本发明实施例的布线器总体流程图
图3为本发明实施例的布线拓扑生成流程图。
图4为本发明实施例的TDM比例分配流程图。
图5为本发明实施例的关键系统时延优化总体流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本实施例提供一种实用的逻辑验证架构级FPGA布线器的构建方法,包括以下步骤:
步骤S1:生成每个线网的布线拓扑:首先对线网进行布线拓扑,在TDM比例未分配前,对于每个线网,其所包含的FPGA在该阶段被连接在一起,用以线网的连通性;
步骤S2:进行TDM比例分配:根据每个线网组的时延情况的不同,为每个线网的每条边分配TDM比例或并行分配TDM比例;
步骤S3:对进行布线的多FPGA原型系统时延进行优化:通过迭代的方式,不断地将具有较大TDM比例的线网组进行并行化优化,当满足迭代终止的条件时,整个布线器的处理过程结束。
在本实施例中,所述步骤S1具体包括以下步骤:
步骤S11:所有线网按照一定的优先级进行排序;
步骤S12:根据由FPGA集合、FPGA连接对和线网组构成的数据集,其中线网组是根据设计目的而定义的,基于其中的输入数据中的 FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价;
步骤S13:将已经建立的布线图,使用基于Dijkstra的斯坦纳树算法(K.Mehlhorn,“A faster approximation algorithm for the Steiner problem in graphs,”Information Processing Letters,vol.27,no.3,pp. 125-128,1988.)对当前线网进行布线,构造一棵斯坦纳树,将需要连接的FPGA连接;需要注意的是,任何斯坦纳树算法都可以应用于该发明设计的布线器中,增加了布线器的灵活性;
步骤S14:将当前线网的布线拓扑保存记录;
步骤S15:更新布线图中边的代价;每个FPGA连接对的代价在第一次循环之前被初始化为1,被当前线网选中的用来连接FPGA的 FPGA连接对的代价加1;
步骤S16:判断是否所有线网都完成了连接,若是则结束布线,否则返回步骤S12。
在本实施例中,步骤S15中所述更新方式的具体内容为:更新每个FPGA对的代价,如果被当前线网选中,使用该FPGA对连接FPGA,其代价加1。
在本实施例中,所述步骤S11的具体内容为:
对每个线网进行布线之前,将所有线网根据两种指标进行排序;首先,根据线网的数量,将所有线网组按照从大到小的顺序排序;由于延迟问题与线网的数量有关,线网数量越多的线网组越容易产生延迟问题其次,将每个线网组中的所有线网根据FPGA的数量按照从大到小的顺序进行排序;因为线网中的FPGA数量越多,布线难度较大。最后,将所有线网根据已经排好的顺序提取。
在本实施例中,所述步骤S2具体包括以下步骤:
步骤S21:预处理每个线网组,即通过计数计算包括边ej,k的线网组ngj,m的最大边数ngecj,m.
步骤S22:求当前FPGA连接对的每条边ej,k的权重比pctj,k,进而得到每个线网的每条边分配的TDM比例;
步骤S23:通过for循环遍历每一个线网判断是否处理完所有边,若是,则执行步骤S24,否则返回步骤S22;
步骤S24:计算当前边的TDM比例,并记录当前边的TDM比例;
步骤S25:通过for循环遍历每一个线网判断是否处理完所有边,若是,则执行步骤S26,否则步骤S24;
步骤S26:通过for循环遍历每一个线网判断是否处理完所有连接对,若是,则结束,否则返回步骤S22。
在本实施例中,所述步骤S22的具体内容为:
对于每条边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即为权重比;基于该权重比,该边的TDM比例etrj,k计算方法如下:
在本实施例中,所述步骤S3具体包括以下步骤:
步骤S31:对线网组排序:所有线网按其线网组的最大TDM比率从大到小进行排序;
步骤S32:更新线网组ni中边ej,k的etrj,k;
步骤S33:判断是否线网组中所有边都进行了步骤S32中的更新操作;若是则更新nglj,否则返回步骤S32;
步骤S34:判断是否所有线网组都进行了遍历操作;若是则执行步骤S35;否则返回步骤S32;
步骤S35:继续判断FPGA连接对pk是否满足TDM比例约束,若是则更新etrj,k,否则更新增加的etrj,k,合法化减少的etrj,k;
步骤S36:判断是否所有FPGA连接对都进行了更新etrj,k操作,若是则结束,否则返回步骤步骤S35。
在本实施例中,所述步骤S32的具体内容为:
减少每条边的TDM比例,每条边的TDM比例更新公式如下所示:
其中,etr’j,k是etrj.k新的TDM比例;staratio是ngmtr的优化目标,由用户定义;mngj是具有最大TDM比例的nglj的线网组。
在本实施例中,所述步骤S35的具体内容为:
计算当前FPGA连接对所有边的TDM比例倒数之和totalpct并判断totalpct是否小于等于1;若totalpct小于等于1,则该FPGA连接对满足TDM比例约束,然后跳过对当前FPGA连接对的处理;反之,则该FPGA连接对不满足TDM比例约束,需要进行后续的合法化处理,继续执行下面的步骤即TDM比率增加的边ej,k直接使用新的TDM比率etr’j,k;但TDM比率减少的边ej,k,应通过以下等式合法化;
在本实施例中,时分复用技术是用来解决布线缺乏的特性,是一种多个信号可以在同一个信道的不同时间传输的技术。图1给出了在两个FPGA之间使用时分复用技术的一个简单示意图。其中,两个大矩形表示两个FPGA,其中的两个梯形表示两个FPGA中需要连接在一起的组件。六个小矩形表示实例。三条虚线箭头代表三种不同的信号。实线箭头是两个FPGA之间唯一的金属线。因此,如图1所示,在一个系统时钟周期内只能有一个信号在金属线上传输。然而,通过使用时分复用技术,三个信号可以在一个系统时钟周期内在同一根金属线上分时传输。时分复用技术可以随着系统时延的增加而提高系统的可布线性。
在本实施例中,用F表示所有的FPGA线网。用P表示所有的 FPGA连接对,每个FPGA连接对pk连接两个FPGA。并定义了N表示由双FPGA线网或多FPGA线网组成的线网集合。一个线网组集合 NG,每个线网组ngi∈NG。每个线网nj可能属于不同的线网组,该线网组子集有线网组是根据设计目的定义的。例如,具有相同的属性或相同功耗的线网组可以放在相同的线网组中。目标是布线所有线网并为每个线网分配TDM比例,使每个线网组的最大 TDM比例最小化。
根据现实问题的要求,TDM比例需要满足下述要求:
etrj,k∈{x|x=2×y,y∈N*,2≤x≤4294967296}
其中,etrj,k是边ej,k的TDM比例,elk是使用了FPGA连接对pk的边的集合。TDM比例必须是偶数,这主要是因为复用硬连线的实施要求。
系统时钟周期是指从源点出发,汇点作为终点的抵达时间。当一个FPGA连接对被一个线网使用了,该连接对的系统时钟周期即为赋予的TDM比例。首先,最大系统时钟周期对系统延迟具有重要影响。其次,由于线网组的存在,具有最大系统时钟周期的线网组对整个系统的延迟起到决定性的作用。同时,由于TDM比例反映了系统时钟周期的大小,因此该发明的优化目标是最小化线网组最大TDM比例。
每个线网nj和每个线网组ngi的TDM比例定义如下:
其中,elj是属于线网nj的边的集合,nli是属于线网组ngi的线网的集合,ntrj是线网nj的TDM比例,ngtri是线网组ngi的TDM比例。
本实施例的优化目标定义如下:
Minimize:ngmtr={x|x=max(ngtr1,…,ngtrα)}
其中,α是所有线网组的数量,ngmtr是线网组最大TDM比例。
较佳的,如图2所示,本实施例的布线器的构建共有三个步骤。
第一个步骤是布线拓扑生成,该步骤首先对线网进行布线拓扑。在TDM比例未分配前,对于每个线网,其所包含的FPGA在该阶段被连接在一起,保证了线网的连通性。
第二个步骤是TDM比例分配,根据每个线网组的时延情况的不同,为每个线网的每条边分配合适的TDM比例。
第三个步骤是系统时延优化,通过迭代的方式,不断地将具有较大TDM比例的线网组进行。当满足迭代终止的条件时,整个布线器的处理过程结束。
(1)布线器的第一个步骤(布线拓扑生成):
布线器的第一个步骤生成每个线网的布线拓扑,确保线网之间是连通的。该步骤的流程图如图3所示,该流程主要包括五个步骤。第一个步骤对所有线网按照一定的优先级进行排序,第二个步骤到五个步骤循环处理整个线网集合,每次循环都将一个线网的FPGA连接,直到所有线网都确定布线拓扑。
第一个步骤:对每个线网进行布线之前,将所有线网根据两种指标进行排序。首先,根据线网的数量,将所有线网组按照从大到小的顺序排序,由于延迟问题与线网的数量有关,线网数量越多的线网组越容易产生延迟问题。其次,将每个线网组中的所有线网根据FPGA 的数量按照从大到小的顺序进行排序,因为线网中的FPGA数量越多,布线难度较大。最后,将所有线网根据已经排好的顺序提取。
第二个步骤:基于输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个 FPGA连接对的代价。每个FPGA连接对的代价在第一次循环之前被初始化为1,每完成一个线网的布线后更新一次,更新方式如第五个步骤所示。
第三个步骤:将已经建立的布线图,使用一种基于Dijkstra的斯坦纳树算法(K.Mehlhorn,“A faster approximation algorithm for the Steiner problem ingraphs,”Information Processing Letters,vol.27,no. 3,pp.125-128,1988.)对当前线网进行布线,构造一棵斯坦纳树,将需要连接的FPGA连接。
第四个步骤:将当前线网的布线拓扑保存记录。
第五个步骤:更新每个FPGA对的代价,如果被当前线网选中,使用该FPGA对连接FPGA,其代价加1。
(2)布线器的第二个步骤(TDM比例分配):
虽然布线拓扑对整个解决方案有着重要的影响,但是很难在布线拓扑生成阶段同时分分配TDM比例,所以需要在生成布线拓扑结构后设计一种适当的TDM比例分配方法。该发明设计的第二个步骤是 TDM比例分配步骤。该步骤的流程图如图4所示,共包括7个步骤。第二个步骤到第七个步骤对整个FPGA连接对集合进行循环处理,在每一次循环中,都要为正在被使用的当前FPGA连接对所在边分配 TDM比例,当处理完所有FPGA连接对时结束循环。第四个步骤到第六个步骤循环处理正在被使用的当前FPGA连接对的边集合,每次循环为当前的边分配TDM比例,当处理完所有边时结束循环。
为线网分配适当的TDM比率,每个FPGA连接对都应该考虑 TDM比率约束。一个FPGA连接对的边不能同等地按照时分复用比率得到解决方案。由于目标是优化线网组的最大时分比,因此可以根据线网组的位置和时分复用比率约束条件来确定各边的时分复用比率。此外,线网组的时分复用比与边数密切相关。因此,根据网络组的边数,逐个处理FPGA连接对,可以有效地处理TDM比率的分配,
综上所述,本实施例给出了一种权重比计算方法。对于每条边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即为权重比。基于该权重比,该边的TDM比例计算方法如下:
第一个步骤:预处理每个线网组,计算出为每条边分配TDM比例需要的每个线网组ngj,m的边的数量ngecj,m。
(3)布线器的第三个步骤(系统时延优化):
在TDM比例分配阶段,每条边被分配了初始TDM比例。由于时延通过线网组的边数进行估计的,同时这种估计方法与实际情况不能达到完全一致,所以需要对TDM比例进一步优化。为了对所有网络组的最大时分复用比进行优化,布线器的第三个步骤引入了系统时延优化方法。该步骤的流程图如图5所示,该流程主要包含两个步骤,依次是TDM比例缩减步骤和边合法化步骤。该流程的两个步骤循环执行直到满足结束条件,布线器的第三个步骤就结束了,同时,整个布线器的流程也就结束了。
系统时延优化第一个步骤的流程,即TMD比例缩减步骤的流程;该流程包含三个步骤,第二个步骤到第三个步骤循环处理整个线网组集合,每次循环缩减当前线网组的TDM比例直到所有线网组处理完毕。
TDM比例缩减第一个步骤:所有线网按其线网组的最大TDM比率从大到小进行排序。
TDM比例缩减第二个步骤:减少每条边的TR。每条边的TR更新公式如下所示:
TDM比例缩减第三个步骤:更新线网组的TR
系统时延优化第二个步骤的流程,即边合法化步骤的流程,如图5所示。该流程用以保证TDM比例缩减流程的结果能满足TDM比例约束条件。不同于TDM比例缩减流程,该流程的处理过程主要是对每个FPGA连接对进行处理,而不是每个线网组。边合法化循环处理整个FPGA连接对集合,每次循环将当前FPGA连接对合法化直到所有FPGA连接对处理完毕。
判断如果FPGA连接对pk满足TDM比率约束,则由新的TDM 比率etrj,k替换pk中边ej,k之前的TDM比率。反之,如果pk不能满足 TDM比率约束,则TDM比率增加的边ej,k可以直接使用新的TDM 比率etr’j,k。但TDM比率减少的边ej,k,应通过以下等式合法化。
(4)并行方案:
为了进一步提高ALIFRouter的运行效率,将多线程并行化方法集成到ALIFRouter的各个阶段。在布线拓扑生成阶段,可以并行各线网的布线。但是,该流程的步骤S15应该被锁定,以避免不同网之间的资源冲突。在TDM比分配阶段,每个FPGA连接对的处理是完全独立的。因此,在这个阶段,并行可以大大提高程序的速度。在系统时延优化阶段,每个线网的TDM比例衰减步骤可以并行进行。但是,第三个步骤应该被锁定,以避免不同线网的资源冲突。合法化步骤可以像步骤S2分时复用比例分配阶段一样是完全并行的。
较佳的,本实施例设计了一种布线总体流程。该流程的输入数据为FPGA集合、FPGA连接对集合、线网集合和线网组集合,以布线方案作为输出数据。该流程主要包括三个子流程,依次是布线拓扑生成流程、TDM比率分配流程和系统延迟优化流程。
较佳的,本实施例在未分配TDM比率的情况下,首先通过布线拓扑生成流程,生成每个线网的布线拓扑结构,对多FPGA系统的可布线性问题进行优化。在获得布线拓扑后,TDM比率分配流程为每个线网的每条边分配TDM比率。
较佳的,本实施例系统时延优化流程包含两个子流程,依次是 TDM比例缩减流程和边合法化流程。该流程对TDM比例分配流程生成的初始TDM比例分配方案进行优化,尽可能地减少最大系统时延。
较佳的,本实施例设计了一种并行方案,通过并行方式,加快布线器的运行效率,减小布线器所需要的运行时间。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (6)
1.一种实用的逻辑验证架构级FPGA布线器的构建方法,其特征在于:包括以下步骤:
步骤S1:生成每个线网的布线拓扑:首先对线网进行布线拓扑,在TDM比例未分配前,对于每个线网,其所包含的FPGA在TDM比例未分配前被连接在一起或并行各线网的布线,用以线网的连通性;
步骤S2:进行TDM比例分配:根据每个线网组的时延情况的不同,为每个线网的每条边分配TDM比例或并行分配TDM比例;
步骤S3:对进行布线的多FPGA原型系统时延进行优化:通过迭代的方式,不断地将具有较大TDM比例的线网组进行并行化优化,当满足迭代终止的条件时,整个布线器的处理过程结束;
所述步骤S2具体包括以下步骤:
步骤S21:预处理每个线网组,即通过计数计算包括边ej,k的线网组ngj,m的边的数量ngecj,m;
步骤S22:求当前FPGA连接对的每条边ej,k的权重比pctj,k,进而得到每个线网的每条边分配的TDM比例;
步骤S23:通过for循环遍历每一个线网判断是否处理完所有边,若是,则执行步骤S24,否则返回步骤S22;
步骤S24:计算当前边的TDM比例,并记录当前边的TDM比例;
步骤S25:通过for循环遍历每一个线网判断是否处理完所有边,若是则执行步骤S26,否则返回步骤S24;
步骤S26:通过for循环遍历每一个线网判断是否处理完所有连接对,若是则结束,否则返回步骤S22;
所述步骤S22的具体内容为:
对于每条边ej,k,权重比计算方法如下:
ngmecj,k=max(ngecj,1,…,ngecj,β);
其中,ngj,m是nglj中第m个线网组,ngmecj,k是边ej,k的最大的线网组边数,β是nglj中线网组的数量,pctj,k即为权重比;基于该权重比,该边的TDM比例etrj,k计算方法如下:
所述步骤S3具体包括以下步骤:
步骤S31:对线网组排序:所有线网按其线网组的最大TDM比例从大到小进行排序;
步骤S32:更新线网组中边ej,k的etrj,k;
步骤S33:判断是否线网组中所有边都进行了步骤S32中的更新操作;若是则更新nglj,否则返回步骤S32;
步骤S34:判断是否所有线网组都进行了遍历操作;若是则执行步骤S35;否则返回步骤S32;
步骤S35:继续判断FPGA连接对pk是否满足TDM比例约束,若是则更新etrj,k,否则更新增加的etrj,k,合法化减少的etrj,k;
步骤S36:判断是否所有FPGA连接对都进行了更新etrj,k操作,若是则结束,否则返回步骤S35。
2.根据权利要求1所述的一种实用的逻辑验证架构级FPGA布线器的构建方法,其特征在于:所述步骤S1具体包括以下步骤:
步骤S11:所有线网按照优先级进行排序;
步骤S12:根据由FPGA集合、FPGA连接对和线网组构成的数据集,基于其中的输入数据中的FPGA连接对集合和FPGA集合建立当前线网的布线图,标记出需要连接的FPGA,并标记出每个FPGA连接对的代价;
步骤S13:将已经建立的布线图,使用基于Dijkstra的斯坦纳树算法对当前线网进行布线,构造一棵斯坦纳树,将需要连接的FPGA连接;
步骤S14:将当前线网的布线拓扑保存记录;
步骤S15:更新布线图中边的代价;每个FPGA连接对的代价在第一次循环之前被初始化为1,被当前线网选中的用来连接FPGA的FPGA连接对的代价加1;
步骤S16:通过for循环遍历每一个线网判断是否所有线网都完成了连接,若是则结束布线,否则返回步骤S12。
3.根据权利要求2所述的一种实用的逻辑验证架构级FPGA布线器的构建方法,其特征在于:步骤S15中更新方式的具体内容为:更新每个FPGA对的代价,如果被当前线网选中,使用该FPGA对连接FPGA,其代价加1。
4.根据权利要求2所述的一种实用的逻辑验证架构级FPGA布线器的构建方法,其特征在于:所述步骤S11的具体内容为:
对每个线网进行布线之前,将所有线网根据两种指标进行排序;首先,根据线网的数量,将所有线网组按照从大到小的顺序排序;其次,将每个线网组中的所有线网根据FPGA的数量按照从大到小的顺序进行排序;最后,将所有线网根据已经排好的顺序提取。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011175892.0A CN112364590B (zh) | 2020-10-28 | 2020-10-28 | 一种实用的逻辑验证架构级fpga布线器的构建方法 |
PCT/CN2020/134411 WO2022088395A1 (zh) | 2020-10-28 | 2020-12-08 | 一种实用的逻辑验证架构级fpga布线器的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011175892.0A CN112364590B (zh) | 2020-10-28 | 2020-10-28 | 一种实用的逻辑验证架构级fpga布线器的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112364590A CN112364590A (zh) | 2021-02-12 |
CN112364590B true CN112364590B (zh) | 2022-08-09 |
Family
ID=74511305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011175892.0A Active CN112364590B (zh) | 2020-10-28 | 2020-10-28 | 一种实用的逻辑验证架构级fpga布线器的构建方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112364590B (zh) |
WO (1) | WO2022088395A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392615A (zh) * | 2021-05-14 | 2021-09-14 | 南京师范大学 | 一种fpga原型验证系统的布线方法 |
CN114386349A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 系统级数字电路的布线方法及装置、设备、存储介质 |
CN114880978A (zh) * | 2022-05-07 | 2022-08-09 | 福州大学 | 基于时分复用技术的系统级fpga布线与优化方法 |
CN114595652B (zh) * | 2022-05-10 | 2022-08-12 | 湖南泛联新安信息科技有限公司 | 一种用于硬件仿真平台的主频评估方法 |
CN114997088B (zh) * | 2022-06-29 | 2022-11-04 | 西安电子科技大学 | 一种布线和tdm比率快速优化方法 |
CN117892690B (zh) * | 2024-01-15 | 2024-07-19 | 广东工业大学 | 一种FPGA Die级系统的布线优化方法 |
CN118052178B (zh) * | 2024-04-16 | 2024-06-28 | 上海合见工业软件集团有限公司 | 信号绕线方法、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020040951A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 디에스피 스케쥴링 제어 방법 |
CN109196498A (zh) * | 2016-04-08 | 2019-01-11 | 新思科技有限公司 | 通过减少关键路径延迟将逻辑布线递增地分配到物理套接字上 |
CN111310409A (zh) * | 2020-02-28 | 2020-06-19 | 福州大学 | 一种优化时分复用技术的多阶段fpga布线方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2991476B1 (fr) * | 2012-06-01 | 2022-04-22 | Flexras Tech | Prototypage multi-fpga d'un circuit asic |
CN102854801A (zh) * | 2012-09-25 | 2013-01-02 | 北京京航计算通讯研究所 | 一种基于分时复用的大数据量fpga仿真测试方法 |
US9158882B2 (en) * | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US10169505B2 (en) * | 2016-06-16 | 2019-01-01 | Synopsys, Inc. | Partitioning and routing multi-SLR FPGA for emulation and prototyping |
-
2020
- 2020-10-28 CN CN202011175892.0A patent/CN112364590B/zh active Active
- 2020-12-08 WO PCT/CN2020/134411 patent/WO2022088395A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020040951A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 디에스피 스케쥴링 제어 방법 |
CN109196498A (zh) * | 2016-04-08 | 2019-01-11 | 新思科技有限公司 | 通过减少关键路径延迟将逻辑布线递增地分配到物理套接字上 |
CN111310409A (zh) * | 2020-02-28 | 2020-06-19 | 福州大学 | 一种优化时分复用技术的多阶段fpga布线方法 |
Non-Patent Citations (2)
Title |
---|
基于FPGA的脉冲神经网络加速器设计;沈阳靖 等;《电子科技》;20171015;全文 * |
基于多阶段拆线重布的总体布线算法;朱自然等;《计算机辅助设计与图形学学报》;20161115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022088395A1 (zh) | 2022-05-05 |
CN112364590A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112364590B (zh) | 一种实用的逻辑验证架构级fpga布线器的构建方法 | |
CN111310409B (zh) | 一种优化时分复用技术的多阶段fpga布线方法 | |
CN106503333B (zh) | 一种三维片上网络测试规划方法 | |
JP4673203B2 (ja) | レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム | |
US20150213188A1 (en) | Concurrent timing-driven topology construction and buffering for vlsi routing | |
Shih et al. | Fast timing-model independent buffered clock-tree synthesis | |
Xue et al. | An efficient network-on-chip (NoC) based multicore platform for hierarchical parallel genetic algorithms | |
Schlag et al. | Scalable edge partitioning | |
CN111404747A (zh) | 自适应的服务功能链并行处理的方法、设备及存储介质 | |
CN114386349A (zh) | 系统级数字电路的布线方法及装置、设备、存储介质 | |
CN110048966A (zh) | 基于截止时间的最小化系统开销的Coflow调度方法 | |
Cordes et al. | Automatic extraction of task-level parallelism for heterogeneous MPSoCs | |
CN103605573A (zh) | 一种基于开销计算的可重构体系结构的映射决策方法 | |
CN110032815B (zh) | 基于文化基因的八角形斯坦纳树构建方法 | |
CN111090613A (zh) | 一种基于图分割的低复杂度软硬件划分与调度方法 | |
CN116700924A (zh) | 一种平铺加速器资源分配方法及系统 | |
Sankaralingam et al. | Routed inter-ALU networks for ILP scalability and performance | |
CN116166396A (zh) | 调度模型的训练方法、装置、电子设备及可读存储介质 | |
CN109522106B (zh) | 一种基于协同计算的风险价值模拟动态任务调度方法 | |
Mhadhbi et al. | A comprehensive survey on hardware/software partitioning process in co-design | |
Zhuang et al. | ALIFRouter: A practical architecture-level inter-FPGA router for logic verification | |
Gharbi et al. | A new hybrid genetic algorithm-based approach for critical multiprocessor real-time scheduling with low power optimization | |
Villar et al. | Obtaining the optimal configuration of high-radix combined switches | |
CN111274009A (zh) | 云环境下基于阶段划分的数据密集型工作流调度方法 | |
Sepúlveda et al. | A multi-objective adaptive immune algorithm for NoC mapping |
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 |