中文 英语

数字测试增大或减小

解决不断增长的芯片尺寸、不断上升的测试成本和更加复杂的问题。

受欢迎程度

大型数字集成电路正变得越来越难以以时间和成本效益的方式进行测试。

特别是AI芯片,由于所需的测试向量量,它具有平铺式架构,这对旧的测试策略造成了压力。在某些情况下,这些芯片是如此之大,他们超过十字线大小,需要缝合在一起。需要新的测试效率来适应这些设备。

“我们有很多客户在做大型芯片,或者对大型芯片感兴趣,”英特尔数字设计组产品营销总监罗伯特·鲁伊斯(Robert Ruiz)说Synopsys对此.“这带来了一些挑战。一个是生成时间[自动测试模式生成]被放大。第二个是测试器上的运行时。”

基于瓦片的芯片也有自己的挑战。他们需要不同的方法来确保只运送好产品。但它们也提供了减少所需测试数据量的机会。新的测试架构允许更有效地创建测试向量,并以更快的速度扫描到芯片中。

“我们的主要挑战之一是帮助我们的客户在不牺牲质量的情况下降低最终测试成本,”软件销售和客户解决方案总监Prasad Bachiraju说上的创新

以现有基础设施为基础
内部芯片测试永远地改变了Jtag (ieee 1149.1)几十年前。INTEST模式最初旨在提供板上组件之间的连接测试,也允许内部芯片测试。许多芯片利用了这一点,创建了多个内部扫描链,可以通过JTAG测试访问端口或TAP进行控制。数据被连续加载到这些扫描链中。然后,这些数据可以被传输到电路中以产生响应,输出被捕获并连续扫描出来。

最初的JTAG函数通过该端口运行测试数据和控制信息。频率是适度的,因为不希望测试电路与应用程序电路竞争路由资源。这限制了测试数据带宽。此外,还有一个恼人的事实,即JTAG一开始并不是真的打算用于内部芯片测试,尽管INTEST除外。

发生了两个变化,增强了内部扫描链测试的功能。首先是IEEE 1687的加入,通常称为内部JTAG或IJTAG。它提供了一组更全面的控制功能,用于设置和管理各种内部块的测试。

IJTAG允许使用一组单独的引脚来更快地加载数据。没有人愿意将引脚专门用于测试,因此通过多路复用功能引脚进行测试,可以选择许多引脚用于加载数据,而不需要占用任何物理空间。但是,必须注意确保这种muxing不会影响任何高速或模拟信号的性能。

接下来是“为测试而设计”(DFT)时代。测试不再是一个次要的过程。测试和基础设施与应用程序逻辑一起被合成、放置和路由。

DFT涉及测试压缩,它通过压缩存储在测试器上的测试输入来工作。当压缩的数据被扫描到设备中时,它会被解压缩并发送到各个扫描链进行执行。然后将输出散列在一起以创建签名,并且可以验证该签名是否正确。此外,可以使用更多的引脚以比JTAG TAP所允许的更快的速度扫描数据。更高的带宽加上减少的数据占用减少了执行测试所需的时间。

另一个新标准,IEEE 1500,被创建来处理在设计中普遍使用的IP。通过对IP的测试包装进行标准化,它允许IP提供商将电路和测试基础设施包括在其可交付成果中,将它们与其余电路分离,使其可移植和可重用。

这创造了一个由三个标准组成的图景——基础JTAG,以及IJTAG和IEEE 1500——以及测试压缩的专有实现。控制路径供所有供应商使用,但数据路径通常只适用于单个供应商。

Tessent的产品营销总监Geir Eide说:“有些人努力将压缩硬件与模式生成分离,使用来自供应商A的压缩硬件和来自供应商B的模式生成Mentor是西门子旗下的企业.“因此,如何描述压缩电路是有标准的,但没有人在使用它。”

新挑战:人工智能和大型soc
正在设计的集成电路规模的发展,以及一些架构的变化,共同给测试系统带来了更大的压力。需要关注的是生成测试模式所需的时间、存储这些模式所需的内存量以及执行测试所需的时间。所有这些都会增加总成本。

“我们肯定看到了检测成本的增加,”健保产品营销总监Alan Liao表示形状因子.“当工艺降到7nm和5nm时,你需要测试的凸起的间距变小了,而你需要测试的功率、特性或功能却在增加,因为人们在每个处理器中装入了更多的晶体管。因为这项技术太新了,你可能需要过度测试它。所以你在第一批晶圆上做了很多测试。这就提高了测试的成本。探测卡的价格也在上涨。”

这些新芯片的巨大尺寸,加上功能尺寸的减小,造成了一个令人生畏的问题。“一些SoC设计有多核,也就是4核、8核,”Ruiz说。“但现在我们看到的是几十到几百人。”这些块中的每一个都是相同的,但是使用传统的方法,每个块都必须加载它的测试模式——即使它与所有其他测试模式相同。这可能导致测试模式占用空间的大小激增。

第二个挑战是这些计算块阵列的排列方式。IEEE 1500包装每个块,因此有一个层次结构,将全芯片放在顶部,每个块与下面的全芯片基础设施挂钩。如果每个块都独立于其他块,功能信号从一个块通过全芯片资源转移到另一个块,就可以工作。

但这些街区现在正在“毗邻”。这意味着它们之间没有芯片级资源。信号从一个块流出,直接进入下一个块,在块之间没有为包装器留下空间。如果使用传统的扫描链进行测试,这些链将不得不遍历整行块。

使用现有的数据扫描方法将意味着在执行测试之前通过所有块扫描相同版本的计算块数据。虽然测试频率有所增加,但它们往往在100 MHz左右达到峰值。与先进芯片上的许多高速I/ o相比,这在加载数据时成为一个瓶颈。

重用测试数据
一种解决方案是添加一个侧端口,以允许从中央扫描总线直接加载和卸载每个块。输入不再需要穿越一个很长的链才能到达合适的位置。这与过去的架构不同,过去的架构都是基于串行扫描的。块现在可以并行加载。


图1:顶部显示扫描链中传统包装的块。中间显示了几个相邻的块,中间没有空间。底部显示了一个带有“侧端口”的总线状结构。资料来源:Bryon Moyer/Semiconductor Engineering

这里仍然存在一些低效率的问题,因为自动测试模式生成(ATPG)算法需要分别为每个相同的块创建和存储测试数据。总线的传统方法是让一个块从侧面加载它的数据,接着是下一个块,以此类推,直到所有块都加载完毕。这增加了测试生成时间和测试执行时间。

拥有多个相同的块有助于生成测试。“因为这些(模块)在逻辑上是相同的,你可以在一个模块上运行ATPG引擎,复制它,然后在子系统和芯片级别上重新使用它,”Ruiz说。

通过向总线添加广播功能,可以改进数据传递。这允许将单个测试数据模式加载到多个块中。


图2:上图显示的是五组相同的数据,扫描完成后,每组数据都将进入各自的核心。底部显示了一组广播到所有块的数据。资料来源:Bryon Moyer/Semiconductor Engineering

尽管可能有许多相同的块,但是并不是所有的块都是相同的。简单地将测试输入广播到所有块将向不打算为其提供数据的块提供不适当的数据。这就是IJTAG帮助的地方:它允许选择块进行输入。该公司数字和签收组的产品工程架构师Satish Ravichandran说:“巴士可以到达所有的街区。节奏.“然后你有一种机制来选择你想要的区块。”

在广播数据之前,IJTAG将确定哪些块应该侦听数据。他们会收到广播数据。其他任何块都会忽略它。Ravishandran补充说:“我们在一个时间段内测试相同的区块,然后再测试不相同的区块。”

即使有大量相同的块,仍然不可能同时加载它们并测试它们。他说:“如果选择了多个区块,就有可能因为电力不足而烧坏芯片。”

因此,可能有必要将一组相同的块分成可以单独测试的组,即使它们使用完全相同的测试数据。Ruiz说:“一些客户可能一次只测试这些内核,而在不同的时间测试其他内核,因为它们在测试过程中有电源问题。”

如果能力允许,允许为一个块生成的模式也加载到另一个不相关的块中可能是有用的。Ravishandran说:“在ATPG中,我们有‘意外测试’的概念。即使测试没有针对该块进行结构化,它们也可能“意外地”提供了保持向量计数下降的覆盖。


图3:顶部显示了向所有块广播的测试数据,但通过IJTAG只选择了前三个。底部显示了相同的数据包然后被发送到剩下的两个核心,以及另一个块。虽然测试数据可能是专门为核心生成的,但其他块也可能“偶然”获得一些额外的覆盖。资料来源:Bryon Moyer/Semiconductor Engineering

解耦测试数据总线和扫描速度
另一个带宽改进可以通过增加测试时钟频率来实现。但这样做可能会使内部块扫描链成为关键计时路径,进一步使计时关闭复杂化。因此,内部测试频率保持在100 MHz左右。

相反,扫描总线的频率与内部测试扫描频率解耦。“充分利用带宽的一个重要因素是网络或结构,它将在块级上连接进入的快速数据和较慢的扫描链,”Ruiz说。这将在每个块的接口上放置一个速率匹配电路,获取高速串行数据,并将其在块内并行化,以便实际测试执行。


图4:频率与测试频率解耦的总线的简化视图。添加的块提供速率匹配以及其他控制(如块选择)。资料来源:Bryon Moyer/Semiconductor Engineering

虽然上面的图提供了一个程式化的、一般化的视图,但是总线可能是连续的,也可能是分段的,这样值就可以沿着总线扫描。例如,Mentor的串行扫描网络(SSN)就是这样构造的。这种安排将导致数据同时被扫描进和扫描出块。


图5:Mentor的testent SSN结构。蓝色总线是数据平面,将数据从一个块输入(在每个块的左边),从一个块输出(在每个块的右边)。绿色扫描总线为IJTAG。资料来源:西门子旗下的Mentor公司

Eide说:“对于每个总线周期,当一个块从总线上获取一个或多个比特时,总是将相同数量的比特放回总线上。”“对于前几个周期(对应于第一次扫描负载),从扫描链中卸载并放回总线上的所有内容都是垃圾,但这与传统扫描中是一样的。”

Tessent控制块的详细信息如下所示。IJTAG控制寄存器在底部;访问测试扫描链的权限位于顶部,以及各种控制信号。公共汽车从左向右开。总线寄存器必须能够缓冲足够的位,以考虑总线时钟和扫描时钟之间的差异。例如,如果扫描时钟是100 MHz,总线时钟是400 MHz,那么总线寄存器必须能够缓冲4位。


图6:控制块示例。云代表压缩和解压。IJTAG在最下面;扫描链在顶部。资料来源:西门子旗下的Mentor公司

输入总线的大小也可以进一步与每个块中的测试数据包的宽度解耦,这对所有块来说不一定是相同的。这意味着总线上每个块的数据定位将随着每个时钟周期旋转。测试模式生成将需要执行必要的簿记,以确保不同的位到预期的位置,因为随着每个时钟周期,分配将会改变。


图7:在Mentor的这个例子中,数据包大小为9位——核心B为4位,核心a为5位。总线只有8位宽,因此数据包从一个周期绕到下一个周期,导致它们随着每个周期旋转。资料来源:西门子旗下的Mentor公司

更快地接收更多的测试数据
即使提高了效率,对测试输入带宽的需求仍在不断增长。“CPU大约需要2.5 Gb/s,”Ruiz说。“较大的gpu的运行速度约为50gb /s。为了维持成本,我们认为需要几百Gb/s的带宽。”

这现在提供了一个机会,使用一些现有的高速端口(并行或串行)作为测试数据的输入引脚,以满足不断增长的带宽需求。“更大的AI和GPU设计需要更多的模式,更多的数据,”Ruiz说。“更多的数据通常意味着更多的测试成本,但这可以通过使用高速功能端口来解决。”

例如,在高速串行端口的情况下,正常功能模式将实现物理层(PHY)和更高的协议层。“利用高速I/O引脚的一种方法是重用整个堆栈,”Eide说。

利用高速引脚的能力已经通过IEEE 1149.10标准化为高速测试访问端口(HSTAP),并且它不使用整个协议。“我们正在使用的标准1149.10只是重用物理层,”Eide说。“这使得它在不同类型的高速I/ o中更加灵活。”

但是接入高速I/O电路必须以不影响功能速度的方式进行。Eide指出:“这里的理念是非侵入性的,不影响高速I/O。


图8:在左边,整个高速I/O堆栈在正常功能和测试之间共享。右侧只有PHY是共享的。资料来源:Bryon Moyer/Semiconductor Engineering

区块内的另一个挑战是压缩逻辑的分布。测试压缩最初涉及整个芯片的一组压缩电路。这就产生了放置和路由的挑战。将压缩移动到每个块中解决了这个问题。即使压缩逻辑在每个块中复制,而不是整个芯片一次,区域影响也得到了改善,因为路由变得更容易了。

但即使在一个块内,路由也可能是一个问题。位置和路线算法希望将测试电路放在中间,将信号扇形传播到块的不同部分。Ravishandran说:“有一种方法可以传播这种减压和压缩逻辑,这样它就有了更多的物理意识。”“这是2D物理压缩。”将电路分布在整个块中——这一步需要对压缩数学进行一些更改——可以缓解拥塞。


图9:左边显示了带有集中压缩电路的块。右边显示压缩分布在整个块中。拥塞大大缓解,不影响电线长度。来源:节奏

这些更改有助于ATPG和执行时间。每个块都可以独立生成其模式。然后将这些模式迁移到芯片级,使用相同的块利用为其生成的单个模式。数据更有效地存储在测试器中,高速功能允许更快地设置测试。

当然,在覆盖率和测试时间之间总是有一个权衡。对于芯片测试仪来说,每一秒都是昂贵的。然而,系统测试往往需要更长的时间,所以在这一点上,一些额外的向量可能不是那么昂贵。“测试工程师说,‘我只有这么多芯片测试预算,’所以他们砍掉了他们的模式,”鲁伊斯说。“也许这些额外的模式可以在系统测试中运行,以帮助提高质量。”

测试还可以在流程的早期使用其他测试进行补充。这里的关键是能够获得结果的连续性,并且能够在多个步骤中利用数据。FormFactor的Liao表示:“我们不仅可以将测试结果与生产相关联,还可以在早期阶段进行关联。“当他们在早期阶段开始描述IC时,我们可以链接到这些测试结果并提供早期反馈,这样客户就不会在推出产品之前经历多次迭代。如果你能通过更少的迭代提前做好产品,这将有助于提高成本。”

诊断的需要
架构的最后一个变化反映了在高级节点上进行的设计越来越敏感。传统上,芯片扫描测试的结果合并为带有通过/失败结果的签名。Ruiz说:“设计使用成熟和成熟的节点,这些节点往往是低成本的部件,使用通过/失败测试。但对于激进节点上的芯片,工程师们正在寻找更多的诊断信息,以便更好地管理产量。“随着节点的出现,人们有兴趣了解为什么某个部件会出现故障。是否有机会调整制造过程或设计?”

对诊断的需求使得对常规设备使用通过/失败的方法成为可能,而离线工具可以处理进一步的诊断。但是,提取更高粒度数据的能力也为自适应测试提供了可能性。例如,一个拥有1000个计算块的设备,其中有一些失败的块可能会作为500个块的部分出售,从而使设备保持在收入流中,而不是报废它。鲁伊斯说:“在制造过程中,如果其中一块有缺陷,那么出于制造目的,那一块可以关闭,芯片制造商可以把它作为性能较低的部件出售。”

因此,除了通过/失败结果之外,新的体系结构还提供这种诊断数据。鲁伊斯说:“这适合于一种架构,在这种架构中,刺激(同时)被驱动到相同的区块,但每个区块都有唯一的输出。”具体提供哪些诊断以及如何提供这些诊断将取决于DFT的品牌以及应用程序本身。


图10:除了传统的基于签名的通过/失败信号外,更细粒度的诊断正在高级节点上提供,用于产量管理和自适应测试。资料来源:Bryon Moyer/Semiconductor Engineering

这样的诊断也开始模糊测试(特别是在已部署的系统中运行测试时)和监控之间的界限。主要的区别是,测试往往发生在芯片从其主要功能暂停的时刻,比如在启动时。监控可以在芯片执行时传递数据。

“在引导期间和系统初始化时,您有机会运行BiST逻辑,”at汽车总经理Gal Carmel说proteanTecs.“但如果你处于操作模式,你就需要一些非侵入性的、高覆盖率的设备,不仅要检查核心逻辑,还要检查互连。”

所有这些增强功能结合在一起,提高了测试芯片的效率(和成本效益),因为它们变得越来越大,越来越复杂,在越来越具有挑战性的硅节点上。增强功能正好赶上了即将发布的巨大芯片浪潮。



2的评论

CJ Clark Intellitech 说:

亲爱的莫耶先生:
我怀着极大的兴趣读了这篇文章。有几项需要注意。INTEST从一开始就注定要失败,但这并没有阻止许多JTAG可访问的BIST和bisr被实现。任何没有学习过IEEE 1149.1-2013的人根据今天的标准可能根本不知道JTAG。该标准是标准的4倍大,包括符合IEEE 1500设计的内部tdr(例如,它可以描述带有HBM内存的Soc),分层寄存器描述,分段寄存器(包括边界寄存器),支持配置奇怪的非lvcmos类型引脚,支持跨IEEE 1801类型域的tdr, PDL -过程描述语言等等。它的价值在于其非常规定性的要求,例如,如果您正在订购IP或SoC,您可以将其指定为IEEE 1149.1-2013兼容,这意味着一些事情。您将知道您从可测试性中得到了什么。没有其他标准解决“I/O”和描述语言的寄存器连接到I/O板或通硅通孔(TSV)。
当我担任主席和编辑时,我喜欢阅读IEEE 1149.10。它旨在解决芯片测试所需的带宽增加,创建“虚拟”扫描输入/输出来解决SI/SO引脚限制,允许分布式扫描链I/O来缓解路由限制(您可以在SoC的不同部分物理上拥有HSTAP和pata),并通过少量引脚实现原位SoC测试。它可以减轻编解码器虚拟化扫描通道的需求,或者根据给定设计的需要进行权衡。正如Eide先生所指出的那样,它重用了任务模式PHY (SERDES、SPI、I2C等),并有自己的协议,这样ATE就可以通过协议进行通信,而不需要知道PCIe、USB或未来的标准。(你的框图在本质上也是正确的,尽管缺少一些细节)。
IEEE 1149.10利用了1149.1-2013的所有分层寄存器描述和PDL语言。它不仅适用于SERDES,其他任务模式I/O,如SPI和I2C也被标准支持用作HSTAP。
这是一个很好的测试设计的开始!!

BillM 说:

布来安,
无论是物理测试器还是它们的局限性(支持的引脚、速度、内存、数字vs模拟等),测试器都将是一个限制因素,并影响芯片的设计。通常“影响”是增加的功率/面积消耗和对性能的潜在影响。几十年前,我们做了一个军用交钥匙设计,要求自我测试在x微秒内完成。毫无疑问,这是一个具有挑战性的设计,但当完成时,这个单元很容易从测试环境一直测试到集成到最终产品中。在某种程度上,更多的芯片将需要迁移到自测,这需要最少的引脚,并且可以全速执行,从而减少与测试相关的所有成本。

看看这种情况何时/是否会发生,以及测试HW和SW (EDA)是如何受到影响的,这将是很有趣的。

留下回复


(注:此名称将公开显示)

Baidu