一种多层次分组方法及装置制造方法及图纸

技术编号:33072603 阅读:11 留言:0更新日期:2022-04-15 10:07
本申请提供了一种多层次分组方法及装置,先获取与芯片设计相匹配的初始适用组网,再调用分组引擎对芯片设计在适用组网上逐层进行分组以得到分组结果及性能表现报告,并在每层分组时先对通信成员进行标记,最后根据性能表现报告调整分组引擎和\或调整所述适用组网重新进行分组,通过迭代直至得到满足要求的分组结果。本申请的方案借助多叉树能够支持任意层次的分组,灵活方便,可扩展性强。通过反馈、迭代,可以逐步完善分组结果。同时,通过标记通信成员可以解决通信资源利用效率不高的问题,信号可通过富余的通信资源进行传递,避免了局域通信出现瓶颈,从而提高了整个验证系统的工作频率,进而大幅提升了验证系统的性能。进而大幅提升了验证系统的性能。进而大幅提升了验证系统的性能。

【技术实现步骤摘要】
一种多层次分组方法及装置


[0001]本申请涉及集成电路
,尤其涉及一种多层次分组方法及装置。

技术介绍

[0002]芯片在投产之前,通常使用FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型验证系统对芯片的设计进行逻辑验证。随着技术的飞速发展,芯片的集成度与复杂度一直在不断提升,当前主流的数字芯片设计规模动辄含有几百万甚至是上亿的逻辑模块,当面对大规模设计时,单块FPGA计算容量显然不足以满足需求。为了解决芯片规模与单块FPGA之间的矛盾,可以将多块FPGA连接组成一个系统,通过各板协同工作达到验证芯片设计的目的。
[0003]当多块 FPGA互连在一起协同工作时,就涉及到组网及分组的概念。组网就是FPGA组建的硬件网络,具体包括FPGA型号和资源、FPGA数量、拓扑结构、互连线数量和连接关系、互连线延迟信息、连接器(Connector)和FPGA芯片pin脚延时信息等,以及所使用的、分布其中的硬件组件(如子卡)及其参数等等。组网约束指硬件限制条件的集合,如互联线数量限制、逻辑阵列资源限制等等。RTL或网表的分组(或者说是分割)是在特定组网,即在特定硬件网络上进行的分组,也就是说,是在特定硬件约束条件下的分组。组网和分组是相辅相成、互相作用、互相配合的关系。组网是分组的硬件条件限制,即分组结果如果不能被硬件条件所支持,例如分组结果所需要的连接线数量硬件系统不能支持,那么此分组结果是无用的;分组是组网的服务目标,用户的设计不可改变,组网是可以根据用户设计特点调整的,合理、高效的组网能够帮助分组结果提高运行性能,如逻辑阵列资源利用合理充分、高效,信号就会传递快速、流畅等。
[0004]具体来讲,在下载到FPGA系统板之前,需要对用户设计在所能限定的FPGA数量、容量、布局等硬件约束下,即组网的约束下,遵循特定的分组策略进行分组,将整体逻辑分组成不同部分,分配到不同的FPGA中进行验证,通过FPGA板间正确的互联关系,保证分组前后整体逻辑保持不变。
[0005]在现有技术中,一种分组方式是平铺式分组,即若干FPGA以某种特定拓扑形状平铺在二维平面上,形状可能为矩阵型、线型、菱形等方式,作为示例可参见图1所示。在该分组算法或说分组工具中,分组流程只运行一次便将用户设计分配至FPGA中,输出分组结果。
[0006]然而专利技术人在实现本申请方案的过程中发现,相关技术中的方案存在多种缺点:(1)现有分组工具只通过一次分组流程即得到分组结果,难以在组网约束下得到高质量的分组结果。这是因为组网限制条件和约束因素种类繁多,数量巨大,分组工具难以穷举,导致分组结果与组网条件难以相互契合、高效配合。对于大规模组网来说,通常组网约束条件数量庞大,如果选择穷举组网约束,那么对于现有分组工具来说,整理、建模数量如此多的物理组网规则也是不高效的,同时违背分组工具的作用初衷,即指导客户对其设计进行快速布局规划。
[0007](2)现有分组工具通常都是比较固定的分组模型,例如固定地按机柜、板子、FPGA
的次序分组。然而随着用户设计规模的不断扩大,用于验证的FPGA的数量随之剧增,这种固定的分组模式已经渐渐不能满足验证的需求,亟需一种扩展性良好、灵活方便的分组方法。
[0008](3)目前在行业内的分组结果中,常存在各部分之间互联通信资源非常紧张的情况,这是因为一些负有互联通信功能的部分同时也承担了逻辑验证的任务,导致该部分互联资源紧缺,互联带宽受限,从而影响整个验证系统工作频率的提升,继而成为系统性能提高的瓶颈。

技术实现思路

[0009]本申请提供一种多层次分组方法及装置,以解决当前分组方法中所存在的分组质量不高、灵活性和扩展性不佳、局部互联通信资源紧张的技术问题。
[0010]根据本申请实施例的第一方面,提供一种多层次分组方法,所述方法用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述方法包括:获取芯片设计;根据所述芯片设计,获取与所述芯片设计相匹配的初始适用组网以作为适用组网,其中所述初始适用组网为多叉树结构,包括多个层次,每个层次中包含一个或多个分组对象系统,每个分组对象系统内包含一个或多个成员;调用分组引擎对所述芯片设计在所述适用组网上逐层进行分组以得到分组结果及性能表现报告,其中,在每层分组时先在每个分组对象系统内对通信成员进行标记再结合所述通信成员的标记进行分组,所述通信成员为主要功能是负责通信而非验证逻辑的成员;判断所述性能表现报告是否达到要求,如果达到要求,则按照此次分组结果进行实际组网,如果未达到要求,则根据所述性能表现报告调整所述分组引擎和\或调整所述适用组网以重新进行分组。
[0011]可选的,在每个分组对象系统内对通信成员进行标记,包括:在当前分组对象系统中计算每个成员的系统间通信能力和系统内分流能力;获取调节参数k,并根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P;将通信能力P最大的成员作为当前分组对象系统内的通信成员并进行标记。
[0012]可选的,根据调节参数k、系统间通信能力、系统内分流能力获取每个成员的通信能力P,包括:根据P = k*Connection_Out + (1

k)*Performance_Bypass计算每个成员的通信能力P,其中Connection_Out为当前成员的系统间通信能力,Performance_Bypass为当前成员的系统内分流能力。
[0013]可选的,计算每个成员的系统间通信能力,包括:以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:
将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:。
[0014]可选的,计算每个成员的系统内分流能力,包括: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的计算公式为:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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为当前成员的系统内分流能力。4.根据权利要求2所述的方法,其特征在于,计算每个成员的系统间通信能力,包括:以每个成员为节点构建图结构,将当前成员与外部分组对象系统之间的图结构连线权重之和作为当前节点的系统间通信能力,其中,两节点之间的图结构连线权重定义如下:将节点A的最底层中所包含的FPGA与节点B的最底层中所包含的FPGA进行任意两两组合,如果组合时在实际组网中存在对应的连接线缆cable,则记录每根cable的物理长度Cable_Length_i,i=1,2,...n,那么A、B两点之间的图结构连线权重WeightAB为:。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所述的方法,其特征在于,结合所述通信成员的标记,包括以下策略:在分组引擎的分割算法中,用户芯片设计的逻辑部分将尽可能少量地分配到通信成员上,和\或,将资源占用率低、互联通信需求大的模块分配至通信成员上,和\或,通过在分组结果上对电路路线的重新规划,使得通信线路更多地选择经由通信成员进行信号转发。7.根据权利要求1所述的方法,其特征在于,所述性能表现报告包括:FPGA资源消耗统计,所述FPGA资源消耗统计包括各个FPGA消耗的资源量;互联资源统计,所述互联资源统计包括各物理互连线上通过时分复用形式传递的信号数量;时序违例检查,包括通过静态时序分析工具遍历所有时序路径,计算建立时间与保持时间。8.根据权利要求7所述的方法,其特征在于,判断所述性能表现报告是否达到要求,包括:如果出现以下一种或多种情况,则判定为未达到要求:存在资源消耗超出第一指定阈值的FPGA;存在资源利用不足区域的FPGA;通过时分复用形式传递的信号数量超过第二指定阈值;存在建立时间或保持时间违例的线路。9.根据权利要求8所述的方法,其特征在于,根据所述性能表现报告调整分组引擎以重新进行分组,包括以下策略:将资源消耗超出第一指定阈值的FPGA中的用户逻辑搬移至资源利用不足的区域中,更改所述适用组网的组网形态,并对发生变动的此部分用户逻辑在发生组网变化的FPGA中进行重新分组;对于信号数量超过第二指定阈值的热点线路的信号进行疏导处理;根据所述芯片设计中的用户要求,降低系统频率,增大时分复用比率;根据所述性能表现报告更改组网连接关系,为分组逻辑之间存在较多互联通信的FPGA配置更多的物理互连线;对于建立时间或保持时间违例的线路,根据所述性能表现报告修改线路上的约束或者将延时较大线路的两端通过重新分组分配到同一块FPGA中。10.一种多层次分组装置,其特征在于,所述装置用于由多个现场可编程逻辑门阵列FPGA组成的原型验证系统,所述原型验证系统用于验证用户的芯片设计;所述装置包括:芯片设计获取模...

【专利技术属性】
技术研发人员:邵中尉张吉锋
申请(专利权)人:上海国微思尔芯技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1