Setup和hold時(shí)間檢查
Setup時(shí)間是,為了寄存器可靠的采樣到數(shù)據(jù),數(shù)據(jù)必須提前于采樣時(shí)鐘沿穩(wěn)定的最小時(shí)間。Hold時(shí)間是,為了寄存器可靠的采樣到數(shù)據(jù),數(shù)據(jù)必須在采樣時(shí)鐘沿后穩(wěn)定的最小時(shí)間。
如圖一所示,周期T=1ns,該寄存器的setup要求時(shí)間是Tsetup=0.1ns,hold要求時(shí)間是Thold=0.1ns。setup時(shí)間檢查機(jī)制做這樣的檢查:上一個Launch時(shí)鐘沿打出來的數(shù)據(jù)的data arrival time(數(shù)據(jù)到達(dá)時(shí)間)不能晚于T - Tsetup = 0.9ns;而hold時(shí)間檢查機(jī)制做這樣的檢查:同一個周期的Launch時(shí)鐘沿打出來的數(shù)據(jù)的data arrival time(到達(dá)時(shí)間)不能早于Thold = 0.1ns。
同時(shí)滿足setup、hold時(shí)間要求的意義即是,在時(shí)鐘采樣沿的前后一段最小時(shí)間內(nèi),數(shù)據(jù)必須保存穩(wěn)定,以供寄存器可靠的采樣到上一拍發(fā)送過來的正確數(shù)據(jù)。
**圖一 ** setup 、 hold****時(shí)間檢查示意圖
我們把上篇文章的圖再貼過來:
圖二 邏輯電路圖(含BC工作條件下的延遲信息)
下面分析FFC1寄存器的setup、hold檢查過程:
上篇文章說過,到FFC1的D端2條邏輯路徑和4個path delay,分別是FFL1->FFC1的rise delay、FFL1->FFC1的fall delay、FFL2->FFC1的rise delay、FFL2->FFC1的fall delay。
以時(shí)鐘源頭作為起點(diǎn)的path delay等于data arrival time。 根據(jù)圖一,可以看出:
0****1
FFL1到FFC1的rise delay的data arrival time
T(FFL1->FFC1-rise)
= T(Launch-clock-tree) + T(data-path-rise)
=T(C00-rise) + T(UCKBUF0-rise) + T(C01-rise) + T(UCKBUF1-rise) + T(C05-rise) + T(FFL1_CK2Q-rise) + T(C1-rise) ~ ~ + D(UNAND1_A2Z-fall) + T(C2-fall) + T(UINV2-rise) + T(C3-rise) + T(UINV3-fall) + T(C4-fall) + T(UINV4-rise) + T(C5-rise)
= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.1 + 0.05 + 0.08 + 0.05 + 0.05 + 0.05 + 0.08 + 0.05
= 0.96ns;
02
FFL1到FFC1的fall delay的data arrival time
T(FFL1->FFC1-fall)
= T(Launch-clock-tree) + T(data-path-fall)
=(0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.08 + 0.05 + 0.1 + 0.05 + 0.04 + 0.05 + 0.1 + 0.05
= 0.97ns;
03
FFL2到FFC1的rise delay的data arrival time
T(FFL2->FFC1-rise)
= T(Launch-clock-tree) + T(data-path-rise)
=T(C00-rise) + T(UCKBUF0-rise) + T(C02-rise) + T(UCKBUF2-rise) + T(C06-rise) + T(FFL2_CK2Q-rise) + T(C6-rise) ~ ~ + D(UNAND1_B2Z-fall) + T(C2-fall) + T(UINV2-rise) + T(C3-rise) + T(UINV3-fall) + T(C4-fall) + T(UINV4-rise) + T(C5-rise)
= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.09 + 0.05 + 0.08 + 0.05 + 0.05 + 0.05 + 0.08 + 0.05
= 0.95ns;
04
FFL2到FFC1的fall delay的data arrival time
T(FFL2->FFC1-fall)
= T(Launch-clock-tree) + T(data-path-fall)
=(0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.07 + 0.05 + 0.1 + 0.05 + 0.04 + 0.05 + 0.1 + 0.05
= 0.96ns;
05
FFC1的setup requirement時(shí)間
T + T(Capture-clock-tree) - T(setup)
= T + T(C00-rise) + T(UCKBUF0-rise) + T(C03-rise) + T(UCKBUF3-rise) + T(C07-rise) - T(setup)
= 1ns + (0.05 + 0.05 + 0.05 + 0.05 + 0.05) – 0.1ns
= 1.15ns
06
FFC1的hold requirement時(shí)間
T(Capture-clock-tree) + T(hold)
= T(C00-rise) + T(UCKBUF0-rise) + T(C03-rise) + T(UCKBUF3-rise) + T(C07-rise) - T(setup)
= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1ns
= 0.35ns
做setup檢查時(shí),STA會遍歷計(jì)算所有到FFC1/D端路徑的data arrival time,然后將每個值與T + T(Capture-clock-tree) - T(setup)做運(yùn)算。以slack來表示余量,setup time slack = data require time – data arrival time = {T + T(Capture-clock-tree) - T(setup)} – {T(Launch-clock-tree) + T(data-path)}。只有當(dāng)所有Slack值都為正時(shí),才滿足setup時(shí)間要求。
類似的,做hold檢查時(shí),也是將每個data arrival time的值與T(Capture-clock-tree) + T(hold)做比較,以slack來表示余量,hold time slack = data arrival time - data require time = {T(Launch-clock-tree) + T(data-path)} - {T(Capture-clock-tree) + T(hold)}。只有當(dāng)所有Slack值都為正時(shí),才滿足hold時(shí)間要求。
上述4個path delay的Setup time slack分別為:
Setup time slack(1) = 1.15ns – 0.96ns = 0.19ns
Setup time slack (2) = 1.15ns – 0.97ns = 0.18ns
Setup time slack (3) = 1.15ns – 0.95ns = 0.20ns
Setup time slack (4) = 1.15ns – 0.96ns = 0.19ns
4條path delay的hold slack time分別為:
Hold time slack(1) = 0.96ns – 0.35ns = 0.61ns
Hold time slack(2) = 0.97ns – 0.35ns = 0.62ns
Hold time slack(3) = 0.95ns – 0.35ns = 0.60ns
Hold time slack(4) = 0.96ns – 0.35ns = 0.61ns
由于所有slack值都為正,故setup和hold時(shí)間檢查都滿足了。
時(shí)序路徑概念
STA分析時(shí),所有時(shí)序路徑都有起點(diǎn)和終點(diǎn),起點(diǎn)包括輸入端口和時(shí)序單元的時(shí)鐘端口,終點(diǎn)包括輸出端口和時(shí)序單元的數(shù)據(jù)輸入端口。所以總共有4種路徑集合,即:
a. 從輸入端口到輸出端口(IN To OUT);
b. 從輸入端口到時(shí)序單元的數(shù)據(jù)輸入端口(IN To REG);
c. 從時(shí)序單元的時(shí)鐘端口到時(shí)序單元的數(shù)據(jù)輸入端口(REG To REG);
d. 從時(shí)序單元的時(shí)鐘端口到輸出端口(REG To OUT)。
4種時(shí)序路徑請見圖三:
圖三 時(shí)序路徑
Timing Arc 概念
如圖三所示,每個cell都存在多條Timing Arc,如UNAND1存在A->Z和B->Z這2條Timing Arc。FFC1也存在CK->Q和CK->D 2條Timing Arc。
其中UNAND1的A->Z和B->Z是組合路徑Timing Arc。FFC1的CK->Q是edge Timing Arc,F(xiàn)FC1的CK->D又含setup arc和hold arc。
-
寄存器
+關(guān)注
關(guān)注
31文章
5421瀏覽量
123323 -
FFC
+關(guān)注
關(guān)注
1文章
63瀏覽量
17865 -
STA
+關(guān)注
關(guān)注
0文章
52瀏覽量
19227
發(fā)布評論請先 登錄
VIVADO時(shí)序約束及STA基礎(chǔ)
靜態(tài)時(shí)序分析STA的優(yōu)點(diǎn)以及缺點(diǎn)分別有哪些呢
靜態(tài)時(shí)序分析在高速 FPGA設(shè)計(jì)中的應(yīng)用

時(shí)序分析基本概念——STA概述簡析

靜態(tài)時(shí)序分析基礎(chǔ)與應(yīng)用
FPGA進(jìn)行靜態(tài)時(shí)序分析

正點(diǎn)原子FPGA靜態(tài)時(shí)序分析與時(shí)序約束教程

基本的時(shí)序約束和STA操作流程

FPGA靜態(tài)時(shí)序分析詳解
STA-0.靜態(tài)時(shí)序分析概述

什么是時(shí)序路徑timing path呢?

評論