一种封装体,它指定了在 IJTAG 网络中创建一个段插入位(SIB)的操作,并且(在某些情况下)还指定了将其插入到网络中的操作。
SIB 是 IJTAG 中的一个特殊节点,它包含一个单比特移位寄存器。当该位为0时,SIB 会绕过与其主机端口相连的客户端节点。当该位为1时,SIB 将与其主机端口相连的客户端节点包含在活动扫描路径中。
当 update_en 有效时,在 TCK 的下降沿,移位寄存器的值会被锁存到更新阶段。为了避免在 SIB 和其客户端之间 TCK 不平衡时可能出现的时序竞争,to_select_en 的转换会延迟一个 TCK 周期。
当在 DftSpecification 包装器中将 reuse_modules_when_possible 属性设置为“on”(开启)或被推断为“on”时,SIB 模块名称会被硬编码为 design_name_design_id_tessent_sib_#,其中 # 是从 1 开始递增的整数。该工具会为接口包装器中的每个端口名称组合、属性包装器中的属性以及 capture_value 和 keep_active_during_scan_test 属性的值创建一个唯一的模块。
当在 DftSpecification 包装器中将 reuse_modules_when_possible 属性设置为“off”(关闭)或被推断为“off”时,SIB 模块名称会被硬编码为 design_name_design_id_tessent_sib_id。
正如 create_dft_specification 命令描述所述,需要在扫描过程中保持激活状态的仪器应插入到一个 SIB(系统级测试块)之下,而那些进行扫描测试的仪器(例如内存 BIST 控制器)则应插入到另一个 SIB 下。这个 SIB 通过设置 tessent_dft_function 属性为“scan_tested_instrument_host”来标识,并通常被称为 Sib(sti)。当将此属性定义为 Sib(sti) 时,SIB 将配备如第 4228 页图 14-18 所示的附加逻辑,以便通过扫描测试使扫描测试的 IJTAG 网络得到充分测试。Sib(sti) 还配备有一个用于向 ATPG 和 LogicBIST 提供控制以确定扫描测试的 TCK 域何时接收时钟脉冲的迷你 OCC(迷你 OCC)。请参阅图 14-18 和图 14-20 以获取扫描隔离逻辑和迷你 OCC 的原理图视图。在插入内存 BIST 时,ltest_to_en、ltest_to_mem_bypass_en、ltest_to_mcp_bounding_en 和 ltest_to_se 输出端口用于预先连接其逻辑测试端口,以满足逻辑测试设计规则(DRC)并启用内存旁路和 RAM 顺序测试。如果想要以高速度运行针对内存自测试逻辑的逻辑自测试(LogicBIST),那么“ltest_to_mcp_bounding_en”端口就会很有用。
图 14 - 18 中 Sib(sti) 下方左侧显示的逻辑测试输入信号在插入 Sib(sti) 时会被屏蔽。您需要驱动这些输入信号,并在扫描插入期间获取子链以实现 IJTAG 网络扫描可测试部分的高故障覆盖率。如果您使用 add_dft_signals 命令创建 scan_en、ltest_en、memory_bypass_en、ltest_to_mcp_bounding_en、tck_occ_en 和 shift_capture_clock DFT 信号,那么当这些 DFT 信号可用时,Sib(sti) 上相应的输入端口会自动连接到它们。然后,您可以受益于 set_static_dft_signal_values 和 add_core_instances 命令所提供的所有自动化功能,以设置 Sib(sti) 用于逻辑测试并配置 mini-OCC。
如果 Sib(sti) 的 mini-OCC 使用 capture_en 作为触发信号来生成捕获脉冲,则 ltest_capture_en 端口将保持悬空(未连接)。如果 Sib(sti) 的 mini-OCC 使用 shift_en 作为触发信号来生成捕获脉冲,则不会创建 ltest_capture_en 端口(见图 14-20)。
默认情况下,ltest_static_clock_control_mode 和 ltest_clock_sequence 端口是处于断开状态的,除非使用了 LogicBist 包装器,否则这些端口不会被驱动。在这种情况下,它们将由 LogicBIST 控制器驱动。您还可以通过 clock_sequence 属性指定 ltest_clock_sequence 的连接点。当工具在当前设计级别检测到 lbist_en DFT 信号可用时,它会将 ltest_static_clock_control_mode 连接到该信号。
mini-OCC 能够对 Sib(sti)(例如,MBIST 硬件)所扫描的测试仪器进行测试,前提是该时钟域不同于驱动功能逻辑的时钟域,并且在逻辑测试期间驱动 STI 逻辑的测试时钟通常也是快速捕获模式(在速度测试中)下功能 OCC 的触发时钟。如果您忘记添加 tck_occ_en DFT 信号或者选择在逻辑测试期间不激活 TCK OCC,那么在加载/卸载序列期间,TCK OCC 仍会将移位时钟注入到 TCK 域中,但在捕获序列期间不会对 TCK 域进行脉冲操作。提供给功能域的 IJTAG 值具有已知值,但 TCK 域观察到的任何值都不会被捕获,从而导致“ATPG 未测试”故障。
“process_dft_specification” 命令会为这个小型 OCC 创建一个 TCD,并将该 TCD 写入 TSDB,就像 DftSpecification/OCC 捆绑包所创建的功能时钟 OCC 一样。而对于功能时钟 OCC,您必须在 ATPG 配置中使用“add_core_instances”命令来定义这个小型 OCC。
您必须添加 tck_occ_en DFT 信号,否则无法使用 add_core_instances 命令激活 miniOCC。如果您未激活 miniOCC,那么 miniOCC 在移位周期期间仍会注入适当的移位时钟,但在捕获周期期间则会关闭时钟。从 STI IJTAG 网络节点发出的值在逻辑测试期间是已知值,然而 STI IJTAG 节点无法捕获和观察其输入,这导致 STI IJTAG 网络中出现大量的 AU 故障。
example
以下示例说明了如何使用 SIB 来为复杂网络的多个部分提供离散访问权限。网络顶部有三个 SIB。第一个 SIB(距离扫描输出最近,其标识符值为“logictest_hw”)用于提供访问用于创建扫描模式使能信号的 TDR 的权限。由于 TDR 的标识符值为“scan_modes”,属性 keep_active_during_scan_test 默认为开启状态,这反过来又会传播到网络顶部的三个 SIB 中。
第二个 SIB(标识符值为“scannable_instruments”)用于访问在扫描测试期间不会保持激活的状态下的所有仪器,但会像正常功能逻辑一样进行扫描测试。此 SIB 在扫描测试模式期间可以保持关闭状态,从而使网络的其余部分保持稳定,并提供有效的、未受干扰的 test_setup 值。
第三个 SIB(SIB 的 id 值为“child_cores”)用于访问一系列 SIB。这些串联的 SIB 独立地为每个子核心打开扫描路径。这些 SIB 的存在确保在访问其他核心时,任何故障核心或已关断的核心都能被绕过。