芯片故障定位方法、装置及系统的制作方法

文档序号:6189704阅读:239来源:国知局
芯片故障定位方法、装置及系统的制作方法
【专利摘要】本发明提供一种芯片故障定位方法、装置及系统。本发明芯片故障定位方法,包括:在调试模式下获取调试指令并执行;在测试模式下获取扫描链模式指令;根据所述扫描链模式指令控制芯片的触发器形成扫描链;在所述测试模式下获取测试数据;将所述测试数据输入扫描链中,依次移出所述扫描链中触发器的值;根据移出的触发器的值定位芯片故障位置。本发明提高了故障定位的效率以及准确度。
【专利说明】芯片故障定位方法、装置及系统
【技术领域】
[0001]本发明涉及测试技术,尤其涉及一种芯片故障定位方法、装置及系统。
【背景技术】
[0002]随着半导体工艺的高速发展,集成电路的集成度每3个月就要翻一番。如此快速的更新换代,使得传统的集成电路测试方法变得捉襟见肘。传统的测试方法主要是借助片外装置,比如示波器、逻辑分析仪、频谱仪等调试工具,通过观测集成电路的输出进行测试。而对于结构复杂的处理器芯片,通常还需要专门的测试装置用于观测芯片内部的状态,这种传统的测试方法已经不能满足业界需求。
[0003]现有技术中有一种基于国际标准测试协议联合测试行动组织(Joint TestAction Group,简称JTAG)的处理器芯片调试技术;现有技术中还有一种基于测试电路和JTAG的测试方法,在芯片上加入了专用的测试电路,可以观察到微处理器核中部分寄存器和存储器的值。
[0004]但是现有技术一只局限于在芯片的输入输出端口(Input/Output,简称I/O)上捕获信息,是一种基于I/o的测试方法,无法提供处理器芯片内部状态的可视性,对处理器芯片的故障定位难度较大;现有技术二实质上同属于一种基于I/o的测试方法,并不能捕获芯片微处理器核内部的状态,同样难于对芯片进行故障定位。

【发明内容】

[0005]本发明提供一种芯片故障定位方法、装置及系统,以克服现有技术中在测试过程中无法观测到芯片内部状态,芯片的故障定位难度较大的问题。
[0006]第一方面,本发明提供一种芯片故障定位方法,所述方法包括:
[0007]在调试模式下获取调试指令并执行;
[0008]在测试模式下获取扫描链模式指令;
[0009]根据所述扫描链模式指令控制芯片的触发器形成扫描链;
[0010]在所述测试模式下获取测试数据;
[0011]将所述测试数据输入扫描链中,依次移出所述扫描链中触发器的输出值;
[0012]根据移出的所述触发器的值定位芯片故障位置。
[0013]可选地,所述在调试模式下获取调试指令并执行,包括:
[0014]在所述调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中;
[0015]所述等待标志位设置为无效后,从所述指令存储器中获取所述调试指令并执行。
[0016]可选地,所述在测试模式下获取扫描链模式指令,包括:
[0017]在所述测试模式下,通过JTAG接口模块获取所述扫描链模式指令。
[0018]可选地,所述在所述测试模式下获取测试数据,包括:
[0019]在所述测试模式下通过JTAG接口模块获取所述测试数据。[0020]可选地,所述扫描链模式指令包括:单条成链模式指令或多条成链模式指令;
[0021]所述根据所述扫描链模式指令控制芯片的触发器形成扫描链,包括:
[0022]根据所述单条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成一条长扫描链;或者,
[0023]根据所述多条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成多条短扫描链。
[0024]可选地,所述扫描链包括一条长扫描链或多条短扫描链;
[0025]所述将所述测试数据输入所述扫描链中,依次移出所述扫描链中触发器的值,包括:
[0026]通过连续的N拍时钟脉冲控制所述长扫描链,将所述测试数据输入所述长扫描链中,并使所述触发器的值沿着所述长扫描链从输出端依次移出,所述N为所述长扫描链的触发器个数;或者,
[0027]通过连续的M拍时钟脉冲控制所述多条短扫描链,将所述测试数据输入所述多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,所述M为所述多条短扫描链中最长链所包括的触发器的个数。
[0028]第二方面,本发明提供一种芯片故障定位装置,所述装置包括:
[0029]执行模块,用于在调试模式下获取调试指令并执行;
[0030]第一获取模块,用于在测试模式下获取扫描链模式指令;
[0031]第一控制模块,用于根据所述第一获取模块获取的所述扫描链模式指令控制所述芯片的触发器形成扫描链;
[0032]第二获取模块,用于在所述测试模式下获取测试数据;
[0033]第二控制模块,用于将所述第二获取模块获取的测试数据输入所述扫描链中,依次移出所述扫描链中触发器的值;
[0034]定位模块,用于根据移出的所述触发器的值定位芯片故障位置。
[0035]可选地,所述执行模块,包括:
[0036]获取单元,用于在所述调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中;
[0037]执行单元,用于所述等待标志位设置为无效后,从所述指令存储器中获取所述调试指令并执行。
[0038]可选地,所述第一获取模块具体用于:
[0039]在所述测试模式下通过JTAG接口模块获取所述扫描链模式指令。
[0040]可选地,所述第二获取模块,具体用于:
[0041 ] 在所述测试模式下通过JTAG接口模块获取所述测试数据。
[0042]可选地,所述第一获取模块,用于获取:单条成链模式指令或多条成链模式指令;
[0043]所述第一控制模块,具体用于:
[0044]根据所述单条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成一条长扫描链,或者,
[0045]根据所述多条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成多条短扫描链。[0046]所述第二控制模块,具体用于:
[0047]通过连续的N拍时钟脉冲控制所述长扫描链,将所述第二获取模块获取的测试数据输入所述长扫描链中,并使所述触发器的值沿着所述长扫描链从输出端依次移出,所述N为所述长扫描链的触发器个数;或者,
[0048]通过连续的M拍时钟脉冲控制所述多条短扫描链,将所述第二获取模块获取的测试数据输入所述多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,所述M为所述多条短扫描链中最长链所包括的触发器的个数。
[0049]第三方面,本发明提供一种芯片故障定位系统,包括:
[0050]芯片、与所述芯片连接的PC机,其中所述芯片包括如第二方面中任一所述的芯片
故障定位装置。
[0051]可选地,所述芯片与所述PC机之间通过JTAG线连接。
[0052]本发明芯片故障定位方法、装置及系统,通过采用了调试模式和测试模式的相互配合的方式,可以实时的将芯片的内部状态通过片内自带的触发器的值移出片外进行观测,根据触发器移出的值可以很容易的找到故障发生的位置,降低了故障定位难度,且提高了故障定位的效率以及准确度,克服了现有技术中在调试过程中无法观测到芯片内部状态,芯片的故障定位难度较大的问题。
【专利附图】

【附图说明】
[0053]图1为本发明芯片故障定位方法实施例一的流程图;
[0054]图2为本发明芯片故障定位方法实施例一的芯片结构示意图;
[0055]图3为本发明芯片故障定位方法实施例二的芯片结构示意图;
[0056]图4为本发明芯片故障定位方法实施例二的TAP控制器的状态转换图;
[0057]图5为本发明芯片故障定位装置实施例一的结构示意图;
[0058]图6为本发明芯片故障定位装置实施例二的结构示意图;
[0059]图7为本发明芯片故障定位系统实施例的结构示意图。
【具体实施方式】
[0060]图1为本发明芯片故障定位方法实施例一的流程图,图2为本发明芯片故障定位方法实施例一的芯片结构示意图。如图1所示,本发明方法包括如下步骤:
[0061]步骤101、在调试模式下获取调试指令并执行。
[0062]调试模式是指用于进行芯片调试的模式,比如单步执行模式;具体地,在调试模式下可以通过芯片的已有接口获取调试指令,已有的接口可以是芯片的管脚接口,也可以是芯片自带的JTAG接口,本发明不对使用那些接口获取调试指令进行限定。
[0063]步骤102、在测试模式下获取扫描链模式指令。
[0064]当处理器进入调试模式并执行完特定的调试指令后,如果想要查看上述调试指令执行结束后芯片内部的状态,可以将芯片的全局测试信号设置为低电平信号,处理器立即进入测试模式,在测试模式下可以通过芯片的已有接口获取扫描链模式指令,已有的接口可以是芯片的管脚接口,也可以是芯片自带的JTAG接口,本发明不对使用那些接口获取扫描链模式指令进行限定。具体地,扫描链模式指令包括:单条成链模式指令或多条成链模式指令。
[0065]步骤103、根据扫描链模式指令控制芯片的触发器形成扫描链。
[0066]触发器为芯片内部自带的可扫描触发器,根据扫描链模式指令可以控制芯片的可扫描触发器连接起来形成扫描链。具体地,根据单条成链模式指令控制芯片的可扫描触发器连接起来形成一条长扫描链;或者根据多条成链模式指令控制芯片的可扫描触发器连接起来形成多条短扫描链。如图2所示,可扫描触发器2根据单条成链模式指令控制芯片的可扫描触发器连接起来形成一条长扫描链3 ;或者,可扫描触发器2根据多条成链模式指令控制芯片的可扫描触发器2连接起来形成多条短扫描链4。
[0067]步骤104、在测试模式下获取测试数据。
[0068]在测试模式下可以通过芯片的已有接口获取扫测试数据,已有的接口可以是芯片的管脚接口,也可以是芯片自带的JTAG接口,本发明不对使用那些接口获取测试数据进行限定。
[0069]步骤105、将测试数据输入扫描链中,依次移出扫描链中触发器的值。
[0070]通过时钟脉冲将测试数据输入扫描链中,依次移出扫描链中触发器的值。具体地,通过连续的N拍时钟脉冲控制长扫描链,将测试数据输入长扫描链中,并使触发器的值沿着长扫描链从输出端依次移出,N为所述长扫描链的触发器个数;或者,通过连续的M拍时钟脉冲控制多条短扫描链,将测试数据输入多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描链输出端口移出,M为多条短扫描链中最长链所包括的触发器的个数。
[0071]步骤106、根据移出的触发器的值定位芯片故障位置。
[0072]将移出的触发器的值与预先期望的结果(芯片执行的调试指令和输入的测试数据是预先定义好的,所以可以准确的预测其触发器输出的值)进行比较,根据与预先期望的结果不一致的值定位出芯片的故障位置。
[0073]本发明实施例的方法通过调试模式和测试模式的相互配合的方式进行测试,可以实时的将芯片的内部状态通过片内自带的触发器的值移出片外进行观测,根据触发器移出的值可以很容易的找到故障发生的位置,降低了故障定位难度,且提高了故障定位的效率以及准确度,克服了现有技术中在调试过程中无法观测到芯片内部状态,芯片的故障定位难度较大的问题。
[0074]图3为本发明芯片故障定位方法实施例二的芯片结构示意图,图4为本发明芯片故障定位方法实施例二的TAP控制器的状态转换图。
[0075]在图1所示实施例的基础上,本实施例中芯片使用自带的JTAG接口模块获取调试指令、获取扫描链模式指令、获取测试数据。如图3所示,芯片可以包括多个触发器2和一个JTAG接口模块I。JTAG接口模块I包括一个测试访问端口(Test Access Port,简称TAP)控制器5和5个TAP的访问接口,分别是测试时钟6 (Test Clock,简称TCK)、测试数据输入 7 (Test Data Input,简称 TDI )、测试数据输出 8 (Test Data Output,简称 TDO)、测试模式选择 9 (Test Mode Selection,简称 TMS)、测试复位 10 (Test Reset,简称 TRST),测试访问端口控制器5还包括扩展测试控制模块12,JTAG接口模块I还包括扩展测试指令寄存器11。在本实施例中给芯片一个全局复位脉冲,还原到初始状态也可以通过在TRST端口输入低电平信号实现。[0076]在本实施例的方法中,芯片通过以下方式进入调试模式:
[0077]根据对芯片的调试和诊断的目的,在PC机上用高级编程语言(例如是C语言)或者汇编语言编写相应的程序代码,并在需要观测的位置插入调试例外系统指令,生成调试程序。上述调试例外系统指令是指专门用于实现调试例外的系统调用,如单步运行、断点等。给芯片上电,并通过程序烧写工具将调试程序写入芯片的程序存储器(一般为只读存储器(Read-Only Memory,简称ROM)型或者快闪存储器FLASH型)。调试程序烧写完成后,将上述芯片的全局测试信号设置为高电平信号,即此时不进入测试模式,进入芯片正常模式,并给芯片一个全局复位脉冲,还原到初始状态。复位完成后,芯片将进入正常工作模式。在该模式下,芯片的处理器从程序存储器中读取调试程序并执行,当处理器执行调试程序到调试例外系统指令时,芯片的处理器进入调试模式。
[0078]在本实施例的方法中,在调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中;等待标志位设置为无效后,从指令存储器中获取调试指令并执行,具体为:
[0079]芯片的处理器执行调试程序时,通过调试程序访问芯片内部的调试控制寄存器(Debug Control Register,简称DCR),将DCR中的单步执行使能和单步执行标志位设置为有效,使芯片具备调试的能力。DCR是一组专门用于配置调试模式状态和记录测试信息的寄存器,它主要由各种调试的控制位和标志位组成,例如单步执行使能和单步执行标志位,指令断点标志位,数据断点标志位等。DCR在正常工作模式下对软件可见,即可以由软件进行控制,配置的相应参数在调试模式下起作用。由于在调试程序访问DCR过程中,单步执行使能和单步执行标志位均设置为有效,处理器跳转到单步执行例外入口处,并开始单步执行调试程序。DCR中的等待标志位初始默认为有效,处理器等待从TDI接口输入要执行的调试指令(例如可以串行输入指令)。指令存储器获取调试指令后将等待标志位设置为无效,处理器在检测到等待标志位无效后,从指令存储器中获取调试指令并执行。执行完后,等待标志位再次被设置为有效,处理器重新等待从TDI接口输入下一条调试指令。执行调试指令,重复上面的过程,直到遇到调试终止指令离开调试模式。
[0080]在本实施例的方法中,如图3所示,在测试模式下,通过JTAG接口模块I输入扫描链模式指令或测试数据,即从TDI接口输入扫描链模式指令或测试数据。
[0081]在本实施例的方法中,通过JTAG接口模块I的TDI接口输入扫描链模式指令或测试数据需要按照JTAG接口模块I定义的方式进行扫描链模式指令和测试数据的处理,具体地,如图3、4所示,通过JTAG接口模块I的TDI接口获取扫描链模式指令并根据扫描链模式指令生成控制信号,可以通过以下方式:
[0082]在测试模式下,根据图4所示的TAP控制器的状态转换图,控制TMS和TCK使TAP进入指令寄存器移位Shift-1R状态,即在测试模式下,TMS接口依次输入1、1、0、0,并且是在TCK接口输入时钟脉冲的上升沿时输入,TAP即进入Shift-1R状态,如图4中12=Run-Test状态为处于测试模式,TMS接口依次输入1、1、0、0,输入第一个I时由12=Run_Test状态进入7=Select_DR状态、再输入I时进入4=Select_IR状态、输入O时进入H=Capture-1R状态,再输入O时进入IO=Shift-1R状态,然后在TCK接口输入时钟脉冲的上升沿从TDI接口向扩展指令寄存器11中写入扫描链模式指令(单条成链模式指令或者多条成链模式指令)。[0083]根据图4所示的TAP控制器的状态转换图控制TMS接口和TCK接口使TAP控制器进入指令寄存器更新Update-1R状态,即在Shift_IR状态下TMS接口依次输入1、0、1、I,输入I时由IO=Shift-1R状态进入9=Exitl-1R状态、输入O进入II=Pause-1R状态、输入I进入Exit2-1R状态,输入I进入13=Update-1R状态,并且是在TCK接口输入时钟脉冲的上升沿时输入。扩展测试控制模块12从扩展指令寄存器11中读取扫描链模式指令并同时译码生成控制信号(如果是通过芯片的其他接口获取扫描链模式指令,比如复用芯片的管脚接口组成四位指令的输入,然后芯片内部处理器将所述指令译码,生成所需的控制信号),该控制信号用于控制芯片的触发器2的扫描使能端SE,使触发器2连接形成一条长扫描链3或多条短扫描链4,具体可以通过控制信号控制TMS连接到触发器的扫描使能端SE使芯片内部触发器连接形成扫描链(即触发器的输出端Q端连接到下一个触发器的输入端SI端),这里也可以通过其他接口连接到扫描使能端SE使芯片内部触发器形成扫描链。
[0084]在本实施例的方法中,如图3所示,通过连续的N拍时钟脉冲控制长扫描链,将测试数据输入长扫描链中,并使触发器的值沿着长扫描链从输出端依次移出,N为长扫描链的触发器个数;或者,通过连续的M拍时钟脉冲控制多条短扫描链,将测试数据输入多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,M为多条短扫描链中最长链所包括的触发器的个数,具体为:
[0085]如果芯片内部触发器2连接形成一条长扫描链3,TDI接口和TDO接口分别连接到扫描链的输入和输出,通过TCK接口输入的时钟信号控制长扫描链,从TDI接口输入测试数据并使触发器的值沿着扫描链从TDO接口依次移出。如果芯片内部触发器连接形成多条短扫描链4,扫描链输入端口 SCANIN0?SCANINm,扫描链输出端口 SCAN0UT0?SCANOUTm(SCANIN和SCAN0UT通常复用现有的管脚)分别连接到各条短扫描链的输入和输出,通过TCK接口输入的时钟信号控制短扫描链,从扫描链输入端口输入测试数据并使每条短扫描链上触发器的值沿着各自扫描链依次从扫描链输出端口移出。另外,在复用管脚不便的情况下,也可以通过TDI和TDO选择任意一条短扫描链,通过TDI向任意一条扫描链输入值,并通过TDO移出任意一条扫描链的值。
[0086]具体地,可以通过TCK接口输入的连续的N拍时钟脉冲,在N拍时钟脉冲的上升沿从TDI接口依次输入测试数据,在N拍时钟脉冲的下降沿芯片的各个触发器的值沿着长扫描链从TDO接口依次移出;或者
[0087]通过TCK接口输入的连续的M拍时钟脉冲,在M拍时钟脉冲的上升沿从扫描链输入SCANINO-SCANINm接口依次输入数据,在M拍时钟脉冲的下降沿各触发器的值沿着各条短扫描链从扫描链输出SCANOUTO-SCANOUTm接口依次移出,例如其中第I条短扫描链的输入为110011111110101 (此时的输入值也可以是随机的0/1序列或者是用于下一次调试的特定的输入值),短扫描链的输出为111100111111111。此时可以选择只观测其中某条扫描链的输出,将JTAG接口模块的TDO接口连接到该扫描链的扫描输出端口。也可以选择同时观测多条扫描链的输出,可以找一条并口线与计算机相连,将需要观测的扫描链的输出端口与并口的某些引脚相连。
[0088]在本实施例的方法中,将移出的触发器的值与预先期望的结果(芯片执行的调试指令和输入的测试数据是预先定义好的,所以可以准确的预测其触发器输出的值)进行比较,根据与预先期望的结果不一致的值定位出芯片的故障位置,具体为:[0089]通过调试程序按照固定的频率可以采样扫描链输出端口得到一串0/1的序列,将扫描链输出端输出的0/1序列与预先设定的期望值进行比较。例如长扫描链输入为11001111111010101110000111100001011111011011,则长扫描链中触发器输出的期望值为11110011111111100001011101110111101100000100 ;例如短扫描链输入为 110011111110101,则短扫描链中的触发器输出的期望值为111100111111111。例如在长扫描链中的触发器输出值的采样序列为11001111111111100001011101110111101100000100(此时采样的频率与输入时钟脉冲的频率一致)。将预先定义的期望值和触发器的输出值的采样序列进行比较,如果数据完全一致,说明芯片运行的结果与预先期望的结果吻合,芯片工作正常。否则,说明芯片存在故障。由于扫描链中的触发器的位置是有序的,且通过移位的方式依次从扫描链输出端口输出,所以输出的值也是严格有序的。通过比较,可以找到不匹配的位置,即可以定位出故障发生的位置,上述不匹配的触发器的位置为第3?6个(从左向右),同时根据不匹配的统计信息,可以初步推断故障类型。
[0090]本实施例的方法,通过JTAG模块获取调试指令、扫描链模式指令、测试数据,具有很好的通用性,可以实时的将芯片调试后的内部状态通过片内自带的扫描链移出片外进行观测,降低了故障定位难度,且提高了故障定位的效率以及准确度,克服了现有技术中在调试过程中无法观测到芯片内部状态,芯片的故障定位难度较大的问题。
[0091]图5为本发明芯片故障定位装置实施例一的结构示意图,如图5所示,本实施例的芯片故障定位装置50可以包括:执行模块501、第一获取模块502、第一控制模块503、第二获取模块504、第二控制模块505和定位模块506,其中,执行模块501,用于在调试模式下获取调试指令并执行;第一获取模块502,用于在测试模式下获取扫描链模式指令;第一控制模块503,用于根据第一获取模块502获取的扫描链模式指令控制芯片的触发器形成扫描链;第二获取模块504,用于在所述测试模式下获取测试数据;第二控制模块505,用于将第二获取模块504获取的测试数据输入扫描链中,依次移出所述扫描链中触发器的值;定位模块506,用于根据移出的触发器的值定位芯片故障位置。
[0092]本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0093]图6为本发明芯片故障定位装置实施例二的结构示意图,本实施例的装置在图5所示装置结构的基础上,进一步地,执行模块501,包括:
[0094]获取单元5010,用于在调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中;
[0095]执行单元5011,用于等待标志位设置为无效后,从指令存储器中获取调试指令并执行。
[0096]可选地,第一获取模块502具体用于:
[0097]在测试模式下通过JTAG接口模块获取扫描链模式指令。
[0098]可选地,第二获取模块504,具体用于:
[0099]在测试模式下通过JTAG接口模块获取测试数据。
[0100]可选地,第一获取模块502,用于获取:单条成链模式指令或多条成链模式指令;第一控制模块503,具体用于:根据所述单条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成一条长扫描链,或者,[0101]根据所述多条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成多条短扫描链。
[0102]可选地,第二控制模块505,具体用于:
[0103]通过连续的N拍时钟脉冲控制所述长扫描链,将所述第二获取模块获取的测试数据输入所述长扫描链中,并使所述触发器的值沿着所述长扫描链从输出端依次移出,所述N为所述长扫描链的触发器个数;或者,
[0104]通过连续的M拍时钟脉冲控制所述多条短扫描链,将所述第二获取模块获取的测试数据输入所述多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,所述M为所述多条短扫描链中最长链所包括的触发器的个数。
[0105]本实施例的装置,可以用于执行方法实施例二的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0106]图7为本发明芯片故障定位系统实施例的结构示意图,本实施例的系统可以包括:芯片60、与芯片60连接的PC机70,其中所述芯片包括如芯片故障定位装置实施例中任一所述的芯片故障定位装置50。
[0107]芯片故障定位装置50可以采用图5、6所示装置实施例的结构,芯片60与PC机70通过JTAG线80连接。
[0108]本实施例的系统,可以用于执行任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0109]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0110]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种芯片故障定位方法,其特征在于,所述方法包括: 在调试模式下获取调试指令并执行; 在测试模式下获取扫描链模式指令; 根据所述扫描链模式指令控制芯片的触发器形成扫描链; 在所述测试模式下获取测试数据; 将所述测试数据输入所述扫描链中,依次移出所述扫描链中触发器的值; 根据移出的所述触发器的值定位芯片故障位置。
2.根据权利要求1所述的方法,其特征在于,所述在调试模式下获取调试指令并执行,包括: 在所述调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中; 所述等待标志位设置为无效后,从所述指令存储器中获取所述调试指令并执行。
3.根据权利要求1所述的方法,其特征在于,所述在测试模式下获取扫描链模式指令,包括: 在所述测试模式下通过JTAG接口模块获取所述扫描链模式指令。
4.根据权利要求1所述的方法,其特征在于,所述在所述测试模式下获取测试数据,包括:`` 在所述测试模式下通过JTAG接口模块获取所述测试数据。
5.根据权利要求1所述的方法,其特征在于,所述扫描链模式指令包括:单条成链模式指令或多条成链模式指令; 所述根据所述扫描链模式指令控制芯片的触发器形成扫描链,包括: 根据所述单条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成一条长扫描链;或者, 根据所述多条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成多条短扫描链。
6.根据权利要求1所述的方法,其特征在于,所述扫描链包括一条长扫描链或多条短扫描链; 所述将所述测试数据输入所述扫描链中,依次移出所述扫描链中触发器的值,包括:通过连续的N拍时钟脉冲控制所述长扫描链,将所述测试数据输入所述长扫描链中,并使所述触发器的值沿着所述长扫描链从输出端依次移出,所述N为所述长扫描链的触发器个数;或者, 通过连续的M拍时钟脉冲控制所述多条短扫描链,将所述测试数据输入所述多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,所述M为所述多条短扫描链中最长链所包括的触发器的个数。
7.—种芯片故障定位装置,其特征在于,所述装置包括: 执行模块,用于在调试模式下获取调试指令并执行; 第一获取模块,用于在测试模式下获取扫描链模式指令; 第一控制模块,用于根据所述第一获取模块获取的所述扫描链模式指令控制芯片的触发器形成扫描链;第二获取模块,用于在所述测试模式下获取测试数据; 第二控制模块,用于将所述第二获取模块获取的测试数据输入所述扫描链中,依次移出所述扫描链中触发器的值; 定位模块,用于根据移出的所述触发器的值定位芯片故障位置。
8.根据权利要求7所述的装置,其特征在于,所述执行模块,包括: 获取单元,用于在调试模式下,等待标志位置为有效后,通过JTAG接口模块获取调试指令输入芯片内部的指令存储器中; 执行单元,用于所述等待标志位设置为无效后,从所述指令存储器中获取所述调试指令并执行。
9.根据权利要求7所述的装置,其特征在于,所述第一获取模块具体用于: 在所述测试模式下通过JTAG接口模块获取所述扫描链模式指令。
10.根据权利要求7所述的装置,其特征在于,所述第二获取模块,具体用于: 在所述测试模式下通过JTAG接口模块获取所述测试数据。
11.根据权利要求7所述的装置,其特征在于,所述第一获取模块,用于获取:单条成链模式指令或多条成链模式指令; 所述第一控制模块,具体用于: 根据所述单条成链模式指`令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成一条长扫描链,或者, 根据所述多条成链模式指令生成控制信号,根据所述控制信号控制所述触发器的扫描使能端,使所述触发器连接形成多条短扫描链。
12.根据权利要求7所述的装置,其特征在于,所述第二控制模块,具体用于: 通过连续的N拍时钟脉冲控制所述长扫描链,将所述第二获取模块获取的测试数据输入所述长扫描链中,并使所述触发器的值沿着所述长扫描链从输出端依次移出,所述N为所述长扫描链的触发器个数;或者, 通过连续的M拍时钟脉冲控制所述多条短扫描链,将所述第二获取模块获取的测试数据输入所述多条短扫描链中,并使每条短扫描链上触发器的值沿着各自所在短扫描链依次从扫描输出端口移出,所述M为所述多条短扫描链中最长链所包括的触发器的个数。
13.—种芯片故障定位系统,其特征在于,包括:芯片、与所述芯片连接的PC机,其中所述芯片包括如权利要求7-12任一项所述的芯片故障定位装置。
14.根据权利要求13所述的系统,其特征在于,所述芯片与所述PC机之间通过JTAG线连接。
【文档编号】G01R31/26GK103675641SQ201310717666
【公开日】2014年3月26日 申请日期:2013年12月23日 优先权日:2013年12月23日
【发明者】陈华军, 齐子初 申请人:龙芯中科技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1