掌桥专利:专业的专利平台
掌桥专利
首页

寄存器接入方法、装置、电子设备及计算机可读存储介质

文献发布时间:2023-06-19 19:30:30


寄存器接入方法、装置、电子设备及计算机可读存储介质

技术领域

本申请涉及芯片设计技术领域,具体而言,涉及一种寄存器接入方法、装置、电子设备及计算机可读存储介质。

背景技术

随着技术的发展,数字IC(Integrated Circuit,集成电路)的规模已经突破千万级。而当项目需要进行ECO(Engineering Change Orde,工程变更)时,一般需要新增的寄存器,且需要新增的寄存器的数量可能达到了上百甚至上千之数。且由于ECO时芯片设计中的scan chain(扫描链测试中所形成的扫描链)已经成形,无法再通过现有工具重新生成替代,但作为ECO改动的一部分,这些新增寄存器却更需要被加入scan chain中。

目前,为了将ECO后产生的新增的寄存器加入scan chain中,通常是由中后端工程师通过人工方式进行加入,这就导致需要消耗大量的人力成本,且效率低下。此外,人工操作难免会出现一些失误,且这些失误出现的地方是无法预测的,因此会导致将ECO后产生的新增的寄存器加入scan chain中时出错率高。

发明内容

本申请实施例的目的在于提供一种寄存器接入方法、装置、电子设备及计算机可读存储介质,用以提高寄存器接入效率。

本申请实施例提供了一种寄存器接入方法,包括:将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,得到至少一个寄存器组;针对每个寄存器组:从各扫描链中选出目标扫描链;所述目标扫描链为包括目标链段的扫描链;所述目标链段为所述扫描链中与该寄存器组属于相同时钟域和逻辑层次的寄存器段,或为所述扫描链中与该寄存器组属于相同时钟域的寄存器段;按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中。

在上述实现方式中,通过将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,并针对每个寄存器组,选择具有与该寄存器组属于相同时钟域和逻辑层次的扫描链或者与该寄存器组属于相同时钟域的扫描链来作为被加入的目标扫描链,这样在将待接入的各寄存器接入目标扫描链的目标链段中后,由于被接入的目标扫描链的目标链段与接入的寄存器至少属于相同的时钟域,因此可以利于加入寄存器后的扫描链中各寄存器的时序收敛。且由于被接入的目标扫描链与接入的寄存器至少属于相同的时钟域,因此在接入的寄存器与扫描链的目标链段中各寄存器在版图中的物理距离通常不会很远(尤其是在目标链段与接入的寄存器逻辑层次也一致时,距离通常不会很远),从而也利于减少不必要的DRV(design rule violation,设计规则违反)。同时,在本申请实施例中是按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中,因此也可以避免加入寄存器后的目标扫描链超长,避免增加测试时间与成本。同时,采用本申请实施例的方案,可以实现待接入的各寄存器到目标扫描链的自动化接入,从而可以有效减少人力成本,提高接入效率,并且可以规避掉人工操作所存在的失误,降低将ECO后产生的新增的寄存器(即待接入的各寄存器)加入scan chain中时出错率。

进一步地,在按照该寄存器组对应的各所述目标扫描链的可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中之前,所述方法还包括:获取各所述扫描链的长度;根据各所述扫描链的长度以及各所述扫描链的长度中的最大长度,确定各所述扫描链可接入寄存器的余量。

在上述实现方式中,通过根据各扫描链的长度以及各扫描链的长度中的最大长度,确定各扫描链可接入寄存器的余量,这样就可以保证在按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各目标扫描链的目标链段中时,避免加入寄存器后的目标扫描链超长(即避免超过及各扫描链的长度中的最大长度),避免增加测试时间与成本。

进一步地,从各扫描链中选出目标扫描链,包括:从各所述扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域和逻辑层次的寄存器段的第一扫描链;从所述第一扫描链中选择出可接入寄存器的总余量大于等于该寄存器组中的寄存器数量的各所述目标扫描链。

进一步地,从各扫描链中选出目标扫描链,还包括:在所有所述第一扫描链的可接入寄存器的总余量小于所述寄存器组中的寄存器数量时,将所有所述第一扫描链确定为所述目标扫描链;从除所述第一扫描链外的其余扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域的寄存器段的第二扫描链;从所述第二扫描链中选择出可接入寄存器的总余量大于等于该寄存器组的剩余寄存器数量的各所述目标扫描链;其中,该寄存器组的剩余寄存器数量等于该寄存器组的总寄存器数量与所有所述第一扫描链的可接入寄存器的总余量之差。

在上述实现方式中,优先从包含与寄存器组属于相同时钟域和逻辑层次的寄存器段、且可接入寄存器的余量不为0的第一扫描链选出目标扫描链。在第一扫描链的总余量不足时,再从包含与该寄存器组属于相同时钟域的寄存器段、且可接入寄存器的余量不为0的第二扫描链继续选出目标扫描链,这样就可以尽可能地使得待接入的寄存器与其接入的目标扫描链在版图上的物理位置是相近的,从而在利于时序收敛的同时,也利于减少不必要的DRV。

进一步地,在所述从各扫描链中选出目标扫描链之前,所述方法还包括:从各所述扫描链中去除OCC chain(On-chip Clock Controllers chain,片上时钟控制器链)。

可以理解,在扫描链测试中,OCC chain是用于进行扫描控制的,因此在接入寄存器时,一般不在OCC chain中接入寄存器,以免影响测试效果。而在上述实现方式中,通过先从各所述扫描链中去除OCC chain,然后再从各扫描链中选出目标扫描链进行待接入的寄存器的接入,这样就可以保证待接入的寄存器不会接入到OCC chain中。

进一步地,按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中,包括:

针对任意一个所述目标扫描链,采用以下方式将该寄存器组中的各所述寄存器接入该目标扫描链的目标链段中:

若该寄存器组中的目标寄存器数量大于该目标扫描链可接入寄存器的余量n,则执行以下操作,其中所述目标寄存器为该寄存器组中未接入扫描链的寄存器:从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;从该寄存器组的目标寄存器中确定出包含所述第一目标寄存器和所述第二目标寄存器在内的n个第三目标寄存器;以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接n个所述第三目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将所述第二目标寄存器的输出端与所述第二寄存器的输入端连接;

若该寄存器组中未接入扫描链的目标寄存器数量小于等于该目标扫描链可接入寄存器的余量n,则执行以下操作:

从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接该寄存器组中的所有目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将所述第二目标寄存器的输出端与所述第二寄存器的输入端连接。

在上述实现方式中,通过从寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器,进而以第一目标寄存器为起点,第二目标寄存器为终点,依次连接该寄存器组中的所有第三目标寄存器或所有目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将所述第二目标寄存器的输出端与所述第二寄存器的输入端连接,这样就可以自动化地实现所有第三目标寄存器或所有目标寄存器到目标扫描链的目标链段的接入,降低人工成本并提高接入效率。

进一步地,从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器,包括:计算该寄存器组中每一目标寄存器与该目标扫描链的目标链段中每一寄存器之间的距离;将最小距离对应的目标寄存器确定为所述第一目标寄存器,将最小距离对应的该目标扫描链的目标链段中的寄存器确定为所述第一寄存器,将该目标扫描链中与所述第一寄存器的输出端连接的寄存器确定为所述第二寄存器,将与所述第二寄存器距离最小的目标寄存器确定为所述第二目标寄存器。

在上述实现方式中,取最小距离对应的目标寄存器确定为第一目标寄存器,最小距离对应的该目标扫描链的目标链段中的寄存器确定为第一寄存器,并取与第二寄存器距离最小的目标寄存器确定为第二目标寄存器,这样就可以保证寄存器接入点的距离是最短的,从而在一定程度上降低待接入的寄存器接入目标扫描链时所带来的走线距离的影响,从而利于接入寄存器后的扫描链的时序收敛,也利于减少不必要的DRV。

进一步地,以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接n个所述第三目标寄存器,包括:以所述第一目标寄存器和所述第二目标寄存器之间的中间点为原点,将n个所述第三目标寄存器划分至四个象限;将每个象限内的各第三目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个第三目标寄存器的输出端与另一个象限内第一个第三目标寄存器的输入端连接,且第一象限的第一个第三目标寄存器的输入端与所述第一目标寄存器的输出端连接,第四象限的最后一个第三目标寄存器的输出端与所述第二目标寄存器的输入端连接;其中,所述第一象限的第一个第三目标寄存器为:与所述第一目标寄存器的距离最近的第三目标寄存器;其中,所述第一象限为与所述第一目标寄存器的距离最近的第三目标寄存器所在的象限;所述第二象限为与所述第一象限相邻,且不与所述第一目标寄存器相交的象限;所述第三象限为与所述第二象限相对的象限;所述距离最短原则为:两个寄存器在连接时,该两个寄存器在所有可连接的寄存器中距离最短。

进一步地,以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接该寄存器组中的所有目标寄存器,包括:

以所述第一目标寄存器和所述第二目标寄存器之间的中间点为原点,将所述目标寄存器划分至四个象限;

将每个象限内的各目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个目标寄存器的输出端与另一个象限内第一个目标寄存器的输入端连接,且第一象限的第一个目标寄存器的输入端与所述第一目标寄存器的输出端连接,第四象限的最后一个目标寄存器的输出端与所述第二目标寄存器的输入端连接;其中,所述第一象限的第一个目标寄存器为:与所述第一目标寄存器的距离最近的目标寄存器;其中,所述第一象限为与所述第一目标寄存器的距离最近的目标寄存器所在的象限;所述第二象限为与所述第一象限相邻,且不与所述第一目标寄存器相交的象限;所述第三象限为与所述第二象限相对的象限;所述距离最短原则为:两个寄存器在连接时,该两个寄存器在所有可连接的寄存器中距离最短。

在上述实现方式中,以第一目标寄存器和第二目标寄存器之间的中间点为原点,将第三目标寄存器或目标寄存器划分至四个象限,并将每个象限内的各第三目标寄存器或目标寄存器按照距离最短原则进行连接,并连接各象限之间的第三目标寄存器或目标寄存器,这样由于每个象限内的第三目标寄存器或目标寄存器都是按照距离最短原则进行的连接,可以尽可能的使得连接后的各第三目标寄存器或目标寄存器的距离最短,从而利于接入寄存器后的扫描链的时序收敛,也利于减少不必要的DRV。

本申请实施例还提供了一种寄存器接入装置,包括:获取模块,用于将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,得到至少一个寄存器组;接入模块,用于针对每个寄存器组:从各扫描链中选出目标扫描链,并按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中;其中,所述目标扫描链为包括目标链段的扫描链;所述目标链段为所述扫描链中与该寄存器组属于相同时钟域和逻辑层次的寄存器段,或为所述扫描链中与该寄存器组属于相同时钟域的寄存器段。

本申请实施例还提供了一种电子设备,包括处理器、存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的寄存器接入方法。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一种的寄存器接入方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种寄存器接入方法的流程示意图;

图2为本申请实施例提供的一种寄存器连接结构示意图;

图3为本申请实施例提供的一种寄存器接入装置的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

为了提高寄存器接入效率,本申请实施例中提供了一种寄存器接入方法。可以参见图1所示,图1为本申请实施例中提供的一种寄存器接入方法的流程示意图,包括:

S101:将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,得到至少一个寄存器组。

在本申请实施例中,可以在innovus工具内打开ECO之后的database(数据库),从中得到ECO后的所有寄存器(其中包括待接入的各寄存器)的物理位置、所属时钟域、所属逻辑层次等信息,然后从中取出ECO所导致新增的寄存器(即待接入的各寄存器)的物理位置、所属时钟域、所属逻辑层次(某些文献中也称hierarchy层级或称parent,可通过innovus工具从database中查找得到)等信息,并将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,得到至少一个寄存器组。这样,每个寄存器组中的待接入的寄存器属于相同的时钟域和逻辑层次。

S102:针对每个寄存器组:从各扫描链中选出目标扫描链,按照该寄存器组对应的各目标扫描链可接入寄存器的余量,将该寄存器组中的各寄存器接入各目标扫描链的目标链段中。

可以理解,扫描链是由一个一个寄存器依次连接形成的链状结构。本申请实施例中,将扫描链中与该寄存器组属于相同时钟域和逻辑层次的寄存器段,或将扫描链中与该寄存器组属于相同时钟域的寄存器段称为目标链段。所谓寄存器段是指连续的多个寄存器依次连接形成的链状段。在本申请实施例中,目标扫描链是指包括目标链段的扫描链。

可以理解,在本申请实施例中,在按照该寄存器组对应的各目标扫描链可接入寄存器的余量,将该寄存器组中的各寄存器接入各目标扫描链的目标链段中之前,还可以先获取各扫描链可接入寄存器的余量。

可选的,可以获取各扫描链的长度,然后根据各扫描链的长度以及各扫描链的长度中的最大长度,确定各扫描链可接入寄存器的余量。

示例性的,在本申请实施例中,各扫描链中具有的寄存器数量可以作为各扫描链的长度。此时,可以将各扫描链的长度与各扫描链的长度中的最大长度作差,得到各扫描链可接入寄存器的余量。

这样,通过根据各扫描链的长度以及各扫描链的长度中的最大长度,确定各扫描链可接入寄存器的余量,就可以保证在按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中时,避免加入寄存器后的目标扫描链超长(即避免超过及各扫描链的长度中的最大长度),避免增加测试时间与成本。

可以理解,随着待接入的寄存器接入扫描链中,扫描链的可接入寄存器的余量会发生变化。故在本申请实施例中,在某一扫描链接入寄存器后,可根据接入的寄存器数量,更新该扫描链的可接入寄存器的余量。

在本申请实施例中,可以基于ECO前的PNR(Place&Route,数字后端布局布线)网表进行ATPG(Automatic Test Pattern Generation,自动测试向量生成,可利用算法自动生成测试向量),从而基于ATPG结果得到ECO前所具有的扫描链,各扫描链的长度等信息。

可以理解,由于可以基于ECO前的PNR网表进行ATPG,从而基于ATPG结果得到各扫描链的长度,因此该步骤可以置于步骤S101之前进行执行,但不作为限制。

在本申请实施例中,在从各扫描链中选出目标扫描链时,可以先从各扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域和逻辑层次的寄存器段的第一扫描链。然后从第一扫描链中选择出可接入寄存器的总余量大于等于该寄存器组中的寄存器数量的各目标扫描链。

示例性的,假设有第一扫描链1至5,可接入寄存器的余量分别为19、12、5、1、10。假设当前的寄存器组中待接入的寄存器的数量为30,则可以选取第一扫描链1和第一扫描链2为目标扫描链,或者可以选取第一扫描链1、第一扫描链4和第一扫描链5为目标扫描链。

可选的,在本申请实施例的一种可选实施方式中,在从第一扫描链中选择出目标扫描链时,可以先将各第一扫描链按照可接入寄存器的余量的大小进行排序,例如上例中可以将第一扫描链排序为第一扫描链1、第一扫描链2、第一扫描链5、第一扫描链3、第一扫描链4。然后,依次从排序后的第一扫描链中选取目标扫描链,直至选取出的目标扫描链的总余量大于等于当前的寄存器组中待接入的寄存器的数量。仍以上例为例,按照排序,先选择第一扫描链1作为目标扫描链,此时目标扫描链的总余量为19,少于寄存器组中待接入的寄存器的数量30,接下来取第二扫描链2作为目标扫描链,此时目标扫描链的总余量为31,大于寄存器组中待接入的寄存器的数量30,结束目标扫描链的选择。这样,可以尽量将一组寄存器接入在尽可能少的扫描链中,从而减少后续接入扫描链的工作量,提高接入效率。

当然,以上仅为本申请实施例的一种可选的目标扫描链的选择方式,不作为对本申请实施例的限制。

可以理解,在本申请实施例中,随着各寄存器组的不断接入,各扫描链的余量会不断减少,从而可能会出现第一扫描链的总余量小于寄存器组中待接入的寄存器的数量的情况,甚至可能会出现不存在第一扫描链的情况。为此,在本申请实施例中,在所有第一扫描链的可接入寄存器的总余量小于寄存器组中的寄存器数量时(不存在第一扫描链时所有第一扫描链的可接入寄存器的总余量即为0),将所有第一扫描链确定为目标扫描链,并从除第一扫描链外的其余扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域的寄存器段的第二扫描链,然后从第二扫描链中选择出可接入寄存器的总余量大于等于该寄存器组的剩余寄存器数量的各目标扫描链。其中,该寄存器组的剩余寄存器数量等于该寄存器组的总寄存器数量与所有第一扫描链的可接入寄存器的总余量之差。

示例性的,假设有第一扫描链1和2,可接入寄存器的余量分别为5和1。假设当前的寄存器组中待接入的寄存器的数量为30,则可以先选取第一扫描链1和第一扫描链2为目标扫描链。此时该寄存器组的剩余寄存器数量即等于30-5-1,等于24。假设有第二扫描链1至4,分别为可接入寄存器的余量分别为10、14、13、9。则可以从第二扫描链1至4中选择出总余量大于24的多个第二扫描链作为目标扫描链,例如选择第二扫描链1和2作为目标扫描链。

可以理解,在本申请实施例的一种可选实施方式中,在从第二扫描链中选择出目标扫描链时,可以先将各第二扫描链按照可接入寄存器的余量的大小进行排序,例如上例中可以将第二扫描链排序为第二扫描链2、第二扫描链3、第二扫描链1、第二扫描链4。然后,依次从排序后的第二扫描链中选取目标扫描链,直至选取出的目标扫描链的总余量大于等于当前的寄存器组中的剩余寄存器数量。仍以上例为例,按照排序,先选择第二扫描链2作为目标扫描链,此时第二扫描链构成的目标扫描链的总余量为14,少于寄存器组的剩余寄存器数量24,所有目标扫描链的总余量为20,少于寄存器组中的总寄存器数量30,接下来取第二扫描链3作为目标扫描链,此时第二扫描链构成的目标扫描链的总余量为27,大于寄存器组的剩余寄存器数量24,所有目标扫描链的总余量为33,大于寄存器组中待接入的寄存器的数量30,结束目标扫描链的选择。这样,可以尽量将一组寄存器接入在尽可能少的扫描链中,从而减少后续接入扫描链的工作量,提高接入效率。可以理解,以上方式中,可以仅基于第二扫描链构成的目标扫描链的总余量与寄存器组的剩余寄存器数量进行比较,以判断是否需要继续选取目标扫描链,也可以仅基于所有目标扫描链的总余量与寄存器组中待接入的寄存器的数量进行比较,以判断是否需要继续选取目标扫描链,无需同时进行两者的判断。

当然,以上仅为本申请实施例的一种可选的目标扫描链的选择方式,不作为对本申请实施例的限制。

可以理解,若出现极端情况,例如寄存器组中的待接入寄存器的数量超过了所有第一扫描链和所有第二扫描链的余量总和N,此时一方面可以将所有第一扫描链和所有第二扫描链作为目标扫描链,将寄存器组中的N个待接入寄存器分别接入各目标扫描链,另一方面对于寄存器组中剩余的待接入的寄存器,此时可以上报工程师,以便工程师评估时序收敛问题,以及测试成本问题,进而决定是否需要将这些剩余的待接入的寄存器接入不属于同一时钟域的扫描链中,或者接入某一不存在余量的第一扫描链或第二扫描链中,使该第一扫描链或第二扫描链超长。

可以理解,在扫描链测试中,OCC chain是用于进行扫描控制的,因此在接入寄存器时,一般不在OCC chain中接入寄存器,以免影响测试效果。为此,在本申请实施例中,在从各扫描链中选出目标扫描链之前,可以先从各扫描链中去除OCC chain,然后再从各扫描链中选出目标扫描链进行待接入的寄存器的接入,这样就可以保证待接入的寄存器不会接入到OCC chain中。

还可以理解,在本申请实施例中,可以预先给定各OCC chain的名称,进而基于对ECO前的PNR网表进行ATPG的结果,基于各OCC chain的名称,从各扫描链中去除各OCCchain。

在本申请实施例中,针对每一个寄存器组,可以采用以下方式将该寄存器组中的各寄存器接入每一目标扫描链的目标链段中:

若该寄存器组中的目标寄存器(目标寄存器为该寄存器组中未接入扫描链的寄存器)的数量大于该目标扫描链可接入寄存器的余量n,则执行以下操作:

从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;

从该寄存器组的目标寄存器中确定出包含第一目标寄存器和第二目标寄存器在内的n个第三目标寄存器;

以第一目标寄存器为起点,第二目标寄存器为终点,依次连接n个第三目标寄存器,并将第一目标寄存器的输入端与第一寄存器的输出端连接,将第二目标寄存器的输出端与第二寄存器的输入端连接。

若该寄存器组中未接入扫描链的目标寄存器数量小于等于该目标扫描链可接入寄存器的余量n,则执行以下操作:

从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;

以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接该寄存器组中的所有目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将第二目标寄存器的输出端与第二寄存器的输入端连接。

可以理解,以上方式中,若该寄存器组中的目标寄存器的数量大于该目标扫描链可接入寄存器的余量n,则仅选取n个寄存器进行接入,而若该寄存器组中的目标寄存器的数量小于等于该目标扫描链可接入寄存器的余量n,则无需进行选取,直接以全部的目标寄存器进行接入。

在以上方式中,可以计算该寄存器组中每一目标寄存器与该目标扫描链的目标链段中每一寄存器之间的距离,然后将最小距离对应的目标寄存器确定为第一目标寄存器,将最小距离对应的该目标扫描链的目标链段中的寄存器确定为第一寄存器,将该目标扫描链中与第一寄存器的输出端连接的寄存器确定为第二寄存器,将与第二寄存器距离最小的目标寄存器确定为第二目标寄存器。这样,通取最小距离对应的目标寄存器确定为第一目标寄存器,最小距离对应的该目标扫描链中的寄存器确定为第一寄存器,并取与第二寄存器距离最小的目标寄存器确定为第二目标寄存器,这样就可以保证寄存器接入点的距离是最短的,从而在一定程度上降低待接入的寄存器接入目标扫描链时所带来的走线距离的影响,从而利于接入寄存器后的扫描链的时序收敛,也利于减少不必要的DRV。

示例性的,假设寄存器中存在未接入扫描链的目标寄存器Ji1至Jin,当前要接入的目标扫描链的目标链段中包括寄存器Jj1至Jjm,则依次计算Ji1至Jin与Jj1的距离,计算Ji1至Jin与Jj2的距离…,计算Ji1至Jin与Jjm的距离,得到共计n*m个距离。然后从这n*m个距离中确定出最小距离,假设最小距离为Ji1与Jj1的距离,则将Ji1作为第一目标寄存器,将Jj1作为第一寄存器。同时,假设目标扫描链中Jj1的输出端Q是与Jj2的输入端SI连接的,因此可以将Jj2作为第二寄存器。此后,可以从Ji2至Jin与Jj2之间的n个距离中找出最小距离,假设为Ji2与Jj2之间的距离最小,则将Ji2作为第二目标寄存器。

在本申请实施例中,在该寄存器组中未接入扫描链的目标寄存器数量大于该目标扫描链可接入寄存器的余量n时,以第一目标寄存器为起点,第二目标寄存器为终点,依次连接n个第三目标寄存器的过程可以包括:

以第一目标寄存器和第二目标寄存器之间的中间点为原点,将n个第三目标寄存器划分至四个象限。然后,将每个象限内的各第三目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个第三目标寄存器的输出端与另一个象限内第一个第三目标寄存器的输入端连接,且第一象限的第一个第三目标寄存器的输入端与第一目标寄存器的输出端连接,第四象限的最后一个第三目标寄存器的输出端与所述第二目标寄存器的输入端连接。其中,第一象限的第一个第三目标寄存器为:与第一目标寄存器的距离最近的第三目标寄存器。

类似的,在该寄存器组中未接入扫描链的目标寄存器数量小于等于该目标扫描链可接入寄存器的余量n时,以第一目标寄存器为起点,第二目标寄存器为终点,依次连接该寄存器组中的所有目标寄存器的过程可以包括:

以第一目标寄存器和第二目标寄存器之间的中间点为原点,将目标寄存器划分至四个象限。然后将每个象限内的各目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个目标寄存器的输出端与另一个象限内第一个目标寄存器的输入端连接,且第一象限的第一个目标寄存器的输入端与所述第一目标寄存器的输出端连接,第四象限的最后一个目标寄存器的输出端与所述第二目标寄存器的输入端连接。其中,第一象限的第一个目标寄存器为:与第一目标寄存器的距离最近的目标寄存器。

以上方式中,第一象限为与第一目标寄存器的距离最近的第三目标寄存器所在的象限;第二象限为与第一象限相邻,且不与第一目标寄存器相交的象限;第三象限为与所述第二象限相对的象限。

距离最短原则为:两个寄存器在连接时,该两个寄存器在所有可连接的寄存器中距离最短。其中,可连接的寄存器是指象限内输入端或输出端未与其他寄存器相连接的寄存器。示例性的,假设象限内存在A、B、C、D、E五个寄存器,假设从A开始连接,首先从B、C、D、E中找到距离A最近的寄存器,假设为B,将A的输出端Q与B的输入端SI连接,然后从C、D、E中找到距离B最近的寄存器,假设为C,将B的输出端Q与C的输入端SI连接,然后从D、E中找到距离C最近的寄存器,假设为D,将C的输出端Q与D的输入端SI连接,然后将D的输出端Q与E的输入端SI连接。

可以理解,在上述方式中,可以从第一目标寄存器出现进行连接,首先找到距离第一目标寄存器最近的第三目标寄存器或目标寄存器,然后以该第三目标寄存器或目标寄存器所在的象限作为第一象限,从该第三目标寄存器或目标寄存器出发,按照距离最短原则将第一象限内的各第三目标寄存器或目标寄存器连接在一起。然后从第二象限中找到与第一象限内最后一个第三目标寄存器或目标寄存器最近的第三目标寄存器或目标寄存器进行连接,然后从该第三目标寄存器或目标寄存器出发,按照距离最短原则将第二象限内的各第三目标寄存器或目标寄存器连接在一起。接着从第三象限中找到与第二象限内最后一个第三目标寄存器或目标寄存器最近的第三目标寄存器或目标寄存器进行连接,然后从该第三目标寄存器或目标寄存器出发,按照距离最短原则将第三象限内的各第三目标寄存器或目标寄存器连接在一起。接着从第四象限中找到与第三象限内最后一个第三目标寄存器或目标寄存器最近的第三目标寄存器或目标寄存器进行连接,然后从该第四目标寄存器或目标寄存器出发,按照距离最短原则将第四象限内的各第三目标寄存器或目标寄存器连接在一起。最后,将第四象限内的最后一个第三目标寄存器或目标寄存器的输出端Q与第二目标寄存器的输入端SI连接。

下面,以图2所示的结构为例,对以上连接方式进行说明。为便于描述,记第一寄存器为old-start(图中下方的三角形),第二寄存器为old-end(图中上方的三角形),第一目标寄存器为new-start(图中下方的矩形),第二目标寄存器为new-end(图中上方的矩形)。

首先按照前文所述的方式确定出old-start、old-end、new-start和new-end。

然后,如图2所示,以new-start和new-end的中间点为原点,将版图划分为四个象限。

然后,将old-start的输出端Q与new-start的输入端SI连接。

然后,将new-start的输出端Q与距离其最近的一个寄存器的输入端SI连接。

如图2所示,在第一象限内按照距离最短原则依次连接各寄存器(图2中各矩形表征各寄存器)。然后,找到第二象限中与第一象限内最后一个寄存器距离最近的寄存器,将第一象限内最后一个寄存器的输出端Q与第二象限中距其最近的寄存器的输入端SI连接。

然后,在第二象限内按照距离最短原则依次连接各寄存器。然后,找到第三象限中与第二象限内最后一个寄存器距离最近的寄存器,将第二象限内最后一个寄存器的输出端Q与第三象限中距其最近的寄存器的输入端SI连接。

然后,在第三象限内按照距离最短原则依次连接各寄存器。然后,找到第四象限中与第三象限内最后一个寄存器距离最近的寄存器,将第三象限内最后一个寄存器的输出端Q与第四象限中距其最近的寄存器的输入端SI连接。

然后,在第四象限内按照距离最短原则依次连接各寄存器。将第四象限内最后一个寄存器的输出端Q与new-end的输入端SI连接。

最后,将new-end的输出端Q与old-end的输入端SI连接。

可以理解,以上仅为本申请实施例中所示例的一种可选的第三目标寄存器或目标寄存器的连接方式,除此之外也可以采用其他方式进行连接。例如可以不进行象限划分,而是直接从第一目标寄存器出发,以第二目标寄存器为结尾,按照距离最短原则依次连接各第三目标寄存器或目标寄存器。又例如,可以设定第一目标寄存器为启示点,第二目标寄存器为终止点,将各各第三目标寄存器或目标寄存器的物理位置输入至预先训练好的最优路径查找模型中(例如可以采用神经网络模型实现),以得到各第三目标寄存器或目标寄存器的连接方式,但不作为限制。

还可以理解,在本申请实施例中,当目标寄存器仅有一个时,第一目标寄存器和第二目标寄存器均为该寄存器,上述确定过程可以仅执行确定出第一寄存器和第二寄存器的过程,然后直接将该目标寄存器的输出端Q与第二寄存器的输入端SI连接,将该目标寄存器的输入端SI和第一寄存器的输出端Q连接,实现对该目标寄存器的接入。

还可以理解,受限于芯片设计的复杂流程,在本申请实施例中,可以先基于python等程序编写实现各第三目标寄存器或目标寄存器连接的程序,并将其转换为TCL格式的脚本,以供中后端的工具进行执行,实现各待接入的寄存器的上链(即接入目标扫描链中),但不作为限制。

在本申请实施例中,在将各待接入的寄存器接入目标扫描链的目标链段后,还可以基于上链后的PNR网表进行ATPG,输出ATPG结果,以检查上链后的各扫描链是否良好。

本申请实施例提供的方法,通过将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,并针对每个寄存器组,选择具有与该寄存器组属于相同时钟域和逻辑层次的扫描链或者与该寄存器组属于相同时钟域的扫描链来作为被加入的目标扫描链,这样在将待接入的各寄存器接入目标扫描链的目标链段中后,由于被接入的目标扫描链的目标链段与接入的寄存器至少属于相同的时钟域,因此可以利于加入寄存器后的扫描链中各寄存器的时序收敛。且由于被接入的目标扫描链与接入的寄存器至少属于相同的时钟域,因此在接入的寄存器与扫描链的目标链段中各寄存器在版图中的物理距离通常不会很远(尤其是在目标链段与接入的寄存器逻辑层次也一致时,距离通常不会很远),从而也利于减少不必要的DRV。同时,在本申请实施例中是按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中,因此也可以避免加入寄存器后的目标扫描链超长,避免增加测试时间与成本。同时,采用本申请实施例的方案,可以实现待接入的各寄存器到目标扫描链的自动化接入,从而可以有效减少人力成本,提高接入效率,并且可以规避掉人工操作所存在的失误,降低将ECO后产生的新增的寄存器(即待接入的各寄存器)加入scan chain中时出错率。

基于同一发明构思,本申请实施例中还提供了一种寄存器接入装置300。请参阅图3所示,图3示出了采用图1所示的方法的寄存器接入装置。应理解,装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置300包括至少一个能以软件或固件的形式存储于存储器中或固化在装置300的操作系统中的软件功能模块。具体地:

参见图3所示,装置300包括:

获取模块301,用于将待接入的各寄存器按照所属时钟域和逻辑层次进行分组,得到至少一个寄存器组;

接入模块302,用于针对每个寄存器组:从各扫描链中选出目标扫描链,并按照该寄存器组对应的各所述目标扫描链可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中;其中,所述目标扫描链为包括目标链段的扫描链;所述目标链段为所述扫描链中与该寄存器组属于相同时钟域和逻辑层次的寄存器段,或为所述扫描链中与该寄存器组属于相同时钟域的寄存器段。

在本申请实施例中,获取模块301还用于在接入模块302按照该寄存器组对应的各所述目标扫描链的可接入寄存器的余量,将该寄存器组中的各所述寄存器接入各所述目标扫描链的目标链段中之前,获取各所述扫描链的长度,根据各所述扫描链的长度以及各所述扫描链的长度中的最大长度,确定各所述扫描链可接入寄存器的余量。

在本申请实施例的一种可行实施方式中,所述接入模块302具体用于,从各所述扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域和逻辑层次的寄存器段的第一扫描链,从所述第一扫描链中选择出可接入寄存器的总余量大于等于该寄存器组中的寄存器数量的各所述目标扫描链。

在上述可行实施方式中,所述接入模块302具体还用于,在所有所述第一扫描链的可接入寄存器的总余量小于所述寄存器组中的寄存器数量时,将所有所述第一扫描链确定为所述目标扫描链;从除所述第一扫描链外的其余扫描链中选出可接入寄存器的余量不为0的,且包含与该寄存器组属于相同时钟域的寄存器段的第二扫描链;从所述第二扫描链中选择出可接入寄存器的总余量大于等于该寄存器组的剩余寄存器数量的各所述目标扫描链;其中,该寄存器组的剩余寄存器数量等于该寄存器组的总寄存器数量与所有所述第一扫描链的可接入寄存器的总余量之差。

在本申请实施例中,装置300还包括去除模块,用于在所述接入模块302从各扫描链中选出目标扫描链之前,从各所述扫描链中去除片上时钟控制器链。

在本申请实施例的一种可选实施方式中,所述接入模块302具体用于:

针对任意一个所述目标扫描链,采用以下方式将该寄存器组中的各所述寄存器接入该目标扫描链的目标链段中:

若该寄存器组中的目标寄存器数量大于该目标扫描链可接入寄存器的余量n,则执行以下操作,其中所述目标寄存器为该寄存器组中未接入扫描链的寄存器:

从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;

从该寄存器组的目标寄存器中确定出包含所述第一目标寄存器和所述第二目标寄存器在内的n个第三目标寄存器;

以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接n个所述第三目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将所述第二目标寄存器的输出端与所述第二寄存器的输入端连接;

若该寄存器组中未接入扫描链的目标寄存器数量小于等于该目标扫描链可接入寄存器的余量n,则执行以下操作:

从该寄存器组的目标寄存器中确定出第一目标寄存器和第二目标寄存器,并从该目标扫描链的目标链段中确定出第一寄存器和第二寄存器;

以所述第一目标寄存器为起点,所述第二目标寄存器为终点,依次连接该寄存器组中的所有目标寄存器,并将所述第一目标寄存器的输入端与所述第一寄存器的输出端连接,将所述第二目标寄存器的输出端与所述第二寄存器的输入端连接。

在本可选实施方式中,所述接入模块302具体用于,计算该寄存器组中每一目标寄存器与该目标扫描链的目标链段中每一寄存器之间的距离,将最小距离对应的目标寄存器确定为所述第一目标寄存器,将最小距离对应的该目标扫描链的目标链段中的寄存器确定为所述第一寄存器,将该目标扫描链中与所述第一寄存器的输出端连接的寄存器确定为所述第二寄存器,将与所述第二寄存器距离最小的目标寄存器确定为所述第二目标寄存器。

在本可选实施方式中,所述接入模块302具体用于,以所述第一目标寄存器和所述第二目标寄存器之间的中间点为原点,将n个所述第三目标寄存器划分至四个象限;将每个象限内的各第三目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个第三目标寄存器的输出端与另一个象限内第一个第三目标寄存器的输入端连接,且第一象限的第一个第三目标寄存器的输入端与所述第一目标寄存器的输出端连接,第四象限的最后一个第三目标寄存器的输出端与所述第二目标寄存器的输入端连接;其中,所述第一象限的第一个第三目标寄存器为:与所述第一目标寄存器的距离最近的第三目标寄存器;

其中,所述第一象限为与所述第一目标寄存器的距离最近的第三目标寄存器所在的象限;所述第二象限为与所述第一象限相邻,且不与所述第一目标寄存器相交的象限;所述第三象限为与所述第二象限相对的象限;

所述距离最短原则为:两个寄存器在连接时,该两个寄存器在所有可连接的寄存器中距离最短。

在本可选实施方式中,所述接入模块302具体用于,以所述第一目标寄存器和所述第二目标寄存器之间的中间点为原点,将所述目标寄存器划分至四个象限;将每个象限内的各目标寄存器按照距离最短原则进行连接,并按照第一象限、第二象限、第三象限和第四象限的顺序,依次将一个象限的最后一个目标寄存器的输出端与另一个象限内第一个目标寄存器的输入端连接,且第一象限的第一个目标寄存器的输入端与所述第一目标寄存器的输出端连接,第四象限的最后一个目标寄存器的输出端与所述第二目标寄存器的输入端连接;其中,所述第一象限的第一个目标寄存器为:与所述第一目标寄存器的距离最近的目标寄存器;

其中,所述第一象限为与所述第一目标寄存器的距离最近的目标寄存器所在的象限;所述第二象限为与所述第一象限相邻,且不与所述第一目标寄存器相交的象限;所述第三象限为与所述第二象限相对的象限;

所述距离最短原则为:两个寄存器在连接时,该两个寄存器在所有可连接的寄存器中距离最短。

需要理解的是,出于描述简洁的考量,部分前文中描述过的内容在装置部分中不再赘述。

基于同一发明构思,本实施例还提供了一种本实施例还提供了一种电子设备,参见图4所示,其包括处理器401和存储器402。其中:

处理器401用于执行存储器402中存储的一个或多个程序,以实现上述实施例中提供的寄存器接入方法。

可以理解,而处理器401可以是DSP(Digital Signal Processing,数字信号处理)微处理器、MCU(Microcontroller Unit,微控制单元)、CPU(Central Process Unit,中央处理器)等,但不作为限制。而存储器402可以是RAM(Random Access Memory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)、闪存等,也不作为限制。

还可以理解,图4所示的结构仅为示意,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。例如,还可以具有内部通信总线,用于实现处理器401和存储器402之间的通信;又例如,电子设备还可以具有外部通信接口,例如USB(Universal Serial Bus,通用串行总线)接口、CAN(Controller Area Network,控制器局域网络)总线接口等;又例如,电子设备还可以具有显示屏等信息显示部件,但不作为限制。

基于同一发明构思,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(MultimediaCard,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例中的寄存器接入方法。在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

在本文中,多个是指两个或两个以上。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 模态框构建方法、装置、电子设备、计算机可读存储介质
  • 电子设备、音量调节方法及装置、计算机可读存储介质
  • 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质
  • 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质
技术分类

06120115931519