small5的个人空间 https://blog.eetop.cn/nick [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

DFT设计之scan chain入门篇

热度 3已有 19506 次阅读| 2016-9-27 21:14 |系统分类:芯片设计

scanchain的基本原理是将设计中所有的触发器连接成一条链,用统一的scan

clk驱动,这样可以使用预先设计好的scan pattern用逐bit移入的方法送入芯片中,然后开启capture使能,这样每个触发器的Q端输出会传入他们所驱动的组合电路,scan chain中的下一级出发器D端会捕获这个组合电路的输出,然后capture失效,捕获到的每一级组合电路输出再被移出scan chain,从而在scan chain输出端得到一组结果向量,这组结果向量与工具预先计算好的预期(当然是与输入scan chain的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说明。



1

点赞

刚表态过的朋友 (1 人)

发表评论 评论 (2 个评论)

回复 litongzhou 2020-6-19 09:50
用什么命令在哪个阶段报出结果看?
回复 23343woaiic 2021-12-14 15:32
前辈  你好,我想请教下:对于一个block,我们如何来确定扫描链的个数?

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 4

    粉丝
  • 0

    好友
  • 7

    获赞
  • 4

    评论
  • 1997

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 22:16 , Processed in 0.013498 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部