目錄
1.Reg2Reg路徑時序模型
2.Reg2Reg路徑建立時間裕量(Setup Slack)公式
建立時間約束公式:
建立時間裕量(Setup Slack)公式:
3.Reg2Reg路徑保持時間裕量(Hold Slack)公式
保持時間約束公式:
保持時間裕量(Hold Slack)公式:
1.Reg2Reg路徑時序模型
在數字集成電路設計中,寄存器到寄存器(Reg2Reg)路徑是最基礎且最要緊的時序路徑之一,指的是數據從一個寄存器的輸出端傳輸到另一個寄存器的輸入端所經過的路徑。時序分析的核心目標是確保數據能夠在時鐘約束下正確傳輸,避免建立時間(Setup Time)和保持時間(Hold Time)違例。其Reg2Reg路徑時序模型如下圖所示:
Reg2Reg路徑的核心模型囊括以下關鍵組件和時序參數:
1.源寄存器(Launch Register):素材的發送端寄存器,在時鐘邊沿觸發數據輸出。
2.目的寄存器(Capture Register):材料的接收端寄存器,在時鐘邊沿鎖存輸入數據。
3.組合邏輯(Combinational Logic):源寄存器輸出到目的寄存器輸入之間的邏輯電路(如邏輯門、多路選擇器等),數據在其中傳輸會產生延遲。
4.時鐘信號:驅動源寄存器和目的寄存器的時鐘(可能存在時鐘偏移,即skew)。
2.Reg2Reg路徑建立時間裕量(Setup Slack)公式
:數據到達目的寄存器輸入端的時間必須早於目的寄存器時鐘邊沿減去建立時間。就是建立時間裕量用於衡量數據是否能在目的寄存器時鐘邊沿到來前穩定,確保正確鎖存。其核心約束
建立時間約束公式:
數據到達目的寄存器輸入端的總時間(源寄存器輸出到目的寄存器輸入的延遲)必須滿足:
T_co + T_logic + T_skew ≤ T_clk_period - T_setup
其中:
左側:數據到達目的寄存器輸入端的總延遲(
T_co為源寄存器輸出延遲,T_logic為組合邏輯延遲,T_skew為時鐘偏移帶來的額外時間)。右側:目的寄存器允許的數據最晚到達時間(時鐘週期減去建立時間)。
建立時間裕量(Setup Slack)公式:
裕量為 “允許的最晚到達時間” 與 “實際到達時間” 的差值:
Setup Slack = (T_clk_period - T_setup) - (T_co + T_logic + T_skew)
若
Setup Slack≥0:滿足建立時間約束,數據能正確鎖存。若
Setup Slack<0:存在建立時間違例,可能導致數據鎖存錯誤。
3.Reg2Reg路徑保持時間裕量(Hold Slack)公式
保持時間裕量用於衡量素材在目的寄存器時鐘邊沿到來後是否能保持穩定,確保鎖存的是正確數據。核心約束是數據到達目的寄存器輸入端的時間必須晚於目的寄存器時鐘邊沿加上保持時間。
保持時間約束公式:
數據到達目的寄存器輸入端的總時間必須滿足:
T_co + T_logic + T_skew ≥ T_hold
其中:
左側:數據到達目的寄存器輸入端的總延遲(同建立時間分析)。
右側:目的寄存器要求的資料最早到達時間(時鐘邊沿加上保持時間)。
保持時間裕量(Hold Slack)公式:
裕量為 “實際到達時間” 與 “要求的最早到達時間” 的差值:
Hold Slack = (T_co + T_logic + T_skew) - T_hold
若
Hold Slack ≥ 0:滿足保持時間約束,數據能穩定保持。若
Hold Slack < 0:存在保持時間違例,可能導致鎖存錯誤數據。
在實際設計中,時鐘偏移(T_skew)、組合邏輯延遲(T_logic)和寄存器固有延遲(T_co、T_setup、T_hold)都會影響裕量,需通過時序優化(如調整邏輯結構、插入緩衝器、優化時鐘樹等)確保裕量非負。