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