一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信号分流方法、装置、电子设备及存储介质与流程

2022-04-14 01:36:11 来源:中国专利 TAG:


1.本发明涉及芯片设计分割验证技术领域,具体涉及一种信号分流方法、装置、电子设备及存储介质。


背景技术:

2.针对超大规模芯片设计的分割结果进行验证时,常常需要使用数片(比如几十片甚至数百片)验证芯片来构成验证系统,验证芯片之间使用io引脚作为分割信号之间的互连资源,因而互连资源是大规模芯片设计的分割验证中的稀缺资源。
3.实际的验证系统中,验证芯片之间的io资源是需要使用物理连线实现互连,如图1所示,验证芯片fpga1和验证芯片fpga2之间的信号a至信号d,可通过物理线缆cable_1实现互连,此时cable_1的时分复用比(即tdmratio为4),而互连线cable_n的时分复用比为m(m为正整数)。
4.因此,当某个cable的通信压力过大时,将导致验证芯片工作在较低工作频率,即整个验证系统的工作频率可能受到cable的通信压力影响而无法满足预设的最低工作频率。
5.例如,在使用tdm(时分复用)实现互连中,tdm ratio(时分复用比例)过大,将造成延时时间过长,验证系统无法达到最低要求工作频率。
6.例如,在验证芯片组网中,可能因分割算法形成的分割结果不尽合理,以及受限于验证系统的物理资源限制,即使对分割结果对应的组网方案不断调整,也可能无法满足验证系统工作在最低工作频率要求。
7.而为了满足最低工作频率,需要对芯片设计重新分割、重新布局、组网等,大规模芯片设计的分割及验证受到了极大的制约,无法有效地开展,影响芯片上市发布。
8.因此,亟需一种能够有效地对芯片设计进行分割验证的技术方案。


技术实现要素:

9.有鉴于此,本说明书实施例提供一种信号分流方法、装置、电子设备及存储介质,通过对网路通量图的处理实现rtl级信号分流调整,提高芯片设计的分割及验证效率。
10.本说明书实施例提供以下技术方案:本说明书实施例提供一种信号分流方法,应用于芯片设计的分割验证,所述信号分流方法包括:获取网路通量图,所述网路通量图为由n个节点和m条网路构成的图,所述节点对应于分割验证中的分组逻辑,所述网路为分组逻辑之间的逻辑连接关系被分配于验证系统中的物理互连网路,每条网路标记有对应的权重,所述权重用于表征网路的通信能力;确定所述网路通量图中若干待分流的目标信号,所述待分流的目标信号为权重小于第一预设阈值的网路上的信号;将所述若干待分流的目标信号中的部分信号分流到其他冗余网路中,其中所述冗
余网路为权重大于第二预设阈值的网路,所述第二预设阈值不小于所述第一预设阈值。
11.本说明书实施例还提供一种信号分流装置,应用于芯片设计的分割验证,所述信号分流装置包括:网路通量图模块,用于获取网路通量图,所述网路通量图为由n个节点和m条网路构成的图,所述节点对应于分割验证中的分组逻辑,所述网路为分组逻辑之间的逻辑连接关系被分配于验证系统中的物理互连网路,每条网路标记有对应的权重,所述权重用于表征网路的通信能力;确定模块,用于确定所述网路通量图中若干待分流的目标信号,所述待分流的目标信号为权重小于第一预设阈值的网路上的信号;分流模块,用于将所述若干待分流的目标信号中的部分信号分流到其他冗余网路中,其中所述冗余网路为权重大于第二预设阈值的网路,所述第二预设阈值不小于所述第一预设阈值。
12.本说明书实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:如本说明书实中任意一项实施例所述的信号分流方法。
13.本说明书实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令设置为:如本说明书实中任意一项实施例所述的信号分流方法。
14.与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:通过在rtl层级动态地对互连资源进行中转路径配置,将分割结果中可能处于拥塞网路的信号进行中转、疏通等信号分流处理,可以均衡地提高每个区域的通信流量,从而提高验证系统的总体工作频率;同时,通过在rtl层级上进行信号分流操作,处理更快捷、高效,极大提升了芯片验证设计中的分割验证效率。
附图说明
15.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
16.图1是验证系统中验证芯片之间信号互连的示意图;图2是本说明书实施例提供的一种信号分流方案的结构示意图;图3是本说明书实施例提供的一种信号分流方案中网路通量图的示意图;图4是本说明书实施例提供的一种信号分流方法的流程图;图5是本说明书实施例提供的一种信号分流方法中分流前的rtl级代码的示意图;图6是本说明书实施例提供的一种信号分流方法中分流前的局部网路通量图的示意图;图7是本说明书实施例提供的一种信号分流方法中分流后的rtl级代码的示意图;图8是本说明书实施例提供的一种信号分流方法中分流后的局部网路通量图的示
意图;图9是本说明书实施例提供的一种信号分流装置的结构示意图。
具体实施方式
17.下面结合附图对本技术实施例进行详细描述。
18.以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本技术,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
20.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
21.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等描述的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
22.目前,在使用验证系统对芯片设计的分割结果进行验证中,为了解决互连资源的瓶颈问题,有以下几种通常做法:一是,不更改分割信号的传递线路,可以采用如下方案:(1)在采用tdm实现互连复用中,降低验证系统的工作频率,以及增大拥塞网路的tdm ratio,该方案通过牺牲验证系统的工作性能,用简单的形式扩增拥塞网路的通信能力,但造成验证系统的极大性能损失;(2)更改验证系统的物理组网,重新布局、修改验证芯片(如fpga,即现场可编程逻辑阵列)之间的物理连线关系,对芯片设计进行重新分割等,该方案不仅需要耗费大量时间进行组网调整和重新分割,而且新的组网、分割结果等还可能造成验证系统在其他传递路径位置出现新拥塞,无法从根本上加以解决;二是,更改分割信号的传递线路,目前技术支持现状是:在出现物理连线不能支持的分割结果所需的互连关系时,比如验证芯片fpga_a与验证芯片fpga_b之间不存在物理连
线,但是分配至fpga_a与fpga_b上的用户设计存在逻辑连线,此时逻辑连线所需要传递的信号可以通过fpga_a与fpga_b之间的存在物理连接的最短路径(经过的中转fpga数量最小)中转信号加以实现。但是,这样解决所存在的问题是:(1)只在物理连线不支持分割结果时才进行信号传递线路更改,并非是为了验证统性能最优;(2)在最短路径确定固定线路才更改传递路线,但此举常常又会造成此固定线路成为新的拥塞路径,即为了解决了一个拥塞却又造成新拥塞;(3)目前仅支持网表级别的线路中转(即更改传递路线),并没有支持rtl级别的线路中转方案,而大型芯片设计的rtl语言往往要经过几十个小时的逻辑综合过程才能转换为网表,且网表的规模相比于rtl设计急剧膨胀,在快速迭代和效率上有待提高。
23.有鉴于此,通过对分割过程和验证过程进行深入研究及改进探索后,提出了一种新的分割信号在验证系统中进行分流的技术方案:如图2所示,当用户设计(即芯片设计对应的分割结果)被分配至多块验证芯片(比如四块fpga)时,各个验证芯片将分配到总设计中的一部分,因而可在rtl级上将每个验证芯片fpga上分配到的部分用户设计封装为分组逻辑,这样分组逻辑之间存在若干逻辑上需要互连的信号,这些互连信号可分配到验证系统中验证芯片之间存在的物理连接介质(如物理互连线cable),实现分割验证中的信号互连传递。因此,当分组逻辑之间逻辑互连的信号分配到某互连线cable后造成该物理连接的cable通信压力过大,比如tdm ratio值过大,又或者是分组逻辑之间逻辑互连的信号,其逻辑连接关系未能在验证系统的物理组网中存在支持此逻辑连接关系的物理连接(可理解为通信压力为无穷大),则可将该类互连信号部分地或全部地通过其他路径进行分流中转实现可满足分割验证要求的物理互连。
24.例如,假如图2中验证芯片fpga1的互连端口pa和验证芯片fpga4的互连端口pb之间的物理连线cable_n承担的通信压力过大,即cable_n成为拥塞网路(也可称为拥塞通路),此时可将需要经cable_n传递的部分信号(如图中虚线标识的原逻辑连线)经由其他具有通信冗余能力的网路“绕行”,实现分割验证中分组逻辑中互连信号的中转分流,比如先在验证芯片fpga2、fpga3中创建对应的端口和连线并连接,如图中针对端口pa和pb之间的某个逻辑互连连线,可通过新增端口p1、p2、p3、p4以及新增逻辑连线a、b、c、d和e实现中转互连,即新增的逻辑连线可通过验证芯片之间的物理连线在中转后互连,使得验证芯片fpga1与验证芯片fpga4之间的互连信号可工作于较高工作频率上,因而在对拥塞网路的信号进行部分或全部中转分流后,既无需对芯片设计重新分割,又能保证验证系统满足较高的预设工作频率要求,提高了芯片设计的分割及验证效率,保证了芯片能够及时验证后上市发布。
25.需要说明的是,芯片设计(即芯片设计对应的分割结果)在分割验证中被分配至若干验证芯片时,各个验证芯片将分配到整个芯片设计中的一部分设计,即对整个芯片设计进行分割后验证,而各个部分设计之间通常存在逻辑连接关系,这些逻辑连接关系需要通过验证系统中的物理互连cable实现互连。因此,可在rtl级上将每个验证芯片所分配到的部分设计封装为分组逻辑,形成对应的分割结果,这些分割结果之间存在的逻辑连接关系(或者说需要互连的信号),实际验证系统中,通常是将多个互连信号组装为一组复用信号,并通过通信模块(比如tdm模块)实现传输,即通过验证系统中的物理互连线cable实现互连通信。因此,可先将分组逻辑(即对应为验证系统的验证芯片)作为网路通量图的节点(也可
称为顶点),将互连信号需要在分组逻辑之间的逻辑连接关系,以及互连信号在验证系统中验证芯片之间的物理连接关系等连接关系,作为网路通量图中节点之间的互连边(也可称为通路、网络、互连线cable等),其中每条边中可包含有若干互连信号,即若干互连信号可被分配在同一个互连边中传输,并采用权重表征互连边的通信能力(或者说通信压力),即网路通量图可为由节点、通路及权重共同构成的图结构,因而网路通量图可用于表征整个芯片设计在分配到验证系统进行分割验证时的分割结果。
26.例如,如图3所示,某个待验证的芯片设计,被分配到验证系统中的验证芯片a至验证芯片e所对应的分割结果,因而可将这些验证芯片作为网路通量图的节点,将各验证芯片之间存在的互连通路(比如若干信号的逻辑连接和/或物理连接等构成一个互连复用通路)作为节点之间的互连边,以及将互连通路的通信压力通过边的权重进行表征,使得整个网路通量图可以用于反应分割结果被分配到各个验证芯片后的互连关系,比如验证芯片a与验证芯片b之间通路的权重为2,验证芯片a与验证芯片c之间通路的权重为-3等等。
27.需要说明的是,网路通量图中的权重用于表征网路的通信能力,因而可通过权重的大小来反应网路的通信压力,其中权重取值可为正值、零值、负值等。因此,可将权重与阈值进行比较,快速确定哪些通路存在拥塞,哪些通路不存在拥塞,进而可将拥塞的通路动态地调整为非拥塞,使得各个通路的通信压力在可承受范围,保证验证系统可工作于较高频率。
28.实施中,网路是否属于拥塞网路,可根据以下判断得知:在rtl级获得分割结果并将该分割结果分配到分割验证的验证系统中时,可判断分割结果中网路的通信能力是否满足预设要求。
29.例如,在采用tdm的验证系统中,可判断tdm ratio是否超过预设ratio阈值,又比如可判断逻辑连接关系是否不存在对应的物理互连网路等。
30.其中,ratio阈值可通过下面公式由系统设定的工作频率进行反向求解:t
tdm
=(20 tdm ratio/4 )/312.5。
31.需要说明的是,t
tdm
的单位为ns,代表完成一次tdm ratio数量的信号传递所需要消耗的时间,每个信号一次传输1bit;公式中312.5的单位为mhz,为该tdm模块的固定工作频率,tdm模块以312.5mhz的频率一次可以处理4bit数据;对于tdm模块来说,每处理一次数据需要20个时钟周期的收发时间:发送端和接收端各需要3个tdm时钟周期,传输需要消耗最大14个tdm时钟周期。因此,当采用tdm模块进行复用互连时,若tdm模块的工作参数(如工作频率、需要时钟数等)不同于前述说明时,可根据实际工作参数进行反向求解tmdratio,这里不作限定。
32.因此,当设定验证系统的最低工作频率为f
min
,则系统最大工作周期为t
max = 1/f
min
,因而可将t
tdm
对应为最大工作周期t
max
后,进而将设定的系统工作频率代入上述公式,可求得验证系统对应的tdm ratio最大值,也就是物理互连线cable能够在tdm中传递不同信号的最大数量,进而可将求得的最大值作为预设ratio阈值,后续可将该ratio阈值用于判断各个cable通信压力大小,即把cable实际的tdm ratio与该ratio阈值比较,可得到实际cable的通信压力,比如若cable实际的tdmratio超过预设ratio阈值,可判断该cable属于拥塞网路。
33.需要说明的是,拥塞网路(也可称为拥塞通路,即网路可成通路,下面不作区分)可
指通信压力超过预设通信能力的互连网路,比如某物理互连线路cable,预设tdmratio为10,但当前tdmratio为20,则该cable的tdm ratio过高,即通信能力超过了预设能力,造成通信压力过大,因而可判断为拥塞网路,比如将逻辑连接关系未得到物理互连网路支持的作为拥塞网路(即此网路的通信能力异常小,或者说通信压力异常大)。相应地,将具有通信余量的互连网路可称为非拥塞网路(也可称为冗余网路、冗余通路),比如某物理互连线路cable,预设tdmratio为10,但当前tdmratio为2,则该cable的tdm ratio不高,具有较多的通信余量,通信压力小,可提供多余通路用于其他信号通信(比如tdmratio的通信冗余为8)。
34.以下结合附图,说明本说明书中各实施例提供的技术方案。
35.本说明书中实施例提供一种应用于芯片设计分割验证的信号分流方法,通过对芯片设计在rtl级上的分割结果进行信号分流,使得分割结果的网路通量图中所有通路均被调整为非拥塞通路,保证验证系统的信号传输延时保持在较低水平,验证系统可工作于较高工作频率,提高了验证系统的性能,提高了芯片设计中分割验证的效率。
36.如图4所示,所述信号分流方法,包括:步骤s202、获取网路通量图,所述网路通量图为由n个节点和m条网路构成的图,所述节点对应于分割验证中的分组逻辑,所述网路为分组逻辑之间的逻辑连接关系被分配于验证系统中的物理互连网路,每条网路标记有对应的权重,所述权重用于表征网路的通信能力。
37.实施中,可将芯片设计在分割验证中对应的分割结果,转换为由顶点(也可称为节点)和边构成的图,即网路通路图记为g=(v,e),其中集合v代表顶点的顶集,集合e代表互连边的边集,每条边标记有对应的权重为wi,i∈{1,2,3
…ꢀ
m},m、n均为正整数,wi可为正值、零值或负值,这里不对wi的取值作限定。
38.还有,分割结果可为在rtl层级上使用预设的分割算法对芯片设计进行分割处理后所获得的分割结果,即分割结果为芯片设计在分割验证中分配到验证系统后,验证系统的各个验证芯片所分配到的部分设计,可将每个验证芯片所分到的rtl级代码分装为分组代码块,即分组逻辑。
39.需要说明的是,验证芯片分配到的rtl级代码逻辑可作为分组逻辑,网路通量图的节点和网路可表征这些分组逻辑之间的关系,这里不对rtl级代码的分割作限定,具体可参考相关现有技术。
40.在获得分割结果后,可将分组逻辑转为为图。如图5所示,模块top对应于分割验证中顶层的分组逻辑,该顶层的分组逻辑可对应于整个网路通量图,而模块fpga1对应于第一验证芯片的代码分组逻辑,模块fpga2对应于第二验证芯片的代码分组逻辑,模块fpga3对应于第三验证芯片的代码分组逻辑等,各验证芯片之间的互连线,如cable1、cable2,可对应于网路通量图中的网路(如图6中部分网路的示意)。需要说明的是,这里不对分组逻辑转化为网路通量图的过程作限定。
41.通过将芯片设计的rtl级代码分割为验证系统对应的分组逻辑,并将这些分组逻辑采用网路通量图表征,可便于通过网路通量图对各个验证芯片之间互连线的通信能力进行动态的均衡化调整处理。
42.步骤s204、确定所述网路通量图中若干待分流的目标信号,所述待分流的目标信
号为权重小于第一预设阈值的网路上的信号。
43.正如前述示例中,权重反应了网路的通信能力(或者说通信压力)的大小,因而可从网路通量图中确定出若干待分流的信号,比如通信压力大的网路中的信号,比如信号的逻辑连接关系在验证系统中未存在对应的物理连接网路等,即目标信号的逻辑连接关系被分配到验证系统后,对应的物理连接网路可能存在不能满足预设性能要求,因而这些网路中的信号可能需要部分地或者全部地分流到其他网路中。
44.通过权重可快速判断出网路的通信压力情况,即确定出网路是否拥塞。其中,可将权重小于第一预设阈值的网路中的部分或者全部信号确定为目标信号,而将权重不小于第二预设阈值的网路中的信号确定为非目标信号,或者说将权重不小于第二预设阈值的网路确定为非拥塞网路(也可称为冗余通路、冗余网路等),便于后续将拥塞网路中的部分信号分流调整到非拥塞网路中。
45.步骤s206、将所述若干待分流的目标信号中的部分信号分流到其他冗余网路中,其中所述冗余网路为权重大于第二预设阈值的网路,所述第二预设阈值不小于所述第一预设阈值。
46.实施中,可将拥塞网路上的部分信号(即目标信号)部分分流到非拥塞网路上,通过分流后,网路通量图中的各个网路的通信压力动态地调整到可承受范围,保证了验证系统可工作在较高工作频率。
47.需要说明的是,拥塞网路上的部分信号可分配到同一个非拥塞网路上,也可以分配到不同非拥塞网路上,这里不作限定。
48.需要说明的是,第一预设阈值和/或第二预设阈值的取值,可根据实际应用需要进行预设及调整。例如,前述实施例中,采用tdmratio与预设ratio之间的差异情况作为权重时,第一预设阈值、第二预设阈值均可设置为零,即权重小于零的网路为拥塞网路,拥塞网路上的信号可能需要进行分流,权重大于零的通路为非拥塞网路,非拥塞网路可以承受其他拥塞网路的信号分流。
49.通过上述步骤s202至s206,在获得rtl级代码对应的分割结果后,通过将分割结果转换为网路通量图,无需反复调整分割方案、组网方案,仅需依照分割结果对应的网路拥塞程度,动态地从网路通量图中选择中信号分流的中转路径,并将拥塞网路的信号分流到非拥塞网路中进行分流疏通,均衡地提高每个区域的通信通畅程度,提升了验证系统的总体工作频率;同时,信号分流是基于rtl级进行分流,操作更快捷、高效,极大提升了芯片设计的分割及验证效率。
50.在一些实施方式中,可通过对网路通量图中确定处若干中转路径,进而按分流方案将需要分流的信号分流到各中转路径上,动态均衡各网路的通信压力。
51.实施中,在将所述若干待分流的目标信号中的部分信号分流到其他冗余通路中,可包括:首先,确定所述部分信号的输入端口对应的源节点和所述部分信号的输出端口对应的目标节点;然后,在所述网路通量图中确定中转链路(也可称为中转路径),所述中转链路包含有用于在所述源节点和所述目标节点之间进行通信的若干中转节点和若干中转网路,其中所述中转网路为冗余网路;最后,将所述若干待分流的目标信号中的部分信号通过所述中转链路进行分流。
52.需要说明的是,在网路通量图中确定出若干中转路径后,可按预设的分流策略将
待分流的信号分流到中转路径上,其中分流策略可为路径最短、网路通量最大等策略,具体可根据实际应用需要进行预设,这里不作限定。
53.在一些实施方式中,可采用广度优先搜索算法、深度优先搜索算法从网路通量图中确定出中转路径。优选地,可采用广度优先搜索算法,使得每次分流的路径可为最短路径。
54.需要说明的是,应用于图处理中的广度优先搜索算法、深度优先搜索算法,可采用相应的搜索算法实施,这里不作限定。
55.在一些实施方式中,可采用队列的数据结构实现中转路径的确定,简化确定过程,有利于提高处理效率。
56.在一种实施方式中,可按如下方式进行队列处理:首先,创建并初始化第一访问队列;然后,依次将所述源节点、若干邻居节点和所述目标节点添加到所述第一访问队列中,以及记录所述第一访问队列中的各邻居节点对应的前驱节点,并将所述第一访问队列中的各节点对应的访问状态标记为已访问,其中所述邻居节点为与其对应的前驱节点存在至少一条冗余网路的节点,所述前驱节点为引起所述邻居节点被添加到第一访问队列的节点;最后,在所述第一访问队列中反向确定中转链路,其中从所述目标节点向所述源节点方向反向确定出前驱链路,以将所述前驱链路作为所述中转链路。
57.例如,前述如图3所示的示例中,源节点为a,目标节点为c,网路ac为拥塞网路,需要分流的通信压力为3,其中节点a到节点b的网路,通信余量为2,节点a到节点d的网路通信余量为5等。此时,先将节点a入队列,然后将与a存在冗余网路的节点b、d入队列,接着将与节点b存在冗余网路的节点c入队列、将与节点d存在冗余网路的节点e入队列,最后将与节点e存在冗余网路的节点c入队列(因节点c已入过队列,但此时可通过记录此次c入队列所对应的前驱节点实现有效区分)。因此,可寻找到两条中转链路,其中第一条中转链路为:节点a到节点b,节点b到节点c,可记为中转链路abc;第二条中转链路:节点a到节点d,节点d到节点e,节点e到节点c,可记为中转链路adec。
58.通过记录各个进入队列的节点所对应的前驱节点,有效区分处各个入队列节点各自的前驱节点,进而在确定中转路径时,可从目标节点反向需要各个前驱节点来获得目标节点与源节点之间的前驱节点链,进而将寻找到的前驱节点链反向链作为中转链路。
59.在一种实施方式中,可按如下方式进行队列处理:首先,创建并初始化第二访问队列,其中所述第二访问队列为先进先出的队列,将所述源节点初始化为队列头元素,并将所述源节点的访问状态标记为已访问;然后,将与所述队列头元素的节点存在至少一条冗余网路的邻居节点添加到所述访问队列中,并将所述第二访问队列中的各邻居节点对应的访问状态标记为已访问,以及记录所述第二访问队列中的各邻居节点对应的前驱节点;接着,在将各所述邻居节点添加到所述第二访问队列后,判断队列中是否存在目标节点,并根据判断结果进行队列操作,即若所述第二访问队列中存在所述目标节点,则从所述目标节点开始依次列举前驱节点直到所述源节点,并形成前驱节点链,然后将所述前驱节点链确定为中转链路;若所述第二访问队列中未存在所述目标节点,则将所述第二访问队列中的原队列头元素弹出,并将所第二访问队列的原第二元素作为新的队列头元素。
60.例如,前述如图3所示的示例中,先将节点a作为头元素入队列,然后将与a存在冗余网路的节点b、d入队列,此时队列中未存在目标节点c。因此,需要继续下一轮的队列操
作,即将节点a弹出队列,因队列为先进先出,因而在节点a弹出后,节点b作为队列头元素(假设节点b比节点d先入队列),继续将与节点b存在冗余网路的节点c入队列,因而队列中存在目标节点c,因而从节点c开始反向回溯各个节点的前驱节点,从而寻找到前驱节点链:节点c、节点b、节点a,所以可将前驱节点链反向后得到中转链路:节点a到节点b,节点b到节点c,可记为中转链路abc。
61.在一些实施方式中,在队列操作中,当未寻找到中转路径,但队列已为空时,表明源节点和目标节点之间,在验证系统中不存在具有通信能力冗余的物理可达路径,即不存在任何能够承担信号分流的冗余网路。此时,终止分流处理,并输出提示信息,其中所述提示信息用于表征未存在中转链路,便于分割验证的用户根据提示信息作后续处理。
62.例如,当将所述第二访问队列中的原队列头元素弹出后,所述第二访问队列为空,表明未能寻找到中转链路,进而输出提示信息。
63.在一些实施方式中,在分号分流到冗余网路时,可动态对网路的权重进行调整。
64.实施中,针对承担分流的其他冗余网路,可按如下调整方式调整网路权重:先确定所述其他冗余网路的权重调整值,其中所述权重调整值用于表征所述部分信号在分流到所述其他冗余网路时对所述其他冗余网路的通信能力影响程度;然后,根据所述权重调整值更新所述其他冗余网路的权重。
65.例如,前述实施例的中转链路abc,可以分流承担通信能力为2的信号分流,进而可将网路ab的权重调整值确定为2,进而在网路ab承担分流的通信能力为2后,网路ab的权重可调整为零(即网路ab不再具备通信余量)。
66.实施中,针对被分流的拥塞网路,可以动态地调整其权重。例如,在中转链路abc承担分流的通信能力为2后,拥塞网路ac的权重可调整为-1。
67.在一些实施方式中,假设网路通量图g=(v,e),其包含n个节点,m条边,边对应权重为wi,i∈{1,2,3
…ꢀ
m},m、n均为正整数,可采用如下队列操作实现信号分流过程:步骤(1),取权重wi最小的边ei,边ei的两个端点分别为node_a,node_b。wi最小即为需要分流的信号数量最大,即需要分流的信号数量对应记为num_bypass。实施中,wi为负数表征需要分流。
68.步骤(2),创建并初始化访问队列(queue)为空,将node_a加入队列作为队列头元素nodetop,并标记此节点为已访问。实施中,队列采用先进先出的数据结构。
69.步骤(3),将与队列头元素nodetop具有连接关系且权重大于零且未被访问过的相邻节点,依预设编号顺序压入到queue中,并将所有压入的相邻节点标记为已访问。实施中,记录本次每个压入queue中相邻节点的前驱节点,前驱节点为引其进入队列的节点,例如node_a与node_n有连接,此时node_a作为队列头元素nodetop,也作为node_n的前驱节点。需要说明的是,节点的预设编号顺序可在网路通量图建模中预设,这里不作限定。
70.步骤(4),假如队列中出现节点node_b,则从node_b开始依次列举前驱节点,形成前驱节点链,一直到node_a,若存在该节点链,该链即为中转路径。另外,在寻找中转路径中,经过边的边权最小值wmin,该值即为通过此中转路径能够分流的最大信号量;在确定中转路径后,可修改步骤(1)中所述的wi最小的边ei的边权wi为wi wmin,并将中转路径上的每条边的边权减去wmin;最后,按照此中转路径,在用户rtl级代码设计中新建端口、连线,中转对应的wmin个信号,其中在rtl级代码中进行中转信号分流的操作见本说明书中的相
关说明。这意味着该中转路径帮助拥塞网路ei分流wmin个信号。返回步骤(1)继续执行,直到网路通量图g中所有的边权均不小于0,也即所有拥塞网路已得到分流处理,或者分流的信号未能寻找到相应冗余网路进行分流,结束算法。
71.步骤(5),如果队列中不存在节点node_b,则弹出queue的头元素之后,原头元素后的一个节点作为新的头元素nodetop,转而执行步骤(3)。如果弹出queue的头元素之后找不到满足条件的邻居节点引入队列,且此时队列为空,此拥塞网路的信号未能存在到冗余网路进行分流,可终止分流处理,并报告node_a与node_b之间不存在物理可达路径或不存在任何能够分流的路径。
72.在一些实施方式中,在将待分流的目标信号分流到中转路径上时,可通过修改各验证芯片对应的分组逻辑(即rtl级代码),在rtl级代码上实施信号分流操作。
73.以前述如图5和图6的示例说明,可在rtl级代码上进行分流操。
74.如图7所示,可按以下步骤在rtl级代码上完成代码修改操作:步骤(1),获取源fpgan_instance_source和目标fpgan_ instance_target,例图中为fpga1_inst和fpga3_inst;获取需要中转的信号名称,假设为例图中的cable1;获得上述分流算法中获得的中转路径,例图中为fpga1-》fpga2-》fpga3,fpga2为中转fpga。需要说明的是,本实施例中为一个fpga2,在其他实施例中的中转fpga的数量可以大于1。
75.步骤(2),对每一个中转fpga,在其分组设计中新建中转输入、输出端口,如例图中的bridge_in,bridge_out,并在中转fpga的module内部使用assign语句进行两个端口在fpga内部的连接。
76.步骤(3),在top module内新建中转连线,如cable_bridge;将原输出信号如cable1输入到中转fpga对应的instance的新建输入端口中,中转instance的输出端口经由top module内新建的中转连线输出。需要说明的是,如果中转路径上存在下一个中转fpga,则重复步骤(3);如果不存在,则连线输出到目标fpgan_ instance_target的输入端口中,完成中转。
77.如图8所示,cable1经中转fpga2后,实现了信号分流后的通信连接。需要说明的是,图中仅示出信号分流的路径,其他网路未在图中示出。
78.基于相同发明构思,本说明书实施例还提供一种信号分流装置,该信号分流装置于前述信号分流方法对应,可应用于芯片设计的分割验证,即应用于分割验证系统中。
79.如图9所示,信号分流装置100包括:网路通量图模块101,用于获取网路通量图,所述网路通量图为由n个节点和m条网路构成的图,所述节点对应于分割验证中的分组逻辑,所述网路为分组逻辑之间的逻辑连接关系被分配于验证系统中的物理互连网路,每条网路标记有对应的权重,所述权重用于表征网路的通信能力;确定模块103,用于确定所述网路通量图中若干待分流的目标信号,所述待分流的目标信号为权重小于第一预设阈值的网路上的信号;分流模块105,用于将所述若干待分流的目标信号中的部分信号分流到其他冗余网路中,其中所述冗余网路为权重大于第二预设阈值的网路,所述第二预设阈值不小于所述第一预设阈值。
80.可选地,在信号分流装置100中,将所述若干待分流的目标信号中的部分信号分流到其他冗余通路中,包括:确定所述部分信号的输入端口对应的源节点和所述部分信号的输出端口对应的
目标节点;在所述网路通量图中确定中转链路,所述中转链路包含有用于在所述源节点和所述目标节点之间进行通信的若干中转节点和若干中转网路,其中所述中转网路为冗余网路;将所述若干待分流的目标信号中的部分信号通过所述中转链路进行分流。
81.可选地,在信号分流装置100中,在所述网路通量图中确定中转链路,包括:采用广度优先搜索算法在所述网路通量图中确定中转链路。
82.可选地,在信号分流装置100中,将所述若干待分流的目标信号中的部分信号通过所述中转链路进行分流,包括:确定所述源节点、所述目标节点和所述中转节点各自对应的分组逻辑;在顶层逻辑中创建所述中转网路对应中转连线,依次在所述中转节点对应的分组逻辑中创建所述中转网路在所述中转节点中对应的中转输入端口和中转输出端口,并在所述中转节点对应的分组逻辑内部将所述中转节点的中转输入端口和中转输出端口进行内部互连,其中所述顶层逻辑为所述源节点、所述目标节点和所述中转节点各自对应的分组逻辑共同对应的上一层分组逻辑;在所述顶层逻辑中,将所述部分信号的输出端口与所述中转链路上首个所述中转节点的中转输入端口连接,将所述中转链路上前一个所述中转节点的中转输出端口与下一个所述中转节点的中转输入端口连接,以及将最后一个所述中转节点的中转输出端口与所述目标节点的输入端口连接。
83.可选地,在信号分流装置100中,在所述网路通量图中确定中转链路,包括:创建并初始化第一访问队列;依次将所述源节点、若干邻居节点和所述目标节点添加到所述第一访问队列中,以及记录所述第一访问队列中的各邻居节点对应的前驱节点,并将所述第一访问队列中的各节点对应的访问状态标记为已访问,其中所述邻居节点为与其对应的前驱节点存在至少一条冗余网路的节点,所述前驱节点为引起所述邻居节点被添加到第一访问队列的节点;在所述第一访问队列中反向确定中转链路,其中从所述目标节点向所述源节点方向反向确定出前驱链路,以将所述前驱链路作为所述中转链路。
84.可选地,在信号分流装置100中,在所述网路通量图中确定中转链路,包括:创建并初始化第二访问队列,其中所述第二访问队列为先进先出的队列,将所述源节点初始化为队列头元素,并将所述源节点的访问状态标记为已访问;将与所述队列头元素的节点存在至少一条冗余网路的邻居节点添加到所述访问队列中,并将所述第二访问队列中的各邻居节点对应的访问状态标记为已访问,以及记录所述第二访问队列中的各邻居节点对应的前驱节点;在将各所述邻居节点添加到所述第二访问队列后,若所述第二访问队列中存在所述目标节点,则从所述目标节点开始依次列举前驱节点直到所述源节点,并形成前驱节点链,然后将所述前驱节点链确定为中转链路;若所述第二访问队列中未存在所述目标节点,则将所述第二访问队列中的原队列头元素弹出,并将所第二访问队列的原第二元素作为新的队列头元素。
85.可选地,信号分流装置100还包括:提示模块(图中未示出),其中提示模块用于当
将所述第二访问队列中的原队列头元素弹出后,所述第二访问队列为空,则输出提示信息,所述提示信息用于表征未存在中转链路。
86.可选地,信号分流装置100还包括:调整模块(图中未示出),其中调整模块用于确定所述其他冗余网路的权重调整值,所述权重调整值用于表征所述部分信号在分流到所述其他冗余网路时对所述其他冗余网路的通信能力影响程度,以及根据所述权重调整值更新所述其他冗余网路的权重。
87.基于相同发明构思,本说明书实施例还提供一种在分割验证中用于信号分流的电子设备,以用于实现前述任一实施例对应的信号分流方案。
88.需要说明的是,该电子设备,可包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一实施例所述的信号分流方法,具体可参照前述的电子设备实施例的说明方式,这里不再展开说明。
89.基于相同发明构思,本说明书实施例还提供一种在分割验证中用于信号分流的计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令设置为:用于实现前述任一实施例对应的信号分流方法的指令。
90.需要说明的是,该计算机存储介质的说明,具体可参照前述实施例的说明方式,这里不再展开说明。
91.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的实施例而言,由于其与前面的实施例是对应的,描述比较简单,相关之处参见在前实施例的部分说明即可。
92.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献