第三章:Scan Chain Synthesis

文章讨论了在集成电路测试中如何使用带有扫描选项的自动测试设备(ATEs),强调了扫描链数量的确定和插入,以及在设计中使用TessentScan等工具进行插入。压缩ATPG和非压缩ATPG的差异被指出,特别是对扫描链数量的依赖。此外,还提到了bypasschains的插入、非压缩扫描链的处理以及重新排序扫描链时的注意事项。
摘要由CSDN通过智能技术生成

对于带有扫描选项的ATEs,channels的数量通常是固定的,只有扫描链的数量是可以变化的。在某些情况下,chip package而不是tester限制了channels的数量,因此scan insertion和综合是压缩ATPG流程中重要的一部分。

在生成EDT逻辑之前可以使用Tessent Scan或其他scan insertion产品在设计中插入scan chain电路,也可以在扫描链插入之前插入EDT逻辑。

Scan Chain Insertion

应该插入合适数量的扫描链。

扫描链可以被连接到专用top-level扫描引脚 在设计中执行hier扫描插入,扫描链可以在block instances的内部引脚所定义。在这种情况下,不需要将这些block scan chains连接到专用top level。

插入扫描链存在以下几点限制:

  • 只支持i使用MUX-DFF或LSSD(或两者的混合)扫描单元类型进行扫描。该工具默认创建基于dft的EDT逻辑,但是,可以只是为纯的LSSD设计创建基于所存的逻辑。
  • scan input和output引脚被允许prefixed(加前缀)和bused(?有多个输入或输出的时候使用吗?)但是buded的引脚必须是升序或者降序的。
  • 和非压缩ATPG不同,压缩ATPG不支持“dymmy”扫描链,这是因为EDT逻辑依赖于scan配置,特别是扫描链的数量。非压缩ATPG的性能则与扫描配置无关,当使用dummy扫描链时,可以假设所有的scan cells被配置仅单个扫描链。

Insertion of Bypass Chains in the Netlist

Tessent Shell可为包含两组预定义scan chains的网表生成EDT逻辑,这使能在EDT逻辑生成之前,使用扫描插入工具,可以在网表中同时为bypass mode插入bypass chains,为compression mode插入core scan chains。

可以使用任意扫描插入工具,但是当定义扫描链时必须遵守以下规则:

  • scan chains和bypass chains必须使用相同的I/O引脚。
  • 如果被用来选择bypass或compression mode的控制引脚与edt_bypass引脚共用,当edt_bypass引脚是1的时候,bypass chains必须是有效的,当edt_bypass引脚是0时,scan chains必须是有效的。
  • EDT逻辑的Test procedure file必须设置MUX选择,所以内部被缩短的扫描链可以被追溯。

使用扫描插入工具插入bypass chains保证了bypass mode操作使用的lockup cells和MUX能够被完整的集成到设计网表中,以使能更加有效的设计routing。

Inclusion of Uncompressed Scan Chains

在使用EDT的设计中,允许非压缩扫描链(扫描链不被EDT逻辑所驱动或观察)。可以像其他扫描链一样插入并综合它们,但是不能在创建EDT逻辑的时候定义它们。

必须在test pattern generation期间使用add_scan_chains命令定义非压缩扫描链。

**Determining How Many Scan Chains to Use

通常基于scan channels和compression required来决定扫描链的数量,绕线堵塞对扫描链的数量造成了实际的限制。对于数量非常大的扫描链,可能会遇到类似于RAM的问题,如果数百个扫描链从decompressor开始并在compactor结束,则绕线有可能出现问题。

减少扫描链的其他原因可能是限制不可压缩的patterns的数量,减少pattern count(?),或者两者兼有。

对于可扫描的tester,channels的数量通常是固定的,可改变的是扫描链的数量,因为有效压缩略小于两个数字之间的比值(chain-channel比值),在大多数情况下,使用稍多于chain-channel比值得链是足够的。还取决于具体的设计和使用该工具的经验,例如,如果扫描通道的数量是16,并且需要5倍有效压缩,则可以配置100条链(比链域通道的比较多20个)的设计,这通常会导致4.5倍到6倍的压缩。

Scan Groups

EDT支持只使用一个scan group,扫描链是基于operation进行分组。

Scan Chain Pins

当执行扫描插入时,必须任意扫描链的引脚和功能引脚。可以连接插入的扫描链到在top leve创建的专用引脚。

如果使用外部流程(EDT有外部和内部流程),当工具创建额外的wrapper时,这些专用引脚变成内部节点。如果使用内部流程,当EDT逻辑在设计中被例化和连接时,这些专用引脚会被移除。因此使用专用引脚不会增加芯片封装的引脚的数量。

About Reordered Scan Chains

EDT逻辑(包括bypass电路)依赖于设计的时钟。当必须要阻止clock skew问题时,工具自动地在EDT逻辑中包含lockup cells。如果在创建EDT逻辑之后,重新排序地扫描链不正确,那么自动插入地lockup cells将不再正确地工作了,以下是潜在的问题领域:

  • 在decompressor和scan chains之间(在EDT时钟和扫描时钟之间)。
  • 在扫描链的输出和compactor之间,当有pipeline stages的时候(在扫描时钟和EDT时钟之间)。
  • 在bypass电路中,内部扫描链被连接(不同扫描时钟之间)。

可以避免重新生成EDT逻辑,确保以下为真后,重新排序扫描链:

  • 每条链的第一和最后一个扫描单元要有相同的时钟和phase(同相)。

为了满足该条件,应该在每个链和每个时钟域内重新排序。如果leading edage(LE)触发单元和trailing edage触发单元都存在于同一链中,不要将将这两个域相对移动。重新排序后,链中的第一个和最后一个单元不必与重新排序前占据这些位置的单元完全相同,但在扫描链的开始和结束处,需要具有与IP创建期间相同的时钟域(时钟引脚和时钟相位)。

  • 如果在每个扫描链的末尾使用lockup cells,并且所有扫描单元都是LE触发,则不必再每个扫描链的开头和结尾保留时钟域。

当设计中所有的扫描单元都是LE触发时,每条链末尾的lockup cell可能使能按照想要的方式进行排序。可以移动时钟域,也可以跨链重新排序,但是如果同时LE和TE触发触发器,则必须每个链的开始和结束处维护时钟和边缘。因此,每条链末端的lockup单元的有效性和需求取决于重新排序流程,以及是否同时使用时钟的两端。

对于不需要重新创建EDT逻辑的流程,仍然不许重新生成pattern,还应该执行链测试的串行仿真和一些pattern,以确保没问题。如果在EDT逻辑中包含bypass电路,在还应该创建并串行仿真bypass pattern 链测试和一些pattern。

OCC Sub-Chain Stitching

OCC有一个短链,需要合并到overall扫描链的配置中以使ATPG可以编辑OCC。

对于EDT压缩,(目前看不明白)

ATPG Baseline Generation

在插入扫描链之后,可以生成一个ATPG baseline。

ATPG baseline可以被用来:

  • 在插入EDT逻辑之前,在早期流程中评估最后的test coverage。
  • 获取test pattern在压缩之前的扫描数据量,然后可以比较压缩前后test pattern的扫描数据量,以评估压缩效果。

直接比较pattern counts使没有意义的,因为EDTpatterns远小于ATPGpatterns(所谓的小于是什么意思?)。这是因为EDT中更短的扫描链要求每个pattern更少的移位周期。

  • 为debugging提供了额外的帮助,你可以仿真向量来验证非EDT patterns 仿真正常。
  • 发现其他的问题,例如,在创建EDT逻辑之前,library的错误或者core中的时序问题。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值