为什么不推荐正沿+lockup+负沿的scan chain?
文章目錄
- 負沿在前,正沿在后的固定思維是否真的正確?
- 分析 負沿+lockup+負沿
- 為什么不推薦正沿+lockup+負沿的scan chain
- 為什么不采用clock_mix的方式
本篇文章介紹幾個困惑的問題。
1、負沿在前正沿在后的固定思維是否真的正確?
2、在一個Scan CLK Domain下,為什么使用Lockup Latch?
3、為什么不采用mix_clock的方式?
負沿在前,正沿在后的固定思維是否真的正確?
當我們在block層的時候,block A的scan chain的最后一個SDFF是正沿觸發,如果與另一個block的第一顆負沿觸發的SDFF 的SI相連接。block A和block B內部的scan chain共用的同一個scan clock。
這種方式在chip層生成ATPG的時候,會丟失一個數據,但Tetramax能夠識別。
舉例如下圖所示:
因為第一顆的reg的launch與第二顆reg的capture在一個Cycle就可以完成,因為在1T內,兩個寄存器的數據始終綁定。但是TetraMax能夠識別到這種架構,不過對于block B的來講,chain上的第一個SDFF由于始終與Block A的最后一顆SDFF的值綁定,所以,如果Block B的第一顆SDFF的Q控制的logic比較大的話,就會影響到testcov
因此,對于一個clk domain來講負沿在前,正沿在后的testcov會比正沿在前,負沿在后的testcov更高。但并不是說就不能正前負后。
實際case如圖所示:
分析 負沿+lockup+負沿
所以上面的目的是為了解決hold violation的問題,那猜想,如果Scan_DFF1與lockuplatch的時序不滿足,可能就會導致lockup latch不能正確的鎖住值。
為什么不推薦正沿+lockup+負沿的scan chain
tool串chain的原則是負沿在前,正沿在后的原則,如果ECO的時候有將LE在TE的前面,中間插了低電平有效的Lockuplatch, 這種方式雖然把數據糾正過來了,恢復到了相當于負沿+負沿的形式,但此時,我們僅僅是把數據糾正過來了,并沒有考慮如果有hold violation怎么辦?有skew怎么辦?你也許會說再加一個lockup,那如下圖篇末所示,導致數據相當于延遲了一個T,又回到了之間在一個CYCLE就完成了launch和capture的錯誤采值問題。所以,我們是不推薦這種方式的,容易出現hold violation。
為什么不采用clock_mix的方式
如圖所示,tool會默認先串負沿的,對于可能發生timing的1和2處,tool會自動加上lockuplatch。但是這種方式的風險是比較高的,因為從ideal 的情況來看如果4、6沒有插lockuplatch,以為滿足時序,但是實際中的skew與PT仿真的結果還有一定的差距,因此可能4 6之間仍然存在timing問題。為了避免這種跨時鐘域的問題,而且為了便于我們調整scan_waveform,所以不采用clock_mix的形式。
總結
以上是生活随笔為你收集整理的为什么不推荐正沿+lockup+负沿的scan chain?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 验证STIL的pattern的输入输出顺
- 下一篇: 猜想串scan的order