在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11825|回复: 17

[求助] 请教关于DFT的问题

[复制链接]
发表于 2013-1-29 13:50:38 | 显示全部楼层 |阅读模式
5资产
设计中常常有false path,一般都是setup和hold都不检查;
做ATPG的时候,如果采用stuck at的故障模型,那么不需要读入sdc文件,
是不是可以这样理解:ATPG工具实际上不清楚哪些path被设置成了false path,
也就是说,ATPG没有对false path做特殊处理,而实际上某些path可能是hold violation的。
这样出来的结果在ATE上进行测试为什么又没有问题呢?

最佳答案

查看完整内容

回复 6# xkager 你的问题其实是两个问题,1个是false path和hold violation,另一个是hold violation和ATE test. 先说第一个问题,SDC中false path的设置会导致对应的hold violation无法体现在timing report中,至于这个hold violation是否对测试有影响,可以通过back-annotated simulation来验证。 第二个问题的情况就很多了,你的design margin如果够大,轻微的hold violation未必导致测试fail ...
发表于 2013-1-29 13:50:39 | 显示全部楼层
回复 6# xkager

你的问题其实是两个问题,1个是false path和hold violation,另一个是hold violation和ATE test.
先说第一个问题,SDC中false path的设置会导致对应的hold violation无法体现在timing report中,至于这个hold violation是否对测试有影响,可以通过back-annotated simulation来验证。
第二个问题的情况就很多了,你的design margin如果够大,轻微的hold violation未必导致测试fail
发表于 2013-1-29 14:01:45 | 显示全部楼层
10000多资产只悬赏5??我签个到都有20啊
其次你的问题太大了,可能的情况太多
 楼主| 发表于 2013-1-29 17:04:56 | 显示全部楼层
楼上的兄弟,我关键是想请教问题,大家上论坛都是为了交流,没谁为了虚拟币吧。
可能我没有表达清楚,我的问题只有一句话:
ATPG工具是怎么处理false path的?
发表于 2013-1-29 22:00:35 | 显示全部楼层
stack-at时不是不考虑时序的吗,这时候不会有setup或者hold问题吧,只有transition时才考虑,所以才读sdc啊
发表于 2013-1-29 22:40:48 | 显示全部楼层
回复 3# xkager


    单就你这个问题而言,你前面自己说的很明白了。ATPG没有读入sdc的情况下的确不了解哪里是false path,也没法处理。
 楼主| 发表于 2013-1-30 12:19:52 | 显示全部楼层
谢谢楼上两位的帮助。
我不太理解:“stack-at时不是不考虑时序的吗,这时候不会有setup或者hold问题吧”------------我觉得实际ATE上测试的时候,如果hold有问题,应该会导致capture出错才对吧?
“ATPG没有读入sdc的情况下的确不了解哪里是false path,也没法处理。”--------------但为什么我有很多false path,去掉这些false path会有很多hold violation,但ATE上却没有问题呢?
 楼主| 发表于 2013-1-30 17:04:32 | 显示全部楼层
回复 2# eeares


    多谢指教,觉得你蛮懂的,我再厚脸皮的多请教几个问题:

    1)“SDC中false path的设置会导致对应的hold violation无法体现在timing report中,至于这个hold violation是否对测试有影响,可以通过back-annotated simulation来验证。”----------------这个我刚遇到一个问题,反标后simulation是可以的,但是ATE上不过(不是一个两个不过,是全不过),估计是hold time有问题(PT估计出来是100ps左右),我改了netlist(把有违反hold的FF直接接到前一级的D端),重新ATPG,才过的ATE(当然,这时候simulation也是过的)。---------------所以,我也有点郁闷,不知道为什么hold time有问题,仿真却过了。。。。。。。

   2)“你的design margin如果够大,轻微的hold violation未必导致测试fail” -------------hold都不过了,margin如何够大?

   3)从流程上讲,为了设计更强壮,有没有必要把false path都用multicycle代替??这样前后端工具都会自动检查hold的问题。或者您有什么好招可以使设计更强壮?
发表于 2013-1-30 17:18:19 | 显示全部楼层
回复 8# xkager

1)看了你的描述,我困惑了……你只是通过修改网标重出向量的方式如何能影响ATE测试。你的chip有重新T.O吗?hold 有问题,仿真可以pass这种情况很常见,simulator只是根据simulation model里面的system task和sdf中的delay value来check某个时刻是否有violation,至于这个violation是否会传递,导致simulation fail,就是另外一回事了。
2)举个例子,STA中hold 的uncertainty是100ps,那么所有0<hold margin<100ps的都会报出来有hold violation,但是如果取消了这100ps的uncertainty再报,还有hold吗?就这个意思。
3)multicycle就是multicyle,false就是false,只有清楚的了解design之间的时序关系,才能准确的设置timing constraint。不过的确是有人在吃不准的情况下统一使用multicycle path来取代hold,绝大多数情况下,这种方法是可取的。
 楼主| 发表于 2013-1-31 09:52:15 | 显示全部楼层
回复 9# eeares

1) 没有重新流片。我是这样处理的(也不知道对不对,但从ATE上看,是达到效果的):
always @(posedge clk)  //假设我发现d1/Q到d2/D有hold volation
  begin
    d2 <= d1;
    d1 <= data_in;
end

那么,我在netlist中修改成:
always @(posedge clk)
  begin
    d2 <= data_in;
    d1 <= data_in;
end

再重新ATPG,
由于测试只是测生产故障,自认为这样不会有什么问题。

simulation的问题,我的确没有考虑好。经过你这么一指点,我大概清楚原因了。
我跑PT带了uncertainty,这时候有轻微的hold volation,实际ATE测试的时候,感觉也有hold volation。
但是,simulation里面是没有这个uncertainty的,这时候,hold刚好能过,仿真没有问题。

2)我理解错你的意思了,sorry。我一般都加uncertainty跑STA的,hold违例也是在uncertainty的前提下才出现的。
另外,再想请教uncertainty的问题:
假设我知道外部时钟的jitter是50ps,我uncertainty分别设成100和200,分别后端布线后,分别流片后,真实芯片的uncertainty分别会是多少?

3)多谢,明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

×

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

GMT+8, 2024-11-5 12:43 , Processed in 0.023362 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表