一、概念 建立時間:觸發(fā)器(DFF)時鐘上升沿到來之前,,數(shù)據(jù)需要保持穩(wěn)定的最小時間間隙就是建立時間,。簡而言之,時鐘邊沿觸發(fā)前,,要求數(shù)據(jù)必須存在一段時間,, 這就是器件需要的建立時間。如不滿足建立時間,,這個數(shù)據(jù)就不能被這一時鐘打入觸發(fā)器,。 保持時間:觸發(fā)器(DFF)時鐘上升沿到來之后,數(shù)據(jù)需要保持穩(wěn)定的最小時間間隙就是保持時間,。簡而言之,,時鐘邊沿觸發(fā)后,數(shù)據(jù)也必須保持一段時間,,以便能夠穩(wěn)定讀取,, 這就是器件需要的建立時間。如果hold time 不夠,,數(shù)據(jù)同樣不能被打入觸發(fā)器,。 ?? 通過時序邏輯的Setup和Hold作約束,即可保證時鐘邊沿采集數(shù)據(jù)的穩(wěn)定狀態(tài),,從而達成消除毛刺的目的,。 ??我們都知道數(shù)據(jù)是在時鐘信號上升沿的那一瞬間被打進觸發(fā)器從而被采樣的,那么我們只需要在時鐘上升沿的那一瞬間或者那一小段時間保持穩(wěn)定不就行了,?理論上這么想是沒問題的,,但對于實際工程來講,這是幾乎不可能達到的,。 ??要分析這個問題,,我們不妨先看一下D觸發(fā)器里面到底長啥樣,下圖是經(jīng)典上升沿D觸發(fā)器的內部結構圖: ??與非門G1到G4是維持阻塞電路,,G5和G6構成一個RS觸發(fā)器用于數(shù)據(jù)的鎖存,。如有不明白RS觸發(fā)器的真值表和工作機理的可以在網(wǎng)上找到資料,這里不再累述,。 ??圖中可以看到,,時鐘信號直接作用在了G2和G3上面,,也就意味著G2和G3是真正的采樣傳輸門電路,輸入信號應該要正確的被G2和G3采樣后傳輸至后面的RS觸發(fā)器,。我們注意到,,數(shù)據(jù)在傳輸?shù)紾3之前經(jīng)過了G4,傳輸至G2之前經(jīng)過了G4和G1,。我們知道,,實際情況中信號經(jīng)過門電路是有延遲的。所以輸入信號在到達G2和G3之前經(jīng)過了G1和G4的延遲,,因此就引入了建立時間的概念:建立時間就是為了補償信號在G1和G4上的延遲,。也就是數(shù)據(jù)在時鐘沿來臨之前,需要足夠的建立時間讓信號經(jīng)過G1和G4到達G2和G3,。觸發(fā)器的建立時間主要取決于G1和G4. ??那么保持時間呢,?一樣的,上升沿來臨時,,數(shù)據(jù)通過G2和G3傳輸至后面的RS觸發(fā)器,,但G2和G3也會存在延時。因此又引入了保持時間的概念:保持時間就是為了補償信號在G2和G3上的延遲,。也就是數(shù)據(jù)在時鐘沿來臨之后,,需要足夠的保持時間讓信號正確的從G2和G3傳輸至RS觸發(fā)器。觸發(fā)器的保持時間主要取決于G1到G4,,進而可以推斷出,,一般D觸發(fā)器的保持時間比建立時間要長。 ??建立時間和保持時間存在的意義就是為了使數(shù)據(jù)隨時鐘信號被準確采樣,。如果不滿足建立時間和保持時間會怎樣?很簡單,,因為在傳輸?shù)倪^程中數(shù)據(jù)并不是處于穩(wěn)定狀態(tài)而處于亞穩(wěn)態(tài)區(qū)(metastability ),,則會導致采樣的數(shù)據(jù)可能會出錯。 時鐘偏移 (clock skew):由于路徑延遲,,同一個時鐘信號到達兩個不同的寄存器之間的時間差值,,根據(jù)差值可以分為正偏移和負偏移。 時間裕量(setup/hold slack):如果數(shù)據(jù)信號在時鐘沿觸發(fā)前后持續(xù)的時間均超過建立和保持時間,,那么超過量就分別被稱為建立時間裕量和保持時間裕量,。 最大時鐘頻率fmax:fmax = 1/Tmin ?? Tmin—— 最小時鐘周期 ?? 電路正常工作時,所允許的系統(tǒng)時鐘脈沖頻率最大值,。下面會給出最大始終頻率計算方法,。 時鐘抖動(clock jitter):指的是時鐘周期的變化。指兩個時鐘周期之間存在的差值,,這個誤差是在時鐘發(fā)生器內部產生的,,和晶振或者PLL內部電路有關,,布線對其沒有影響。由于跟晶振本身的工藝有關,,所以在設計中無法避免它能帶來的影響,,通產只能在設計中留有一定的margin。 ??分析Setup需要分析數(shù)據(jù)路徑和時鐘路徑,,下面結合一個比較經(jīng)典的模型來看看我們在進行電路設計的時候要如何去滿足建立時間和保持時間。 ??圖中,,Tcomb表示兩個觸發(fā)器之間組合邏輯電路延時(可變,,可通過電路優(yōu)化);Tskew1,,Tskew2分別為CLK1處相和CLK2處對于原始CLK的時鐘偏移,,clock skew主要是由于時鐘線存在長度而導致的時鐘偏移;Tco表示數(shù)據(jù)從輸入端到輸出端的最小時間間隔(屬于器件延時),;兩個D觸發(fā)器均為上升沿觸發(fā),。 ??假設D觸發(fā)器的建立時間為Tsetup,保持時間為Thold,,則存在如下關系式: ?????? Tsetup < = Tclk+Tskew-Tco-Tcomb (1) ?????? Thold < = Tco+Tcomb-Tskew (2) 其中: ??Tclk : 時鐘周期 ??Tskew : Tclk2相對于Tclk1時鐘線上的延時,,Tskew=Tskew2-Tskew1 ??Tco: DFF1觸發(fā)器從D端到Q端的時延 ??Tcomb : 數(shù)據(jù)信號經(jīng)過組合邏輯電路的延時(例如緩沖器) 下圖是這個模型的時序圖,結合圖四我們可以推導出這兩個約束關系式,。 建立時間約束: ??(1)式的思想其實就是 在第二個時鐘沿(數(shù)據(jù)采樣邊沿)來臨之前,,數(shù)據(jù)穩(wěn)定的時間一定要大于等于建立時間。因此在一個時鐘周期內,,數(shù)據(jù)穩(wěn)定的時間為Tclk-Tco-Tcomb,,因為時鐘也存在偏移,因此要把這個時鐘偏移加上,,于是最后數(shù)據(jù)穩(wěn)定的時間為Tclk+Tskew-Tdq-Tcomb,,滿足這個穩(wěn)定時間大于建立時間即可。 ??理論上能夠承載的最大時鐘頻率為:f_max = 1/(Tsetup+Tco+Tcomb-Tskew) 保持時間約束: ??(2)式的思想為 在第二個時鐘沿(數(shù)據(jù)采樣邊沿)來臨之后,,數(shù)據(jù)穩(wěn)定的時間一定要大于等于保持時間,。因此在時鐘沿來臨之后,數(shù)據(jù)穩(wěn)定的時間為Tco+Tcomb,,再減去時鐘偏移則為Tco+Tcomb-Tskew,,滿足這個穩(wěn)定時間大于等于保持時間即可。 ??為什么計算的時候要取第二個時鐘沿時刻來計算這些關系式,,為什么不能取第一個是時鐘沿呢,?這是由于在第一個時鐘上升沿通常是采集不到數(shù)據(jù)的,在Tclk1與Tclk2之間的時鐘偏移Tskew通??梢酝ㄟ^做時鐘樹將其控制的很小,,一般在ps級別,,而在有效數(shù)據(jù)通過數(shù)據(jù)路徑傳輸?shù)紻2時,還要經(jīng)歷器件延時,、組合邏輯延時和線延時等過程,,而在這個過程中Tclk2的第一個時鐘邊沿早已過去,因此只能在下一個時鐘邊沿采集數(shù)據(jù),。 如果setup time violation或者hold timeviolation應該怎么辦,? Setup time violation solution:調整上述公式中的變量:Tclk,, Tcomb,,Tskew ? - 增大Tclk ????就是降低數(shù)字系統(tǒng)的工作頻率 (很多產品等級,是根據(jù)頻率來分的,;品質好的芯片,,頻率高,,價格貴) ?-減少Tcomb: ????從數(shù)字電路邏輯功能設計的角度看 ??????在組合電路之間插入寄存器,增加流水線(pipeline),; ??????在不改變邏輯功能的前提下,,對組合邏輯電路進行優(yōu)化; ??????減少扇出或者負載,; ????從數(shù)字物理版圖實現(xiàn)的角度看 ??????更換速度更快的標準單元(HVT – High Voltage Threshold, SVT – Standard Voltage Threshold) ??????更換驅動能力更強的標準單元(X2, X4) ??????跟換阻值更低的金屬層以減少標準單元電路的負載和金屬線網(wǎng)的延遲 ?-增加Tskew ????在時鐘路徑上,,插入buffer,增加時鐘路徑的延遲,,但是不能影響hold timing,。 hold time violation solution: ??-增大Tcomb ????在組合電路的數(shù)據(jù)傳輸路徑上,插入延遲單元(buffer),,增加組合邏輯延遲,;但是當組合邏輯延時增加時,setup time可能會出現(xiàn)違例,。這時候就需要做平衡(balance),。由此可以看出setup和hold time是相互制約的。 ??-減小Tskew ????時鐘樹調整,,做好clock tree balance,hold就容易收斂,。因為hold time與時鐘周期沒有關系
三,、擴展等式關系引入時間裕量,建立等式關系: ?????? Tsetup slack= Tclk+Tskew-Tsetup-Tco-Tcomb-Tnet ?? (1) ?????? Thold slack = Tco+Tcomb+Tnet-Thold-Tskew ?? ?? (2) 其中: ??Tnet為走線的延時,; ??Tsetup slack為建立時間裕量,; ??Thold slack為保持時間裕量 對于有意義的時序約束,建立時間余量Tslack,setup和保持時間余量Tslack,hold都要大于0才行,。故原有公式轉化如下: ??????Tclk > Tco+Tcomp+Tnet+Tsetup-Tskew ?? (1) ??????Tco+Tcomp+Tnet > Thold+Tskew ????? (2) 為了得到更加簡單的理解,,我們按照常規(guī),,忽略Tnet和Tskew。原因在于Tnet,,Tskew通常太小,。 ??????Tclk > Tco+Tcomp+Tsetup ??(3) ??????Tco+Tcomp > Thold ????(4) (3)式表明,數(shù)據(jù)從第一個觸發(fā)器采樣時刻傳到第二個觸發(fā)器采樣時刻,,不能超過一個時鐘周期,!假如數(shù)據(jù)傳輸超過一個時鐘周期,那么就會導致第二個觸發(fā)器開始采樣的時候,,想要的數(shù)據(jù)還沒有傳過來,。 對于(4)式兩邊同時加上Tsetup,得到(5): ??????Tco+Tcomp+Tsetup > Thold+Tsetup ?? (5) 結合(3)式和(5)式,,我們得到如下的式子: ??????Thold+Tsetup < Tco+Tcomp+Tsetup < Tclk ?? (6) Tco+Tcomp+Tsetup是指數(shù)據(jù)從第一級觸發(fā)器采樣瞬間開始,,傳輸?shù)降诙売|發(fā)器并被采樣的傳輸延時。我們簡稱為數(shù)據(jù)傳輸延時,。 (6)式右側Tco+Tcomp+Tsetup< Tclk表明 :約定數(shù)據(jù)傳輸延時不能太大,,如果太大(超過一個時鐘周期),那么第二級觸發(fā)器就會在采樣的時刻發(fā)現(xiàn)數(shù)據(jù)還沒有到來,。 (6)式左側Thold+Tsetup <Tco+Tcomp+Tsetup表明:約定數(shù)據(jù)傳輸延時不能太小,。Thold+Tsetup的時間寬度叫做觸發(fā)器的采樣窗口,在窗口期內,,D觸發(fā)器是脆弱的,,對毛刺沒有免疫力的。假如數(shù)據(jù)傳輸延時特別小,,那么就會發(fā)現(xiàn),,當?shù)诙売|發(fā)器開始采樣的時候,第一級觸發(fā)器的窗口期還沒有結束,!也就是說,,如果這個時候輸入端數(shù)據(jù)有變化,那么不僅第一級觸發(fā)器處于亞穩(wěn)態(tài),,第二級觸發(fā)器也將處于亞穩(wěn)態(tài),! 綜上,可以知道,,數(shù)據(jù)傳輸延時既不能太大以至于超過一個時鐘周期,,也不能太小以至于小于觸發(fā)器采樣窗口的寬度。這就是靜態(tài)時序分析的內涵,。 參考:https://www.sohu.com/a/339791710_505888 http://blog.sina.com.cn/s/blog_78e87ba10102x14t.html https://blog.csdn.net/dongdongnihao_/article/details/80951413
|