首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

关键字:序列门控   锁存器   哑触发器   RTL  
  如今,所有SOC都使用扫描结构来检测设计中的任何制造缺陷。扫描链专为测试而设计,按串行形式连接芯片的时序元件。由于扫描元件之间缺少组合逻辑,因此这些扫描链容易出现保持故障。除了采用小于90纳米的技术外,OCV(片上工艺偏差)对时序裕量有着巨大的影响。因此,除非设计在多个拐角处实现时序签核(sign-off),否则极有可能出现保持故障,尤其是在扫描链等保持关键路径上。这些保持故障会导致芯片无法在实际的应用中使用(即便芯片能够在功能场景中完全运行也会如此)。如果芯片中出现这些故障,将会降低成品率,影响产量,由此导致设计公司蒙受巨大的经济损失。因此,我们需要设计一个强大的扫描结构来解决上述问题。

  在本文中,我们将首先快速回顾锁存器与触发器的时序基本概念。在下一节中,我们将介绍扫描链以及与其相关的时序闭合问题。然后,我们将解释如何在扫描链中使用锁存器和触发器创建强大的扫描结构,以避免在小于90纳米的技术中出现时序故障。我们将介绍最优秀的解决方案,满足扫描链中所有可能出现的时序元件组合的时序要求。

  建立/保持时序概述

  触发器和锁存器是时序电路的两个基本构件。触发器在所应用的时钟脉冲的活动边沿(正或负)更改其状态。触发器在无活动时钟边沿时只保持其输出。另一方面,锁存器是电平敏感器件,它不断对其输入进行采样,并相应地在某些电平启动信号的活动脉冲电平(正或负)上更改其输出。触发器采用主从配置,有两个锁存器在彼此相对的活动电平上以级联方式工作。一个触发器的面积几乎是锁存器面积的两倍。

  为了实现同步设计,我们需要确保触发器/锁存器的输出不处于亚稳状态。这可以通过在设计中满足建立和保持检查要求来确保。

  在触发器中,1-1是保持检查,而1-3是用于单周期操作的建立检查(图1)。我们需要确保由触发器1发出的数据在下一个活动边沿之前由触发器2捕获。同时,我们也需要确保由触发器1发出的数据在相同的活动边沿上没有被触发器2捕获。


图1


  当第二个触发器被负边沿触发后,建立检查将是1-2(见图2),而保持检查将发生在上一个负边沿(见图2)。这意味着由触发器1发出的数据不应被之前触发器2的下降沿捕获。除非我们拥有超过半个周期的时钟偏移,否则无法以实时的方式将其实现。


图2


  因此,在正-正或负-负触发器对中,建立检查默认为一个周期,保持检查为零周期,而在正-负或负-正触发器对中,建立检查默认为半个周期,而保持检查为反向的半个周期。现在让我们了解一下锁存器中的时序检查概念。

  扫描链

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

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

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

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

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