Memory Repair (四)

BISR Chain Test and Diagnosis

        Tessent Shell MemoryBIST中默认的BISR实现仅测试修复存储器所需的连接(在post-repair期间)。以下章节描述如何对BISR链执行完整测试,包括与BIRA寄存器之间的连接。

        在高可靠性系统中,您可能需要在制造测试期间对所有连接进行结构性测试,以最大化在后续现场执行增量修复的概率。此外,BISR链测试还可用于调试BISR与BIRA寄存器之间的数据连接问题,以及与控制信号(如shift enable、reset、clock和chain selection)相关的连接问题。

        下图中的红点和红线突出显示了BISR链测试针对的主要故障,而BIRA寄存器的其余故障则通过ATPG扫描测试覆盖。除直接位于移位数据路径上的故障外,其余故障的位置均可轻松识别。

                                        

Enabling BISR Chain Tests

        在创建 PatternsSpecification 时,若 include_repair_chain_test 属性的默认值设为 on,系统将自动生成 BISR chain tests。该属性可针对 manufacturing patterns 或 signoff patterns 单独设置,如下所示:

        simulate_instruments_in_lower_physical_instances 属性默认设置为 off,以减少完成 signoff simulations 所需的时间。在此配置下,仅 BISR registers 被包含在底层物理模块的简化模型中。由于这些模块中缺少 BIRA registers,部分 BISR chain tests 期间这些 BISR registers 会捕获未知值,但这些未知值会被自动屏蔽。因此,BIRA 与 BISR registers 之间的连接仍可在 signoff 阶段通过层次化方式高效验证。

        Manufacturing patterns 会应用于完整的设计层级结构,并对所有 BISR/BIRA 连接进行全面测试。

BISR Chain Test Description

        如前一节所述,启用 BISR chain tests 后,当执行 create_patterns_specification 时,会在 PatternsSpecification 中创建一个新的 Patterns(BiraBisrChainTest) 封装模块。后续章节将详细说明该新 pattern 所实现的算法。

        算法第一部分描述的内容适用于所有存储器,而第二部分仅适用于具有 serial repair interface 的存储器,或属于 shared bus 的存储器。

BISR Chain Common Test Algorithm

        以下是适用于所有存储器的 BISR chain test Patterns 封装模块所实现的算法步骤概述。这些步骤可完整测试 BISR shift pathreset 和 shift enable 输入信号,以及 BIRA registers 之间的双向连接。测试内容包括 stuck-at 0/1 故障检测,并通过 checkerboard test pattern 检测与相邻线路的短路问题。

        下方列出的每个算法步骤均对应图5-50中的 TestStep 封装模块(该图展示了实现 BISR chain test 的 Patterns 封装模块的前三个 TestSteps):

  1. 清除 BISR chains

  2. 扫描输出全0并扫描输入 checkerboard pattern

  3. 执行 BISR to BIRA 数据传输

  4. 再次清除 BISR chains

  5. 扫描输出全0并扫描输入 inverse checkerboard pattern

  6. 执行 BIRA to BISR 数据传输

  7. 扫描输出 checkerboard pattern 并扫描输入 inverse checkerboard pattern

  8. 使用反向数据重复步骤3至7

        除步骤3(Tsb_BisrToBira_chckb)外,所有步骤均在 BISR chains 上执行操作(通过 MemoryBisr 封装模块的存在可确认这一点)。

        步骤3需要运行包含BIRA寄存器BIST控制器,以执行BISR到BIRA的数据传输。在本示例的PatternsSpecification中,顶层设计有一个控制器,而底层模块中有两个控制器。由于使用了底层模块的完整模型,步骤3中需指定所有控制器。若采用默认的底层模块简化模型,则仅需指定顶层控制器。此时,由于底层模块输出值未知,算法特定部分的扫描输出值会被自动屏蔽。

        为便于BISR到BIRA的传输,硬件提供了一项专用功能:通过在PatternsSpecificationAdvancedOptions封装模块中设置apply_algorithm : null属性,即可触发传输。控制器执行传输后会直接进入Done状态,而无需运行任何存储器测试算法。此操作在hw_default运行模式下执行,仅消耗少量测试周期,因此速度极快。传输可通过功能时钟或TCK实现(前提是功能时钟树支持TCK注入机制)。

Serial Repair and Shared Bus Algorithm Additions

        具有串行修复接口(serial repair interfaces)的存储器和共享总线(shared bus)实现中的存储器需要额外步骤来测试多路复用器的选择输入(该多路复用器用于选择内部与外部BISR寄存器),以及内部BISR寄存器每个位的复位输入。关于串行修复接口存储器的多路复用器实现,详见“内置自修复(BISR)”章节并参考图5-2;而共享总线存储器的多路复用器实现则在“存储器集群模块的BIRA与BISR生成”章节中说明并展示于图6-16。以下补充算法步骤是对“BISR链通用测试算法”中所述基础步骤的扩展:

9)清除BISR链

10)从内部BISR寄存器扫描输出0并扫描输入1

11)从内部BISR寄存器扫描输出1并扫描输入1

12)执行BISR到BIRA的传输

13)复位所有BISR寄存器

14)执行BIRA到BISR的传输

15)从内部BISR寄存器扫描输出0。

        这些步骤与通用算法中的操作类似,不同之处在于扫描输出(scan-out)操作期间需选择内部BISR寄存器。通过以下方式指定内部BISR寄存器的选择:在步骤10和11的PatternsSpecification中,将BisrChainAccessOptions/select_bisr_registers属性设置为internal;在步骤15中则设置为internal_only。测试设计会向外部和内部BISR寄存器加载不同内容,以验证选择两者的多路复用器是否存在。

        在步骤14中,外部BISR寄存器会捕获对应BIRA寄存器的输出,而内部BISR寄存器根据其具体实现可能保持原值或进行移位。此处假设内部BISR寄存器的所有位均具有复位输入,以确保步骤15的输出可预测。但某些存储器仅对内部BISR寄存器的修复使能位(repair enable bit)提供复位功能,此假设不成立时测试无法执行。

        部分BISR链可能混合了并行/串行修复接口(parallel/serial repair interfaces)的存储器或共享总线(shared bus)中的存储器。具有并行修复接口的存储器,其BISR寄存器行为与外部BISR寄存器一致。步骤10和11可兼容此情况,因为从内部或外部寄存器扫描输出的值相同;但步骤15中这些值会存在差异。为确保仅比较从内部寄存器扫描输出的值,必须将select_bisr_registers属性设为internal_only。该设置会扫描输出与串行或并行存储器修复接口关联的BISR寄存器,但仅比较与串行修复接口关联的BISR寄存器数据

BISR Chain Test Limitations

        以下是已识别的BISR链测试限制:
        • 某些具有串行修复interface的存储器仅对内部BISR寄存器的修复使能位进行复位。这些存储器属于部分复位,因此无法应用“串行修复与共享总线算法补充”章节中描述的额外测试序列。
        • 对于没有BIRA对应结构的自定义及流水线BISR寄存器,需修改“BISR链通用测试算法”章节描述的pattern。您可通过以下方式创建自定义及流水线寄存器:使用create_custom_bisr_register命令、在bisr_segment_order_file中使用pipeline关键字,或通过指定BisrElement/Pipeline(before | after)封装层。pattern的修改包括:在算法第7步中,利用"read_value(range) : 0"属性将这些寄存器的期望值改为0,并在BisrChainAccessOptions/BisrRegisterAccessOptions封装层中进行设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值