標籤

2016年5月18日 星期三

GBA v.s. PBA


原本是想說這個網誌要試著從頭開始講述APR這份工作, 以及概念.

後來發覺太難了, 打算改成遇到什麼問題值得分享就post上來,

作為自己職涯上的一種紀錄.

這個問題是最近被一個朋友問到的,

"什麼是GBA? 什麼是PBA?"

這是一個STA模型的問題, 千萬不要問我為什麼不是NBA!

APR的STA (靜態時序分析)是一個非常重要的部分,

在講PBA & GBA之前其實應該先提到STA的概念,

下次再補上STA好了. 先來說說這兩個名詞.

GBA : Graph base analysis

PBA : Path base analysis

一般而言, 看STA我們都是看GBA.

PBA將會用在GBA解不掉的path, 看在PBA的mode下是否pass.

從一個圖來看GBA以及PBA的差別


上圖這個例子, 在GBA mode時,

第一個OR gate會因為input B的影響而使用最差的結果去做假設

同理, 藍色的NAND gate也會因為input A使用最差的結果去做假設

這樣下來我們會發現, 其實GBA mode太過於悲觀, 並不符於實際,

而在PBA mode時,

在每一個gate將會採計實際上 input -> output 的 slew.

結果也不會那麼悲觀.

這樣衍伸了一個問題,

為何STA都預設使用GBA mode去看timing path呢?

不是用PBA才較符合現實嗎?

原因則是GBA只要掛上timing arcs,

在runtime上遠低於PBA, 尤其在越大越複雜的design越能看出runtime的差別.

於是在實務上我們偏向使用GBA mode去做timing fix.

在真正修不下來的path才run PBA mode去確認是否可以放掉.


沒有留言:

張貼留言