本发明涉及芯片测试,具体涉及基于芯片系统测试的故障检测和定位方法、介质及系统。
背景技术:
1、随着集成电路技术飞速发展,集成电路设计的规模和复杂性日益增长,单个芯片可能集成数十亿个晶体管,在对大规模和高复杂性的集成电路进行测试时,传统的故障检测和定位方法通常依赖于预设的故障模型和固定的测试模式,如规则驱动的测试和依赖于人工的故障分析等,其在测试效率和故障定位的精确度上已无法满足测试需求。为了解决上述问题,本发明提出了一种基于芯片系统测试的故障检测定位方法及系统。
技术实现思路
1、本发明提供一种基于芯片系统测试的故障检测定位方法及系统,以提高对芯片内部微小、非直观的故障信号精确定位的效率。
2、本发明提供一种芯片系统测试的故障检测和定位方法,其方法包括:
3、步骤1:根据芯片设计网表和故障模型生成测试向量集,包括以下步骤:
4、步骤1.1:获取芯片设计网表,转化为可用于atpg软件的格式并对设计网表进行优化。
5、具体的,所述设计网表,为芯片电路的逻辑表示,描述了芯片的逻辑门之间的连接;
6、具体的,所述对设计网表进行优化,包括重新排列逻辑门和信号线路,以确保测试向量有效覆盖所有潜在的故障点。
7、步骤1.2:根据测试需求选定故障模型,向芯片设计注入潜在故障。
8、具体的,所述故障模型,包括单粒子故障模型、桥接故障模型、延迟故障模型等。
9、步骤1.3:通过测试向量生成组件利用atpg算法为每个潜在的故障点生成一系列的测试向量。
10、步骤1.4:通过测试向量生成组件合并相似的测试向量,检出并去除无效的测试向量,得到用于首轮测试的测试向量集。
11、步骤2:根据测试策略和测试向量优先级对测试向量进行排序。
12、具体的,通过测试向量排序组件对测试向量进行排序,测试向量的优先级遵从以下原则:
13、故障覆盖率:对能够检测到最多故障的测试向量进行优先测试,提高故障覆盖率;
14、故障严重性:对芯片功能影响最大的测试向量进行优先测试;
15、故障概率:基于历史数据和经验,对确定出现概率高的测试向量优先测试;
16、测试成本:对不同的测试向量,需要的测试时间和资源可能不同。对测试成本低、故障覆盖率大的测试向量优先测试;
17、时间敏感性:对于需要特定时间测试的测试向量优先测试;
18、依赖关系:某些测试向量可能依赖于其它测试向量的测试结果,对被依赖的测试向量优先测试。
19、对上述优先级原则,可以通过自由组合来确定测试向量的优先级。
20、步骤3:基于已排序的测试向量对芯片进行功能测试、内部逻辑测试、存储器读写功能和数据存储能力测试,得到测试数据和测试报告,包括以下步骤:
21、步骤3.1:准备测试环境
22、设置测试平台,确保硬件均就绪并已正确连接,确保软件均能正常运行,如配置电源和时钟源、设置通信接口等。
23、步骤3.2:进行功能测试,得到功能测试数据和测试报告,包括以下步骤:
24、1)将生成的测试向量加载到测试设备中,准备进行测试;
25、2)按照测试顺序,逐一执行测试向量。包括引导芯片进入特定的测试模式,如测试模式下的数据通路测试、处理器的指令集测试等;
26、3)捕获芯片的输出信号和输出数据,整合测试结果,生成详细的功能测试报告。
27、步骤3.3:基于测试向量和扫描链技术测试芯片内部逻辑,得到内部节点状态的详细信息。包括以下步骤:
28、1)设置测试平台,确保所有的扫描链和测试设备已正确配置,包括将芯片置于测试模式,其中内部逻辑通过扫描链直接访问;
29、2)将为扫描链测试设计的测试向量加载到测试设备中,测试向量包括用于初始化和控制内部状态机的序列;
30、3)激活扫描链,将测试向量序列“扫描”进入芯片内部寄存器。通过一个串行移位操作完成,用以设置或者读取内部逻辑单元的状态;
31、4)执行测试向量,将内部逻辑置于特定的状态,激发潜在的故障;
32、5)捕获内部逻辑单元的响应,将内部寄存器的内容“扫描”出来;
33、6)当被设计的测试向量用来检测不同操作条件下的故障时,需多次执行上述步骤;
34、7)分析从扫描链中捕获的数据,整合所有测试结果,生成内部节点状态的详细信息。
35、步骤3.4:对芯片内部的存储组件进行测试,检查存储组件的读写功能和数据存储能力,得到存储器性能分析报告。对于存储组件读写功能和数据存储能力的测试遵循本领域的常规测试方法,不再赘述。
36、步骤4:对测试数据和测试报告进行初步分析和处理,形成测试数据集。根据分析和处理结果,决定是否需要增加、删除或修改测试向量;
37、步骤5:根据步骤4的分析和处理结果,若需要增加、删除或修改测试向量,则根据芯片设计网表、故障模型和测试数据分析调整测试向量集后,重新执行步骤2~步骤4;
38、步骤6:根据步骤4的分析和处理结果,若不再需要增加、删除或修改测试向量,则基于测试数据集,获取实测结果与预期结果存在差异的测试向量,对其进行偏差计算和统计,将潜在故障点信息整合到测试数据集,包括以下步骤:
39、步骤6.1:基于步骤4的测试数据集,对比每个测试向量的实测结果与预期结果,确定并记录偏差;
40、步骤6.2:对测试结果偏差进行统计分析,设di表示第i个测试向量的偏差,基于如下公式计算偏差的统计量:
41、
42、
43、式中:n表示测试向量的总数;μ表示偏差的均值;σ表示偏差的标准差;
44、步骤6.3:基于统计分析设置一个或多个阈值,根据阈值区分正常测试结果和潜在故障测试结果。其中阈值的构建方式如下:
45、t=μ+kσ;
46、式中:t表示阈值;k表示系数,取值1.96,2,2.58中的任意数;
47、若|di|≤t,则认为第i个测试向量的测试结果在可接受的范围内;
48、若|di|>t,则认为第i个测试向量的测试结果出现显著偏差,将其标记为潜在故障;
49、步骤6.5:将所有潜在故障点的信息整合到测试数据集中。
50、步骤7:基于已包含潜在故障点信息的测试数据集,结合芯片内部节点状态,生成故障候选位置列表,包括以下步骤:
51、步骤7.1:基于步骤6的测试数据集得到异常节点,构建异常节点集合:
52、enode=node|sact,node≠sexp,node;
53、式中:enode为异常节点集合;sact,node为节点的实际状态;sexp,node为节点的预期状态;node为芯片内的每个节点;
54、步骤7.2:基于关联性分析,将测试结果存在偏差的测试向量与异常节点相关联;
55、步骤7.3:基于步骤7.2的关联性分析结果和步骤7.1中得到的异常节点集合,根据以下公式得到故障候选位置集。
56、cfault=∪i∈tenode,i;
57、式中:cfault表示故障候选位置集;enode,i表示在测试向量i下,被识别为与测试差异相关联的异常节点集合;t表示所有测试向量的集合,每个测试向量至少与一个异常节点有关联。
58、步骤8:提取每个故障候选位置所对应的故障特征,将故障特征作为故障定位算法的输入,输出故障评分最高的故障候选位置,则该故障候选位置被定位为最终的故障源,包括以下步骤:
59、步骤8.1:基于故障候选位置集,提取每个故障候选位置的故障特征,构成特征向量:
60、fcandidate=[f1,f2,...,fn];
61、其中:fi是第i个特征,i∈[1,2,..,n];
62、步骤8.2:对每个故障候选位置进行评分:
63、scorecandidate,i=w1*f1+w2*f2+…+wn*fn;
64、式中:scorecandidate,i表示第i个故障候选位置的评分;wi表示对应第i个特征的权重,i∈[1,2,..,n];
65、每个特征的权重基于统计分析方法,通过分析每个特征与故障之间的相关性得到;
66、步骤8.3:比较所有故障候选位置的评分,选择故障评分最高的候选位置作为最终的故障源。
67、本发明还提供一种基于芯片系统测试的故障检测定位系统,包括处理器和存储器以及应用组件:
68、存储器,用于存储测试数据和应用组件;、
69、处理器,用于运行所述应用组件时,实现上述的基于芯片系统测试的故障检测定位方法。
70、本发明的有益效果包括:
71、本发明中对芯片进行功能测试、内部逻辑测试以及存储器测试,将实测结果与预期结果进行对比和差异性分析;将差异性分析结果与芯片内部节点状态相结合,缩小故障范围,得到故障候选位置列表;提取故障特征,将其作为故障定位算法的输入,通过故障定位算法输出故障评分最高的故障候选位置,并将其定位为最终的故障源。本发明基于芯片系统测试结果,通过对比和分析芯片实测结果与预期结果的差异,避免芯片中微小故障信号的遗漏,再通过差异性分析以及节点状态的关联,实现故障位置的缩小,再通过故障定位算法精准确定故障源。