加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 十九種fix setup violation的方法
    • 二種fix hold violation的方法
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

探STA | 修timing violation的二十一種方法

09/28 10:10
7.2萬
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
其實修setup violation和hold violation是對立統(tǒng)一的,例如我們通過insert buffer修一個setup violation,那么有時我們也可以通過remove buffer修一個hold violation。

十九種fix setup violation的方法

Setup violation的本質(zhì)是一個時鐘周期內(nèi)上一級寄存器鎖存的數(shù)據(jù)無法正確的傳輸?shù)较乱患壖拇嫫鞑⒈徽_地鎖存,也就是數(shù)據(jù)跑的太慢了。

方法一:減少path上的buffer數(shù)量

這會減少cell delay;cell級數(shù)減少了,這種減小也不是單純地幾何倍數(shù)的減小,減小的程度應該是小于“remove buffer的數(shù)量???原來的cell delay“;因為net wire變長之后,電流從net一端傳播到net另一端電流衰減更加嚴重,對器件的充電速度變慢。

但是會增加net delay,net wire總長度變大,RC參數(shù)變大,RC曲線更加綿長。

方法二:使用一對inverter替換buffer

我們知道buffer的結構基本上等價于兩個inverter,使用一對inverter替換buffer可以較少path上總的delay。

跟只用一個buffer相比,一對反相器會兩倍的減少transition time,所以這會減少RC delay。而一個buffer的cell delay約等于一對inverter的cell delay,但是net delay減小了,所以總的delay減小了。

方法三:swap VT

就是換cell的VT,就是把HVT換成SVT/RVT或者LVT。

相同情況下low VT的cell的柵極閾值電壓更低,所以對于該cell本身其slew更小;相同情況下low VT的cell的柵極導通電流更大,所以其對于后續(xù)的net wire的充電速度更快。

所以low VT的cell相當于從cell delay和net delay兩種角度去減小了總的delay。

不過,Low VT的cell靜態(tài)電流更大,靜態(tài)功耗也更大。

方法四:增加驅(qū)動強度(size-up cell)

一般來說大驅(qū)動的cell具有更高的speed,但是可能某些cell類型,更大的cell可能速度更慢。

不過,這樣也會使得power更高,area更大。

方法五:insert buffer

插buffer會減小transition time,這會減小net delay。如果總的net delay的減小大于cell delay的增加;那么總的delay就會減小。

不過,這也會導致power和area增加。

方法六:insert repeater

這跟insert buffer類似,不過區(qū)別在于場景的不同。

Long net wire會導致大的RC delay,如果insert repeater可以將net wire切分成多段可以減少總的net delay;因為總的net delay的減少大于cell delay的增加,所以這是一種有效的方法。

方法七:調(diào)整cell在版圖location

本質(zhì)也是減少net delay。

方法八:調(diào)整clock skew

就是通過skew調(diào)整向后一級借setup余量。

方法九:給critial path用NDR走線

類似于CTS繞線原理,就是減少net wire的RC和cross-talk。

方法十:手動走線

手動換高層走線或者手動把net wire捋直。

方法十一:修crosstalk

修crosstalk除了加shielding和NDR rule以外,還有一種方法是:違例點周圍的各種走線remove掉或者拉的遠一點。

方法十二:降頻

如果實在修不下去,該降就降吧。

方法十三:換庫

實在不行,也可以選用一些speed更快的庫,或者自己定做一些庫。

也分全局換庫和局部換庫,全局就是整個design都換,局部就是讓critical path用一些特殊的庫。

方法十四:調(diào)整pg plan

通過調(diào)整pg plan,釋放一部分高層繞線資源,也可利于修setup。

方法十五:調(diào)整floorplan

通過調(diào)整floorplan使得具有交互的module的位置更合理。

方法十六:split multi-bit flip-flop

因為MBFF cell內(nèi)部的公共走線和公共的晶體管更多,所以其本身的load更大,那么transition time就更大,delay就更大;所以可以通過拆分MBFF cell來修setup violation。

方法十七:打拍

打拍就是在reg2reg path中間再加一個reg,一個周期搞不定的事情,分成兩個周期來做。

方法十八:使用pba替代gba
GBA 的全稱是(Graph Base Analysis)。STA工具計算 timing 時,默認是采用 GBA 模式來報 timing 的。GBA全稱為graph based analysis,是工具默認的分析方式。它是說工具在從lib中讀取cell的delay的時候,永遠是讀取由最差transition產(chǎn)生的delay。PBA是path based analysis,指的是我要分析哪條timing path,就用這條timing path的transition來查cell的delay。pba算法復雜,分析時間大大提高,但結果更為精確。

方法十九:改RTL

如果RTL綜合出來本身的timing path邏輯級數(shù)太長或者組合邏輯太多,可以考慮改RTL。

二種fix hold violation的方法

方法二十:add delay

可以使用buffer、inverter piars、delay cell來修hold violation。

由于hold violation path的start point和end point可能對應著別的setup violation path(或者setup slack比較緊張),所以add delay時需要格外小心。

另外,一般不要再兩條timing path的commen path add delay。

方法二十一:size-down cell

盡可能去size end-point附近的cell,這樣對別的path影響較小。

另外修crosstalk和手動走線也可修hold。

拋磚引玉

歡迎各位讀者留言補充其他fix?timing的方法。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
CR2032FV-LF 1 The Swatch Group Ltd Primary Battery, Lithium Manganese Dioxide, 3V
暫無數(shù)據(jù) 查看
SSSS811101 1 Alpine Electronics (Asia) Ltd Slide Switch, 2 Positions, SPDT, Horizontal, 0.3A, 5VDC, 2 PCB Hole Cnt, Solder Terminal, Surface Mount-right Angle,
$1.62 查看
JSM1-12V-5 1 Panasonic Electronic Components Power/Signal Relay, SPDT, Momentary, 0.053A (Coil), 12VDC (Coil), 640mW (Coil), 15A (Contact), 16VDC (Contact), DC Input, DC Output, Through Hole-Straight Mount, ROHS COMPLIANT

ECAD模型

下載ECAD模型
$1.56 查看

相關推薦

電子產(chǎn)業(yè)圖譜

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術圈成員。

微信公眾號