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