边界扫描测试原理 4 -- 保持状态
边界扫描测试原理 4 – 保持状态
文章目录
- 边界扫描测试原理 4 -- 保持状态
- 保持状态
- 测试类型和保持状态
- 连接测试
- 互连测试
- 总线线测试
- 带电短路测试
- 禁用测试
- 硅钉测试
- 自定义测试
保持状态
在一些电路拓扑中,可能需要在边界扫描测试期间将一个或多个节点保持在固定状态,以防止下游电路(通常是非边界扫描设备)被激活,从而防止电路损坏。在EXTEST模式下,当包含驱动器的IC启用时,边界扫描保持状态就是在一个节点上的边界扫描驱动器将该板上的节点保持在逻辑1或0的状态。
图1-12展示了一个示例。边界扫描内存控制器IC连接到另一个边界扫描IC和非边界扫描的RAM IC。每个RAM IC都有一个选择引脚,但因为它们的数据线是连接的,所以任意时刻只应选择一个RAM IC。这意味着节点Sel-1和Sel-2不应同时为高。如果在边界扫描测试期间将一个选择引脚控制为0,RAM输出将永远不会发生冲突。

连接到非边界扫描IC的边界扫描IC
测试类型和保持状态
边界扫描测试有七种类型。以下部分解释了在每种测试类型中保持状态如何运作。
- 连接测试
- 互连测试
- 总线线测试
- 带电短路测试
- 禁用测试
- 硅钉测试
- 自定义测试
连接测试

连接测试保持状态
ITL节点块语法示例如1-1所示:
示例 1-1
连接测试保持状态语法
nodenode "A" test "U2.1"node "B" test "U2.2"node "C" test "U2.3"node "D" test "U2.4"node "E" test "U2.5"node "F" test "U2.6"end nodes
连接测试保持低电平
如有需要,可以将节点X控制为低电平,如图1-14所示。

节点X保持低电平的连接测试
ITL节点块语法将修改如示例1-2所示:
示例 1-2
节点X保持低电平的连接测试
nodesnode "A" test "U2.1"node "B" test "U2.2"node "C" test "U2.3"node "D" test "U2.4"node "E" test "U2.5"node "F" test "U2.6"silicon node "X" hold low "3.12" ! Not on the DUT
end nodes
如果节点X与U1中的驱动器(处于BYPASS模式)有连接(在ITL中未注明),那么在测试执行时可能会出现驱动器争用问题。如果节点X与非边界扫描设备驱动器有连接,则必须禁用它。为防止此类问题,重要的是要检查要保持的节点的拓扑。
连接测试保持高电平

节点F保持高电平的连接测试
ITL节点块语法将修改如示例1-3所示:
示例 1-3
节点F保持高电平的连接测试
nodesnode "A" test "U2.1"node "B" test "U2.2"node "C" test "U2.3"node "D" test "U2.4"node "E" test "U2.5"silicon node "F" hold high "U2.6" ! 设备上的节点silicon node "X" hold low "U3.12" ! 非设备上的节点
end nodes
该示例展示了DUT上的保持节点(F)。该节点将保持高电平,而不是在两种状态下进行测试。节点F和其他节点之间可能存在交互。例如,使F启用所需的控制单元可能也会启用节点E。如果E是仅输出,则没有目的冲突。如果节点E是双向的,则无法关闭驱动器或控制节点。在此条件下,您不能测试节点E的输入能力;只能测试其输出能力。这对于E上的焊接断路是一个足够的检查,但您失去了检查接收器是否正常工作的能力。
互连测试
互连测试用于检测边界扫描节点和引脚上的短路和断路。
图1-16显示节点A到F具有足够的边界扫描资源;它们可以被测试。节点G缺少接收器,无法进行测试。

互连测试保持状态
ITL节点块语法如示例1-4所示:
示例 1-4
互连测试保持状态语法
nodessilicon node "A" hold high "U1.4", "U2.1"silicon node "B" test "U1.4", "U2.2"silicon node "C" test "U1.5", "U2.3"silicon node "D" test "U2.4", "U3.1"silicon node "E" test "U2.5", "U3.2"silicon node "F" test "U2.6," "U3.3"
end nodes
互连测试将节点G保持
如有需要,可以将节点G控制为保持状态。将示例1-5中的语句添加到上述ITL代码中。
示例 1-5
硅节点G保持低
silicon node "G" hold low "U3.6"
互连测试保持高电平
如果有必要将节点A保持高电平,请按示例1-6所示修改ITL代码。
在此示例中,A将不再在两种状态下进行测试,但接收引脚U2.1将被监控其保持状态。
示例 1-6
节点A保持高电平的互连测试
nodessilicon node "A" hold high "U1.4", "U2.1"silicon node "B" test "U1.5", "U2.2"silicon node "C" test "U1.6", "U2.3"silicon node "D" test "U2.4", "U3.1"silicon node "E" test "U2.5", "U3.2"silicon node "F" test "U2.6", "U3.3"
end nodes
总线线测试
在图1-17中,总线线测试指定并测试三个节点D、E和F。节点G无法测试,但可以被保持。
ITL节点块语法如示例1-7所示:

总线线保持状态
示例 1-7
总线线保持状态语法
nodessilicon node "D" hold high "U1.4", "3.4", "U2.1", "U4.1"silicon node "E" hold high "U1.5", "3.5", "U2.2", "U4.2"silicon node "F" hold high "U1.6", "3.6", "U2.3", "U4.3"silicon node "F" hold low "3.6" ! G保持低,不参与测试
end nodes
在需要保持被测试的总线线节点的情况下,可能会有两种结果,这取决于IC内部的控制单元结构(如图1-18所示)。

与内部控制单元格式交互的总线线拓扑
在图1-18中,U1为每个驱动器配备了一个专用控制单元。当节点D保持高电平时,MSPD会为节点D(U3)上的驱动器找到一个专用控制单元。仅节点D上的引脚覆盖受到影响。
在示例1-8中,如果节点E保持高(或低)电平,并且节点E驱动器的控制单元被用于控制节点F的驱动器,则无法完全测试U3。
示例 1-8
节点E保持高电平的总线线语法
nodessilicon node "D" test "U1.4", "U3.4", "U2.1", "U4.1" ! D可测试silicon node "E" hold high "U1.5", "U3.5", "U2.2", "U4.2" ! 保持节点silicon node "F" test "U1.6", "U3.6", "U2.3", "U4.3" ! 也不可测试
end nodes
带电短路测试
带电短路测试由硅节点语句和节点语句组合而成。硅节点语句是指未钉住的边界扫描节点。节点语句指的是没有边界扫描支持的已钉住节点。紧随硅节点语句的所有节点语句都标识与硅节点相邻的节点。
ITL节点块语法示例如示例1-9所示:
示例 1-9
带电短路测试保持状态语法
nodessilicon node "U1_U3_10" hold high "u1.10", "u2.15", "u3.10", "u4.15"silicon node "U1_U3_9" hold low "u1.9", "u2.16", "u3.9", "u4.16"silicon node "U1_U3_8" test "u1.8", "u2.17", "u3.8", "u4.17"silicon node "U1_2" test "u1.2", "u2.23"node "IN_05" family "CMOS" test "u1.1"node "IN_04" test "u2.24"silicon node "U3_5" test "u3.5" ! NCsilicon node "U3_4" test "u3.4", "u4.21"silicon node "U3_3" test "u3.3", "u4.22"node "IN_27" test "u5.12"silicon node "U3_2" test "u3.2", "u4.23"node "IN_18" test "u3.1"node "IN_17" test "u4.24"node "IN_25" test "u5.9"
end nodes
单个节点可以在代码中用一行或多行描述。如果要将硅节点语句转换为保持语句,确保该节点的所有语句都已转换。
禁用测试
禁用测试用于禁用链中的所有驱动器。
启用驱动器以保持状态可能还会启用与保持节点驱动器共享控制单元的其他驱动器。
禁用测试是一种独立的测试类型。在链描述中,ITL还可以为单个设备指定一个禁用标志(使用disable关键字)。这个disable关键字具有严格的解释性,并且会覆盖任何在该设备中使用驱动器以保持节点的尝试。如果一个保持被覆盖,MSPD会显示类似于以下的消息:
设备U47将被禁用,并且还有一个保持引脚,保持操作被忽略。
硅钉测试
硅钉测试可以支持保持语句。但硅钉测试不会自动生成保持语句;您必须手动输入保持语句,并将其从PCF顺序和向量中移除。
在图1-19中,设备U4未使用,因此处于旁路模式。这里有两种选择:一个由测试未用设备控制的保持节点,或者一个由测试中使用的设备控制的保持节点。

硅钉保持状态
示例 1-10
硅钉测试保持状态语法
silicon node "A" test "U2.1", "U1.4"silicon node "B" test "U2.2", "U1.5"node "C" test "U2.3"silicon node "D" test "U2.4", "U3.1"silicon node "E" test "U2.5", "U3.2"node "F" test "U2.6"inputs "A", "B", "C"outputs "D", "E", "F"... ! 省略了PCF顺序和向量定义
end nodes
节点G保持的硅钉测试
如果需要保持节点G,只需在节点块中添加保持语句(示例1-11)。
示例 1-11
节点G保持高电平的硅钉测试
silicon node "G" hold high "U4.6"
节点G保持高电平且节点A保持低电平的硅钉测试
要让节点G保持高电平而节点A保持低电平,节点块将如示例1-12所示:
示例 1-12
节点G保持高电平且节点A保持低电平的硅钉测试
nodessilicon node "A" hold low "U2.1", "U1.4" ! 不再用于测试silicon node "B" test "U2.2", "U1.5"node "C" test "U2.3"silicon node "D" test "U2.4", "U3.1"silicon node "E" test "U2.5", "U3.2"node "F" test "U2.6"silicon node "G" hold high "U4.6"inputs "B", "C" ! 从I/O列表中删除节点Aoutputs "D", "E", "F"... ! 省略了PCF顺序和向量定义
end nodes
如果节点A被声明为输入并在PCF顺序语句中使用,会出现错误信息:
节点A是一个保持节点,不能用于I/O。
通过从输入和PCF顺序规范中删除A可以纠正此错误。
自定义测试
自定义测试ITL文件用于向MSPD描述链结构和禁用方法。节点块会被忽略,因为所有的编程操作都是基于寄存器的且来自SPD。节点块中包含的任何保持语句都将被忽略。
在使用自定义测试时,如果选择节点上有针脚,可以实现保持状态。
