用于测试时间减少的方法和设备与流程

文档序号:12287071阅读:225来源:国知局
用于测试时间减少的方法和设备与流程

本发明涉及诸如集成电路(IC)的半导体装置的扫描测试。



背景技术:

与基于功能模式的测试相比,基于扫描的技术提供了实现高故障覆盖的有效替代方案。随着设计尺寸的增加和多核SoC(片上系统)对于驱动高速应用程序变得至关重要,测试数据量和测试应用时间难以控制地增加,即使在基于高效和平衡的扫描的设计中。到目前为止,扫描压缩技术是针对测试数据量和针对在扫描插入设计的模式执行期间测试时间减少的最佳技术。扫描压缩架构包括:解压缩器,用于在输入侧上解压缩数据;以及压缩器,用于在输出侧压缩数据。解压缩器获取扫描输入并在空间上将其扩展到内部的大量扫描链中。每个扫描链具有多个扫描单元。如果更多的扫描输入被提供给解压缩器,则扩展将被改进,并且扫描链的数量将是更大的。类似地,在扫描压缩架构的输出侧,扫描链被压缩为小量的扫描输出,这导致了混叠的现象。实际上,如果更多的扫描输出是可用的,则混叠将是更低的,并且扫描压缩架构将是更加鲁棒的。然而,在非常低成本测试器(VLCT)的情况下,支持最多8个扫描输入和8个扫描输出。根据一种已知的扫描技术来理解对扫描输出上的扫描链的观察,扫描链的最大数量将是1024(N*2(M~1),其中N是扫描输入的数量,并且M是扫描输出的数量)。每个扫描链具有128个扫描单元,因此扫描单元的总数量是131072(128*1024)。如果扫描输入和扫描输出的数量是9,则扫描链的数量将是2304,并且每个扫描链中的扫描单元的数量将是大约57(128×1024/256*9)。因此,当扫描输入和扫描输出的数量从8增加到9时,每个扫描链中的扫描单元的数量减少大约50%,这减少了大量裕度的测试时间。但是,VLCT不支持9个扫描输入和9个扫描输出。

在引脚受限装置中,诸如具有5个引脚的装置,所需的扫描链的数量将是80(5*2(5~1))。因此,每个扫描链中所需的扫描单元的数量将近似为1638(128*1024/80)。因此,测试时间将显著增加。而且,为了使VLCT与引脚有限的装置兼容,使用串行器方法。在该方法中,每个扫描输入使用至少两个移位寄存器。因此,为了支持5引脚装置的VLCT,在输入侧处使用总共10个移位寄存器。此外,当数据通过两个移位寄存器移位时,扫描单元中的数据移位的频率减少一半,这增加了测试时间。此外,由于仅需要8个输入,来自移位寄存器的这些扫描输入中的两个将被认为是“无关”输入。移位寄存器是扫描系统上的额外开销。在其中在9个引脚处实现最佳测试时间的示例情况下,串行器方法不允许针对5引脚装置支持9个引脚。因此,当A引脚提供最佳测试时间且装置具有B个引脚时,当A不是B的整数倍时,串行器方法不支持A/B。



技术实现要素:

在所描述的示例中,为了测试集成电路,一种电路包括接收N个扫描输入并生成M个伪扫描输入的输入转换器,其中M和N是整数。扫描压缩架构耦合到输入转换器并响应于M个伪扫描输入而生成P个伪扫描输出。输出转换器耦合到扫描压缩架构并响应于P个伪扫描输出而生成Q个扫描输出,其中P和Q是整数。输入转换器以第一频率接收N个扫描输入并以第二频率生成M个伪扫描输入。输出转换器以第二频率接收P个伪扫描输出并以第一频率生成Q个扫描输出。

在一个测试集成电路的示例性方法中,以第一频率接收N个扫描输入,并且根据N个扫描输入以第二频率生成M个伪扫描输入。根据M个伪扫描输入以第二频率生成P个伪扫描输出,以及根据M个伪扫描输出以第一频率生成Q个扫描输出。第一频率和第二频率的比率等于M和N的比率以及P和Q的比率,其中N、M、P和Q是整数。

在另一个所述示例中,一种计算装置包括主装置和耦合到主装置的从装置。主装置在每个时钟周期以N位操作,并且从装置在每个时钟周期以M位操作。转换器耦合到主装置和从装置。在写入操作期间,转换器在每个时钟周期从主装置接收N位,并存储从主装置接收的位。当存储在转换器中的位的数量等于或大于M时,转换器向从装置提供M位。

附图说明

图1是一种用于测试集成电路(IC)的电路的示意图。

图2是一种用于测试集成电路(IC)的电路的参数表,作为扫描时钟的函数。

图3(a)和图3(b)示出一种用于测试集成电路(IC)的电路中的部分数据打包。

图4是一种用于测试集成电路(IC)的电路的时序图。

图5是一种用于测试集成电路(IC)的电路的示意图。

图6(a)和图6(b)示出了一种用于测试集成电路(IC)的电路中的部分数据打包。

图7是一种用于测试集成电路(IC)的电路的时序图。

图8示出了一种计算装置。

具体实施方式

图1是一种用于测试集成电路(IC)的电路100的示意图。电路100包括输入转换器104。输入转换器104从测试器(图1中未示出)接收N个扫描输入102,其中N是整数。一些测试器的示例可以包括非常低成本的测试器(VLCT)或高端测试器。输入转换器104生成M个伪扫描输入106,其中M是整数。在一个实施例中,输入转换器104是FIFO(先进先出)缓冲器。扫描压缩架构110耦合到输入转换器104。扫描压缩架构110接收M个伪扫描输入106并响应于M个伪扫描输入106生成P个伪扫描输出116。扫描压缩架构110包括解压缩器108、多个扫描链112和压缩器114。解压缩器108耦合到输入转换器104并接收M个伪扫描输入106。解压缩器108耦合到扫描链112。扫描链112中的每一个包括多个扫描单元,诸如扫描单元111。压缩器114耦合到扫描链112。压缩器114生成P个伪扫描输出116,其中P是整数。输出转换器118耦合到压缩器114。输出转换器118接收P个伪扫描输出116并生成Q个扫描输出120,其中Q是整数。在一个实施例中,输出转换器118是FIFO(先进先出)缓冲器。电路100包括监视器122。监视器122从输入转换器104接收状态信号124,并且还接收扫描时钟126。监视器122生成内部时钟128和使能信号130。内部时钟128被提供给扫描压缩架构110。输出转换器118从监视器122接收使能信号130。电路100可以包括一个或更多个附加部件,为了描述的简单起见,这里不再讨论。

在图1的电路100的操作中,输入转换器104接收N个扫描输入102并生成M个伪扫描输入106。扫描压缩架构110接收M个伪扫描输入106并生成P个伪扫描输出116。解压缩器108接收M个伪扫描输入106并响应于M个伪扫描输入106生成多个核心扫描输入。核心扫描输入被提供给扫描链112。扫描链112中的每一个包括诸如扫描单元111的扫描单元。每个扫描单元111以内部时钟128的频率移位多个核心扫描输入中的一个核心扫描输入。响应于由扫描链112接收的核心扫描输入,扫描链112生成多个核心扫描输出。压缩器114接收核心扫描输出并响应于核心扫描输出而生成P个伪扫描输出116。输出转换器118接收P个伪扫描输出116并生成Q个扫描输出120。输入转换器104以第一频率接收N个扫描输入102并以第二频率生成M个伪扫描输入106。输出转换器118以第二频率接收P个伪扫描输出116并以第一频率生成Q个扫描输出120。第一频率和第二频率的比率等于M和N的比率以及P和Q的比率。监视器122接收扫描时钟126并生成内部时钟128。内部时钟128的频率等于第二频率。扫描链112被内部时钟128驱动。

输入转换器104在每个扫描时钟126接收N个扫描输入102。输入转换器104被配置为存储N个扫描输入102并在扫描时钟开始时存储在输入转换器104中的扫描输入102的数量等于或大于M时生成M个伪扫描输入106。在一个实施例中,当N等于8并且M等于9时,输入转换器104在第一扫描时钟中接收8个扫描输入102。因为8小于M,所以输入转换器104在第一扫描时钟中不生成M个伪扫描输入106。这些8个扫描输入102存储在输入转换器104中。在下一个扫描时钟(其是第二扫描时钟):(a)输入转换器104接收另外8个扫描输入102;并且(b)在第二扫描时钟开始时存储在输入转换器104中的扫描输入102的总数大于M。因此,输入转换器104在第二扫描时钟中生成9个伪扫描输入106,存储在输入转换器104中的剩余扫描输入的数量为7(16-9=7)。这个过程被称为部分数据打包(fractional data packing),并且随后借助于图2和图3的描述进一步解释。监视器122从输入转换器104接收状态信号124。状态信号124关于每个扫描时钟开始时存储在输入转换器104中的扫描输入的数量更新监视器122。例如,在上述实施例中,状态信号124将更新监视器122:在第一扫描时钟开始时,8个扫描输入存储在输入转换器104中,并且16个扫描输入在第二扫描时钟开始时存储在输入转换器104中。监视器122被配置为当在扫描时钟开始时存储在输入转换器104中的扫描输入的数量小于M时,中断到扫描压缩架构110的内部时钟128。因此,当在扫描时钟开始时存储在输入转换器104中的扫描输入的数量小于M时,停止扫描单元中核心扫描输入的移位。

输出转换器118在除第一扫描时钟之外的每个扫描时钟126生成Q个扫描输出。在一个实施例中,当N等于8并且M等于9时,输入转换器104在第一扫描时钟接收8个扫描输入102。因为8小于M,所以输入转换器104在第一扫描时钟中不生成M个伪扫描输入106。这8个扫描输入102存储在输入转换器104中,并且输出转换器118在第一扫描时钟中不接收任何输入。在下一个扫描时钟(其是第二扫描时钟)中,输入转换器104接收另外8个扫描输入102,并且存储在输入转换器104中的扫描输入的总数量大于M。因此,输入转换器104在第二扫描时钟中生成9个伪扫描输入106。当P等于9并且Q等于8时,扫描压缩架构110接收9个伪扫描输入106并生成9个伪扫描输出116。输出转换器118接收9个伪扫描输出116并生成8个扫描输出120。一个(1)伪扫描输出存储在输出转换器118中。在第三扫描时钟中,输出转换器118接收9个伪扫描输出116并生成8个扫描输出120。然后总共2个伪扫描输出存储在输出转换器118中。类似地,在9个扫描时钟之后,输出转换器118中存储总共8个伪扫描输出。在第10个扫描时钟中,输出转换器118生成8个扫描输出120,并且存储在输出转换器118中的伪扫描输出的数量为零。输出转换器118从监视器122接收使能信号130。使能信号130被配置为当在扫描时钟开始时存储在输出转换器118中的伪扫描输出的数量小于Q时,禁用伪扫描输出在输出转换器118中的存储。在一个实施例中,使能信号130被配置为当输出转换器118没有接收到伪扫描输出时,禁用伪扫描输出在输出转换器118中的存储。在一个实施例中:(a)输入转换器104的存储深度是K位,其中K是整数,并且K大于或等于2N;和(b)输出转换器118的存储深度是L位,其中L是整数,并且L大于或等于2P。

电路100适用于所有装置且与引脚的数量无关。因此,当A引脚提供最佳测试时间,并且要测试的装置或集成电路是B引脚时,电路100不需要A是B的整数倍。此外,“无关”输入的问题不出现在电路100中。与常规技术相比,电路100中所需的测试时间显著减少。

图2是示出作为扫描时钟的函数的用于测试集成电路(IC)的电路的参数表200。当N为8,M为9,P为9,Q为8时,借助于图1的电路100解释表200。行1示出由电路100接收的扫描时钟126。例如,在表200中仅表示12个扫描时钟。行2表示在扫描时钟结束时存储在输入转换器104中的扫描输入(类似于扫描输入102)的数量。输入转换器104被配置为存储N个扫描输入102并在扫描时钟开始时存储在输入转换器104中的扫描输入的数量等于或大于M时,生成M个伪扫描输入106。当N等于8,并且M等于9时,输入转换器104在扫描时钟1接收8个扫描输入102。因为8小于M,所以输入转换器104在第一扫描时钟(扫描时钟1)中不生成M个伪扫描输入106。这8个扫描输入102存储在输入转换器104中。在下一个扫描时钟(其为扫描时钟2)中,输入转换器104接收另外8个扫描输入102,并且在扫描时钟2的开始时存储在输入转换器104中的扫描输入的总数大于M。因此,输入转换器104在扫描时钟2生成9个伪扫描输入106,并且在扫描时钟2结束时存储在输入转换器104中的剩余扫描输入的数量是7(16-9=7),如行2所示(扫描时钟2下方)。该过程称为部分数据打包,因为在扫描时钟2接收的扫描输入的部分作为伪扫描输入的部分被发送。类似地,在扫描时钟3,在输入转换器104处接收下一组8个扫描输入102。在扫描时钟3开始时存储在输入转换器104中的扫描输入的总数是(7+8=15),其大于M。因此,输入转换器104在第三扫描时钟中生成9个伪扫描输入106,并且在第三扫描时钟结束时存储在输入转换器104中的剩余扫描输入的数量是6(15-9=6),如行2所示(扫描时钟3下方)。类似地,在扫描时钟9,在输入转换器104处接收一组8个扫描输入102。存储在输入转换器104中的扫描输入的总数为(1+8=9),其等于M。因此,输入转换器104在第九扫描时钟(扫描时钟9)中生成9个伪扫描输入106,并且在第九扫描时钟结束时存储在输入转换器104中的剩余扫描输入的数量为0(9-9=0),如行2(扫描时钟9下方)所示。在扫描时钟10,输入转换器104接收另一组8个扫描输入102,其被存储在输入转换器104中。

在扫描时钟2,如行3(扫描时钟2下方)所示,从输入转换器104接收到9个伪扫描输入106时,使能到扫描压缩架构110的内部时钟128。监视器122继续向扫描压缩架构110提供内部时钟128,只要在扫描时钟开始时存储在输入转换器104中的扫描输入的数量等于或大于M。当存储在输入转换器104中的扫描输入的数量小于M时,如在行3中的扫描时钟10处的表200所示,监视器122中断到扫描压缩架构110的内部时钟128。在扫描时钟10,输入转换器104接收另一组8个扫描输入102,其被存储在输入转换器104中。因为8小于M(M=9),所以输入转换器104在第十扫描时钟(扫描时钟10)中不生成M个伪扫描输入106。相应地,监视器122在扫描时钟10时中断到扫描压缩架构110的内部时钟128(在扫描时钟10下面的行3中示出为0)。

当内部时钟128在扫描时钟2被提供给扫描压缩架构110时,扫描压缩架构110响应于从输入转换器104接收的9个伪扫描输入106而生成9个伪扫描输出116。当在扫描时钟开始时存储在输出转换器118中的伪扫描输出的数量大于或等于Q时,输出转换器118生成Q个扫描输出120。在扫描时钟2开始时,9个伪扫描输出116被接收并存储在输出转换器118中。当Q为8并且存储在输出转换器118中的伪扫描输出的数量为9时,输出转换器118生成8个扫描输出120,并且在扫描时钟2结束时输出转换器118中存储的剩余伪扫描输出的数量为1(9-8=1),如行4(扫描时钟2下方)所示。在扫描时钟3,在输出转换器118处接收下一组9个伪扫描输出116。存储在输出转换器118中的伪扫描输出的总数是(1+9=10),其大于Q。因此,输出转换器118在第三扫描时钟中生成8个扫描输出120,并且在第三扫描时钟结束时存储在输出转换器118中的剩余伪扫描输出的数量是2(10-8=2),如行4(扫描时钟3下方)所示。类似地,在扫描时钟9,在输出转换器118处接收一组9个伪扫描输出116。存储在输出转换器118中的伪扫描输出的总数是(7+9=16),其大于Q。因此,输出转换器118在第九扫描时钟(扫描时钟9)中生成8个扫描输出120,并且在第九扫描时钟结束时存储在输出转换器118中的剩余伪扫描输出的数量是8(16-8=8),如行4所示(扫描时钟9下方)。在扫描时钟10,输入转换器104不生成伪扫描输入106,并且到扫描压缩架构110的内部时钟128也被禁用。然而,输出转换器118具有存储的8个伪扫描输出,其等于Q,且因此在扫描时钟10生成8个扫描输出120,并且在扫描时钟10结束时存储在输出转换器118中的剩余伪扫描输出的数量为0(8-8=0),如行4(扫描时钟10下方)所示。行5示出了使能信号130,其由输出转换器118从监视器122接收。使能信号130被配置为当存储在输出转换器118中的伪扫描输出116的数量在扫描时钟开始时小于Q时禁用在输出转换器118中伪扫描输出的存储。使能信号130类似于内部时钟128。当监视器122中断内部时钟128时,到输出转换器118的使能信号130也被禁用。

图3(a)和图3(b)示出了一种用于测试集成电路(IC)的电路中的部分数据打包。例如,在图1中的电路100的帮助下示出了部分数据打包,当N等于8,并且M等于9时。图3(a)是示出扫描时钟308(扫描时钟1至扫描时钟11)内在输入转换器104处接收的扫描输入的表。8个扫描输入在列302中示出为S0到S7。列304示出在扫描时钟1接收的扫描输入的值。类似地,列306表示在扫描时钟2接收的扫描输入的值。图3(b)是示出响应于图3(a)的在扫描时钟308(扫描时钟1到扫描时钟11)内接收的扫描输入而由输入转换器104生成的伪扫描输入的表。列312将9个伪扫描输入表示为PS0到PS8。如列314中所示,在扫描时钟1不生成伪扫描输入。因为输入转换器104在扫描时钟1接收8个扫描输入并且8小于M(=9),所以输入转换器104在扫描时钟1中不生成伪扫描输入。在扫描时钟2,输入转换器104生成列316中所示的9个伪扫描输入。在扫描时钟2生成的9个伪扫描输入包括:(a)输入转换器104在扫描时钟1接收的8个扫描输入;以及(b)在输入转换器104在扫描时钟2接收的1个扫描输入。类似地,在扫描时钟3(在列318中示出)中生成的9个伪扫描输入包括:(a)输入转换器104在扫描时钟2接收的7个扫描输入;以及(b)在扫描时钟3接收的2个扫描输入。该过程称为部分数据打包,因为在扫描时钟2接收的扫描输入的一部分作为扫描时钟2的伪扫描输入的部分被发送。为了描述的简单,扫描输入和伪扫描输入的值在图3(a)和图3(b)中分别相同。然而,在一个实施例中,输入转换器104处理扫描输入并生成不同值的伪扫描输入。在扫描时钟8(在列320中示出)生成的9个伪扫描输入包括:(a)输入转换器104在扫描时钟7接收的2个扫描输入;以及(b)在扫描时钟8接收的7个扫描输入。此外,在扫描时钟9(在列322中示出)生成的9个伪扫描输入包括:(a)输入转换器104在扫描时钟8接收的1个扫描输入;以及(b)在扫描时钟9接收的8个扫描输入。在扫描时钟10,输入转换器104接收另一组8个扫描输入,其被存储在输入转换器104中(列309)。然而,在扫描时钟10时8个扫描输入小于M(=9),因此输入转换器104在扫描时钟10中不生成伪扫描输入(在列324中示出)。图3(a)和图3(b)的扫描输入和伪扫描输入的值是示例性目的。

图4是一种用于测试集成电路(IC)的电路的时序图。例如,当N等于8、M等于9、P等于9且Q等于8时,在图1中的电路100的帮助下示出了该时序图。时序图示出在每个扫描时钟126接收的扫描输入102。在图4中表示的每个框,诸如框102a和102b,表示多个扫描输入。每个框,诸如框102a和102b,是表示多个扫描输入的一组位。当N等于8时,每个框表示8个扫描输入。因此,在每个扫描时钟126接收8个扫描输入。在第一扫描时钟,不生成伪扫描输入106,因为存储在输入转换器104中的扫描输入的数量小于9。在第二扫描时钟,存储在输入转换器104中的扫描输入的数量大于9,使得在第二扫描时钟生成9个伪扫描输入106。当从输入转换器104接收到9个伪扫描输入106时,内部时钟128被使能。监视器122继续向扫描压缩架构110提供内部时钟128,只要在扫描时钟开始时存储在输入转换器104中的扫描输入的数量大于M。当存储在输入转换器104中的扫描输入的数量小于M时,监视器122中断到扫描压缩架构110的内部时钟128,如图4所示在扫描时钟10处被表示为XXX。在扫描时钟10,输入转换器104接收另一组8个扫描输入,其被存储在输入转换器104中。因为8小于M(M=9),所以输入转换器104在第十扫描时钟(扫描时钟10)不生成M个伪扫描输入106。因此,监视器122在扫描时钟10中断到扫描压缩架构110的内部时钟128。图4中表示的扫描输入102和伪扫描输入106的值是根据一个示例实施例。

当内部时钟128在扫描时钟2被提供给扫描压缩架构110,扫描压缩架构110响应于从输入转换器104接收的9个伪扫描输入106而生成9个伪扫描输出116。当在扫描时钟开始时存储在输出转换器118中的伪扫描输出的数量大于或等于Q时,输出转换器118生成Q个扫描输出120。在扫描时钟2的开始,9个伪扫描输出116被接收并被存储在输出转换器118中。当Q为8并且存储在输出转换器118中的伪扫描输出的数量为9时,输出转换器118生成8个扫描输出120。如上所述,在扫描时钟10不生成伪扫描输入106,因此在扫描时钟10不生成伪扫描输出116,表示为XXX。然而,输出转换器118在所有扫描时钟继续生成扫描输出120。输出转换器118在扫描时钟10时具有存储的8个伪扫描输出,其等于Q,且因此生成8个扫描输出120。图4中表示的扫描输入102、伪扫描输入106、伪扫描输出116和扫描输出120的值是根据一个示例实施例。在至少一个实施例中,扫描输出120将不同于扫描输入102。

图5是一种用于测试集成电路(IC)的电路500的示意图。电路500包括输入转换器504。输入转换器504从测试器(图5中未示出)接收N个扫描输入502,其中N是整数。在实施例中的一个实施例中,输入转换器504从测试器接收多个扫描输入。为了说明的目的,N是8,并且扫描输入502被示为S0到S7。一些测试器的示例可以包括非常低成本的测试器(VLCT)或高端测试器。输入转换器504生成M个伪扫描输入506,其中M是整数。为了说明的目的,M是9,并且伪扫描输入506被示为PS0到PS8。输入转换器504进一步包括逻辑单元505,该逻辑单元505被配置为处理N个扫描输入502的一组扫描输入,并且生成M个伪扫描输入506的一组伪扫描输入506。在一个实施例中,逻辑单元505被配置为处理扫描输入S0至S7并生成伪扫描输入PS0至PS7。输入转换器504包括耦合在一起并被配置为生成伪扫描输入PS8的多个复用器和多个触发器。在一个实施例中,输入转换器504包括7个多路复用器(M1-M7),并且7个多路复用器中的每个多路复用器接收扫描输入S1-S7中的扫描输入作为第一输入。输入转换器504包括串行布置的八个触发器,并且每个触发器耦合到多路复用器的第二输入。每个多路复用器从监视器522接收使能信号530。八个触发器中的第一触发器接收扫描输入S0,并且八个触发器中的最后一个触发器生成伪扫描输入PS8。在另一实施例中,时序装置的组合用于生成一个或更多个伪扫描输入。

扫描压缩架构510耦合到输入转换器504。扫描压缩架构510接收M个伪扫描输入506并响应于M个伪扫描输入506生成P个伪扫描输出516。在一个实施例中,扫描压缩架构510接收9个伪扫描输入506并响应于9个伪扫描输入506而生成9个伪扫描输出516。扫描压缩架构510包括解压缩器508、多个扫描链512和压缩器514。解压缩器508耦合到输入转换器504并接收M个伪扫描输入506。解压缩器508耦合到扫描链512。每个扫描链512包括多个扫描单元,诸如扫描单元511。压缩器514耦合到扫描链512。压缩器514生成P个伪扫描输出516,其中P是整数。输出转换器518耦合到压缩器514。输出转换器518接收P个伪扫描输出516并生成Q个扫描输出520,其中Q是整数。在所示实施例中,P为9,Q为8。因此,输出转换器518接收9个伪扫描输出516并生成8个扫描输出520。在一个实施例中,输出转换器518包括耦合在一起并被配置为生成Q个扫描输出的多个多路复用器和多个触发器。在一个实施例中,输出转换器518包括8个多路复用器,并且8个多路复用器中的每个多路复用器接收9个伪扫描输出的伪扫描输出作为第一输入。输出转换器518包括串行布置的八个触发器,并且每个触发器的输出耦合到多路复用器的第二输入。每个多路复用器从监视器522接收使能信号530。八个触发器的第一触发器接收一个伪扫描输出。在另一实施例中,在输出转换器518中使用顺序装置的组合以生成一个或更多个扫描输出。在一个实施例中:(a)输入转换器504的存储深度是K位,其中K是整数,并且K大于或等于2N;以及(b)输出转换器518的存储深度是L位,其中L是整数,并且L大于或等于2P。

电路500包括监视器522。监视器522从输入转换器504接收状态信号524,并且还接收扫描时钟526。监视器522生成内部时钟528和使能信号530。内部时钟528被提供给扫描压缩架构510。输出转换器518从监视器522接收使能信号530。电路500可以包括一个或更多个附加部件,为了描述的简单起见,这里不讨论这些附加部件。

为了便于理解,当N等于8,M等于9,P等于9,并且Q等于8时,解释图5的操作。输入转换器504接收8个扫描输入502并生成9个伪扫描输入506。扫描压缩架构510接收9个伪扫描输入506并生成9个伪扫描输出516。解压缩器508接收9个伪扫描输入506并响应于9个伪扫描输入506生成多个核心扫描输入。核心扫描输入被提供给扫描链512。每个扫描单元511以内部时钟528的频率移位核心扫描输入中的核心扫描输入。扫描链512响应于由扫描链512接收的核心扫描输入而生成多个核心扫描输出。压缩器514接收核心扫描输出并响应于核心扫描输出而生成9个伪扫描输出516。输出转换器518接收9个伪扫描输出516并生成8个扫描输出520。输入转换器504以第一频率接收8个扫描输入502并以第二频率生成9个伪扫描输入506,并且输出转换器518以第二频率接收9个伪扫描输出516并以第一频率生成8个扫描输出520。第一频率和第二频率的比率等于M和N的比率以及P和Q的比率。监视器522接收扫描时钟526并生成内部时钟528。内部时钟528的频率等于第二频率。扫描链512由内部时钟528以第二频率驱动。

输入转换器504在每个扫描时钟526接收N个扫描输入。输入转换器504被配置为存储8个扫描输入502,并且当在扫描时钟开始时存储在输入转换器504中的扫描输入的数量等于或大于9时生成9个伪扫描输入506。输入转换器504在第一扫描时钟中接收8个扫描输入502。因为8小于M,所以输入转换器504在第一扫描时钟中不生成M个伪扫描输入506。八个触发器的第一触发器接收扫描输入S0,并且其余的扫描输入被提供给七个多路复用器中的每个多路复用器的第一输入。例如,多路复用器M1接收扫描输入S1,并且多路复用器M7接收扫描输入S7。在下一个扫描时钟(其是第二扫描时钟)中,输入转换器504接收另外8个扫描输入502。这些扫描输入作为S0-S7被提供给输入转换器504。逻辑单元505处理这些扫描输入S0-S7并生成八个伪扫描输入PS0-PS7。在一个实施例中,逻辑单元505是缓冲器,因此伪扫描输入的值与扫描输入相同。监视器522向多路复用器提供使能信号,并且在第一扫描时钟中接收的扫描输入(S7)通过触发器移位以生成伪扫描输入PS8。因此,输入转换器504在第二扫描时钟中生成9个伪扫描输入。类似地,在第三扫描时钟,输入转换器504接收另外8个扫描输入。这些扫描输入作为S0-S7被提供给输入转换器504。逻辑单元505处理这些扫描输入(S0-S7)并生成八个伪扫描输入PS0-PS7。监视器522向多路复用器提供使能信号,并且在第一扫描时钟中接收的扫描输入(S6)通过触发器移位以生成伪扫描输入PS8。因此,输入转换器504在第三扫描时钟中生成9个伪扫描输入506。这个过程被称为部分数据打包,并且随后借助于图6(a)和图6(b)在描述中进一步解释。监视器522从输入转换器504接收状态信号524。状态信号524关于在每个扫描时钟开始时多路复用器的输入处存储在输入转换器504中的扫描输入的数量更新监视器522。例如,在上述实施例中,状态信号524将更新监视器522:在第一扫描时钟的开始时,8个扫描输入被存储在输入转换器504中,并且在第二扫描时钟的开始,16个扫描输入被存储在输入转换器504中。监视器522被配置为当在扫描时钟开始时存储在输入转换器504中的扫描输入的数量小于M时,中断到扫描压缩架构510的内部时钟528。因此,当在扫描时钟开始时存储在输入转换器504中的扫描输入的数量小于M时,停止扫描单元中的核心扫描输入的移位。在第九扫描时钟,八个扫描输入和第一扫描时钟中存储的扫描输入(S0)一起形成被提供给扫描压缩架构510的9个伪扫描输入。在第十扫描时钟处,在输入转换器504处接收新的一组8个扫描输入502。因为8小于M,输入转换器504在第十扫描时钟中不生成M个伪扫描输入506。八个触发器中的第一触发器接收扫描输入S0,其余扫描输入被提供给七个多路复用器中的每个多路复用器的第一输入。例如,多路复用器M1接收扫描输入S1,并且多路复用器M7接收扫描输入S7。

输出转换器518在除第一扫描时钟之外的每个扫描时钟526生成8个扫描输出520。输入转换器504在第一扫描时钟中接收8个扫描输入502。因为8小于M,所以输入转换器504在第一扫描时钟中不生成M个伪扫描输入506。这8个扫描输入被存储在输入转换器504中,并且输出转换器518在第一扫描时钟中不接收任何输入。在下一个扫描时钟(其是第二扫描时钟)中,输入转换器504接收另外8个扫描输入502。输入转换器504在第二扫描时钟中生成9个伪扫描输入506。扫描压缩架构510接收9个伪扫描输入506并生成9个伪扫描输出516。输出转换器518接收9个伪扫描输出516。9个伪扫描输出中的一个伪扫描输出被提供给串联布置的八个触发器中的触发器中。该伪扫描输出被存储在以串行方式布置的八个触发器中的第一触发器中。将9个伪扫描输出516的其它8个伪扫描输出提供给8个多路复用器。监视器522向八个多路复用器提供使能信号530,并且多路复用器生成八个扫描输出520。在第三时钟周期中,当在输出转换器518处接收到9个伪扫描输出516时,9个伪扫描输出中的一个伪扫描输出被提供给串行方式布置的8个触发器中的触发器。先前存储的伪扫描输出被移动到正在接收扫描时钟的下一个触发器(其是第二触发器)。将9个伪扫描输出的其它8个伪扫描输出提供给8个多路复用器。监视器522向八个多路复用器提供使能信号530,并且多路复用器生成八个扫描输出520。因此,对于每个扫描时钟,新的伪扫描输出存储在触发器链中,并且先前存储在触发器中的伪扫描输出被移位。因此,在9个扫描时钟之后,8个触发器将被伪扫描输出占用。因为在第十扫描时钟,伪扫描输入506不在输入转换器504处生成,所以八个触发器中的数据可用于八个多路复用器,并且多路复用器生成八个扫描输出520。

图6(a)和图6(b)示出了一种用于测试集成电路(IC)的电路中的部分数据打包。例如,当N等于8,并且M等于9时,在图5中的电路500的帮助下示出了部分数据打包。图6(a)是示出在输入转换器504处在扫描时钟608(扫描时钟1至扫描时钟18)内接收的扫描输入的表。8个扫描输入在列602中示出为S0到S7。列604示出在扫描时钟1接收的扫描输入的值。类似地,列606表示在扫描时钟2接收的扫描输入的值。图6(b)是示出响应于图6(a)的在扫描时钟608(扫描时钟1至扫描时钟18)内接收的扫描输入由输入转换器504生成的伪扫描输入的表。列612将9个伪扫描输入表示为PS0到PS8。如列614所示,在扫描时钟1不生成伪扫描输入。因为输入转换器504在扫描时钟1接收8个扫描输入,并且8小于M(=9),所以输入转换器504在扫描时钟1中不生成伪扫描输入。这些扫描输入存储在图5中讨论的触发器和多路复用器布置中,并且这些扫描输入中的每个利用扫描时钟被移出作为伪扫描输入。在扫描时钟2,输入转换器504生成列616中所示的9个伪扫描输入。在扫描时钟2生成的9个伪扫描输入包括:(a)输入转换器504在扫描时钟2接收的8个扫描输入;和(b)输入转换器504在扫描时钟1接收的1个扫描输入。类似地,在扫描时钟3(在列618中示出)中生成的9个伪扫描输入包括:(a)输入转换器504在扫描时钟2接收的8个扫描输入;和(b)在扫描时钟1接收的1个扫描输入。在9个扫描时钟的跨度上的伪扫描输入PS8表示在扫描时钟1(图示为615)时在输入转换器504处接收的扫描输入。该过程称为部分数据打包,因为在扫描时钟1接收的扫描输入的部分作为伪扫描输入的部分被发送。为了描述的简单,扫描输入和伪扫描输入的值在图6(a)和6(b)中相同。然而,在一个实施例中,输入转换器504处理扫描输入并且生成不同值的伪扫描输入。在扫描时钟8(在列620中示出)中生成的9个伪扫描输入包括:(a)输入转换器504在扫描时钟7接收的8个扫描输入;以及(b)在扫描时钟1接收的1个扫描输入。此外,在扫描时钟9(在列622中示出)中生成的9个伪扫描输入包括:(a)输入转换器504在扫描时钟8接收的8个扫描输入;以及(b)在扫描时钟1接收的1个扫描输入。在扫描时钟10,输入转换器504接收另一组8个扫描输入,其被存储在图5中讨论的触发器和多路复用器布置中的输入转换器504(列609)中。然而,在扫描时钟10,8个扫描输入小于M(=9),因此输入转换器504不在扫描时钟10(在列624中示出)中生成伪扫描输入。

图7是一种用于测试集成电路(IC)的电路的时序图。例如,当N等于8时,M等于9,P等于9,并且Q等于8时,在图5中的电路500的帮助下示出了时序图。该时序图示出了在每个扫描时钟526接收的扫描输入502。图4中表示的每个框,诸如框502a和502b,表示多个扫描输入。诸如框502a和502b的每个框是表示多个扫描输入的一组位。当N等于8时,每个块表示8个扫描输入。因此,在每个扫描时钟526接收8个扫描输入。在第一扫描时钟,不生成伪扫描输入506,因为存储在输入转换器504中的扫描输入的数量小于9。第一扫描时钟接收的这8个扫描输入被存储在图5中讨论的触发器和多路复用器布置中的输入转换器504中。在第二扫描时钟,输入转换器504接收下一组8个扫描输入,并且在扫描时钟2开始时存储在输入转换器504中的扫描输入的数量为16。因此,由输入转换器504生成9个伪扫描输入。当从输入转换器504接收到9个伪扫描输入时,内部时钟528被使能。监视器522继续向扫描压缩架构510提供内部时钟528,只要在扫描时钟开始时存储在输入转换器504中的扫描输入的数量等于或大于M。当存储在输入转换器504中的扫描输入的数量小于M时,监视器522中断到扫描压缩架构510的内部时钟528,如图7中所示,被表示为XXX的扫描时钟10处。在扫描时钟10,输入转换器504接收另一组8个扫描输入,其被存储在输入转换器504中。因为8小于M(M=9),所以输入转换器504在第十扫描时钟中(扫描时钟10)不生成M个伪扫描输入。因此,监视器522在扫描时钟10中断到扫描压缩架构510的内部时钟528。在图4中表示的扫描输入和伪扫描输入的值是根据一个示例实施例。

当内部时钟528在扫描时钟2被提供给扫描压缩架构510,扫描压缩架构510响应于从输入转换器504接收的9个伪扫描输入而生成9个伪扫描输出516。输出转换器518在扫描时钟开始时存储在输出转换器518中的伪扫描输出的数量大于或等于Q时生成Q个扫描输出。在扫描时钟2的开始,9个伪扫描输出516被接收并且存储在输出转换器518中。当Q为8并且存储在输出转换器518中的伪扫描输出的数量为9时,输出转换器518生成8个扫描输出520并存储1个伪扫描输出。如图所示,在第二扫描时钟生成的扫描输出520与在第二扫描时钟接收的扫描输入502相同。类似地,在扫描时钟3开始时,9个伪扫描输出516被接收并存储在输出转换器518中。输出转换器518生成8个扫描输出520并存储1个伪扫描输出。如图所示,在第三扫描时钟生成的扫描输出520与在第三扫描时钟接收的扫描输入502相同。因此,在第三扫描时钟结束时,输出转换器存储2个伪扫描输出。如图5中所讨论的,伪扫描输出存储在以串行方式布置的触发器中。对于每个扫描时钟,新的伪扫描输出存储在触发器链中,并且触发器中的先前存储的伪扫描输出在触发器链中被移位。如上所述,在扫描时钟10不生成伪扫描输入,因此在扫描时钟10不生成伪扫描输出516,被表示为XXX。然而,输出转换器518在扫描时钟10继续生成扫描输出520。存储在触发器链中的伪扫描输出可用于多路复用器,并且多路复用器在扫描时钟10生成八个扫描输出。如图所示,在第十扫描时钟生成的扫描输出520与在第一扫描时钟接收的扫描输入502相同。为了便于理解,扫描输入和扫描输出的值在图7中示出为相同。然而,在一个实施例中,电路500处理扫描输入并生成不同值的扫描输出。

图8示出根据一个实施例的计算装置800。计算装置800是集成电路或者是被并入到服务器群中的集成电路、具有硬盘驱动器的计算装置、视频记录器、蓝牙装置、遥控器、键盘、全球导航卫星系统、移动通信装置(诸如移动电话)、个人数字助理、个人计算机或任何其它类型的电子系统。

在一些实施例中,计算装置800能够是微控制器、微处理器或片上系统(SoC)中的一个,但不限于此。计算装置800包括主装置,诸如主装置802a、802b和802c。例如,主装置能够是处理单元,诸如CPU(中央处理单元)、CISC型(复杂指令集计算机)CPU、RISC型CPU(精简指令集计算机)或数字信号处理器(DSP)。转换器804耦合到主装置中的至少一个主装置。从装置812耦合到转换器804。在一个实施例中,多个从装置耦合到转换器804。例如,从装置812能够是存储器、预处理器、无源存储装置或逻辑单元。转换器804通过数据路径806双向耦合到从装置812。转换器804还向从装置812发送写使能信号808和读使能信号810。在操作上,转换器804类似于图1的输入转换器104或图5的输入转换器504。在一个实施例中,转换器804在操作上类似于输出转换器118或输出转换器518。

在图8的计算装置800的操作中,主装置在每个时钟周期以N位操作。例如,主装置802a在每个时钟周期以24位操作。因此,主装置802a以24位/时钟的速率读取数据,并且数据由主装置802a以24位/时钟的速率写入。从装置812在每个时钟周期以M位操作。写入操作被定义为主装置802a在从装置812中写入数据,并且读取操作被定义为主装置802a从从装置812读取数据。在写入操作期间,转换器804以每时钟周期N位的速率从主装置802a接收数据。然而,从装置812在每个时钟周期以M位操作。因此,转换器804临时存储从主装置802a接收的数据,并且当转换器804中存储的位数等于或大于M时,通过数据路径806向从装置812提供M位。当存储在转换器804中的位的数量等于或大于M时,转换器804在每个时钟周期还将写使能信号808发送到从装置812。写使能信号808向从装置812指示数据路径806是有效数据。为了便于理解,现在借助于主装置802a以每个时钟周期24位操作并且从装置812每时钟周期以32位操作的示例来解释写入操作。转换器804以每个时钟周期24位的速率从主装置802a接收数据。因为从装置812在每个时钟周期以32位操作,所以来自主装置802a的数据不能被直接写入从装置812。因此,转换器804临时存储从主装置802a接收的数据,并且当存储在转换器804中的位的数量等于或大于32时通过数据路径806提供32位给从装置812。在第一时钟周期中,转换器804将接收24位的数据。另外,因为它小于32,所以转换器804将存储这24位数据。在第二时钟周期中,转换器804将接收另一24位数据。因此,在第二时钟周期的开始,存储在转换器804中的48位数据大于M。因此,在第二时钟周期,转换器804将向从装置812提供32位数据。在第二时钟周期结束时存储在转换器804中的位的总数是16(48-32=16)。在第三时钟周期,转换器804将接收另一24位数据。因此,在第三时钟周期的开始,存储在转换器804中的40(16+24=40)位数据大于M。因此,在第三时钟周期,转换器804将提供32位数据给从装置812。在第三时钟周期结束时存储在转换器804中的位总数是8(40-32=8)。另外,当在时钟周期开始时存储在转换器804中的位数等于或大于M时,转换器804在每个时钟周期向从装置812发送写使能信号808。

这确保了存储器不被浪费。另外,主装置802a和从装置812的操作速度(M和N)的比率不需要为整数。转换器804提供从主装置802a接收的数据的部分打包并且传送到从装置812。类似地,在读取操作期间,转换器支持数据从从装置812到主装置802a的传送。当转换器804正从从装置读取数据时,转换器804在每个时钟周期向从装置812发送读使能信号810。当主装置802a以每个时钟周期24位操作时,从装置812以每个时钟周期32位操作。在读取操作期间,转换器804以每个时钟周期32位的速率从从装置812接收数据。因为主装置802a在每个时钟周期以24位操作,所以来自从装置812的数据不能被直接写入主装置802a。在第一时钟周期中,转换器804将从从装置812接收32位的数据,并且这些位被存储在转换器804中。转换器804将向主装置802a提供24位的数据并存储剩余的8位(32-24=8位)数据。在第二时钟周期中,转换器804将从从装置812接收另一32位数据。因此,第二时钟周期开始时,存储在转换器804中的42位数据大于N。在第二时钟周期,转换器804将向主装置802a提供24位数据。在第二时钟周期结束时存储在转换器804中的位的总数是18(42-24=18)。

术语“电路”是指至少单个部件或多个无源或有源部件,它们连接在一起以提供期望的功能。术语“信号”是指至少一个电流、电压、电荷、数据或其它信号。

所描述的实施例的修改是可能的,并且在本发明所要求保护的范围内的其它实施例是可能的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1