除了Clock之外,對于電路其他輸出輸入端點(diǎn)及其周邊的環(huán)境(Boundary Condition)也要加以描述。在說明Boundary Condition之前,我們得對路徑(Path)有更進(jìn)一步的了解。上文曾提及STA會將電路中所有的Path找出來加以分析,但Path的定義是什么 呢?
Path根據(jù)起點(diǎn)及終點(diǎn)可以分為4種:
- 由Flip-Flop Clock輸入到Flip-Flop資料輸入(圖十七左上)。
- 由主要輸入(Primary Input,簡稱PI)到Flip-Flop資料輸入(圖十七右上)。
- 由Flip-Flop Clock輸入到主要輸出(Primary Output,簡稱PO)(圖十七左下)。
- 由主要輸入到主要輸出(圖十七右下)。
當(dāng)Clock規(guī)格確定了之后,第1種Path的時(shí)序限制(Timing Constraint)就自動(dòng)的給定了。為了給定其他3種Path的時(shí)序限制,我們必須定義Boundary Condition。
一般來說,我們會定義下列的Boundary Condition:
- Driving Cell:定義輸入端點(diǎn)的推動(dòng)能力(圖十八)。
- Input Transition Time:定義輸入端點(diǎn)的轉(zhuǎn)換時(shí)間(圖十八)。
- Output Capacitance Load:定義輸出負(fù)載(圖十八)。
- Input Delay:輸入端點(diǎn)相對于某個(gè)Clock領(lǐng)域的延遲時(shí)間。(圖十九,Delayclk-Q + a)
- Output Delay:自輸出端點(diǎn)往外看相對于某個(gè)Clock領(lǐng)域的延遲時(shí)間。(圖十九,c)
在這些Boundary Condition定義之后,上述4種Path事實(shí)上都可看成是第1種Path(Flip-Flop到Flip-Flop)。也就是說,加上 Boundary Condition后,只要Clock給定,所有Path的Timing Constraint就會自動(dòng)給定。。
由于每個(gè)Path都有Timing Constraint,所以時(shí)序分析都能夠進(jìn)行。但在某些情況下,有些Path的分析可能沒有意義,因此你會想忽略這些Path的分析?;蚴怯行㏄ath 分析的方式不一樣,你會想指定這些Path的分析方式。此時(shí)就要設(shè)定一些Timing Exception,如False Path和Multi-cycle Path等等來處理非一般性的時(shí)序分析。
STA流程及分析方式
STA的流程如圖二十所示,而其分析驗(yàn)證的項(xiàng)目就是我們前文提及之時(shí)序檢查相關(guān)的Timing Arc,如Setup Time、Hold Time等等。以下我們針對Setup Time舉1實(shí)際范例來說明STA的分析方式。
Setup Time
設(shè)計(jì)電路如圖二十一所示,時(shí)序模型(Timing Model)及時(shí)序限制(Timing Constraint)如下:
- 所有邏輯閘在輸出訊號上升時(shí)最長的延遲時(shí)間為3ns,最短為2ns。
- 所有邏輯閘在輸出訊號上升時(shí)最長的延遲時(shí)間為2ns,最短為1ns。
- 所有連線(Net)最長的延遲時(shí)間為2ns,最短為1ns。
- 所有Flip-Flop Clock到Q的延遲時(shí)間為3ns。
- 所有Flip-Flop的Setup Time為1ns(Ts)。
- 所有Flip-Flop的Hold Time為1ns(Th)。
- Clock周期為14ns(Dclkp)。
- Clock source latency為2ns(Dclks)。
- Clock network latency為3ns(Dclkn)。
- Clock uncertainty為1ns(Dclku)。
- B及C的input delay皆為1ns(Da、Db、Dc)。
- Y的output delay為3ns(DY)。
接下來,我們以Step-By-Step的方式說明時(shí)序分析的方式。
1. 首先找出所有Timing Path,我們只列出具代表性的3條Timing Path來加以說明。
2. 假設(shè)輸入A訊號由0變1,計(jì)算第1條Path終點(diǎn)訊號到達(dá)的時(shí)間(Arrival Time簡稱AT)。
3. 假設(shè)輸入A訊號由1變0,計(jì)算第1條Path終點(diǎn)AT。
4. 計(jì)算第1條Path終點(diǎn)的需求時(shí)間(Required Time,簡稱RT)。
圖二十五
5. 假設(shè)輸入A訊號由0變1,計(jì)算第1條Path終點(diǎn)的Slack。Slack等于RT和AT的差值,對于Setup
Time驗(yàn)證來說等于RT - AT,對于Hold Time驗(yàn)證來說等于AT - RT。在此Setup
Time范例中,Slack為正,表示訊號實(shí)際到達(dá)Path終點(diǎn)時(shí)間比必須到達(dá)的時(shí)間還早,因此Timing是滿足的。
6. 假設(shè)輸入A訊號由1變0,計(jì)算第1條Path終點(diǎn)的Slack。Slack為正,因此Timing是滿足的。
綜合5和6,第1條Path的Timing是符合規(guī)格的,其Slack為4ns(取較差狀況)。