后端面试--每日一题(029)
在一个设计中有多个时序约束,象function,scan shift, scan capture, scan at-speed, mbist at-speed, 和 jtag SDC,为了减少运行时间,不能把它们都放入MMMC中,你选择哪些放入MMMC的setup中,哪些放入MMMC的hold中?
提示:选择的SDC要尽量的少,并且尽可能多地覆盖其他没有入选的SDC下的时序
难度:4
这个真不知道,没接触过完全不知道那些mode都是什么东东。希望回答的童鞋尽量详细些,在这先谢过啦
在一个设计中有多个时序约束,象function,scan shift, scan capture, scan at-speed, mbist at-speed, 和 jtag SDC,为了减少运行时间,不能把它们都放入MMMC中,你选择哪些放入MMMC的setup中,哪些放入MMMC的hold中?
setup: function
hold:scan shift
其他完事了再分析
真的没人知道如何分析?
这个要从每个SDC的特点着手,个人经验,与设计有关,不敢保证使用与所有设计。
1) scan shift:速度很慢,不用太担心setup,但是hold很重要,一旦hold有问题,所有与scan有关的测试全泡汤
2) scan capture:也是慢速,但是会有很多hold出来,特别是在不同的function时钟之间
3) scan at-speed:高速,解决了它的setup,其他DFT的setup基本上就连带着解决了
4) mbist at-speed:高速,但是涉及的逻辑不多
5) jtag:慢速,很容易与function SDC合并
所以结论是
MMMC setup:function + scan at-speed
MMMC Hold: function + scan shift + scan capture + jtag
不大习惯MCMM的flow,还是喜欢一个sdc,然后一个flow
不过这样好象会比较麻烦一点,
陈总,难倒一片了。 有没有一览众山小的感觉,呵呵
真正的高手不来玩儿而已
我也比较怕MMMC,还是tool做得不够好
你那个头像是小班禅?
不会吧,我感觉是他儿子,你说是小班禅,说明他儿子有佛相
答案太快了吧。留个2-3天。
一般说来,at-speed 肯定setup 。
scan 很慢肯定是 hold 问题。
上次和几个高手聊了下,65/45 nm 问题最大还是 test 时 IRdrop issue.
scan 下大家都在翻转,ir drop 如何科学地解决?
答案太快了吧。留个2-3天。
一般说来,at-speed 肯定setup 。
scan 很慢肯定是 hold 问题。
上次和几个高手聊了下,65/45 nm 问题最大还是 test 时 IRdrop issue.
scan 下大家都在翻转,ir drop 如何科学地解决?
papertiger 发表于 2011-6-15 15:27
[/quote]
芯片比较大的时候,为了防止ir drop在scan模式下太大。我们需要做一个Hier的dft flow.简单来说,就是分block来进行测试。
在同一时刻只会有一个block来做测试。我说的这个block是很大的那种,好比芯片400w门,你大概分为4个block.
每个block都会有自己的压缩解压缩模块。mentor叫edt。然后顶层再有一个edt模块。 这种方法的优点是对ir drop有好处。
缺点是增加测试成本,而且会损失掉一些覆盖率,就看如何取舍了。
scan mode下IR drop大是个普遍存在的问题,本来想作为一个问题问的,你既然提到,就在这里讨论了。
解决方法之一是使用多个scan clock,而且特意不平衡它们之间的insertion delay
这个要从每个SDC的特点着手,个人经验,与设计有关,不敢保证使用与所有设计。
1) scan shift:速度很慢,不用太担心setup,但是hold很重要,一旦hold有问题,所有与scan有关的测试全泡汤
2) scan capture:也是慢速,但是会有很多hold出来,特别是在不同的function时钟之间
3) scan at-speed:高速,解决了它的setup,其他DFT的setup基本上就连带着解决了
4) mbist at-speed:高速,但是涉及的逻辑不多
5) jtag:慢速,很容易与function SDC合并
所以结论是
MMMC setup:function + scan at-speed
MMMC Hold: function + scan shift + scan capture + jtag与所有设计。
...
陈涛 发表于 2011-6-15 10:28
[/quote]
陈老大说的很对。
还有一点我补充一下,上述分类的基于一旦置起scan-mode,并且在快速时钟下,就能进入as-speed模式了。一旦置起scan-mode
scan-enable,就能进入shift下了。所以为了我们的sdc能够尽量少,我们一定要在design的spec开就就要给前端提出这种需求。各个模式的进出要定义干净。
还有一点,如果遇到有同沿去踩,通过clock latency来保证setup和hold的电路的话,那么我们一定要在camx和cmin都要检查setup和hold,因为会有非线性的问题。
我顶上去吧
很有帮助
恩,MCMM的flow好像是比较难run的,而且好像要注意的东西多一些,没run过,只是听说过。
还有哈,那个头像呢,是我堂妹。哈哈
多年以后如果我有了儿子,你还说这句话的话,我一定非常感谢,但是像我刚本科毕业一年的,连个女朋友都木有,哪来的儿子哈。
这只是一般的做法,但事实上这种方法也是有问题,就单个的block而言,其current也是很惊人的。
新的DFT工具可以在全局范围内取舍,调整pattern,实现较低的/散列的翻转。
能否请兄弟推荐一些相关文档看看,看来我得知有点过时了。
不过我还是有点疑问的,如果q-si的测试,不管你如何选pattern,都是基本上在同一时刻反转的吧,这时候反转率应该是100%啊,dft工具怎么考虑这件事情。
一般来说stack at测的时候都是慢freq的,所以相对来说power 应该不会比func的时候大吧?而在at speed的时候,基本测的都是func的逻辑,但是覆盖率就没那么高,貌似是说其power和func的差不多,所以只要func的过了,在at speed的时候,也基本是能过的。但是mbist就不一样,power值会很大的,现在的design memory都不少,所以在测mem的时候,power会非常的大,解决测mem时的IRdrop好像才算是比较难的吧,像陈老大说的,用多个scan的话,岂不是在fix hold的时候,会麻烦很多?而且在做clock tree的时候,有多少个scan clock就至少得调多少个floating value,那对cts就增加好多工作量了。不过陈老大应该还有更好的解释吧,我没做过DFT,对DFT仅限于旁听,希望老大多多指教!
跑MBIST时,可以分成几个group跑,一起跑在memory上一定会有较大的IR-drop
虽然是slow speed的测试,但如果不控制pattern的翻转,那么可能扫入010101010……序列,这就导致这条chain上所有的ff都会翻转,从而导致每扫一拍,这些ff后面的组合逻辑都会跳变,虽然是slow speed,但其瞬时短路功耗将非常大,也就是说,虽然频率低,平均IR降不大,但dynamic的IR降将非常大,甚至比做mbist的时候还要大很多。
DFT工具控制功耗,其实也就是避免产生0101010101……这样的pattern,如果产生1111100000……这样的序列,瞬态短路功耗就会被降低
学习了,多谢!