互连中的信号完整性测试如何做?有什么好方法?
互连中的信号完整性损耗对于数千兆赫兹高度复杂的SoC来说是非常关键的问题,因此经常在设计和测试中采用一些特殊的方法来解决这样的问题。本文介绍如何利用片上机制拓展JTAG标准使其包含互连的信号完整性测试,从而利用JTAG边界扫描架构测试高速系统级芯片(SoC)的互连上发生的时延破坏。
互连中的信号完整性损耗对于数千兆赫兹高度复杂的SoC来说是非常关键的问题,因此经常在设计和测试中采用一些特殊的方法来解决这样的问题。我们认为,完整性损耗(本文有时也称为完整性故障)是在电压失真(噪声)和时延破坏(偏移)超过能接受的门限时发生的。这样的门限取决于制造所采用的工艺技术。这种故障情况的发生有着许多不可预料的原因,包括:1. 产生寄生值,例如晶体管尺寸、跨导、门限电压、寄生电阻/电感/电容值等等的工艺变化,以及传输线效应,例如串扰、过冲、反射,电磁干扰等,这些问题都很难分析而且制造过程中会有变化的互连间耦合效应(如耦合电容和互感)。2. SoC中开关同时切换引起的地线反弹,通常会造成噪声余量的变化。
完整性故障模型最被广泛使用的模型是最大入侵方(MA)故障模型,这是许多研究人员用来对长距离互连进行串扰分析和测试的一个简化模型。如图1所示,该模型假设在V(受害方)线上传输的信号会受到在另外一条相邻的A(入侵方)线上的信号/变化的影响。这种耦合影响可以用一般的耦合元件Z来概 括。一般来说这种影响的后果是噪声(引起振铃和功能错误)和时延(引起性能降级)。
本文使用了相同的模型。然而我们需要强调的是,对何种模式会造成最大的完整性损耗仍有争论。显然传统的MA模型只考虑了电容耦(couplingC),所有的入侵方同时作相同的跳变,而受害方或保持不变(针对最大的振铃),或作出相反的跳变(针对最大的时延)。当互感起作用时,一些研究人员利用其它方式(伪随机或恒定)产生测试模式来形成最大的完整性损耗。虽然我们仍使用MA模型,但测试方法并不取决于测试模式。在本文中假设测试模式已被确定,读者可以看到它们是如何通过增强的JTAG架构高效地馈入互连的。
完整性损耗传感器(ILS)单元
由于千兆赫兹芯片中的完整性损耗已受到越来越多人的重视,一些研究人员开发出了系列片上传感器。许多这样的完整性损耗传感器(ILS)的基础都是放大器电路,它能够检查出电压破坏和时延门限。采用D触发器的BIST(内置自检)结构被推荐用于运放传播时延偏差的检测。在测试模式期间,待测试的运放或被放置于电压跟随器配置中以检测斜率偏差,或被置于比较器配置中以检测信号传播时延偏差。
采用IDDT和边界扫描方法是解决总线互连缺陷的一种测试技术示。在本例中一个内置传感器被集成进了系统中。该传感器是一个片上电流镜像,可以将散乱的电荷转换成相关的测试时间。噪声检测器(ND)和偏移检测器(SD)单元都是基于改进的串耦PMOS差分传感放大器,因此价格十分便宜。这些单元紧邻互连的端末,对实际信号和噪声进行取样。每当噪声或偏移高于可接受的限值时,这些单元就产生1到0的跳变,并存储于触发器中,以便于进一步分析。有人提供了一个价格较高但更精确的电路,可以皮秒级测试抖动和偏移,这种被称为EDTC的电路以免打扰方式取样信号,并通过低速串行信息发出测试信息。当成本不成问题时,精确信号监视概念就能被研究人员所接受,甚至会产生片上示波器的想法。
ILS单元
虽然任何ILS传感器都能用于完整性损耗检测,但为了简单、经济和实验的目的,我们还开发了自己的ILS单元。下面将简要介绍这种单元的电路和功能,但这种单元的详细功能不在本文讨论范围。
本例所用的ILS是如图2所示的时延破坏传感器。可接受的时延范围(ADR)被定义为触发时钟沿开始的一段时间,所有输出跳变必须在这段时间内发生。测试时钟用于创建窗口,以确定可接受的偏移范围。如果输入信号a的跳变发生在b为逻辑’0’的时间内,那么信号a就在可接受的时 延范围内。任何在b为逻辑’1’的时间内发生的跳变均经过传输门传递给XNOR门,这是利用动态预充电逻辑实现的。根据合理的时延范围调整反向器1。在b 为1的时间内有信号跳变时输出c就为1,直到b变为0,开始下一个预充电循环周期。输出用来触发一个触发器。图3所示为输入信号a有2个信号跳变的单元 SPICE仿真,采用0.18μm技术实现。第1个信号跳变发生在0.2ns处,当时b为0,输出保持为0。第2个信号跳变发生在3.5ns处,此时b为1,由于超出了可接受的时延周期,输出c保持为1直到b变为0。时延传感器还能检测到由串话引起的跳变错误。脉冲可以被反馈到触发器以存储时延发生事件,供以后进一步阅读/分析。
增强的边界扫描单元
边界扫描是一种被广泛使用的测试技术,它要求在输入或输出引脚和内部内核逻辑之间配置边界扫描单元。边界扫描测试技术能够高效地测试内核逻辑和互连。图4给出了传统带移位和更新节点的标准边界扫描单元(BSC)。Mode_1使单元处于测试模式。在扫描操作中数据通过移位寄存器(Shift-DR状态)进行移位 。通过扫描输入端口(TDI)被扫描进边界扫描单元的测试模式在Update-DR状态(UpdateDR信号)下得到并行使用。连接于内部逻辑和输出引 脚之间的边界扫描单元可以并行捕获电路响应,并通过扫描输出端口(TDO)扫描输出。利用JTAG标准(IEEE 1149.1)可以测试互连的粘连、开路和短路等故障情况,这是通过“EXTEST”指令实现的,在该指令操作下TAP控制器利用BSC从互连中分离出内 核逻辑。但这种测试的目的并不是测试互连的信号完整性。为了测试互连的信号完整性,需要对标准架构作少许的改进。监视BSC(OBSC)建议在互连的接收侧放置一个新的使用ILS单元的BSC,如图5所示,这种新的BSC被称为监视BSC(OBSC)。ILS被加在接收侧单元,它们能够捕获互连末端上带噪声和时延的信号。如果它接收到具有完整性问题(如时延破坏)的信号,它会在输出端输出一个脉冲,并将触发器置为“1”。OBSC有2种工作模式:
1) 完整性模式(SI=1):选择信号F。在每个Shift-DR状态通过扫描链输出被捕获的完整性数据,并用于最终的评估。
2) 正常模式(SI=0):在这种模式中ILS被隔离,每个OBSC被当作标准BSC使用。在扫描输出过程中,我们需要捕获输出F信号并送至FF1。在本例中sel应置为0,因此SI和ShiftDR应分别为1和 0。当扫描输出过程开始后,D1被传送到Q1,并用作下一个单元的TDI。信号完整性信息被捕获进FF1后ILS触发器复位。在将F值送至Q1后,必须格式化扫描链。在本例的Shift-DR状态期间,TDI输入必须连接至FF1。因此必须将sel置为1(SI=’1’,ShiftDR=’1’)从而隔离出ILS路径。如图5所示,SI和ShiftDR需要进行或操作,以选择和发送信号F到D1,并生成扫描输出用的扫描链。图6显示了sel与SI和ShiftDR间的从属关系。如图所示,在Capture-DR状态,信号F被选中,扫描链在 Shift-DR状态得到格式化,并根据被测试的线数扫描输出数据。表1给出了信号sel的真值表。只有一个控制信号(即SI)是由新指令生成的。执行信号完整性信息的监视有三种方法:1)应用每个测试模式后读出;2)应用测试模式子集后读出;3)应用整个测试模式后一次性读出。具体选择哪种方法取决于可接受的时间开销。第1种方法非常耗时,但它可以尽可能详细地显示每个互连的完整性信息。第3种方法速度非常快,但完整性信息比较少,因为只能得到哪个模式或哪个模式子集引起完整性故障的信息,无法获知故障类型。方法2可以帮助用户在测试时间和准确性之间取得平衡。
测试架构
图7给出了针对小型SoC的整体测试架构,其中的JTAG输入(TDI、TCK、TMS、TRST和TDO)使用时没加任何修改。但定义了一条新的指令,主要用于信号完整性测试中读取测试结果。从图7可以看到,只是每个互连的接收端单元改成了OBSC。对于双向互连,OBSC 单元用于Core j和Core1之间的双侧。其它单元都是标准BSC,在信号完整性测试模式期间出现在扫描链中。ILS的作用是独立的,不需要特殊的控制电路来控制这类单元的时序。由F显示的完整性信息被扫描输出,用以确定有问题的互连。
1. EX-SITEST指令
针对新的测试架构,建议在IEEE 1149.1指令集中增加一条新的指令EX-SITEST。这条指令类似于EXTEST指令,但增加了控制信号SI。在Update-IR状态,这条指令被解码并产生(SI_1)。此时输出单元用作标准BSC,而输入单元用作OBSC。信号F在Capture-DR状态时被捕获,并在Shift-DR状态期间以每个时钟周期的速度向外移位输出。本例中TAP控制器状态不会改变,但在指令解码时需要一些变化。存在于内核之间的EX-SITEST指令的数据流如图8所示。
2. 测试过程
首先通过EX-SITEST指令装载TAP控制器IR,然后将所有的测试模式应用到互连上,同时ILS单元捕获互连末端的信号,并检测所有可能的故障。在测试应用过程结束后,必须读取存储于ILS单元FF的结果。监视过程可以利用3种方法之一。比如使用方法3,应用所有测试模式,然后一次性读出完整性信息。
3. 测试数据压缩
在传统的边界扫描架构(BSA)中,测试模式是一个一个扫描进来并应用到互连上。举例来说,采用最大入侵方(MA)故障模型 的n位互连中,12个测试模式被应用到每个受害线,在将测试模式应用到受害线上时要求12n 时钟。在n个互连间翻转受害线,总的时钟数量(测试应用次数)是12n2。当然,MA是一个简化模型。如果采用更复杂的模型或SoC中具有大量互连时,测试模式数量会激增,此时压缩就显得很有必要了。本文介绍一种针对增加边界扫描架构的简单有效的压缩技术。由于空间有限,本文只能作一简要介绍,以此说明增 加型JTAG架构的灵活性。这种压缩技术有二个关键点。首先,我们的方法是一个简捷的无损压缩法,通过确定相邻二个模式间的最大相似性并覆盖它们来构筑压缩位流。其次,由于这种压缩法即无破坏性也不对模式重新排序,因此不需要额外的解压缩硬件。而且仅是利用自动测试设备(ATE)通过控制JTAG TMS控制输入端执行解压缩过程。当测试模式产生后,常会有大量无关紧要的模式出现在测试模式集中。针对信号完整性产生的模式也是这样,特别是在考虑了地区度量标准时(限制开发模式空间)更是如此。在任何情况下我们都假设测试集由相同长度的包含不重要的模式组成。图9表达了我们的基本压缩想法,即充分利用不重要的部分覆盖尽可能多的位来完成2个模式Vi和Vj(长度是1_16)的压缩。
本文小结
在本例中,压缩后的数据(Vi,Vj)扫描输入时只需要21个时钟,而未压缩的数据需要16+16=32个时钟。需要注意的是,为了解压缩指定的数据流,我们需要一个模式一个数字(如本例中的di和dj)才能构造(解压缩)模式。基于边界扫描测试的目的,这些数量就是更新 BSC单元内容前要求的移位(即时钟)数量。我们假设ATE存储着解压缩数据(d值如0≤d≤1),在扫描输入位流时,该数据会在d个时钟后激活TMS (测试模式选择)信号。然后TMS信号促使TAP控制器产生用于信号完整性测试的正确控制指令(如EX-SITEST)。因此在我们的架构中不需要额外的解压缩硬件。