時序約束的目的是:規范設計的時序行為,表達設計者所期望滿足的時序條件,指導綜合和布局布線階段的優化算法等,作用:提高系統設計的fmax、得到正確的時序分析報告
1. 系統的最高頻率Fmax
Fmax: 所設計系統的穩定情況下的最高時鐘頻率所設計系統的穩定情況下的最高時鐘頻率,他是時序分析中最重要的指標,綜合表現所設計時序的性能
首先介紹最小時鐘周期Tclk
Tclk = 寄存器的時鐘輸出延時Tco + 組合邏輯延時Tlogic + FPGA內部的網絡延時Tnet + 寄存器時鐘建立時間Tsu –時鐘偏斜Tclkskew
Fmax = 1 / Tclk
在QuartusII時序分析后很容易看到Fmax
2. 時鐘的建立時間Tsu和保持時間Th
建立時間Tsu:時鐘到達之前數據或者使能信號已經準備好(穩定)的最小時間間隔
Tsu = 數據延時Data_delay – 時鐘延時Clock_delay + 寄存器固有的建立時間Tsu
保持時間Th:能保證有效時鐘沿正確采樣的數據或者使能信號在時鐘沿之后的最小穩定時間
Th = 時鐘延時Clock_delay – 數據延時Data_delay = 寄存器固有的保持時間Th
3. 時序裕量Slack
Slack :約束文件要求時鐘周期與實際布局布線后時鐘周期的差值,表示時序裕量的一個稱謂,大于零表示滿足時序,小于零表示不滿足時序
1) Setup Slack
Setup Slack = Data Required Time - Data Arrival Time
2) Hold Slack
Hold Slack = Data Arrival Time - Data Required Time
Slack = Required_clock_period – Actual_clock_period
4. 時鐘偏斜Skew
時鐘偏斜skew:一個同源時鐘到達兩個不同寄存器的時鐘端的時間差別(時鐘分布系統中到達各個時鐘末端(即器件內部觸發器的時鐘輸入端)的時鐘相位不一致的現象)。
如果時鐘偏斜超過所允許的最大值,電路的同步可能會發生失效。偏斜主要由兩個因素造成:一是時鐘源驅動器件的偏差,例如同一個PLL輸出的不同時鐘信號之間的偏斜;另一個是時鐘分配網絡的偏斜 。由于時鐘信號驅動系統中的大量元件為了達到同步必須同時接收到時鐘信號,因此它們之間的任何時間差異都將直接影響系統性能。
避免時鐘偏斜Skew可以采取下列方法:1.CLOCK采用全局時鐘網絡驅動,全局時鐘的CLOCK SKEW很小。因此主要時鐘信號應該走全局時鐘網絡以避免始終偏斜。2.采用全局時鐘緩沖器 3.采用鎖相環(pll)。
5. 時鐘抖動Jetter
時鐘抖動(Jetter)是時鐘沿距離其理想位置的偏離。在時序分析中理解時鐘抖動非常重要,因為它在系統時序預算方面肩負關鍵角色。它還能幫助系統設計人員理解系統時序余量。隨著系統數據率越來越高,時序抖動在系統設計中已經變得更加關鍵,如在某些案例中系統性能限制由系統時序余量來確定,因此充份了解時序抖動在系統設計中變得更加重要?偠秳涌煞譃殡S機抖動和確定性抖動等分量。時鐘時序抖動可以在時域以及頻域測量。相鄰周期抖動、周期抖動及時間間隔誤差(TIE)抖動在時域測量,而相位噪聲和相位抖動在頻域測量。部分抖動源包括熱噪聲、電源噪聲、地彈噪聲(ground bounce)、鎖相環(PLL)電路、串擾及反射。下圖為時鐘抖動示例。
6. Data Arrival Time
Data Arrival Time = Launch edge + 源寄存器時鐘延時Tclk1 + 源寄存器數據輸出延時Tco + 寄存器之間的組合邏輯延時Tdata
7. Clock Arrival Time
Clock Arrival Time = Latch edge + 目標寄存器時鐘延時Tclk2
8. Data Required Time - Setup
Data Required Time = Clock Arrival Time – 目標寄存器固有的建立時間Tsu
9. Data Required Time – Hold
Data Required Time = Clock Arrival Time – 目標寄存器固有的保持時間Th
10. Launch edge和Latch edge
Launch Edge :源寄存器發送數據對應的時鐘沿,是時序分析的起點。
Latch Edge :目標寄存器捕獲數據對應的時鐘沿,是時序分析的終點。