一、建立時間的檢查
建立時間的檢查是指檢查電路里每一個觸發器的數據和時鐘的關系是否滿足建立時間的要求。
我們以上圖為例進行建立時間檢查。由圖可知,我們主要針對第二個觸發器UFF1進行檢查。我們可以梳理時序關系如下:
通過這個圖,我們可以得到滿足建立時間需要達成以下目標
即我們之前說到的Setup slack = Data Required Time(setup)?- Data Arrival Time? > 0? <===>? 1+2+3<6+7-5
在考慮skew和jitter的偏差的情況下,上述的式子可以修改為:
其時序報告一般如下:
注意,在setup check中,為考慮最差情況,取所有延遲最大,故path type為max。
二、保持時間的檢查
保持時間的檢查與建立時間的檢查具有以下的區別:
1、保持時間的檢查是在同一個時鐘邊沿進行的,即數據的發射路徑和數據的捕獲路徑是同一時鐘邊沿
2、保持時間與時鐘周期是沒有任何關系的
我們依舊以上面的時序路徑圖進行分析,其時序關系如下:
通過這個圖,我們可以得到滿足保持時間需要達成以下目標:
即我們之前說到的Hold slack = Data Arrival Time - Data Required Time?(hold)> 0 <===>? 1+2+3>6+Thold
考慮skew和jitter的偏差的情況下,上述的式子可以修改為:
?
?
其時序報告一般如下:
注意,在setup check中,為考慮最差情況,取所有延遲最小,故path type為min。
一般來說,setup可以通過時鐘頻率來調整,而hold time是不行的,是一定要滿足的。