用于SoC中嵌入式仪器测试的解决方案:第2部分
在上一部分– 本文的第1部分中,我们讨论了JTAG 1149.1 / 1500标准的缺点,以克服在庞大的ASIC架构新时代中所占的日益增长的测试挑战。我们还简要地强调了IJTAG的重要性。
尽管有几篇文章和体系结构描述了IJTAG的详细信息,但我们试图在本文的第2部分中描述IJTAG网络接口的详细体系结构及其实现。在这一部分中,我们将描述IJTAG网络接口的详细架构及其实现。
IJTAG网络接口
IJTAG的IEEE P1687标准包括以下三个主要组件:
IJTAG网络架构
仪器连接语言– ICL
过程描述语言– PDL
1. IJTAG网络架构
在此组件下,标准提供了有关如何在测试策略中插入IJTAG网络体系结构的信息。它包含以下组件:
分段互连位(SIB):顾名思义,它是一个单位单元,可以根据用户要求和要保留为活动扫描路径一部分的仪器“分段”扫描路径。
它充当门或开关。当开关(SIB位)为OPEN时,它允许将扫描路径添加到IJTAG网络。并且,当开关为CLOSE时,它将从网络中排除特定的扫描路径。
当该位设置为0时,它就像一个旁路寄存器,仅绕过仪器。并且,当它设置为1时,它会将仪器包括在活动扫描路径中。
SIB的结构在下面的图1中描述:
图1 SIB结构
输入端口被重置,选择信号(sel),捕获使能(ce),更新使能(ue),移位使能(se),来自TAP TDI的扫描输入(si),从TDR扫描出(from_so)和tck。
输出端口是扫描输出(so)和TDR选择信号(to_sel)。
SIB为TDR生成本地选择信号“ to_sel”。
此处提到的信号已被赋予一般符号。这些不是普遍的。它因工具而异。结构也可能因工具而异。它具有两种配置,如下所述:
旁路寄存器配置:当sel信号为“ 0”时,SIB被配置为旁路寄存器。它在图1中显示为突出显示的路径。要激活从“ si”到“ so”的路径,因此它将仪器和TDR排除在扫描路径之外。
激活扫描路径配置:当sel为1时,si值在IJTAG时钟的下降沿锁存到移位级,并锁入更新级。如果TCK在SIB和TDR之间倾斜,则添加延迟级以避免任何竞争情况。
测试数据寄存器(TDR):接入网由测试数据寄存器(TDR)组成,与JTAG边界扫描标准中的内容相似但不相同。TDR具有数据输入端口si,to_sel,ue,ce,se,tck和数据输出端口from_so作为其输出端口。
2. ICL-仪器连接语言-
ICL描述了各种片上IJTAG网络架构组件与扫描路径上存在的仪器的连接性。它还描述了芯片上存在的TDR和SIB的硬件。还包括各种扫描路径与TAP控制器的连接。此外,它还描述了网络中存在的所有活动扫描路径。
3. PDL-过程描述语言-
PDL是一种命令语言,可指导仪器如何生成模式。它本身不是模式描述语言。该标准记录了可直接访问嵌入式仪器的测试向量和操作的表示。它创建了可移植的测试向量,可与嵌入式仪器一起使用,而不管其实例化的层次结构如何。这使得测试向量可重复使用,如果必须将仪器嵌入到不同的层次结构中,则不必经历繁琐的模式生成任务。在最高级别的PI和PO上将工具级别的PDL模式转换为刺激的过程称为PDL重新定位[4]。当达到最高ICL级别时,可以将PDL转换为模式格式。
说明性示例-ICL和PDL描述
图2:IJTAG网络接口的TDR实例
IJTAG标准的每个网络组件和每个仪器都有其相应的ICL描述。考虑图2中给出的IP。控制其工具的TDR的ICL描述可以描述如下:
TDR模块{
ScanInPort si;
ScanOutPort这样;{来源R [0];}
ShiftEnPort se;
CaptureEnPort ce;
UpdateEnPort ue;
SelectPort sel;
TCKPort TCK;
ScanRegister R [7:0] {
ScanInSource si
}
}
关键字:ScanInPort,ScanOutPort,ShiftEnPort,CaptureEnPort,UpdateEnPort,SelectPort,TCKPort,ScanRegister
端口名称:si,so,se,ce,ue,sel,TCK,R
模块名称:TDR
它是一个8位TDR。so连接到tdr的位0。因此,ScanOut端口的源定义为R [0]。
TDR的PDL描述可以表示为:
iProcsForModule TDR
iProc write_to_tdr {值} {
iWrite R $ value
iApply
}
iProc run_testX {} {
iCall write_to_tdr 0b10010110
iRunLoop 1000 –tck
iRead R 0xff
iApply
}
该PDL的所有绑定指令均适用于TDR模块及其实例。
关键字“ iProcsforModule”标识此PDL用于ICL仪器“ TDR”。PDL不是像STIL / WGL这样的模式描述语言,它只是通过仅写入/读取“护理位”来告知如何生成模式。这里的“ write_to_tdr”是一个传递了参数“值”的过程。写入寄存器“ R” $ value时,此变量值与“ iRead”一起使用。在这种情况下,“ iRunLoop”将循环计数定义为1000。
作为PDL中的用户,我们要做的就是这些。我们说我们希望在“ R”中有一个特定的值,即工具如何保养零件。我们不写入任何控制信号,所有这些控制信号均由PDL接收。
PDL重新定位
ICL和PDL的组合功能可确保嵌入式仪器(包括其测试向量)的便携性。为了将针对TDR的护理位重新定位到SoC级别,用于SoC的PDL指令将以以下方式包括该护理位:
iProcsforModule SoC1 {
…………..
iWrite SoC1.Block1.TDR.R [7:0] 0b10010110
……
}
作为用户,我们要做的只是在定义最高位。实现部分由IJTAG工具承担。这与边界扫描相反,边界扫描要求在实例化仪器的更高层次上重写模式集。
本文描述的IJTAG标准的三个主要功能和优点可以概括为:
1. 可重新配置的扫描路径– IJTAG的即插即用功能
2. TDR组织–减少访问时间
3. PDL重定目标–促进系统/板级测试
结论
嵌入式仪器导致复杂的SoC设计。IJTAG提供了一种有效的DFT技术对其进行测试。正如本文所讨论的那样,IJTAG网络体系结构,ICL和PDL Retarget的完美融合管理了即插即用,仪器和测试移植到IEEE P1686标准的强大功能。此外,主动扫描路径管理减少了测试访问时间。