CN114330184B - 一种多层次分组方法及装置 - Google Patents
一种多层次分组方法及装置 Download PDFInfo
- Publication number
- CN114330184B CN114330184B CN202210249362.9A CN202210249362A CN114330184B CN 114330184 B CN114330184 B CN 114330184B CN 202210249362 A CN202210249362 A CN 202210249362A CN 114330184 B CN114330184 B CN 114330184B
- Authority
- CN
- China
- Prior art keywords
- grouping
- communication
- node
- fpga
- layer
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供了一种多层次分组方法及装置,先获取与芯片设计相匹配的初始适用组网,再调用分组引擎对芯片设计在适用组网上逐层进行分组以得到分组结果及性能表现报告,并在每层分组时先对通信成员进行标记,最后根据性能表现报告调整分组引擎和\或调整所述适用组网重新进行分组,通过迭代直至得到满足要求的分组结果。本申请的方案借助多叉树能够支持任意层次的分组,灵活方便,可扩展性强。通过反馈、迭代,可以逐步完善分组结果。同时,通过标记通信成员可以解决通信资源利用效率不高的问题,信号可通过富余的通信资源进行传递,避免了局域通信出现瓶颈,从而提高了整个验证系统的工作频率,进而大幅提升了验证系统的性能。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种多层次分组方法及装置。
背景技术
芯片在投产之前,通常使用FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型验证系统对芯片的设计进行逻辑验证。随着技术的飞速发展,芯片的集成度与复杂度一直在不断提升,当前主流的数字芯片设计规模动辄含有几百万甚至是上亿的逻辑模块,当面对大规模设计时,单块FPGA计算容量显然不足以满足需求。为了解决芯片规模与单块FPGA之间的矛盾,可以将多块FPGA连接组成一个系统,通过各板协同工作达到验证芯片设计的目的。
当多块 FPGA互连在一起协同工作时,就涉及到组网及分组的概念。组网就是FPGA组建的硬件网络,具体包括FPGA型号和资源、FPGA数量、拓扑结构、互连线数量和连接关系、互连线延迟信息、连接器(Connector)和FPGA芯片pin脚延时信息等,以及所使用的、分布其中的硬件组件(如子卡)及其参数等等。组网约束指硬件限制条件的集合,如互联线数量限制、逻辑阵列资源限制等等。RTL或网表的分组(或者说是分割)是在特定组网,即在特定硬件网络上进行的分组,也就是说,是在特定硬件约束条件下的分组。组网和分组是相辅相成、互相作用、互相配合的关系。组网是分组的硬件条件限制,即分组结果如果不能被硬件条件所支持,例如分组结果所需要的连接线数量硬件系统不能支持,那么此分组结果是无用的;分组是组网的服务目标,用户的设计不可改变,组网是可以根据用户设计特点调整的,合理、高效的组网能够帮助分组结果提高运行性能,如逻辑阵列资源利用合理充分、高效,信号就会传递快速、流畅等。
具体来讲,在下载到FPGA系统板之前,需要对用户设计在所能限定的FPGA数量、容量、布局等硬件约束下,即组网的约束下,遵循特定的分组策略进行分组,将整体逻辑分组成不同部分,分配到不同的FPGA中进行验证,通过FPGA板间正确的互联关系,保证分组前后整体逻辑保持不变。
在现有技术中,一种分组方式是平铺式分组,即若干FPGA以某种特定拓扑形状平铺在二维平面上,形状可能为矩阵型、线型、菱形等方式,作为示例可参见图1所示。在该分组算法或说分组工具中,分组流程只运行一次便将用户设计分配至FPGA中,输出分组结果。
然而发明人在实现本申请方案的过程中发现,相关技术中的方案存在多种缺点:
(1)现有分组工具只通过一次分组流程即得到分组结果,难以在组网约束下得到高质量的分组结果。这是因为组网限制条件和约束因素种类繁多,数量巨大,分组工具难以穷举,导致分组结果与组网条件难以相互契合、高效配合。对于大规模组网来说,通常组网约束条件数量庞大,如果选择穷举组网约束,那么对于现有分组工具来说,整理、建模数量如此多的物理组网规则也是不高效的,同时违背分组工具的作用初衷,即指导客户对其设计进行快速布局规划。
(2)现有分组工具通常都是比较固定的分组模型,例如固定地按机柜、板子、FPGA的次序分组。然而随着用户设计规模的不断扩大,用于验证的FPGA的数量随之剧增,这种固定的分组模式已经渐渐不能满足验证的需求,亟需一种扩展性良好、灵活方便的分组方法。
(3)目前在行业内的分组结果中,常存在各部分之间互联通信资源非常紧张的情况,这是因为一些负有互联通信功能的部分同时也承担了逻辑验证的任务,导致该部分互联资源紧缺,互联带宽受限,从而影响整个验证系统工作频率的提升,继而成为系统性能提高的瓶颈。
发明内容
本申请提供一种多层次分组方法及装置,以解决当前分组方法中所存在的分组质量不高、灵活性和扩展性不佳、局部互联通信资源紧张的技术问题。
根据本申请实施例的第一方面,提供一种多层次分组方法,所述方法用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述方法包括:
获取芯片设计;
根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;
调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内对通信成员进行标记再结合所述通信成员的标记进行分组,所述通信成员为主要功能是负责通信而非验证逻辑的成员;
判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组。
可选的,在每个分组对象系统内对通信成员进行标记,包括:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
可选的,根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P,包括:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
可选的,计算每个成员的系统间通信能力,包括:
以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:
将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:
可选的,计算每个成员的系统内分流能力,包括:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0;
ii)将当前节点S加入到队列queue中;
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数;
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
可选的,结合所述通信成员的标记,包括以下策略:
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。
可选的,所述性能表现报告包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
可选的,判断所述性能表现报告是否达到要求,包括:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
可选的,根据所述性能表现报告调整分组引擎以重新进行分组,包括以下策略:
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
根据本申请实施例的第二方面,提供一种多层次分组装置,所述装置用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述装置包括:
芯片设计获取模块,用于获取芯片设计;
初始适用组网获取模块,用于根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;
通信成员标记模块,用于在每个分组对象系统内对通信成员进行标记,其中所述通信成员为主要功能是负责通信而非验证逻辑的成员;
迭代模块,用于调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内调用所述通信成员标记模块再结合所述通信成员的标记进行分组;判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组。
可选的,所述通信成员标记模块具体用于:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
可选的,所述通信成员标记模块在用于根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P时,具体用于:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
可选的,所述通信成员标记模块在用于计算每个成员的系统间通信能力时,具体用于:
以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:
将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:
可选的,所述通信成员标记模块在用于计算每个成员的系统内分流能力时,具体用于:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0;
ii)将当前节点S加入到队列queue中;
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数;
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
可选的,所述迭代模块在结合所述通信成员的标记时,具体使用以下策略:
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。
可选的,所述性能表现报告包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
可选的,所述迭代模块在用于判断所述性能表现报告是否达到要求时,具体用于:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
可选的,所述迭代模块在用于根据所述性能表现报告调整分组引擎以重新进行分组时,具体使用以下策略:
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
本申请实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供了一种多层次分组方法,先获取与芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;再调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内对通信成员进行标记再结合所述通信成员的标记进行分组,所述通信成员为主要功能是负责通信而非验证逻辑的成员;最后判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告返回去调整所述分组引擎和\或调整所述适用组网以重新进行分组。
本申请实施例中的多层次分组方法相较于平铺分组方法,更容易把控分组结果质量,这是因为平铺结构是将FPGA组网视为没有层级结构、只有连接关系的平面结构,采用一次性分组得到结构,参与分组的FPGA数量很多,对于分组引擎来说形成较大的压力,不利于给出高质量、稳定收敛的解。而本申请实施例中的这种方法在多层次分组过程中借助多叉树的结构能够支持任意层次及组网特征的逻辑分组,灵活方便,可扩展性强。
而且本申请实施例中组网、分组过程相互结合,通过分组结果对分组策略、组网搭建进行反馈调节,迭代调整,逐步使分组结果和组网形态不断完善、分组结果的可用性不断收敛,最终得到匹配的、性能优异的当前分组层次的组网形态与分组结果,比起一次性分组组网更能够保证分组效果的可靠、快速地收敛,满足现场工程实际需要。
同时,本申请实施例中还定义并标记出了通信成员,使通信成员承担主要通信任务,可以解决分组对象系统间通信资源利用效率不高的情况,分组对象系统中的信号可通过通信成员富余的通信资源进行系统间的传递,解决了多层次中局域通信瓶颈的问题,从而提高了整个验证系统的工作频率,大幅提升了验证系统的验证性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。此外,这些介绍并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是平铺式分组示意图;
图2是本申请实施例提供的一种多层次分组方法的示意性流程图;
图3是本申请实施例中多层次概念示意图;
图4是分组引擎原理示意图;
图5是本申请实施例中迭代流程总体示意图;
图6是本申请实施例中详细迭代过程示意图;
图7是本申请实施例中通信区块概念示意图;
图8是本申请实施例中两种连线类型的示意图;
图9是本申请实施例中layer的示意图;
图10是本申请实施例提供的一种多层次分组装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。当涉及附图时,除非另有说明,否则不同附图中的相同数字表示相同或相似的要素。显然,以下所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例,或者说以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当本申请实施例的说明书、权利要求书及上述附图中若出现术语“第一”、“第二”、“第三”等时,是用于区别不同对象,而不是用于限定特定顺序。在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”等的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
图2是本申请实施例提供的一种多层次分组方法的示意性流程图。所述方法可用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计。
参见图2所示,所述方法可以包括如下步骤:
在步骤S201中,获取芯片设计。
用户的芯片设计一般可以通过设计文件体现,设计文件经分割处理后一般由网表、专用IP 模块和性能约束文件等组成。
在步骤S202中,根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员。
多层次分组要求在以层次组网方式组成的FPGA验证系统进行逻辑分组,组网可以包含任意多层次数量,可参考图3所示,图3是本申请实施例中多层次系统概念示意图,每个层次中包含一个或多个分组对象系统,作为示例图3中虚线框内即一个分组对象系统。每个分组对象系统内包含一个或多个成员,整个多层次系统将以多叉树的形式呈现。一个成员即多叉树的一个节点。
成员(又可称为区块成员)的概念是某一层次中参与分组的若干物理单元。比如在进行板级分组时,同一机柜内的若干板子就是该机柜的区块成员,而此机柜被称为分组对象系统。如果从图结构的角度看,一个分组对象系统的成员(即节点)们属于同一个父节点,而一个节点的子节点们构成了该节点向下展开后的分组对象系统。
对于一个层次来讲,在具体实施时可以是机柜、板子、FPGA等。作为示例可参考图3所示,图3至少包括了5个层次,从上到下依次为System(系统层,即整个组网系统)、Rack(框架层,如机柜)、Unit(单元层)、Board(板层)、FPGA层等。在对该组织形式的FPGA进行分组时,每个层次可分别进行独立分组,再逐层深入细化分组,直至将用户设计分组到最小分组单元。
举例来说,可以先在机柜层分组,根据各个机柜所含有的资源量和机柜之间的互联信息进行分组,获得每个机柜中的用户设计分组;然后,依据各机柜内板子资源和板子之间的互联关系,对于每个机柜中的分组结果(用户设计分组)再进行板级细化分组;最后,进行FPGA级分组。该分组方式在局部FPGA数量和连接关系未知、但资源和对外互联已知的情况下,也能够完成除该区域外的分组过程。待该区域组网结构确定,则可在其他区域分组结果不变的情况下,单独进行局域重分组,具有很高的灵活性。总结起来,多层次分组逐层进行分组,用户设计不断被拆解,并根据当前所在层次内的各区块成员资源和互联关系进行部分用户设计的再分组,操作灵活,适用于当前大规模、超大规模芯片设计逻辑验证。此外,多层次分组方法支持并行分组,对不同区块成员的分组过程可以分别、独立进行,这就使得如集群计算机、分布式计算系统等等强大的计算资源得以应用到分组过程中,有利于加快分组过程。
发明人在实现本申请方案的过程中发现,多层次组网结构与用户芯片设计均呈多叉树结构,可以说多层次分组天然契合用户设计的结构,结构上容易匹配用户设计,因此使得分组过程更加高效,分组结果与组网结构配合度更高。
在具体实施时,用户的设计,根据其设计的芯片功能和架构路线、设计风格、设计思路等,其设计必然呈现一定的结构特征、拓扑形状的规律,所以也就能够找到在结构形态上粗略适合该设计运行的FPGA拓扑结构和连接关系,也就是能够匹配其设计的粗略组网,在本实施例中称其为初始适用组网。
作为示例,常见初始适用组网有矩阵型、流水型、星型、总线型等等。初始适用组网奠定了组网的基本拓扑形状,之后步骤中的组网调整是在此轮廓上的修正和优化。
对于具体如何获取与所述芯片设计相匹配的初始适用组网,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本申请的精神和保护范围。
作为示例,初始适用组网可以根据工程师的经验输入,也可以根据用户设计的架构特点,将用户设计建模抽象为图结构,在数据库中模式匹配图结构的拓扑特征,组网选用和用户设计相同的拓扑结构,等等。
在步骤S203中,调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内对通信成员进行标记再结合所述通信成员的标记进行分组,所述通信成员为主要功能是负责通信而非验证逻辑的成员。
在分组算法中,如果将每个区块成员都视为相同的,要求每个区块成员都承担逻辑验证的任务,则会导致那些既负责区块间信号传输、又要肩负验证用户逻辑的区块成员内部资源和互联资源紧张,通信紧张的局部区域将造成整个系统性能的瓶颈,因为对于验证系统来说,它的最高工作频率取决于通信最恶劣的区域的工作频率。
故本实施例中,在每层分组时先在当前层的每个分组对象系统内将其中的通信成员识别出来并进行标记。容易理解的是,通信成员属于一个相对的概念,对于“主要功能是负责通信而非验证逻辑”中的“主要”可以在具体实施时根据具体情况具体分析,占比达到百分之多少可算主要等尺度可由技术人员根据实际情形自行掌控,对此本实施例并不进行限制,此处无需对其进行具体的定义或量化。
分组引擎是一种分组工具,亦可称为分割工具,可以将用户设计分割为指定数量的部分,各部分被分配至对应的FPGA上运行,各部分通过互连线通信,作为示例分组引擎的原理可参见图4所示。
作为示例,在本实施例中,可以使用现有的分组引擎。
分组引擎的输入通常可以是组网信息和用户配置输入文件等,输出通常可以是分组结果及性能表现报告等。可以由业务模块负责掌握整个分组流程,掌握层次系统结构,为分组引擎准备好输入和配置文件并调用分组引擎,回收分组结果和报告。换句话说,业务模块可以先将分组引擎的输入准备处理好,然后发起对分组引擎的调用,待分组完成后得到分组结果和报告。
在本实施例中,分组引擎的职责明确、功能清晰,处于被调用的地位,多层次的业务概念对其屏蔽,换句话说,它屏蔽多层次的系统结构和引擎输入输出文件的处理过程,可以只负责在平铺形式的物理单元上对部分用户设计分组。业务模块可以根据系统的层次数量和配置要求,反复调用若干次分组引擎进行分组。分组引擎所处理的硬件单元可以不再限制是常规的FPGA,而是内部结构未知的区块成员,相当于可以封装处理。同时,相关EDA工具如独占模块、全局模块、模块复制移动、增量分组、电路连线路径重新规划等,均可以在相关输入文件进行业务模块的调整后直接使用,对分组结果进行直接进行迭代调整。
作为示例,在本实施例或本申请其他某些实施例中,结合所述通信成员的标记,具体可以包括以下策略(或者说是原则、规则):
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。其中的模块是指用户芯片设计中的函数等,可以被调用,完成特定功能。另外容易理解的是,在本实施例中,尽可能少、占用率低、需求大、不足等描述,可以只是相对的、策略性的,或者说是原则性的,本领域技术人员在具体实施时可以根据不同实际情况自行进行定义和把握,对此本实施例并不进行限制,例如可以把模块按资源占用率从高到低进行排序,将排序底部一定数量的模块视为资源占用率低的模块,等等。
在步骤S204中,判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组,也即重新执行S203~S204的步骤,形成迭代。
根据用户设计的分组结果,计算评估其表现性能,根据评估结果,指导、优化、更新组网,调整分组策略,不断迭代,最终得到能够满足要求的组网和分组结果。迭代流程总体示意图可参考图5所示。
详细迭代过程可参考图6所示:
预先定义组网变量Networks_V,它包含了组网所需的全部信息,例如可以包括逻辑阵列的资源、拓扑结构、连线数量和连接关系、互连线型号长度等等。
首先,使用初始适用组网初始化组网变量Networks_V。将Networks_V初始化为步骤S202中获得的初始适用组网,它是算法的初值。
然后,分组引擎在组网变量(Networks_V)上进行分组。分组引擎中的分组算法对用户的芯片设计在Networks_V上进行分组并得到分组结果。
接着,根据分组结果生成此Networks_V的性能表现报告。计算在此Networks_V上的分组结果的性能表现报告,该报告描述了此次迭代分组,用户被分组的设计在现有组网变量下所表现出的性能。
最后,判断性能表现是否达标。
如果性能已达标,则按照此组网变量(Networks_V)进行实际组网,根据此分组结果进行布局,对用户设计进行分组,并进行后续的上板实测的步骤。
如果性能未达标,则根据Networks_V性能表现报告,更新优化Networks_V和指导下次迭代分组策略,也即根据性能表现报告,优选分组算法的分组策略,对组网进行相应调整和优化后,进行下一轮同样步骤的迭代。
性能表现报告,也可称为性能评估报告,体现了用户设计在该轮迭代中、当前组网情况下、当前分组结果下,所表现的运行性能评估和组网优化方向和分组策略的建议。目的是能够指导下一次迭代中的组网方案和分组策略。
在具体实施时,可以由性能评估模块程序对当前组网信息和分组结果进行性能评估,根据评估结果,运用自动化与半自动化工具对分组结果进行直接调整;或者调整分组算法的输入信息,修改分组策略进行重新分组;又或者对组网搭建提出修改建议,增减指定区域FPGA数量或互连线连接关系等。
作为示例,在本实施例或本申请其他某些实施例中,所述性能表现报告可以包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量(例如资源种类可以包括LUT、FF、PIO等);
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
作为示例,在本实施例或本申请其他某些实施例中,判断所述性能表现报告是否达到要求,可以包括:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
容易理解的是,对于第一、第二指定阈值等可以根据经验或不同实际场景进行定义或配置,对此本实施例并不进行限制。类似的对于所谓资源利用不足,可以根据具体场景对资源利用情况划定某个阈值,将低于该阈值的视为资源利用不足,对此本实施例也并不进行限制。
作为示例,在本实施例或本申请其他某些实施例中,根据所述性能表现报告调整分组引擎以重新进行分组,具体可以包括以下策略(策略也可称为原则、规则):
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
另外容易理解的是,上面所提及的降低、增大、较多、更多、较大等描述均是相对的、策略性的,或者说是原则性的,本领域技术人员在具体实施时可以根据不同实际情况自行进行定义和把握,对此本实施例并不进行限制。
下面再对通信成员的相关内容进一步举例说明:
在多层次的组网中,根据各层次组网特征筛选出主要承担区块间通信任务的成员,可以称为通信成员(也可称为通信区块或通信区块成员)。通信区块成员将主要负责互联通信功能而非验证用户逻辑:即用户设计的逻辑部分将在分组算法中尽可能少量地分配到此成员;或者通过在分组结果上对电路路线的重新规划使得通信线路更多地选择经由此成员进行区块间的信号转发。
作为示例,通信区块的概念和作用可参考图7所示,图7是本申请实施例中通信区块概念示意图,在图7中斜线阴影所表示的方块即通信区块,在图7中四个最大的方框可代表四个机柜。
通信区块的选择应该依据的两个特征是:该通信区块在其分组对象系统内部具有强大的区块成员间的分流能力;与分组对象系统外部的其他分组对象系统具有丰富的互联资源。举例来讲,当当前分组层次为板级时,所选的通信区块为其所属机柜中的某块板子,机柜为分组对象系统,该板子与该机柜内的其他板子之间具有强大的信号分流能力,该板子与其他机柜存在丰富大量的互联资源。
通信区块是某分组层次中的某一区块成员,该区块成员内部结构在当前层次中为黑盒形式,即区块成员所对外体现的只有其资源总量(如LUT,FF,BUF等)和对外互联关系和数量(IO资源)。如果要进一步探究通信区块中的内部结构,比如探究该区块成员内部子成员具体如何承担了细分的通信业务,则需要在下一层次的分组中确定,逐层分组细化。层次内区块成员内部结构对外不可见是本方案多层次分组方法的理念之一,它支持了任意层次系统的分组与统一化、程序化处理的可行。
作为示例,在本实施例或本申请其他某些实施例中,在每个分组对象系统内对通信成员进行标记,具体可以包括:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
进一步的,在本实施例或本申请其他某些实施例中,根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P,具体可以包括:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。其中K的取值范围为[0,1]。K可以由技术人员根据经验或实际情况进行配置。
针对多层次中的任意某分组对象系统,假定它的成员(成员也可称为区块或区块成员)数量为N,每个区块成员可以被抽象为无权重差别的图结构中的节点,这是因为在多层次系统中所选用的区块成员物理组成通常相同,即内部资源相同,且FPGA内部资源不是当前大规模FPGA验证系统的瓶颈要素。
在每个分组对象系统内对通信成员进行标记时,具体可以分为如下步骤:
1)建立长度为N的数组Vector。数组的元素为当前分组对象系统的所有区块成员节点的结构体,该结构体可包含节点序号、该节点系统间通信能力Connection_Out、节点的系统内分流能力Performance_Bypass。Connection_Out代表了节点的分组对象系统间的通信能力,Performance_Bypass代表了节点在当前分组对象系统内分担、均衡、平摊、疏通通信流压力的能力。
对于系统间和系统内的概念,可以参考图8所示,图8是本申请实施例中两种连线类型的示意图。
2)遍历当前分组对象系统中的每个节点,计算节点的Connection_Out、Performance_Bypass,并创建结构体后加入Vector中。
3)配置调节参数k值,k的取值范围为[0,1],然后,根据上述公式取通信能力P值最大的节点为当前分组对象系统的通信区块。
下面再对系统间通信能力Connection_Out的相关内容进一步举例说明:
区块之间的互联关系实质上是通过区块成员内部所包含的、最底层FPGA之间的、通过cable(线缆)连接通信建立起来的,不同的线缆具有不同的物理长度Cable_Length,比如FPGA_A与FPGA_B之间可能存在数千条电缆连接。
以每个成员为节点构建图结构后,图结构中区块成员_A节点与区块成员_B节点之间的连线权重定义如下:
假设区块成员_A在最底层中包含的FPGA总数为:FPGA_A集合{FPGA_A1,FPGA_A2,FPGA_A3…};设区块成员_B在最底层中包含的FPGA总数为:FPGA_B集合{FPGA_B1,FPGA_B2,FPGA_B3…}。遍历FPGA_A集合中的元素Sa与FPGA_B集合中的元素Sb并任意两两组合,如果Sa、Sb之间在实际组网中存在连接线缆,则加入到集合Cable_Set_AB{cable_1,cable_2,cable_3…,cable_n}中,每根cable的物理长度为Cable_Length_i(单位可以为厘米,i=1,2,...n),则区块成员_A节点与区块成员_B节点之间的连线权重WeightAB定义为:
实质上,该连线的WeightAB代表了在物理组网中,该边能够分担通信压力的能力,即区块A、B之间的连线数量越多、连线距离越近,则A、B之间通信越通畅。
以上便是两个节点之间图结构连线权重的计算方法。区块成员与当前分组对象系统外部的其他系统所建立的图结构连线权重也按照上述公式计算。Connection_Out的计算方法为累加得到该节点在分组对象系统间的连线权重的总和。也就是说,可以先计算当前成员(即当前节点)与一个外部分组对象系统中的各成员(节点)的图结构连线权重的和,然后再把当前成员的每个外部分组对象系统累加起来,便可得到当前节点的系统间通信能力。
综上,作为示例,在本实施例或本申请其他某些实施例中,计算每个成员的系统间通信能力,具体可以包括:
以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:
将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:
下面再对系统内分流能力Performance_Bypass的相关内容进一步举例说明:
Performance_Bypass反映了一个节点承担疏导通信压力的能力,疏导能力更多地体现在与其有连接关系的节点的疏导能力上,随着层数的增大(距离的增大),疏导能力按照某种形式衰减。
作为示例,在本实施例或本申请其他某些实施例中,计算每个成员的系统内分流能力,具体可以包括:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0。ii)将当前节点S加入到队列queue中。
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数,也可以表述为节点Node到节点S所需经历的最少边数,节点S距离自己的层数为0。
layer的含义可参考图9所示。
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
换句话说,当top不存在当前分组对象系统内的任何相邻并未被访问过的节点且队列为空时候,结束程序,输出节点S的Performance_Bypass的最终结果。
然后将下一个节点作为当前节点,重新沿步骤i)继续执行,从而得到每个节点的Performance_Bypass。也即每个成员都会被当成当前节点运行一轮上面的i~iv的步骤。已访问的标记在每轮开始前都会被清除。
本实施例中的多层次分组方法借助多叉树的结构能够支持任意层次及组网特征的逻辑分组,灵活方便,可扩展性强。而且通过反馈调节,迭代调整,可以逐步使分组结果和组网形态不断完善、分组结果的可用性不断收敛,最终得到匹配的、性能优异的当前分组层次的组网形态与分组结果,比起一次性分组组网更能够保证分组效果的可靠、快速地收敛,满足现场工程实际需要。同时,本实施例中还定义并标记出了通信成员,使通信成员承担主要通信任务,可以解决分组对象系统间通信资源利用效率不高的情况,分组对象系统中的信号可通过通信成员富余的通信资源进行系统间的传递,解决了多层次中局域通信瓶颈的问题,从而提高了整个验证系统的工作频率,大幅提升了验证系统的验证性能。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图10是本申请实施例提供的一种多层次分组装置的示意图。本实施例提供了一种多层次分组装置,所述装置用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计。
参见图10所示,所述装置可以包括:
芯片设计获取模块1001,用于获取芯片设计;
初始适用组网获取模块1002,用于根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;
通信成员标记模块1003,用于在每个分组对象系统内对通信成员进行标记,其中所述通信成员为主要功能是负责通信而非验证逻辑的成员;
迭代模块1004,用于调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内调用所述通信成员标记模块再结合所述通信成员的标记进行分组;判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组。
作为示例,在本实施例或本申请其他某些实施例中,所述通信成员标记模块具体用于:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
作为示例,在本实施例或本申请其他某些实施例中,所述通信成员标记模块在用于根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P时,具体用于:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
作为示例,在本实施例或本申请其他某些实施例中,所述通信成员标记模块在用于计算每个成员的系统间通信能力时,具体用于:
以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:
将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:
作为示例,在本实施例或本申请其他某些实施例中,所述通信成员标记模块在用于计算每个成员的系统内分流能力时,具体用于:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0;
ii)将当前节点S加入到队列queue中;
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数;
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
作为示例,在本实施例或本申请其他某些实施例中,所述迭代模块在结合所述通信成员的标记时,具体使用以下策略:
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。
作为示例,在本实施例或本申请其他某些实施例中,所述性能表现报告包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
作为示例,在本实施例或本申请其他某些实施例中,所述迭代模块在用于判断所述性能表现报告是否达到要求时,具体用于:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
作为示例,在本实施例或本申请其他某些实施例中,所述迭代模块在用于根据所述性能表现报告调整分组引擎以重新进行分组时,具体可以使用以下策略:
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
关于上述实施例中的装置,其中各个单元\模块执行操作的具体方式已经在相关方法的实施例中进行了详细描述,此处不再赘述。在本申请中,上述单元\模块的名字对单元\模块本身不构成限定,在实际实现中,这些单元\模块可以以其他名称出现,只要各个单元\模块的功能和本申请类似,皆属于本申请权利要求及其等同技术的范围之内。
本实施例中的多层次分组装置借助多叉树的结构能够支持任意层次及组网特征的逻辑分组,灵活方便,可扩展性强。而且通过反馈调节,迭代调整,可以逐步使分组结果和组网形态不断完善、分组结果的可用性不断收敛,最终得到匹配的、性能优异的当前分组层次的组网形态与分组结果,比起一次性分组组网更能够保证分组效果的可靠、快速地收敛,满足现场工程实际需要。同时,本实施例中还定义并标记出了通信成员,使通信成员承担主要通信任务,可以解决分组对象系统间通信资源利用效率不高的情况,分组对象系统中的信号可通过通信成员富余的通信资源进行系统间的传递,解决了多层次中局域通信瓶颈的问题,从而提高了整个验证系统的工作频率,大幅提升了验证系统的验证性能。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案内容,依据本申请技术方案的技术实质,在本申请技术方案的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本申请技术方案的保护范围之内。
本领域技术人员在考虑说明书及实践这里公开的方案后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (16)
1.一种多层次分组方法,其特征在于,所述方法用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述方法包括:
获取芯片设计;
根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;
调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内对通信成员进行标记再结合所述通信成员的标记进行分组,所述通信成员为主要功能是负责通信而非验证逻辑的成员;
判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组;
其中,结合所述通信成员的标记,包括以下策略:
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。
2.根据权利要求1所述的方法,其特征在于,在每个分组对象系统内对通信成员进行标记,包括:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
3.根据权利要求2所述的方法,其特征在于,根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P,包括:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
5.根据权利要求4所述的方法,其特征在于,计算每个成员的系统内分流能力,包括:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0;
ii)将当前节点S加入到队列queue中;
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数;
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
6.根据权利要求1所述的方法,其特征在于,所述性能表现报告包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
7.根据权利要求6所述的方法,其特征在于,判断所述性能表现报告是否达到要求,包括:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
8.根据权利要求7所述的方法,其特征在于,根据所述性能表现报告调整分组引擎以重新进行分组,包括以下策略:
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
9.一种多层次分组装置,其特征在于,所述装置用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述装置包括:
芯片设计获取模块,用于获取芯片设计;
初始适用组网获取模块,用于根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;
通信成员标记模块,用于在每个分组对象系统内对通信成员进行标记,其中所述通信成员为主要功能是负责通信而非验证逻辑的成员;
迭代模块,用于调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内调用所述通信成员标记模块再结合所述通信成员的标记进行分组;判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组;
其中,所述迭代模块在结合所述通信成员的标记时,具体使用以下策略:
在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。
10.根据权利要求9所述的装置,其特征在于,所述通信成员标记模块具体用于:
在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;
获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;
将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
11.根据权利要求10所述的装置,其特征在于,所述通信成员标记模块在用于根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P时,具体用于:
根据
P = k*Connection_Out + (1-k)*Performance_Bypass
计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
13.根据权利要求12所述的装置,其特征在于,所述通信成员标记模块在用于计算每个成员的系统内分流能力时,具体用于:
i)为当前节点S创建队列queue,队列queue中的元素为节点序号,初始化时队列queue为空、当前节点S的系统内分流能力Performance_Bypass=0;
ii)将当前节点S加入到队列queue中;
iii)弹出队列queue的头元素top,根据两节点之间的图结构连线权重计算公式,计算在当前分组对象系统内部与节点S存在连接关系的所有连线权重之和Connection_In,然后将Connection_In乘以衰减系数K_layer的结果累加至Performance_Bypass,并将当前的头元素top标记为已访问,其中,已访问的节点被禁止重新加入到队列queue中,衰减系数K_layer的取值范围在(0,1)之间,任意节点Node相对于当前节点S的衰减系数K_layer的计算公式为:
K_layer = 1 /(layer + 1)
其中,layer为节点Node距离节点S的层数;
iv)在当前分组对象系统内,将与头元素top存在连接关系的各相邻节点依节点编号顺序加入队列queue中,重复步骤iii),直至头元素top的相邻节点都被访问过且队列queue为空。
14.根据权利要求9所述的装置,其特征在于,所述性能表现报告包括:
FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;
互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;
时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。
15.根据权利要求14所述的装置,其特征在于,所述迭代模块在用于判断所述性能表现报告是否达到要求时,具体用于:
如果出现以下一种或多种情况,则判定为未达到要求:
存在资源消耗超出第一指定阈值的FPGA;
存在资源利用不足区域的FPGA;
通过时分复用形式传递的信号数量超过第二指定阈值;
存在建立时间或保持时间违例的线路。
16.根据权利要求15所述的装置,其特征在于,所述迭代模块在用于根据所述性能表现报告调整分组引擎以重新进行分组时,具体使用以下策略:
将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;
对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;
对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249362.9A CN114330184B (zh) | 2022-03-15 | 2022-03-15 | 一种多层次分组方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249362.9A CN114330184B (zh) | 2022-03-15 | 2022-03-15 | 一种多层次分组方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114330184A CN114330184A (zh) | 2022-04-12 |
CN114330184B true CN114330184B (zh) | 2022-07-15 |
Family
ID=81033016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249362.9A Active CN114330184B (zh) | 2022-03-15 | 2022-03-15 | 一种多层次分组方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114330184B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056344B (zh) * | 2023-10-12 | 2024-02-20 | 凯美瑞德(苏州)信息科技股份有限公司 | 一种对大规模固定连接模式的多表查询的数据建模方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321366B1 (en) * | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN103473210A (zh) * | 2013-09-03 | 2013-12-25 | 上海大学 | 多芯核三维芯片的拓扑系统和数据包路由方法 |
US8656326B1 (en) * | 2013-02-13 | 2014-02-18 | Atrenta, Inc. | Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
Family Cites Families (3)
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 |
CN103763750B (zh) * | 2014-01-08 | 2017-02-08 | 西安电子科技大学 | 在tdma协议的无线自组网中实现快速分组转发的方法 |
CN104883694B (zh) * | 2014-06-24 | 2018-05-04 | 北京信息科技大学 | 一种基于蜂窝Ad hoc的芯片间无线互连系统组网方法 |
-
2022
- 2022-03-15 CN CN202210249362.9A patent/CN114330184B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321366B1 (en) * | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
US8656326B1 (en) * | 2013-02-13 | 2014-02-18 | Atrenta, Inc. | Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design |
CN103473210A (zh) * | 2013-09-03 | 2013-12-25 | 上海大学 | 多芯核三维芯片的拓扑系统和数据包路由方法 |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
Non-Patent Citations (3)
Title |
---|
"用于FPGA的多层次集成设计系统的设计与实现";张峰;李艳等;《深圳大学学报(理工版)》;20120930;第29卷(第5期);第377-385页 * |
"选择最佳的引脚复用技术用于多FPGA的设计分割";高善发;《中国集成电路》;20170305(第214期);第56、61页 * |
Norihiro Fujii ; Nobuhiko Koike."IoT Remote Group Experiments in the Cyber Laboratory: A FPGA-based Remote Laboratory in the Hybrid Cloud".《2017 International Conference on Cyberworlds (CW)》.2017, * |
Also Published As
Publication number | Publication date |
---|---|
CN114330184A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108260169B (zh) | 一种基于QoS保障的服务功能链动态部署方法 | |
CN107888425B (zh) | 移动通信系统的网络切片部署方法和装置 | |
CN104683488B (zh) | 流式计算系统及其调度方法和装置 | |
CN108965014B (zh) | QoS感知的服务链备份方法及系统 | |
CN105515987B (zh) | 一种基于sdn架构面向虚拟光网络的映射方法 | |
Baumgartner et al. | Combined virtual mobile core network function placement and topology optimization with latency bounds | |
CN109710374A (zh) | 移动边缘计算环境下最小化任务卸载费用的vm迁移策略 | |
CN111538570B (zh) | 一种面向节能和QoS保障的VNF部署方法及装置 | |
CN111106999A (zh) | 一种ip-光网络通信业务联合分配方法及装置 | |
CN106817306B (zh) | 一种确定目标路由的方法及装置 | |
JPH10506243A (ja) | ネットワーク運用並びに性能の強化 | |
CN108667657A (zh) | 一种面向sdn的基于局部特征信息的虚拟网络映射方法 | |
CN104486194A (zh) | 一种多可靠性等级虚拟网络控制系统和方法 | |
CN102148763B (zh) | 一种应用于片上网络的动态路径分配方法及系统 | |
CN114330184B (zh) | 一种多层次分组方法及装置 | |
CN112183000B (zh) | 一种支持互连约束的超图划分方法 | |
Hou et al. | Multi-controller deployment algorithm in hierarchical architecture for SDWAN | |
CN114071582A (zh) | 面向云边协同物联网的服务链部署方法及装置 | |
CN107103360B (zh) | 一种基于混合云的可靠应用分配分布式遗传方法 | |
Li et al. | MSV: An algorithm for coordinated resource allocation in network function virtualization | |
Zheng et al. | Minimizing the latency of embedding dependence-aware SFCs into MEC network via graph theory | |
CN113300861A (zh) | 网络切片配置方法、装置以及存储介质 | |
CN110677306B (zh) | 网络拓扑副本服务器配置方法及装置、存储介质和终端 | |
CN110430236B (zh) | 一种部署业务的方法以及调度装置 | |
CN111614571A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee after: Shanghai Sierxin Technology Co.,Ltd. Address before: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee before: Shanghai Guowei silcore Technology Co.,Ltd. |