一种芯片测试方法、装置、设备及可读存储介质与流程

文档序号:28747199发布日期:2022-02-07 23:38阅读:119来源:国知局
一种芯片测试方法、装置、设备及可读存储介质与流程

1.本技术涉及计算机芯片测试技术领域,特别涉及一种芯片测试方法、装置、设备及可读存储介质。


背景技术:

2.目前,单个芯片上集成的晶体管数目从百万级到千万级,直至数十亿级,芯片功能也越来越强大,需要测试的模块也随之增多。
3.当前可以基于edt压缩扫描链技术将一个芯片中成千上万条扫描链压缩为几个或几十个,以缓解芯片测试管脚的不足。但在一条扫描链中,输入测试管脚和输出测试管脚横跨多个模块,因此扫描路径较长,不仅给测试时序收敛带来了极大的挑战,降低了测试效率,也导致测试所需的物理布线很困难。
4.因此,如何缩短扫描路径,降低物理布线难度,是本领域技术人员需要解决的问题。


技术实现要素:

5.有鉴于此,本技术的目的在于提供一种芯片测试方法、装置、设备及可读存储介质,以缩短扫描路径,降低物理布线难度。其具体方案如下:
6.第一方面,本技术提供了一种芯片测试方法,包括:
7.将待测芯片划分为多个子系统;
8.将每个子系统划分为多个模块,并将所有模块划分至多个集合;
9.针对任一个集合,基于该集合中的各模块在所述待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块;
10.其中,任一个集合中的所有模块所需的测试管脚总数不大于所述待测芯片的管脚总数。
11.优选地,按照逻辑独立性划分所述待测芯片和每个子系统。
12.优选地,所述基于所选择的测试管脚并行测试该集合中的各模块,包括:
13.若该集合中存在相同功能的模块,则并行输入同一测试激励至所述相同功能的模块。
14.优选地,所述并行输入同一测试激励至所述相同功能的模块,包括:
15.采用广播结构并行输入同一测试激励至所述相同功能的模块。
16.优选地,所述基于所选择的测试管脚并行测试该集合中的各模块之前,还包括:
17.基于wrapper chain的内部测试模式配置每个模块的接口寄存器,以隔离不同模块。
18.优选地,所述基于所选择的测试管脚并行测试该集合中的各模块,包括:
19.利用多路复用选择器控制所选择的测试管脚,以并行测试该集合中的各模块。
20.优选地,所述针对任一个集合,基于该集合中的各模块在所述待测芯片中的物理
位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块之后,还包括:
21.在该集合中确定需要测试模块连接边界的至少两个模块,并采用wrapper chain的外部测试模式配置所述至少两个模块的接口寄存器,以连通所述至少两个模块;
22.基于已连通的所述至少两个模块中的任一个模块测试管脚,测试所述模块连接边界。
23.第二方面,本技术提供了一种芯片测试装置,包括:
24.第一划分模块,用于将待测芯片划分为多个子系统;
25.第二划分模块,用于将每个子系统划分为多个模块,并将所有模块划分至多个集合;
26.测试模块,用于针对任一个集合,基于该集合中的各模块在所述待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块;
27.其中,任一个集合中的所有模块所需的测试管脚总数不大于所述待测芯片的管脚总数。
28.第三方面,本技术提供了一种电子设备,包括:
29.存储器,用于存储计算机程序;
30.处理器,用于执行所述计算机程序,以实现前述公开的芯片测试方法。
31.第四方面,本技术提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的芯片测试方法。
32.通过以上方案可知,本技术提供了一种芯片测试方法,包括:将待测芯片划分为多个子系统;将每个子系统划分为多个模块,并将所有模块划分至多个集合;针对任一个集合,基于该集合中的各模块在所述待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块;其中,任一个集合中的所有模块所需的测试管脚总数不大于所述待测芯片的管脚总数。
33.可见,本技术将待测芯片划分为多个子系统;将每个子系统划分为多个模块,并将所有模块划分至多个集合;针对任一个集合,基于该集合中的各模块在待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块,从而针对更小粒度的模块进行测试。由于为各个模块就近选择了测试管脚,因此测试各个模块时的扫描路径更短,降低了物理布线难度。同时,一个集合中的所有模块所需的测试管脚总数不大于待测芯片的管脚总数,且各个模块并行测试,不仅可以提高测试效率,还可以尽可能利用待测芯片的所有管脚。每个集合都据此进行测试,还能实现芯片管脚的分时复用,降低了测试开销。
34.相应地,本技术提供的一种芯片测试装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
35.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
36.图1为本技术公开的一种芯片测试方法流程图;
37.图2为本技术公开的一种扫描路径示意图;
38.图3为图2所示的扫描路径对应的扫描链示意图;
39.图4为本技术公开的一种横跨不同模块的扫描路径示意图;
40.图5为本技术公开的一种基于子系统复用芯片管脚的示意图;
41.图6为本技术公开的另一种基于子系统复用芯片管脚的示意图;
42.图7为本技术公开的单一模块包括的扫描链示意图;
43.图8为本技术公开的一种芯片测试装置示意图;
44.图9为本技术公开的一种电子设备示意图。
具体实施方式
45.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.为便于介绍本技术,先就本技术涉及的背景技术进行如下介绍。
47.随着人工智能、数据存储等行业对大规模芯片需求的急剧增加,soc规模呈现指数级增长,单个芯片上集成的晶体管数目从百万级到千万级,直至数十亿级,但对芯片的体积要求越来越小,给芯片制造后的测试带来了严峻的挑战;半导体工艺的稳步提升,制造过程中可能的缺陷越来越多样化和复杂化,需要根据物理制造缺陷和对应的故障模型,开发更有针对性的测试向量来保证芯片的质量。
48.芯片测试通过ate(automatic test equipment,自动测试设备)和芯片的管脚连接,灌入测试激励给芯片,待芯片响应后,读取响应结果,与期望的结果进行比较,来筛选芯片的好坏。而芯片管脚数量的增加却远远小于芯片内部逻辑的增长规模,另一方面,芯片管脚数量受到物理实现的影响,在满足功能需求的前提下,管脚数量越少越好,以便不设计额外的管脚专门用于芯片的测试,因此芯片测试时所用的管脚大都是复用功能定义的数字管脚。
49.edt(embedded deterministic test,嵌入式确定性测试)提供的压缩扫描链技术可以将成千上万条扫描链压缩为几个到几十个,有效缓解了芯片测试管脚数量不足的问题。但随着芯片规模的进一步增大,芯片的功能管脚也已经不能满足当前的测试需求。
50.并且在一条扫描链中,输入测试管脚和输出测试管脚横跨多个模块,因此扫描路径较长,不仅给测试时序收敛带来了极大的挑战,降低了测试效率,也导致测试所需的物理布线很困难。为此,本技术提供了一种芯片测试方案,能够缩短扫描路径,降低物理布线难度。
51.参见图1所示,本技术实施例公开了一种芯片测试方法,包括:
52.s101、将待测芯片划分为多个子系统。
53.s102、将每个子系统划分为多个模块,并将所有模块划分至多个集合。
54.需要说明的是,划分一个待测芯片需要考虑芯片内各个功能模块的独立性和互联性。若某一个模块的功能独立,则说明该模块可以单独测试。若两个模块的功能相互关联,则除了需要分别单独测试这两个模块之外,还需要测试相互关联的这部分逻辑是否能跑通。
55.相应的,不同子系统之间也需要遵循此类规则。因此在一种具体实施方式中,按照逻辑独立性划分待测芯片和每个子系统。
56.其中,各个子系统、各个模块基于芯片逻辑功能划分,同时与芯片上的相应物理器件对应。因此待测芯片上的各个模块,就是测试实现该模块的相应物理器件之间的数据处理逻辑。
57.s103、针对任一个集合,基于该集合中的各模块在待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块。
58.由于待测芯片上的各个模块,实质上是测试实现该模块的相应物理器件之间的数据处理逻辑,因此需要连接芯片的相应管脚对这些物理器件之间的数据处理逻辑进行测试。本实施例为了缩短扫描路径,为每个模块就近选择测试管脚,从而可降低测试所需的物理布线难度。如图2所示,模块a的测试管脚(包括输入管脚和输出管脚)均在模块a附近,模块b的测试管脚均在模块b附近,因此物理布线难度低。
59.本实施例将一个待测芯片划分为各个模块后,可以基于各个模块的测试需求确定测试每一模块所需的管脚个数,而由于一个待测芯片上的管脚总有限,因此需要分批次进行测试。为此,本实施例将所有模块分为几个集合,针对一个集合中的各模块并行进行一次测试流程。
60.其中,任一个集合中的所有模块所需的测试管脚总数不大于待测芯片的管脚总数。
61.为了使每一次测试流程都尽可能使用待测芯片的全部管脚,可按照待测芯片的管脚总数划分所有模块得到集合。也即:使任一个集合中的所有模块所需的测试管脚总数等于待测芯片的管脚总数。当然,任一个集合中的所有模块所需的测试管脚总数小于待测芯片的管脚总数也可以,只是测试相应集合时存在空闲的芯片管脚,不利于提升测试效率。
62.例如:某一待测芯片供10个管脚,且划分该待测芯片得到5个模块:a、b、c、d、e。其中,模块a需要2个测试管脚,模块b需要4个测试管脚,模块c需要6个测试管脚,模块d需要8个测试管脚,模块e需要10个测试管脚。那么就可以将a和d划分至一个集合x,将b和c划分至一个集合y,将e独立为一个集合z。这样在分别测试集合x、y、z时,都使用了该芯片的所有管脚,实现了芯片管脚的最大化利用;同时,集合x、y、z分别对应的测试流程实现了芯片管脚的分时复用。
63.一般地,芯片可能未提供专门用于测试的管脚,那么测试芯片时定义芯片的各个功能管脚为测试管脚即可。
64.在一种具体实施方式中,基于所选择的测试管脚并行测试该集合中的各模块,包括:若该集合中存在相同功能的模块,则并行输入同一测试激励至相同功能的模块。其中,并行输入同一测试激励至相同功能的模块,包括:采用广播结构并行输入同一测试激励至相同功能的模块。相同功能的模块即:模块完全相同。测试激励为:用于测试相应模块所设计的输入数据。将该输入数据通过输入管脚输入,并从相应输出管脚获取模块对该输入数
据的响应,从而可判别该响应是否符合预期。
65.可见,本实施例将待测芯片划分为多个子系统;将每个子系统划分为多个模块,并将所有模块划分至多个集合;针对任一个集合,基于该集合中的各模块在待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块,从而针对更小粒度的模块进行测试。由于为各个模块就近选择了测试管脚,因此测试各个模块时的扫描路径更短,降低了物理布线难度。同时,一个集合中的所有模块所需的测试管脚总数不大于待测芯片的管脚总数,且各个模块并行测试,不仅可以提高测试效率,还可以尽可能利用待测芯片的所有管脚。每个集合都据此进行测试,还能实现芯片管脚的分时复用,降低了测试开销。
66.基于上述实施例,需要说明的是,在一种具体实施方式中,基于所选择的测试管脚并行测试该集合中的各模块之前,还包括:基于wrapper chain的内部测试模式配置每个模块的接口寄存器,以隔离不同模块。
67.基于上述实施例,需要说明的是,在一种具体实施方式中,基于所选择的测试管脚并行测试该集合中的各模块,包括:利用多路复用选择器控制所选择的测试管脚,以并行测试该集合中的各模块。其中,多路复用选择器用于控制每个模块对应的测试管脚(包括输入管脚和输出管脚),从而确定哪个模块用哪些管脚进行测试,具体请参见图3。
68.将图2中模块a对应的扫描路径展开,可以得到图3。由图3可看出,测试各个模块时需要相应设置解压缩器和压缩器。其中,多个模块可以复用同一组解压缩器和压缩器,也可以使一个模块用一组解压缩器和压缩器。解压缩器和压缩器的使用具体可参照现有相关技术,在此不再赘述。
69.同时,一个模块中可以有多条扫描链,每条扫描链贯穿n个寄存器。一条扫描链的第一个寄存器称为链首寄存器,最后一个寄存器称为链尾寄存器。扫描路径用于指示扫描链的走向。
70.基于上述实施例,需要说明的是,在一种具体实施方式中,针对任一个集合,基于该集合中的各模块在待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块之后,还包括:在该集合中确定需要测试模块连接边界的至少两个模块,并采用wrapper chain的外部测试模式配置至少两个模块的接口寄存器,以连通至少两个模块;基于已连通的至少两个模块中的任一个模块测试管脚,测试模块连接边界。
71.具体请参见图4,由图4可看出,模块c和模块d之间的连接边界、模块d和模块e之间的连接边界都需要测试。现有技术一般使扫描路径横跨模块c、d、e,其输入管脚选择在模块c附近,而输出管脚选择在模块e附近,由于模块c和e在芯片上的物理位置较远,因此不易进行测试线路的连接。
72.为此,本技术采用wrapper chain的外部测试模式将模块c和模块d连通,用模块c附近的管脚作为输入管脚和输出管脚,先测试模块c和模块d之间的连接边界;之后,采用wrapper chain的外部测试模式将模块d和模块e连通,用模块e附近的管脚作为输入管脚和输出管脚,测试模块d和模块e之间的连接边界,从而完成模块之间的边界测试。这样不仅可以缩短扫描路径,还降低了布线难度。相应的,不同子系统间也可以如此进行测试。
73.需要说明的是,由于当前edt的压缩比已经达到一百甚至两百,过高的压缩比会导
致atpg(automated test pattern generation,自动测试向量生成)生成向量的效率降低,生成的测试向量数也会急剧增加,反而影响向量生成时间和芯片测试成本。
74.因此,本实施例采用分时复用技术对功能管脚进行分时复用。在某一时间段内,只测试芯片部分子系统或单独模块的实现逻辑。另一时间段内,测试芯片其他部分子系统的逻辑。这样相当于可用的测试管脚增加了一倍,有效的解决了当前测试管脚不足的问题。
75.如图5所示,将片上系统划分为2个子系统,通过多路复用选择器控制选择控制寄存器,在测试第一时段,将输入管脚和输出管脚复用给子系统1,先完成子系统1的扫描测试;在测试第二时间段,将输入管脚和输出管脚复用给子系统2,再完成子系统2的扫描测试。当然,任一次测试流程所使用的管脚应不超过芯片管脚总数。
76.若将整芯片分为子系统1、子系统2、子系统3共三个子系统,那么在测试第一时段,可以选择两个子系统并行测试,待这两个子系统并行测试后,再测试剩余的子系统。当然,任一次测试流程所使用的管脚应不超过芯片管脚总数。
77.由于一个子系统内的模块较多,因此测试一个子系统时可能需要横跨多个模块,导致扫描链较长,且测试所用管脚无法灵活选取。
78.对此,本实施例对整芯片采用划分子系统后,再划分子模块的方案进行分组测试,在满足测试需求的情况下,达成高覆盖率、少测试管脚的目标。本实施例将子系统的标准逻辑单元按照功能和物理实现的需求进一步划分为不同的模块,以模块为测试单元,对子系统的不同模块进行分时测试。
79.具体的,以模块的扫描链为压缩对象,每个模块添加压缩器与解压缩器,压缩器与解压缩器之间形成的扫描通道就近连接到模块附近的管脚上。如图2所示,扫描路径只是在单个模块内,没有跨不同的子模块。若需要测试模块边界,则参照图4以及上文相应介绍进行。
80.若一个芯片上有管脚1、管脚2、管脚3和管脚4,且该芯片如图6所示,被划分为子系统1(包括模块ab)、子系统2(包括模块cde)、子系统3(包括模块fg)。那么第一次测试时,针对子系统1的扫描路径1和扫描路径2,子系统3的扫描路径7和扫描路径8使用这些管脚。待测试结束后,子系统2的扫描路径3、扫描路径4、扫描路径5和扫描路径6复用这些管脚。如此实现管脚的最大化利用和复用。
81.需要说明的是,划分子系统和模块时需要充分考虑各个子系统或者子模块测试的独立性和交互性,尽量平衡每个子系统和子模块的测试需求,这样在分时复用功能管脚时,才能使得管脚的有效复用率达到最大。如图6所示,在每次测试流程中,使所有管脚尽可能被使用;而不同测试流程中,尽可能使全部管脚得以复用,以最大化管脚复用率。
82.因此,对子系统或者子模块的接口时序逻辑单元(即接口寄存器),采用wrapper chain的方式进行配置。
83.以图6所示的模块d为例,在设计扫描链的时候,对于模块d接口部分的时序逻辑,单独连接成一条或者几条输入输出wrapper chain,使wrapper chain起到隔离各个子系统或者子模块的作用。
84.如图7所示,将与模块d接口相关的时序逻辑单元单独串成输入和输出扫描链。在模块内部测试的时候,通过控制wrapper chain的内部测试模式使wrapper chain仅作移位寄存器或者捕获寄存器来使用。在测试不同模块边界或不同子系统边界的时候,通过控制
wrapper chain的外部测试模式仅检查wrapper chain即可,这有利于规模较大的芯片的向量生成和测试。
85.本实施例可以灵活配置并复用测试管脚,测试规模和测试单元划分的更小,可以缩短扫描路径,降低时序收敛难度。对于逻辑规模和面积较大的芯片,扫描路径几乎可以缩短一半,时序改善效果尤为显著。采用wrapper chain可以有效提高测试覆盖率,并减少测试时间。
86.可见,本实施例不仅可以实现扫描链的压缩,最主要的作用是对于复杂大规模的设计,根据芯片管脚的物理摆放位置,采用分时复用技术,规划最佳压缩扫描通道长度,缓解芯片管脚数目与测试时间之间相互制约的瓶颈,减小压缩比,缓解edt内部绕线阻塞和芯片顶层布线困难问题。同时,进一步细化子系统的测试分组,合理配置复用管脚,优化扫描路径,降低时序收敛难度。
87.此外,对于有多次复用的子模块或者子系统,在制定测试管脚复用方案时,可以考虑共享数据通道,即:采用广播结构用同一激励同时测试这些相同的子模块或者子系统,以满足对管脚数量的使用需求。
88.下面对本技术实施例提供的一种芯片测试装置进行介绍,下文描述的一种芯片测试装置与上文描述的一种芯片测试方法可以相互参照。
89.参见图8所示,本技术实施例公开了一种芯片测试装置,包括:
90.第一划分模块801,用于将待测芯片划分为多个子系统;
91.第二划分模块802,用于将每个子系统划分为多个模块,并将所有模块划分至多个集合;
92.测试模块803,用于针对任一个集合,基于该集合中的各模块在待测芯片中的物理位置,为该集合中的各模块就近选择测试管脚,并基于所选择的测试管脚并行测试该集合中的各模块;
93.其中,任一个集合中的所有模块所需的测试管脚总数不大于待测芯片的管脚总数。
94.在一种具体实施方式中,测试模块具体用于:
95.若该集合中存在相同功能的模块,则并行输入同一测试激励至相同功能的模块。
96.在一种具体实施方式中,测试模块具体用于:
97.采用广播结构并行输入同一测试激励至相同功能的模块。
98.在一种具体实施方式中,还包括:
99.第一配置模块,用于基于wrapper chain的内部测试模式配置每个模块的接口寄存器,以隔离不同模块。
100.在一种具体实施方式中,测试模块具体用于:
101.利用多路复用选择器控制所选择的测试管脚,以并行测试该集合中的各模块。
102.在一种具体实施方式中,还包括:
103.第二配置模块,用于在该集合中确定需要测试模块连接边界的至少两个模块,并采用wrapper chain的外部测试模式配置至少两个模块的接口寄存器,以连通至少两个模块;基于已连通的至少两个模块中的任一个模块测试管脚,测试模块连接边界。
104.其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例
中公开的相应内容,在此不再进行赘述。
105.可见,本实施例提供了一种芯片测试装置,该装置针对更小粒度的模块进行测试,扫描路径更短,降低了物理布线难度,还能实现芯片管脚的分时复用,降低了测试开销。
106.下面对本技术实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种芯片测试方法及装置可以相互参照。
107.参见图9所示,本技术实施例公开了一种电子设备,包括:
108.存储器901,用于保存计算机程序;
109.处理器902,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
110.下面对本技术实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种芯片测试方法、装置及设备可以相互参照。
111.一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的芯片测试方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
112.本技术涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
113.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
114.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
115.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。
116.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1