一种gpgpu芯片无损extest mode测试方法
技术领域
1.本发明属于gpgpu芯片测试技术领域,尤其涉及一种gpgpu芯片无损extest mode测试方法。
背景技术:
2.gpgpu芯片由于强大的并行处理能力和可编程流水线,是一种大规模并行处理器。可测试性设计(design for testability,dft)是一种集成电路设计技术,它将一些特殊结构在gpgpu芯片设计阶段植入芯片中,以便芯片设计完成后进行测试,如何以比较小的测试代价实现全芯片制造缺陷的全覆盖成了一个难题。
3.在针对全芯片的可测试性设计中,扫描链测试一直占有非常大的比重。在扫描链测试中,extest mode作为其中的重要组成部分能确保芯片模块间的连接没有制造缺陷,因此extest mode需要在全芯片级生成测试向量,这就需要占用大量的运算内存去运行测试程序。
4.对于gpgpu芯片,在以往的extest mode实现中,为了降低对运算内存的依赖,会对芯片部分模块采用空逻辑来代替原来的灰盒逻辑,但这不可避免地损失了测试覆盖率;同时考虑到不是每个模块都包含了输入输出围绕单元(wrapper cell)以及各模块间复杂的连接关系,如果想要完整的测试覆盖率,必须要读入所有模块的全逻辑信息,还是需要占用大量的运算内存去运行测试程序。因此,亟需一种gpgpu芯片无损extest mode测试方法。
技术实现要素:
5.本发明针对现有技术中的不足,提供一种gpgpu芯片无损extest mode测试方法。
6.本发明提供一种gpgpu芯片无损extest mode测试方法,包括:
7.根据gpgpu芯片中与计算逻辑模块连接的关系,确定所有与计算逻辑模块相连接的soc模块;
8.确定除与计算逻辑模块相连接的soc模块之外的soc模块;
9.获取整个gpgpu芯片输入管脚和输出管脚的数量;
10.获取所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输入信号和输出信号的数量;
11.根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为n个分组;
12.在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;计算逻辑模块和所有与计算逻辑模块相连接的soc模块均读入灰盒网表;除与计算逻辑模块相连接的soc模块之外的soc模块均读入空网表;
13.使整个gpgpu芯片处于extest测试模式,再将n个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第n个分组全部测试完;
14.获取所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链入信号数量和输出信号的数量;
15.根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为m个分组;
16.在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块均读入灰盒网表;所有计算逻辑模块读入空网表;
17.使整个gpgpu芯片处于extest测试模式,再将m个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第m个分组全部测试完,结束测试。
18.进一步地,所述根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为n个分组,包括:
19.根据以下公式,将测试分为n个分组:
20.n=cco/(p-cci);
21.其中,p为整个gpgpu芯片输入管脚和输出管脚的数量;cci为所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输入信号的数量;cco为所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输出信号的数量;若n不为整数,则n取值为n1,n1=n的整数部分 1。
22.进一步地,所述根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为m个分组,包括:
23.根据以下公式,将测试分为m个分组:
24.m=sco/(p-sci);
25.其中,p为整个gpgpu芯片输入管脚和输出管脚的数量;sci为所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链输入信号的数量;sco为所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链输出信号的数量;若m不为整数,则m取值为m1,m1=m的整数部分 1。
26.本发明提供一种gpgpu芯片无损extest mode测试方法,包括:根据gpgpu芯片中与计算逻辑模块连接的关系,确定所有与计算逻辑模块相连接的soc模块;确定除与计算逻辑模块相连接的soc模块之外的soc模块;获取整个gpgpu芯片输入管脚和输出管脚的数量;获取所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输入信号和输出信号的数量;根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为n个分组;在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;计算逻辑模块和所有与计算逻辑模块相连接的soc模块均读入灰盒网表;除与计算逻辑模块相连接的soc模块之外的soc模块均读入空网表;使整个gpgpu芯片处于extest测试模式,再将n个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第n个分组全部测试完;获取所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链入信号数量和输出信号的数量;
根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为m个分组;在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块均读入灰盒网表;所有计算逻辑模块读入空网表;使整个gpgpu芯片处于extest测试模式,再将m个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第m个分组全部测试完,结束测试。
27.本发明基于gpgpu芯片的设计特点,根据顶层芯片的逻辑连接关系,把gpgpu芯片的设计分为计算逻辑模块和余下的soc模块,从而分成两个extest mode分组:一组包含计算逻辑模块以及与之相连的soc模块,另外一组包含所有的soc模块。在此基础上,每组均控制所有的扫描链输入信号,根据gpgpu芯片提供的所有输入输出管脚数量,再次分组直到观测完所有的扫描链输出信号,对运算内存的需求大大降低,同时没有损失任何测试覆盖率。
附图说明
28.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明实施例提供的一种gpgpu芯片无损extest mode测试方法的工作流程图;
30.图2为本发明实施例提供的soc分组示意图;
31.图3为本发明实施例提供的测试在分组示意图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.如图1所示,本发明实施例部分提供一种gpgpu芯片无损extest mode测试方法,包括:
34.步骤s101,根据gpgpu芯片中与计算逻辑模块连接的关系,确定所有与计算逻辑模块相连接的soc模块。
35.本步骤中,如图2所示,gpgpu芯片设计时是按功能模块设计的,各功能模块间的连接关系可以根据整个芯片上的连线快速确定,实际操作中需要一个简单的文本脚本实现。
36.步骤s102,确定除与计算逻辑模块相连接的soc模块之外的soc模块。
37.本步骤中,gpgpu芯片的各个功能模块的逻辑是清楚的,因此dft设计者可以清楚的知道哪些是计算逻辑模块,哪些是soc模块。如图2所示,各功能模块间的连接关系可以根据整个芯片上的连线快速确定后,除去跟计算逻辑模块连接的soc模块之外就是剩下的功能模块。
38.步骤s103,获取整个gpgpu芯片输入管脚和输出管脚的数量。
39.步骤s104,获取所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输入信号和输出信号的数量。
40.步骤s105,根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为n个分组。
41.本步骤中,如图3所示,假设整个gpgpu芯片输入管脚和输出管脚的数量为p;所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输入信号的数量为cci;所有计算逻辑模块以及与计算逻辑模块相连接的soc模块的扫描链输出信号的数量为cco;根据扫描链输入输出信号数量和gpgpu芯片输入输出管脚数量的关系,从而将测试分为n个分组;其中n=cco/(p-cci);若n不为整数,则n取值为n1,n1=n的整数部分 1。
42.步骤s106,在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;计算逻辑模块和所有与计算逻辑模块相连接的soc模块均读入灰盒网表;除与计算逻辑模块相连接的soc模块之外的soc模块均读入空网表;
43.步骤s107,使整个gpgpu芯片处于extest测试模式,再将n个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第n个分组全部测试完。
44.步骤s108,获取所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链入信号数量和输出信号的数量。
45.步骤s109,根据扫描链输入信号数量、输出信号数量和gpgpu芯片输入输出管脚数量,将测试分为m个分组。
46.本步骤中,假设整个gpgpu芯片输入管脚和输出管脚的数量为p,所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链输入信号的数量为sci;所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块的扫描链输出信号的数量为sco;根据扫描链输入输出信号数量和gpgpu芯片输入输出管脚数量的关系,从而将测试分为m个分组,其中m=sco/(p-sci);若m不为整数,则m取值为m1,m1=m的整数部分 1。
47.步骤s110,在atpg工具中读入数字芯片全芯片的网表,其中gpgpu芯片的pll逻辑模块和dft逻辑控制模块读入全逻辑网表;所有与计算逻辑模块相连接的soc模块以及除与计算逻辑模块相连接的soc模块之外的soc模块均读入灰盒网表;所有计算逻辑模块读入空网表;
48.步骤s111,使整个gpgpu芯片处于extest测试模式,再将m个分组中第一个分组的模块的扫描链输入输出信号配置到输入输出管脚并进行atpg测试;测试完第一个分组之后,再进行第二个分组的atpg测试,直到第m个分组全部测试完,结束测试。
49.本发明提供的一种gpgpu芯片无损extest mode测试方法,基于gpgpu芯片的设计特点,根据顶层芯片的逻辑连接关系,把gpgpu芯片的设计分为计算逻辑模块和余下的soc模块,从而分成两个extest mode分组:一组包含计算逻辑模块以及与之相连的soc模块,另外一组包含所有的soc模块。在此基础上,每组均控制所有的扫描链输入信号,根据gpgpu芯片提供的所有输入输出管脚数量,再次分组直到观测完所有的扫描链输出信号,对运算内存的需求大大降低,同时没有损失任何测试覆盖率。
50.以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。
转载请注明原文地址:https://tc.8miu.com/read-3331.html