1. 程式人生 > >【原創】建立與保持時間裕量詳細分析

【原創】建立與保持時間裕量詳細分析

  筆者這段時間在找工作中發現,關於時序分析的基礎概念,時序關係表示式及時序違例計算幾乎是每個IC/FPGA崗位筆試面試的必考內容。就此,從建立保持時間裕量出發,夯實基礎。本文主要是對之前轉載部落格【時序約束學習筆記1】Vivado入門與提高--第12講 時序分析中的基本概念和術語 做一些總結和個人理解。

    還是直接用之前轉載部落格中圖片:

  圖中的兩個暫存器中間加一段組合邏輯電路是時序分析的經典模型,主時鐘clk前後兩個上升沿分別叫啟動沿和鎖存沿,是時序分析的起點和終點。下邊一步步推匯出建立時間和保持時間裕量及常用通式。要注意,下邊的“時間”均表示一個時刻。且為了方便,將啟動沿時刻定義為0時刻,故鎖存沿為T時刻。

1 時鐘到達時間:時鐘有效沿到達帶二個暫存器的時刻。

  Tcd = capature Edge + Tclkb = T + Tclkb

2 資料到達時間:資料到達第二個暫存器的時刻。

  Tdd = launch Edge + Tclka + Tco + Tdata = Tclka + Tco + Tdata

3 資料需求時間(建立時間需求):為滿足建立時間要求,資料最晚到達的時刻。

  Tsu,req = Tcd - Tsu = T+ Tclkb - Tsu

4 資料需求時間(保持時間需求):為了滿足保持時間要求,資料最早更新的時刻。

  Th,req = Tcd + Th = T + Tclkb + Th

5 建立時間裕量:為滿足建立時間要求,富餘出來的時間段長度。

  setup slack = 建立時間需求 - 資料到達時間

                          = Tdd - Tsu,req = T+ Tclkb - Tsu - Tclka - Tco - Tdata 

                                   =  T + T△ - Tco - Tdata - Tsu

6 保持時間裕量:為了滿足保持時間要求,富餘出來的時間長度。

  hold slack = 資料到達時間(下一次)- 保持時間需求

                        = Tdd' - Th,req = Tclka + Tco + Tdata + T - T - Tclkb - Th

                                                 = -T△ + Tco + Tdata - Th

  同步數位電路就係統中,每條時序路徑必須滿足建立時間裕量和保持時間裕量 ≥ 0,否則無法滿足建立與保持時間要求,引起系統不穩定甚至無法正常工作。常用通式(不考慮時鐘偏抖):

1 通過建立時間裕量引出系統最高時鐘頻率

  setup slack≥0:T - Tco - Tdata - Tsu  ≥ 0 -->T ≥ Tco + Tdata + Tsu 

2 通過保持時間裕量得到保持時間與時序引數關係

  hold slack≥0:-T△ + Tco + Tdata - Th ≥ 0 --> Th ≤ Tco + Tdata

還不趕緊背下來!