新闻中心

EEPW首页>设计应用> 序列门控在扫描位移中实现强大的时序闭合

序列门控在扫描位移中实现强大的时序闭合

作者: 时间:2011-06-16 来源:网络 收藏

扫描链

  扫描链用于在SOC中执行测试。设计中的所有寄存器以串行形式连接,外部芯片提供刺激,然后读出这些链的输出,监测是否有固住/状态转换故障。当今的SOC都非常复杂,并且在单一芯片中具有多个时钟域。虽然在逻辑合成之后扫描会拼接出一个设计,一般还是需要注意将具有相同时钟结构的触发器拼接在同一个扫描链中。但是,由于可用于最高级别的扫描输入/输出端口是有限的,因此在不同时钟域之间混合寄存器是无法避免的。使扫描链具有不平衡的长度也不是最佳解决方案,因为这样会增加总体测试时间。因此,这种设计结构会在之后的设计阶段中导致问题。因为在低频进行,并且触发器对,之间需要的逻辑最小,如果有的话,因此建立闭合将不是问题。但是,因为最小逻辑和触发器对之间出现的偏移,这些路径是关键的保持路径。正如我们在前面所讨论的,因为来自不同域中的触发器在扫描链中被混合,所以在许多情况下发出和捕获触发器之间会出现巨大的偏移。在设计的后期阶段,由于噪声的影响会出现许多保持时间违规,这将导致无论在稳定或闭合设计中都会出现保持缓冲,从而引发设计故障。

  更差的情况可能是,我们的减额裕量可能并不充足,并且我们仅可以从硅片上发现保持故障。如果异常的时钟路径非常巨大,并且硅片上的实际偏差高于预计偏差,则有可能会出现这种情况。当我们进一步使用小于90纳米的CMOS技术时,偏差影响将变得越来越占主导地位,并将导致硅片上出现许多保持偏差。扫描移位路径中的保持故障会导致严重的后果。需要进行多次调试,并且需要花许多时间来检测硅片上的故障链。当我们也具有用于扫描的压缩逻辑时,这种情况会变得更加糟糕。即使检测到了故障链,我们也需要将其阻塞,这将导致减少测试覆盖范围。

  总之,扫描链中的保持故障风险很高,必须实现足够强大的设计才能处理这些不确定因素。

  可以有多种解决方法,例如,对扫描链重新排序,根据寄存器的位置重新布置扫描链。尽管这些技术非常容易获得,设计者也必须对其进行仔细探究,正如我们前面所讨论的,扫描链在两个时钟域之间交叉的情况是不可避免的。

  解决这种问题的一种更为有效的方式是提前采取措施,并在构建扫描链的逻辑合成阶段处理这些问题。来自相同时钟门控逻辑的所有触发器都应拼接在一起,并且在这些触发器束的末端可以插入一个锁定的锁存器,以避免从这个域的最后一个触发器到下一个时钟域的第一个触发器之间出现任何保持故障。

  图3所示的例子将有助于我们理解这一概念。

扫描链例子

  图3

  如果时钟周期为50ns并且偏移为5ns,我们必须在设计后续阶段的触发器3和触发器4之间插入具有相当于5ns以上减额裕量的保持缓冲器。正如前面所讨论的,由于小于90纳米设计中的ocv,我们的标准减额可能因为异常时钟路径超出特定限制而变得并不充足。例如,对于具有10个额外时钟缓冲器的捕获路径来说,每个时钟缓冲器只具有5ps偏差(超出并超过减额值)将导致50ps的偏离。另外,由于OCV的因素。这一偏移可能会超过5ns,该一裕量可能并不充足。

  解决上述问题的解决方案是在触发器3输出中插入锁定的锁存器,同时使锁定的锁存器具有与触发器3相同的延迟。

  正如以上波形中所示(图4),当我们在 触发器3 和触发器4之间插入锁定锁存器时,我们的时序路径将被分为两个阶段。

波形

  图4

  1. 从触发器3到锁定锁存器

  保持检查从1-1开始,它仍然是零周期检查,但是因为没有偏移,因此非常简单易行。默认建立检查从1-2开始。



评论


技术专区

关闭