CN101788644B - 具有多个同构ip核的片上系统芯片测试装置和方法 - Google Patents
具有多个同构ip核的片上系统芯片测试装置和方法 Download PDFInfo
- Publication number
- CN101788644B CN101788644B CN2009102444010A CN200910244401A CN101788644B CN 101788644 B CN101788644 B CN 101788644B CN 2009102444010 A CN2009102444010 A CN 2009102444010A CN 200910244401 A CN200910244401 A CN 200910244401A CN 101788644 B CN101788644 B CN 101788644B
- Authority
- CN
- China
- Prior art keywords
- test
- kernel
- isomorphism
- response
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种具有多个同构IP核的片上系统芯片测试装置和方法,该装置包括控制器,具有连接到相应每个同构IP核的多个控制信号接口,用于向每个同构IP核输入测试控制信号,控制对其中一个或者多个同构IP核进行测试,相同的测试激励数据广播到这些IP核,同时控制输出某一IP核的测试响应,该测试响应作为基准测试响应与其他IP核的测试响应进行比较;所述条件比较器,用于将相应IP核的测试响应与基准测试响应进行比较,并对比较结果进行处理产生1位的错误标识信号,来标识比较是否一致。
Description
技术领域
本发明涉及集成电路测试领域,特别是涉及含有同构IP核的片上系统芯片(SOC芯片)的测试,尤其是涉及需要降低测试开销和测试成本的多核处理器的扫描测试激励施加装置和方法,以及测试响应片上比较装置和方法。
背景技术
当前,绝大部分集成电路都采用扫描设计并通过扫描链进行测试。这种通过扫描链来进行测试的结构测试方法能大大降低自动测试向量生成(Automatic Test Pattern Genaration,ATPG)的复杂度,并极大地提高故障的测试覆盖率。
通过扫描链进行扫描测试的基本步骤是:1)通过扫描输入端口沿着扫描链将测试向量施加到芯片上;2)切换到功能状态,并运行一拍或几拍;3)切换到移位状态,将保存在扫描触发器中的测试响应通过扫描输出端口一位一位的移出来观测,并与期望值进行比较,来判定芯片是否存在故障。
由上面的步骤,可以看出,扫描测试是需要占用输入输出端口的,即需要一定的IO资源。在芯片规模一定的情况下,较少的输入输出端口会导致较长的扫描链,因而使得移位周期变长,测试时间和测试成本也随之增加。
制造工艺的不断进步使得电路规模按照摩尔定律指数增长,而可利用的IO资源增长却缓慢得多。采用传统的测试技术来测试大规模电路会使得测试时间和成本难以接受。
为了缓解这一问题,测试压缩技术被广泛采用。但是,尽管如此,对于含有几亿个晶体管的多核处理器来说,测试成本仍然在芯片总成本中占有较大比重。
而现有技术中的多核处理器的一个显著特征是含有多个同构的处理器核,同构处理器核对相同的测试激励会产生相同的响应,这个特征可以被用来显著地减少测试数据量,进而减少测试成本。
现有技术中,在多核处理器UltraSPARCTM(相关内容请参考文献1:I.Parulkar,T.Ziaja,R.Pendurkar,A.D’Souza and A.Majumdar,“A Scalable,LowCost Design-for-Test Architecture for UltraSPARCTM Chip Multi-Processors”,Proc.IEEE International Test Conference,October 2002)中,同构IP核就共用了一组测试向量,并且只输出了一个IP核的测试响应。在含有16个IP核的UltraSPARCTM第三代多线程处理器(参考文献2:I.Parulkar,S.Anandakumar,G.Agarwal,G.Liu,K.Rajan and F.Chiu,“DFX of a 3rd Generation,16-core/32-thread UltraSPARCTM CMT Microprocessor”,Proc.IEEE InternationalTest Conference,Paper 2.2,October 2008)中,扫描输入数据也是广播到四个簇群(cluster),每个簇群(cluster)有自己独立的扫描输出端口。
但是,在UltraSPARCTM系列处理器中,扫描输入数据没有经过缓存而是直接广播到每个核,这样不仅大大增加了扫描输入的负载,对时序也有较高要求,不利于核的扩展;另一方面,同构IP核的测试响应进行比较时,相关文献也没有给出对X位的处理方法。
在多处理器芯片Vega2(参考文献3:S.Makar,T.Altinis,N.Patkar and J.Wu,“Testing of Vega2,a Chip Multi-Processor with Spare Processors”,Proc.IEEE International Test Conference,Paper 9.1,October 2007)中,也提供了一种模式进行多核同时测试和片上比较,但其基准测试响应是从测试仪上直接输入的,这就需要额外的扫描输入通道,同时扫描输入也是直接广播,不利于核的扩展。
G.Giles等学者在2008年提出了一种针对多个同构IP核的测试访问机制(参考文献4:G.Giles,J.Wang,A.Sehgal,K.J.Balakrishnan,and J.Wingfield,“Test Access Mechanism for Multiple Identical Cores”,Proc.IEEE InternationalTest Conference,Paper 2.3,October 2008),其给出了三种测试模式来支持多核同时测试和片上比较,其中核间比较模式(inter-core compare mode)已在一款AMD四核处理器中进行了应用。虽然该方法有很好的可扩展性和灵活性,但由于每个核的运行状态不一致,需要额外的命令对每个核的状态进行控制,使得控制复杂,另外向量的转换和对X位的处理也不直观,对X位的处理需占用额外的移位时间。
发明内容
本发明的目的在于提供一种具有多个同构IP核的片上系统(SOC)芯片测试装置和方法,其利用同构IP核的特性,用有限的IO资源和简单的控制逻辑降低了测试数据量,减少了测试成本;与现有技术相比,不仅具有良好的可扩展性和灵活性,而且实现复杂度低,控制简单。
为实现本发明目的而提供的一种具有多个同构IP核的片上系统芯片测试装置,包括:
一种具有多个同构IP核的片上系统芯片测试装置,包含在具有多个同构IP核的片上系统芯片中,包括控制器,多个相应于所述同构IP核的条件比较器,其中:
所述控制器,具有连接到相应每个同构IP核的多个控制信号接口,用于向每个同构IP核输入测试控制信号,控制对其中一个或者多个同构IP核进行测试,测试激励数据广播到这些IP核,同时控制输出某一IP核的测试响应,该测试响应作为基准测试响应与其他IP核的测试响应进行比较;
较佳地,为了减轻对时序的要求,测试激励数据是通过流水方式广播到每个同构IP核的;同样地,为了减轻对时序的要求,作为基准的测试响应数据也是通过流水方式进行广播。
进一步地,如果作为基准的测试响应数据通过流水进行广播,控制器需根据同构IP核的连接顺序控制输出所测IP核中离扫描输入端口最近的IP核的测试响应。
所述条件比较器,用于根据屏蔽数据选择性地将相应IP核的测试响应与基准测试响应进行比较,并对比较结果进行处理产生1位的错误标识信号,所述错误标识信号用于指示比较是否一致。
较优地,所述片上系统芯片测试装置还包括测试输入同步寄存器(TISR),测试输出同步寄存器(TOSR),流水寄存器,以及屏蔽数据输入端口,其中:
所述TISR,用于同步每个同构IP核接收到的扫描测试激励,保证每个IP核在同样的时刻接收到相同的测试激励或测试向量;
所述TOSR,用于同步基准测试响应数据和自身的测试响应数据,并保证任一同构IP核的测试响应直接输出到扫描输出端口的时间一致;
所述流水寄存器,用于对扫描输入数据和屏蔽数据进行缓存,通过流水寄存器进行广播减轻了对时序的要求;
所述屏蔽数据输入端口,用于向条件比较器输入屏蔽数据,来屏蔽掉对X的比较,保证比较结果的正确性。
较佳地,所述片上系统芯片测试装置,所述控制器,还用于根据测试仪实际测试的结果决定是否产生新的控制信号以进行新一轮测试。如果作为基准的,即测试响应直接输出的IP核有故障,则其他IP核的条件比较器给出的错误标识信号就不具有参考性,控制器就会产生新的时钟使能控制信号将作为基准的有故障的IP核旁路掉,并产生新的测试响应输出控制信号,重新进行测试,直到作为基准的IP核不存在故障。
为实现本发明目的还提供一种具有多个同构IP核的片上系统(SOC)芯片测试方法,其包括如下步骤:
步骤S100,控制器向每个IP核输入时钟使能控制信号Core_clk_en,控制一个或多个IP核处于测试模式(Core_clk_en为0的核被旁路掉,Core_clk_en为1的核则能接受扫描输入数据,从而可以被测试),扫描测试数据广播到这些IP核;同时控制器根据处于测试模式下的IP核的信息,向每个同构IP核输入测试响应输出控制信号(Core_sel_out),控制所测IP核中某一IP核的测试响应作为基准响应,并直接输出它的测试响应结果,其他IP核则与该IP核进行比较;
步骤S200,在测试仪上对直接输出的测试响应进行观测,并与期望响应进行比较,来判定测试响应直接输出的IP核是否存在故障;同时对处于测试模式下的其他IP核的条件比较器给出的错误标识信号进行观测,来判定相应核的响应是否与基准响应一致;
步骤S300,如果测试响应直接输出的IP核不存在故障,那么错误标识信号Err_flg就反映了相应IP核是否存在故障,这时由错误标识信号Err_flg来判定处于测试模式下的其他IP核是否存在故障。
本发明提供了一种具有多个同构IP核的片上系统(SOC)芯片测试装置和方法,具有以下优点:
1.通过测试激励广播和测试响应核间比较将n个核的测试数据量减少到一个核的测试数据量,大大节省了IO资源,同时减少了测试时间和测试成本。
2.TISR和TOSR寄存器的存在保证了IP核状态的一致性,避免了复杂的控制逻辑来单独控制每个核的行为,这样使得控制简单,面积开销也最小。
3.TISR和TOSR寄存器的存在也保证了同构IP核对测试仪的等价性,即从测试仪的角度来看,所有的核是一样的。这样,通过修改相应的控制信号来处于特定模式,同一组测试向量就可以用来测试任意一个核,任意两个核或者任意多个核。向量的这种通用性减少了向量调试的时间,同样节省了测试成本。
4.屏蔽数据通路的存在保证了含有X位的向量比较的正确性。其可以处理任意多的X位,同时不增加额外的时间。
附图说明
图1是本发明实施例具有同构IP核的片上系统(SOC)芯片测试装置结构示意图;
图2是本发明实施例中1位条件比较器的示意图;
图3是本发明实施例片上系统(SOC)芯片在test_setup和capture过程中捕获“1”值的流水寄存器的示意图;
图4是本发明实施例具有同构IP核的片上系统(SOC)芯片测试方法流程图;
图5是本发明实施例将IP核级的向量转换成芯片级向量的实例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种具有同构IP核的片上系统(SOC)芯片测试装置和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明而不是对本发明的限制。
本发明提供的解决方案利用同构IP核的特性,用有限的IO资源和简单的控制逻辑达到了降低测试数据量和减少测试成本的目的。
本发明实施例的具有同构IP核的片上系统(SOC)芯片测试装置,如图1所示,在具有多个同构IP核6的片上系统芯片中,包括控制器1,以及多个相应于每个同构IP核6的条件比较器2,其中:
所述控制器1,具有连接到相应每个同构IP核6的多个控制信号接口,包括时钟使能信号Core_clk_en和测试响应输出控制信号Core_sel_out,时钟使能信号Core_clk_en控制是否对相应的核进行测试,该信号为0使得相应核被旁路掉,该信号为1则使得相应核能接受扫描数据的输入,从而使得该核处于测试模式;测试响应输出控制信号Core_sel_out根据扫描测试数据(测试向量)到达所述SOC芯片的顺序,控制处于测试模式的IP核中离扫描输入端口最近的IP核的测试响应直接输出,而其他IP核的响应则与该基准响应进行比较并产生相应的错误标识信号Err_flg,如果在测试仪上观测到测试响应直接输出的IP核无故障,则其他IP核输出的Err_flg信号就反映了相应核是否存在故障,通过错误标识信号Err_flg信号就能判定处于测试模式的其他IP核是否存在故障;
更佳地,所述控制器1,还用于根据测试仪实际测试的结果决定是否产生新的控制信号以进行新一轮测试,如果作为基准的,即测试响应直接输出的IP核有故障,则其他IP核的条件比较器给出的错误标识信号就不具有参考性,这时需要产生新的时钟使能信号Core_clk_en将作为基准的有故障的IP核旁路掉,然后根据扫描测试数据到达所述片上系统芯片的顺序,产生新的测试响应输出控制信号Core_sel_out,然后重新进行测试,直到新的作为基准的IP核不存在故障。
所述条件比较器2,用于将所述IP核6的测试响应与来自上游的基准测试响应进行比较,并对比较结果进行处理产生1位的错误标识信号Err_flg,所述错误标识信号用于指示比较是否一致。
较佳地,所述条件比较器2还用于处理含有不确定位X的测试响应数据的比较,当条件比较器2接收到的屏蔽数据的某一位为1时,相应的测试响应位则不进行比较,这样通过输入合适的屏蔽数据就能屏蔽掉对X位的比较,从而保证含有X位的测试响应数据比较的正确性。
本发明实施例的具有多个同构IP核的片上系统(SOC)芯片测试装置,通过控制器1,利用连接到相应每个同构IP核的多个控制信号接口,在进行片上系统芯片测试时,向每个同构IP核6发出时钟使能控制信号和测试响应输出控制信号,使得只输出一个核的测试响应结果,而处于测试模式的其它IP核的测试响应通过与该特定IP核6的测试响应进行比较来判定其正确性。
设控制IP核是否处于测试模式的时钟使能控制信号是Core_clk_en,控制测试响应是否直接输出的测试响应输出控制信号是Core_sel_out,统称为测试控制信号。
在本发明实施例中,如果第一同构IP核Core0的测试响应输出控制信号Core0_sel_out为1,则其它的同构IP核的选择输出信号为0,则第一同构IP核Core0的测试响应结果直接利用扫描链输出到测试仪(未示出)进行观测,其它核则与Core0的测试响应结果进行比较,并通过Err_flg信号来标识比较结果;如果Err_flg输出为0,则表示不出错,即与Core0结果一致;如果Err_flg输出为1,则表示出错,即与Core0结果不一致。
作为一种可实施方式,所受控制直接被观测的同构IP核取决于同构IP核之间的连接顺序。如果扫描测试数据首先到达第一同构IP核Core0,然后到达第二同构IP核Core1,第三同构IP核Core2,……最后达到Coren-1,则在所有同构IP核同时测试(所有IP核的时钟使能信号都为1)的模式下应控制Core0_sel_out=1,Core1_sel_out=0,Core2_sel_out=0,……,Coren-1_sel_out=0,使得直接通过测试仪利用扫描链观测第一同构IP核Core0的测试响应结果,其它的同构IP核由相应的条件比较器对本核的测试响应与Core0的测试响应结果进行比较,并通过Err_flg信号来标识比较结果,进而得到测试结果;如果测试过程中发现Core0存在故障,则其他IP核的条件比较器给出的Err_flg信号就不具有参考性,因为基准测试响应数据是错误的;这时需要控制Core0_clk_en=0,Core1_clk_en=1,Core2_clk_en=1,……,Coren-1_clk_en=1和Core0_sel_out=0,Core1_sel_out=1,Core2_sel_out=0,Core3_sel_out=0,……,Coren-1_sel_out=0,将Core0旁路掉,重新对其他的n-1个核进行测试,并在测试仪上直接观测第二同构IP核Core1的测试响应结果,其它n-2个核的测试响应则相应地与Core1的响应进行比较来判断正确性,依此类推。
作为一种可实施方式,所述条件比较器2的位数取决于SOC芯片扫描输出端口的个数,有多少个扫描输出端口,就需要多少位的条件比较器2。一个n位的条件比较器,可由n个如图2所示的1位条件比较器组成,它的Err_flg信号是这n个1位比较器Err_flg错误标识信号或运算的结果。
作为另一种可实施方式,在某些情况下,基于功耗的考虑,一般不同时对所有的核进行测试。比如,在圆片测试阶段(wafer test),圆片未进行切割,所有的芯片是紧挨着,这种情况下散热效果不好,如果所有的核一块测试,极易因功耗过大而造成对芯片的损害。在对功耗要求比较严格的情况下,可以选择少数核进行同时测试。比如,在本发明实施例中,一次可以选择两个核进行测试或者一次只选择一个核进行测试。
本发明的装置对这些类型的测试都完全支持。以单独测试每个核为例,测试Core0时,控制Core0_sel_out=1,Core1_sel_out=0,Core2_sel_out=0,Core3_sel_out=0来直接输出Core0的测试响应,并控制Core0_clk_en=1,Core1_clk_en=0,Core2_clk_en=0,Core3_clk_en=0将Core1,Core2和Core3旁路掉,即关掉这些核的时钟来达到降低功耗的目的,这样只有Core0正常运行;测试Core2时,控制Core0_sel_out=0,Core1_sel_out=0,Core2_sel_out=1,Core3_sel_out=0来直接输出Core2的测试响应,并控制Core0_clk_en=0,Core1_clk_en=0,Core2_clk_en=1,Core3_clk_en=0将Core0,Core1和Core3旁路掉。不进行片上比较的核的Err_flg信号都没有意义,实际测试中不需要进行观测。
较佳地,所述装置还包括多个连接到同构IP核上的多个测试输入同步寄存器(test input synchronization registers,TISR)3和测试输出同步寄存器(test output synchronization registers,TOSR)4。其中:
所述测试输入同步寄存器3,用于同步每个同构IP核接收到的扫描测试激励,保证每个IP核在同样的时刻接收到相同的测试激励或测试向量;
所述测试输出同步寄存器4,用于同步基准测试响应数据和自身的测试响应数据,并保证任一同构IP核的测试响应直接输出到扫描输出端口的时间一致。
对含有n个同构IP核的片上系统(片上电路系统)SOC来说,核Corem有n-m个TISR寄存器3,m个TOSR寄存器4。比如对含有4个同构核的芯片,Core0有4个TISR寄存器3和0个TOSR寄存器4,Core1有3个TISR寄存器3和1个TOSR寄存器4,Core2有2个TISR寄存器3和2个TOSR寄存器4,而Core3有1个TISR寄存器3和3个TOSR寄存器4。这样,扫描输入数据到达每个同构IP核都需要经过相同的级数(n级),而每个同构IP核的测试响应传播到扫描输出也需要相同的级数(n级)。采用这种结构后,所有的同构核对测试仪来说都是等价的。
考虑到每个核的物理位置不同,扫描测试数据(测试向量)是通过流水的方式广播到每个同构IP核的,这样大大减轻了对时序的要求。同时为了保证每个IP核在同一时刻接收到相同的数据,每个核都包含了不同数目的测试输入同步寄存器3,这样使得每个IP核的工作状态完全一致,省去了复杂的控制逻辑来对每个IP核的状态进行控制。
为了减轻对时序的要求,作为基准的测试响应数据是通过流水的方式广播到下游的每个同构IP核的,所以每个同构IP核接收到基准测试响应的时间是不一致的,为了保证比较的正确性,每个同构IP核都包含了不同数目的测试输出同步寄存器(TOSR)4,用于同步基准测试响应数据和自身的测试响应数据。
通过TISR寄存器3,使得相同的扫描测试数据(即测试向量)以流水的方式广播到每个同构IP核6,并且保证每个核在相同的时间接收到完全相同的测试数据,这样每个核的工作方式都相同(即同时进入移位状态和捕获状态),不需要额外的控制逻辑来单独对每个核进行控制。
作为一种可实施方式,可以用一组扫描测试数据(即测试向量)来实现这样的测试:四个核同时测,两个核同时测,每次只测一个核。从测试仪的角度来看,因为TISR寄存器的存在,无论哪种模式,无论测试哪些核或哪个核,输入的扫描测试数据都是相同的,同时因为TOSR寄存器的存在,输出的测试响应结果也都是相同的,都是缓存四拍再输出。唯一不同的是控制器1发出的控制信号不一样,错误标识信号Err_flg代表的意义有差异,而这些测试仪都可以实时控制。所以,采用本发明中的测试装置生成的扫描测试向量具有很强的通用性。
更佳地,所述装置还包括连接到条件比较器的多个屏蔽数据输入总线7和流水寄存器5,其中:
所述流水寄存器5,用于缓存屏蔽数据,使得屏蔽数据以流水方式进行传播,减轻对时序的要求。
所述输入总线7,用于将屏蔽数据(mask data)输入到每个条件比较器2,使得条件比较器2只对确定值(0或1)进行比较,屏蔽对不确定的X值的比较。
所述输入总线7的宽度等于同构IP核的扫描输出管脚(未示出)的数目。
由于很多宏单元(macro cell)(比如处理器核中的cache存储器)(未示出)的存在,在具有多个同构IP核的片上系统电路中不可避免地会存在很多不确定状态的点,即这些点的值是未知的,而这会导致向量产生X位。另一方面,检测故障有时候不需要对所有的触发器和原始输入(PI)进行赋值,也不需要对所有的触发器和原始输出(PO)进行观测,这些不需要观测的点在向量响应中也表现为X值。另外,向量生成过程中用户施加的一些限制也会导致向量响应中出现X值。X值的存在会破坏同构IP核之间的比较结果,引起Err_flg信号输出错误的值。为了避免向量中X的存在导致的错误,在本发明实施例中,设置多个连接到每个同构IP核的条件比较器的输入总线7,这些输入总线7输入屏蔽数据(mask data)到每个条件比较器2,使得条件比较器只对确定值(0或1)进行比较。
作为一种可实施方式,如果在含有压缩结构的电路中,可以采用非对称(asymmetrical)的压缩结构来减少扫描输出管脚的数目,从而减少额外的输入管脚8的数目。
所述屏蔽数据(mask data)是从扫描测试数据(即测试向量文件)中抽取的。对扫描测试数据的测试响应中为确定值0或1的位,设置相应的屏蔽(mask)位为0;对响应中为X的位,即不进行观测的位,设置相应的屏蔽(mask)位为1。这样就能屏蔽掉X的影响,保证比较结果的正确性。
为了减轻对时序的要求,屏蔽数据也是通过流水广播到每个IP核的。
由于基准测试响应数据到达每个核的时间不一样,所以每个核开始比较的时间也不一样。如果Core0直接被观测,则Core1首先开始比较操作,Coren-1最后开始比较操作。一般的,Corem是在m个时钟周期后开始比较操作的,这就要求在前m个时钟周期,传播到Corem的屏蔽位必须为1。从屏蔽数据输入端口来输入这些屏蔽(mask)位是不可行的,因为屏蔽数据到达Corem也需要m个时钟周期。本发明实施例采用流水寄存器5来解决这个问题,如图3所示,这些流水寄存器5属于专门用以测试的“TESTCLK”时钟域,并能在test_setup和capture过程中捕获“1”值。这样,对于Corem,在前m个时钟周期,保存在流水寄存器中的“1”用来屏蔽掉相应的比较,m个时钟周期后,来自屏蔽数据输入端口的数据用来屏蔽掉对X位的比较。
相应地,本发明实施例还提供一种具有多个同构IP核的片上系统(SOC)芯片测试方法,如图4所示,其包括如下步骤:
步骤S100,控制器向每个IP核输入时钟使能控制信号Core_clk_en,控制一个或多个IP核处于测试模式,时钟使能控制信号Core_clk_en为0的核被旁路掉,时钟使能控制信号Core_clk_en为1的核则能接受扫描输入数据,从而可以被测试,扫描测试激励通过流水方式广播到这些IP核;同时控制器根据扫描测试数据到达片上系统芯片的顺序和处于测试模式下的IP核的信息,向每个同构IP核输入测试响应输出控制信号Core_sel_out,控制所测IP核中离扫描输入端口最近的IP核的测试响应作为基准响应,并直接输出它的测试响应结果,其他IP核则与该IP核进行比较;
步骤S200,在测试仪上对直接输出的测试响应进行观测,并与期望响应进行比较,来判定测试响应直接输出的IP核是否存在故障;同时对处于测试模式下的其他IP核的条件比较器给出的错误标识信号进行观测,来判定相应核的响应是否与基准响应一致;
较佳地,所述步骤S200还包括下列步骤:
屏蔽数据通过屏蔽数据输入端口(mask data in)8将屏蔽数据通过流水寄存器5以流水方式传播到每个同构IP核的条件比较器中,使得相应的条件比较器屏蔽掉对X位的比较,只对确定位(0或1)进行比较,从而保证Err_flg信号的正确性;对于Corem,在前m个时钟周期,保存在流水寄存器5中的“1”用来屏蔽掉相应的比较,m个时钟周期后,来自屏蔽数据输入端口的数据用来屏蔽掉对X位的比较。
如果在测试仪上观测到测试响应直接输出的IP核存在故障,那么处于测试模式的其他IP核的条件比较器给出的Err_flg信号不反映相应的IP核是否存在故障,Err_flg信号给出的信息无效,这时需要旁路掉存在故障的IP核,并进行新一轮测试。
步骤S300,如果测试响应直接输出的IP核不存在故障,那么错误标识信号Err_flg就反映了相应IP核是否存在故障,这时由错误标识信号Err_flg来判定处于测试模式的其他IP核是否存在故障。
较佳地,所述步骤S300还包括下列步骤:
一轮测试完成之后,判断是否存在未被判定的同构IP核,如果还存在IP核未被判定为无故障或有故障,控制器1就产生新的测试控制信号(包括Core_clk_en和Core_sel_out)来启动新一轮测试对未被判定的核进行测试,如果所有的同构IP核都已经被判定,则对这些核的测试结束。
下面以一含有4个同构的处理器核的片上系统(SOC)芯片为例,说明本发明实施例的具有多个同构IP核的片上系统(SOC)芯片测试装置和方法。
如图1所示,本发明实施例涉及到一个多核处理器芯片,该芯片含有4个同构的处理器核6,处理器核6内部包含各种宏单元,包括寄存器堆(regfile)和内容寻址存储器(CAM)等(未示出)。
扫描输入数据(scan in data,也称测试向量),屏蔽数据(mask data)依次经过同构IP核Core0,Core1,Core2和Core3,测试响应数据也按流水顺序依次经过Core1,Core2和Core3。在图1中,还包括多个测试输入同步寄存器(TISR)3和测试输出同步寄存器(TOSR)4,Core0有4个TISR3和0个TOSR4,Core1有3个TISR3和1个TOSR4,Core2有2个TISR3和2个TOSR4,Core3有1个TISR3和3个TOSR4。这样,这四个核的工作状态就能保持一致,即同时进入移位状态和捕获状态。
图1中,还包括对屏蔽数据进行缓存的流水寄存器5,这些流水寄存器5在非移位状态(包括test_setup和capture过程)下能捕获“1”值,从而为最初几拍的比较提供屏蔽(mask)数据。
图3是这些流水寄存器5的示意图,从图中可以看出,当Scan_enable信号为1时,电路处于移位状态,屏蔽数据(mask data)可以通过这些流水寄存器5进行传播;当Scan_enable为0时,电路处于test_setup或capture状态,屏蔽数据(mask data)则不能通过相应的或门传播到流水寄存器5,每个流水寄存器5都捕获到“1”值。
作为一种可实施方式,图3只是给出了流水寄存器5的一种实现形式,但是,应当说明的是,其它任何可以保证这些流水寄存器5在移位之前保持“1”值的方案都是可行的。
图1中,除了最上游的Core0之外,其它的同构IP核的条件比较器2用以比较该同构IP核的响应与来自上游同构IP核的响应,并输出Err_flg信号。
图2是一位条件比较器的示意图。当屏蔽数据(mask data)为0时,相应的响应值可以通过或门进而到达异或门的输入端进行比较;当屏蔽数据(mask data)为1时,响应值则不能通过或门,异或门的两个输入端是屏蔽数据(mask data)引起的1值,从而异或门输出0,表示结果一致。这样,屏蔽数据(mask data)为1就能屏蔽两个响应之间的比较操作。
如果对四个同构核一块进行测试,则Core0应首先被直接观测,它的响应作为基准响应与其它核进行比较,即控制Core0_clk_en=1,Core1_clk_en=1,Core2_clk_en=1,Core3_clk_en=1和Core0_sel_out=1,Core1_sel_out=0,Core2_sel_out=0,Core3_sel_out=0。ATE设备(Auto-Test Equipment,自动化测试设备)(未示出)对期望响应(expected responses)与Core0的响应进行比较来判断Core0是否存在故障,同时Err_flg1~3分别给出Core1,Core2,Core3与Core0进行比较的结果。如果Core0的响应与期望响应完全一致,则说明Core0不存在故障,那么Err_flg1~3就反映了Core1~3是否存在故障,测试过程结束;如果Core0的响应与期望响应不一致,则说明Core0存在故障,那么Err_flg1~3给出的信息就不具有参考性,只是说明了与Core0的结果是否一致,这时还需要新一轮的测试。当Core0存在故障时,需要将Core0旁路掉,直接输出Core1的结果,Core2,Core3与Core1进行比较来判断其正确性,即控制Core0_clk_en=0,Core1_clk_en=1,Core2_clk_en=1,Core3_clk_en=1和Core0_sel_out=0,Core1_sel_out=1,Core2_sel_out=0,Core3_sel_out=0。这时,Err_flg1的输出没有意义,因为Core1的响应是在测试仪上进行比较的,不是片上比较的。当Core1不存在故障时,Core2和Core3是否存在故障则分别由Err_flg2和Err_flg3给出,测试过程结束;否则还需要进一步的测试来判定Core2和Core3是否存在故障。以此类推,直到所有的核是否存在故障都被判定。可以看出,最好情况下(Core0不存在故障的情况),只需要一轮测试就可以对所有的同构核进行判定;最坏情况下(Core0,Core1和Core2都存在故障的情况),需要4轮测试才能对所有的核进行判定。
本发明中的扫描测试装置使得自动测试向量生成(ATPG)可以在核级进行,测试向量(Test Pattern)在核级仿真验证过之后,再映射到顶层作为最终的测试向量。
图5给出了由IP核级测试向量产生芯片级测试向量的一个可实施方式,其中包含屏蔽(mask)数据的抽取。从该实施例中可以看到,芯片级向量比IP核级向量多了4拍移位操作,这4拍操作,对扫描输入来说,对应TISR寄存器,对扫描输出来说,对应TOSR寄存器。屏蔽(Mask)数据根据扫描输出的值得到,需要比较的位,屏蔽(mask)对应位为0;输出为X的位,屏蔽(mask)对应位为1,即屏蔽对X的比较。在核级产生向量大大减少了向量生成时间和向量调试时间。
本发明实施例的具有多个同构IP核的片上系统(SOC)芯片测试装置和方法,其通过测试激励广播和测试响应核间比较将n个核的测试数据量减少到一个核的测试数据量,大大节省了I/O资源,同时减少了测试时间和测试成本。相对于其它的多核测试方法,本发明的测试装置和方法具有良好的可扩展性和灵活性,而且实现复杂度低,控制简单。其具有以下优点:
1.通过测试激励广播和测试响应核间比较将n个核的测试数据量减少到一个核的测试数据量,大大节省了IO资源,同时减少了测试时间和测试成本。
2.TISR和TOSR寄存器的存在保证了IP核状态的一致性,避免了复杂的控制逻辑来单独控制每个核的行为,这样使得控制简单,面积开销也最小。
3.TISR和TOSR寄存器的存在也保证了同构IP核对测试仪的等价性,即从测试仪的角度来看,所有的核是一样的。这样,通过修改相应的控制信号来处于特定模式,同一组测试向量就可以用来测试任意一个核,任意两个核或者任意多个核。向量的这种通用性减少了向量调试的时间,同样节省了测试成本。
4.屏蔽数据通路的存在保证了含有X位的向量比较的正确性。其可以处理任意多的X位,同时不增加额外的时间。
5.这种结构也有利于自动测试向量生成(ATPG)。向量可以在核级进行产生和仿真,经过核级验证的向量再映射到顶层作为最终的向量来使用。这样可大大减少测试向量生成的时间,同时减少向量调试时间。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (12)
1.一种具有多个同构IP核的片上系统芯片测试装置,包含在具有多个同构IP核的片上系统芯片中,其特征在于,包括控制器,以及多个相应于所述同构IP核的条件比较器,其中:
所述控制器,具有连接到相应每个同构IP核的多个控制信号接口,用于向每个同构IP核输入测试控制信号,控制对其中一个或者多个同构IP核进行测试,相同的测试激励数据广播到这些IP核,同时控制输出某一IP核的测试响应,该测试响应作为基准测试响应与其他IP核的测试响应进行比较;
所述条件比较器,用于根据屏蔽数据选择性地将相应IP核的测试响应与基准测试响应进行比较,并对比较结果进行处理产生1位的错误标识信号,所述错误标识信号用于指示比较是否一致。
2.根据权利要求1所述的片上系统芯片测试装置,其特征在于,所述控制器,还用于根据测试仪实际测试的结果决定是否产生新的控制信号以进行新一轮测试,如果作为基准的,即测试响应直接输出的IP核有故障,则其他IP核的条件比较器给出的错误标识信号就不具有参考性,控制器就会产生新的时钟使能控制信号将作为基准的有故障的IP核旁路掉,并产生新的测试响应输出控制信号,重新进行测试,直到作为基准的IP核不存在故障。
3.根据权利要求1至2任一项所述的片上系统芯片测试装置,其特征在于,还包括多个连接到同构IP核上的测试输入同步寄存器和测试输出同步寄存器,其中:
所述测试输入同步寄存器,用于同步每个同构IP核接收到的扫描测试激励,保证每个IP核在同样的时刻接收到相同的测试激励或测试向量;
所述测试输出同步寄存器,用于同步基准测试响应数据和自身的测试响应数据,并保证任一同构IP核的测试响应直接输出到扫描输出端口的时间一致。
4.根据权利要求3所述的片上系统芯片测试装置,其特征在于,对含有n个同构IP核的片上系统芯片,核Corem有n-m个测试输入同步寄存 器,m个测试输出同步寄存器。
5.根据权利要求1至2任一项所述的片上系统芯片测试装置,其特征在于,还包括连接到条件比较器的屏蔽数据输入总线和流水寄存器,其中:
所述流水寄存器,用于缓存屏蔽数据,使得屏蔽数据以流水方式进行传播,减轻对时序的要求;
所述屏蔽数据输入总线,用于将屏蔽数据输入到每个所述条件比较器,使得所述比较器只对确定值进行比较,屏蔽对不确定的X值的比较,从而保证含有X值的测试响应数据比较的正确性;
所述屏蔽数据是从扫描测试数据中抽取的。
6.根据权利要求5所述的片上系统芯片测试装置,其特征在于,所述屏蔽数据输入总线的宽度等于同构IP核的扫描输出管脚的数目。
7.根据权利要求1或2所述的片上系统芯片测试装置,其特征在于,所述条件比较器的位数取决于所述片上系统芯片同构IP核的扫描输出管脚的数目;一个n位的条件比较器,可由n个1位条件比较器组成,它的比较结果输出信号是这n个1位条件比较器比较结果输出信号的或运算值。
8.根据权利要求1至2任一项所述的片上系统芯片测试装置,其特征在于,测试激励数据通过流水方式进行广播,所述控制器根据同构IP核的连接顺序控制输出所测IP核中离扫描输入端口最近的IP核的测试响应来作为基准测试响应;
所述基准测试响应通过流水的方式广播到下游的每个同构IP核。
9.一种具有多个同构IP核的片上系统芯片测试方法,其特征在于,包括下列步骤:
步骤S100,控制器向每个IP核输入时钟使能控制信号,控制一个或多个IP核处于测试模式,相同的测试激励数据广播到这些IP核;同时控制器根据处于测试模式下的IP核的信息,向每个同构IP核输入测试响应输出控制信号,控制所测IP核中某一IP核的测试响应作为基准响应,并直接输出它的测试响应结果,其他IP核则与该IP核进行比较;
步骤S200,在测试仪上对直接输出的测试响应进行观测,并与期望响 应进行比较,来判定测试响应直接输出的IP核是否存在故障;同时对处于测试模式下的其他IP核的条件比较器给出的错误标识信号进行观测,来判定相应IP核的响应是否与基准响应一致;
步骤S300,如果测试响应直接输出的IP核不存在故障,那么错误标识信号就反映了相应IP核是否存在故障,这时由错误标识信号来判定处于测试模式下的其他IP核是否存在故障。
10.根据权利要求9所述的片上系统芯片测试方法,其特征在于,所述步骤S100还包括下列步骤:
相同的测试激励数据通过流水方式广播到每个同构IP核,作为基准的测试响应通过流水方式广播到下游的同构IP核;
控制器根据扫描测试数据到达片上系统芯片的顺序和处于测试模式下的IP核的信息,控制所测IP核中离扫描输入端口最近的IP核的测试响应作为基准响应,并直接输出;
测试输入同步寄存器同步每个同构IP核接收到的扫描测试激励,保证每个IP核在同样的时刻接收到相同的测试激励或测试向量;
测试输出同步寄存器同步基准测试响应数据和自身的测试响应数据,并保证任一同构IP核的测试响应直接输出到扫描输出端口的时间一致。
11.根据权利要求9所述的片上系统芯片测试方法,其特征在于,所述步骤S200还包括下列步骤:
屏蔽数据通过屏蔽数据输入端口将屏蔽数据通过流水寄存器以流水方式传播到每个同构IP核的条件比较器中,使得相应的比较器屏蔽掉对X位的比较,只对确定位进行比较,从而保证错误标识信号的正确性;对于Corem,在前m个时钟周期,保存在流水寄存器中的“1”用来屏蔽掉相应的比较,m个时钟周期后,来自屏蔽数据输入端口的数据用来屏蔽掉对X位的比较;
如果在测试仪上观测到测试响应直接输出的IP核存在故障,那么处于测试模式的其他IP核的条件比较器给出的错误标识信号不反映相应的IP核是否存在故障,错误标识信号给出的信息无效,这时需要旁路掉存在故障的IP核,并进行新一轮测试。
12.根据权利要求9至11任一项所述的片上系统芯片测试方法,其 特征在于,所述步骤S300还包括下列步骤:
一轮测试完成之后,判断是否存在未被判定的同构IP核,如果还存在IP核未被判定为无故障或有故障,控制器就产生新的控制信号来启动新一轮测试对未被判定的核进行测试,如果所有的同构IP核都已经被判定,则对这些核的测试结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102444010A CN101788644B (zh) | 2009-12-30 | 2009-12-30 | 具有多个同构ip核的片上系统芯片测试装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102444010A CN101788644B (zh) | 2009-12-30 | 2009-12-30 | 具有多个同构ip核的片上系统芯片测试装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101788644A CN101788644A (zh) | 2010-07-28 |
CN101788644B true CN101788644B (zh) | 2011-11-16 |
Family
ID=42531928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102444010A Active CN101788644B (zh) | 2009-12-30 | 2009-12-30 | 具有多个同构ip核的片上系统芯片测试装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101788644B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043665B2 (en) | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8442663B2 (en) * | 2010-08-23 | 2013-05-14 | Fisher-Rosemount Systems, Inc. | Methods, apparatus and articles of manufacture to test process control systems |
CN103324465A (zh) * | 2013-05-10 | 2013-09-25 | 刘保国 | 多变量、复杂控制系统的并行算法及结构 |
CN107271888A (zh) * | 2017-07-31 | 2017-10-20 | 上海华力微电子有限公司 | 一种单个测试芯片实现多个ip芯片测试的方法 |
CN108333497A (zh) * | 2017-11-28 | 2018-07-27 | 上海华力微电子有限公司 | 一种芯片测试的方法 |
CN109344018B (zh) * | 2018-09-10 | 2022-03-29 | 深圳忆联信息系统有限公司 | 多核cpu测试方法、装置、计算机设备和存储介质 |
CN109444716B (zh) * | 2018-11-27 | 2021-08-10 | 中科曙光信息产业成都有限公司 | 一种具有定位功能的扫描测试结构及方法 |
CN111381148B (zh) * | 2018-12-29 | 2023-02-21 | 华润微集成电路(无锡)有限公司 | 实现芯片测试的系统及方法 |
KR102681969B1 (ko) * | 2019-01-10 | 2024-07-08 | 삼성전자주식회사 | 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법 |
CN111736062A (zh) * | 2020-07-27 | 2020-10-02 | 上海兆芯集成电路有限公司 | 测试系统以及测试方法 |
CN111966554B (zh) * | 2020-08-25 | 2024-02-09 | 深圳比特微电子科技有限公司 | 芯片测试方法和计算芯片 |
CN114281751B (zh) * | 2020-09-28 | 2024-01-02 | 上海商汤智能科技有限公司 | 芯片系统 |
CN112255534B (zh) * | 2020-10-14 | 2023-03-24 | 天津津航计算技术研究所 | 一种基于fpga的ip核模块调试系统 |
CN112630630B (zh) * | 2020-11-30 | 2022-10-28 | 深圳比特微电子科技有限公司 | 芯片测试方法和计算芯片 |
CN114650246A (zh) * | 2020-12-18 | 2022-06-21 | 中国移动通信有限公司研究院 | Ip核调用的检测方法、装置及设备 |
CN112881887B (zh) * | 2021-01-15 | 2023-02-17 | 深圳比特微电子科技有限公司 | 芯片测试方法和计算芯片 |
CN115078976B (zh) * | 2022-08-22 | 2022-12-23 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 核心数量的检测系统及方法 |
CN116860536B (zh) * | 2023-09-05 | 2023-11-28 | 武汉凌久微电子有限公司 | Gpu芯片的快速ft测试系统、测试设备及测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888765B1 (en) * | 2002-02-04 | 2005-05-03 | National Semiconductor Corporation | Integrated circuit and method for testing same using single pin to control test mode and normal mode operation |
CN1734278A (zh) * | 2005-05-27 | 2006-02-15 | 上海大学 | 集成电路片上系统中故障的测试系统和方法 |
CN101055609A (zh) * | 2006-04-11 | 2007-10-17 | 大唐移动通信设备有限公司 | 可实现数据自保护的片上系统的ip核 |
-
2009
- 2009-12-30 CN CN2009102444010A patent/CN101788644B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888765B1 (en) * | 2002-02-04 | 2005-05-03 | National Semiconductor Corporation | Integrated circuit and method for testing same using single pin to control test mode and normal mode operation |
CN1734278A (zh) * | 2005-05-27 | 2006-02-15 | 上海大学 | 集成电路片上系统中故障的测试系统和方法 |
CN101055609A (zh) * | 2006-04-11 | 2007-10-17 | 大唐移动通信设备有限公司 | 可实现数据自保护的片上系统的ip核 |
Non-Patent Citations (2)
Title |
---|
胡伟武等.龙芯2号处理器设计和性能分析.《计算机研究与发展》.2006,第43卷(第6期), * |
高翔等.基于龙芯CPU的多核全系统模拟器SimOS_Goodson.《软件学报》.2007,第18卷(第4期), * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043665B2 (en) | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
Also Published As
Publication number | Publication date |
---|---|
CN101788644A (zh) | 2010-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101788644B (zh) | 具有多个同构ip核的片上系统芯片测试装置和方法 | |
Anis et al. | Low cost debug architecture using lossy compression for silicon debug | |
US7478300B2 (en) | Method for testing functional boundary logic at asynchronous clock boundaries of an integrated circuit device | |
Yang et al. | Quick scan chain diagnosis using signal profiling | |
CN103091620A (zh) | 一种针对扫描测试中捕获功耗的优化方法 | |
US9194914B2 (en) | Power supply monitor for detecting faults during scan testing | |
DeOrio et al. | Post-silicon bug diagnosis with inconsistent executions | |
Zeng et al. | Scan based speed-path debug for a microprocessor | |
US7231565B2 (en) | Method for performing built-in and at-speed test in system-on-chip | |
CN108134717B (zh) | 基于有界模型检验的片上网络固定型故障在线测试方法 | |
US8230283B2 (en) | Method to test hold path faults using functional clocking | |
Beckler et al. | On-chip diagnosis for early-life and wear-out failures | |
Fang et al. | Diagnosis of board-level functional failures under uncertainty using Dempster–Shafer theory | |
Zhao et al. | Unit-based functional iddt testing for aging degradation monitoring in a vliw processor | |
Han et al. | A New Multi‐site Test for System‐on‐Chip Using Multi‐site Star Test Architecture | |
CN203573309U (zh) | 嵌入式系统存储器的测试结构 | |
Cantoro et al. | Exploiting post-silicon debug hardware to improve the fault coverage of software test libraries | |
Gao et al. | A new post-silicon debug approach based on suspect window | |
CN112527710A (zh) | 一种jtag数据捕获分析系统 | |
Zhao et al. | Application of functional I DDQ testing in a VLIW processor towards detection of aging degradation | |
Iwata et al. | Post silicon debugging of electrical bugs using trace buffers | |
Chen et al. | Functional-like transition delay fault test-pattern generation using a bayesian-based circuit model | |
Fang et al. | Reproduction and detection of board-level functional failure | |
Fang et al. | Ranking of suspect faulty blocks using dataflow analysis and dempster-shafer theory for the diagnosis of board-level functional failures | |
Al-Awadhi et al. | FF-Control point insertion (FF-CPI) to overcome the degradation of fault detection under multi-cycle test for POST |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100080 No. 10 South Road, Haidian District Academy of Sciences, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |