背景介紹
背景:為什么Latency沒(méi)有滿足target insertion delay的要求
這些都是對(duì)Clock latency/insertion delay有要求的情況。同時(shí)上面的推文里面也有分享一些Tree長(zhǎng)度沒(méi)有滿足要求的情況,這里再分享另一個(gè)經(jīng)常會(huì)遇到的原因 - Useful Skew。
在實(shí)際做項(xiàng)目過(guò)程中,有發(fā)現(xiàn)一些Run,工具做出來(lái)的Tree的latency和設(shè)置的target insertion delay以及target skew之間匹配的非常好,但是有些Run卻不行,Latency變長(zhǎng)了,超過(guò)了要求,Debug發(fā)現(xiàn)工具在上面做了Useful Skew動(dòng)到了它們的Tree(比如你可能在上面發(fā)現(xiàn)一些USKC、ESOC等cell)。
這是因?yàn)?,如果在Flow里面打開(kāi)了Useful skew,那么工具在ccopt和optDesign以及signoffOptDesign的時(shí)候是可以通過(guò)調(diào)整所有Sink的Tree來(lái)做Useful Skew來(lái)修Timing的,因此你可能發(fā)現(xiàn)它們的Latency和預(yù)期設(shè)置的target insertion delay以及target skew之間有差異。
03
解決思路
知道了上面的原因,那么問(wèn)題的解決思路自然是關(guān)閉Useful Skew了,可是直接全部關(guān)掉Useful Skew的話顯然會(huì)惡化Timing,這是非常不明智的。解決方案有幾種:
1、針對(duì)不同階段、工具的不同引擎來(lái)控制Useful Skew的使用與否;這種方法不能從根本上解決問(wèn)題,但是可以根據(jù)工具是在什么時(shí)候動(dòng)Tree做了Useful Skew來(lái)有針對(duì)性的關(guān)閉Useful Skew的使用。
2、針對(duì)某些Sink來(lái)關(guān)閉Useful Skew。這個(gè)就非常實(shí)用了,對(duì)于一些對(duì)Latency有要求或者不想讓工具通過(guò)Useful Skew來(lái)修Timing(后邊會(huì)講解)的Path,我們可以針對(duì)它們來(lái)關(guān)閉Useful Skew,這種方法也不會(huì)影響其他Sink上Useful Skew的使用,因此對(duì)Timing沒(méi)有什么大的影響。
可是這種方法也有一個(gè)缺陷,就是目前的Innovus,signoffOptDesign并不支持指定Sink來(lái)關(guān)閉Useful Skew。ccopt和optDesign是支持的(后邊會(huì)講解具體方法)。期待以后signoffOptDesign也可以支持。
04
想針對(duì)Flop關(guān)閉Useful skew的幾種情況
一般情況下,我們對(duì)于Tree的latency可能沒(méi)有特別的要求,因此工具調(diào)整Sink的Tree去修Timing也是允許的??墒悄承┣闆r下,我們對(duì)于某些Sink的latency是有要求的,不允許工具隨便通過(guò)Useful Skew來(lái)改變Tree的latency。
還有一些情況是,某些Sink的Timing在Partition/Block level看是不準(zhǔn)的(比如IO flop,我們一般都會(huì)有過(guò)約束的情況),如果此時(shí)還讓工具通過(guò)Useful Skew來(lái)修Timing的話,那么是很不合時(shí)的。比如Block B的in2reg的Path,上一級(jí)是Block A的reg2out path,其實(shí)它們之間的Timing不是很難meet,因?yàn)橹虚g的組合邏輯比較短。
可是我們一般會(huì)在IO上加過(guò)約束努力讓工具去把組合邏輯做短,這使得Block B里面的in2reg可能也比較差。那么此時(shí)工具很可能會(huì)把FF_2的Tree通過(guò)Useful Skew做長(zhǎng),這就會(huì)帶來(lái)一個(gè)很嚴(yán)重的問(wèn)題,它會(huì)影響B(tài)lock B內(nèi)部的Timing,這是不期望的。比如下面的情況,Block B的FF_2之后的Path timing很難Meet,因?yàn)榻M合邏輯很長(zhǎng)。
審核編輯:劉清
-
DEBUG命令
+關(guān)注
關(guān)注
0文章
4瀏覽量
5225
原文標(biāo)題:Clock insertion delay增大了很多 超過(guò)了要求怎么辦?如何指定reg關(guān)閉useful skew
文章出處:【微信號(hào):集成電路設(shè)計(jì)及EDA教程,微信公眾號(hào):集成電路設(shè)計(jì)及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論