DFT设计之scan chain

can chain的基本原理是将设计中所有的触发器连接成一条链,用统一的scan clk驱动,这样可以使用预先设计好的scan pattern用逐bit移入的方法送入芯片中,然后开启capture使能,这样每个触发器的Q端输出会传入他们所驱动的组合电路,scan chain中的下一级出发器D端会捕获这个组合电路的输出,然后capture失效,捕获到的每一级组合电路输出再被移出scan chain,从而在scan chain输出端得到一组结果向量,这组结果向量与工具预先计算好的预期(当然是与输入scan chain的pattern不同的)相比较,从而可以依据比较结果来判断芯片中是否有制造错误。


这个是scan前和scan后的DFF,其实就是替换成带有scan逻辑的DFF,

那么当scan_en有效时,scan逻辑就会从scan-in穿过DFF到达scan-out,

多个scan DFF链接在一起就成了scan chain,链上有多少个scan DFF表示这条链的长度。

如下图:

完整的 scan chain过程:

1。 对于时序电路 sequential 部分,选择scan mode ,shift in pattern , 然后shift out

对于组合电路combinational 部分,首先选择scan mode , shift in pattern ,直接输入

pi 的值,选择function mode ,经过一段时间以后, PPO PO 都稳定了,先比较PO 的值,

再来一个时钟周期,capture ppo 的值,选择scan mode ,shift out PPO 的值

然后下一条 pattern

这里注意两点:

工具会依据芯片结够生成多种scan patter和输出预期。scan pattern越多,则可以达到的覆盖率就越高。实际中当然是要求尽可能高的scan 覆盖率。

scanchain的设计是为了侦测制造错误,因此它跟功能验证是完全不同的概念。

通常来讲,工具会帮我们做好一切,而且现在都已经有标准的scanable触发器库,我们只需要看最后的report就好。然而还是会出现一些问题,使得scan

coverage达不到要求,这就需要设计者依据report来修改design,以提高scan coverage。

最常见的问题就两种:

某个点不可控

实际设计中,可能会出现某一级组合逻辑的输入端C并不是来自触发器Q端,这样都会造成组合逻辑的输出端不可控,这样就需要手工插入控制点(用触发器和MUX组成的C’点),以提高scan覆盖率。

某个点不可观测

可能某个组合逻辑的输出点O是没有接入到触发器的D端的,这样其输出点就无法被scan chain观测了,那么需要手工插入观测点O’,来提高覆盖率。

注意:

所有手工加入的观测点和控制点对于原本设计功能而言都是无用的,所以必须用MUX来保证其只在scan模式下有效。

加入的观测点可能因为没有实际逻辑作用而在综合时被优化掉,需要在约束上加don’t touch说明。


原文链接:https://blog.csdn.net/m0_49540263/article/details/115351967

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:李沈轩学号:20181214373学院:广研院 【原文链接】可能是DFT最全面的介绍--入门篇 - 知乎 (...
    哦O阅读 12,257评论 0 1
  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 11,829评论 5 24
  • 一、DFT概念:可测试性设计 狭义理解:是指在芯片开发中的前端设计里增加为后期的ATE测试所准备的测试逻辑。 用于...
    打着石膏脚的火星人阅读 18,086评论 0 8
  • 1.file,n.文件;v.保存文件 [faɪl] 2.command,n.命令,指令 [kəˈmænd] 3.u...
    巢峰阅读 2,885评论 0 0
  • 1. file n. 文件;v. 保存文件2. command n. 命令指令3. use v. 使用用途4. p...
    喵呜Yuri阅读 4,110评论 0 4