我們在分析時序的時候經常會提到Setup up time和Hold time。時序報告一般也會分Setup的報告和Hold的報告。
在同步設計中,我們要在時鐘的變化沿(上升沿或下降沿,為了便于描述,后面我們統一稱為上升沿)對信號寄存器采樣。為了保證信號正確的存儲,必須要在時鐘的上升沿到來之前數據的穩定,這個時間我們稱為setup time,信號的建立時間。由于寄存器的物理特性,數據在有效后必須要穩定一段時間才能完成這個存儲過程,這個穩定的時間我們稱為Hold time,信號的保持時間。

由此可見,數據信號在處理和傳輸的時間越短,留給時鐘上升沿的時間越充足,時鐘頻率也就可以運行的更快。數據信號在處理和傳輸中的時間越長,留給Hold的時間越充足。這兩個矛盾的指標,確定了設計的頻率。一個健壯的設計,必須要同時滿足Setup和Hold的要求才能保證可靠性。我們在分析時序報告的時候也要兩方面同時分析。
Setup的時間越短越好,最長路徑的Setup就決定了設計能跑的最高頻率。我們在做STA的時候,分析和處理最多的就是Setup的delay。
Hold的時間越長越好,最短路徑的Hold time就是我們能容忍的上限。Hold time的問題相對比較好處理,一般EDA軟件可以通過繞線的方式對最快路徑進行修復。