關于測量中的建立時間和保持時間的理解
從而可以推出
T-Tco-T2max>=T3
這也就是要求的D2的建立時間。
從上面的時序圖中也可以看出,D2的建立時間與保持時間與D1的建立與保持時間是沒有關系的,而只和D2前面的組合邏輯和D1的數據傳輸延時有關,這也是一個很重要的結論。說明了延時沒有疊加效應。
第二種情況如果時鐘存在延時,這種情況下就要考慮保持時間了,同時也需要考慮建立時間。時鐘出現(xiàn)較大的延時多是采用了異步時鐘的設計方法,這種方法較難保證數據的同步性,所以實際的設計中很少采用。此時如果建立時間與保持時間都滿足要求那么輸出的時序如圖5所示。
圖5 時鐘存在延時但滿足時序
從圖5中可以容易的看出對建立時間放寬了Tpd,所以D2的建立時間需滿足要求:
Tpd+T-Tco-T2max>=T3
由于建立時間與保持時間的和是穩(wěn)定的一個時鐘周期,如果時鐘有延時,同時數據的延時也較小那么建立時間必然是增大的,保持時間就會隨之減小,如果減小到不滿足D2的保持時間要求時就不能采集到正確的數據,如圖6所示。
這時即T-(Tpd+T-Tco-T2min) 從上式也可以看出如果Tpd=0也就是時鐘的延時為0那么同樣是要求Tco+T2min>T4,但是在實際的應用中由于T2的延時也就是線路的延時遠遠大于觸發(fā)器的保持時間即T4,所以不必要關系保持時間。 圖6 時鐘存在延時且保持時間不滿足要求 下面用數字來說明一下加深理解(以下舉例暫不考慮hold time): 建立時間Tsetup=Tdelay+ Tco- Tpd 假設2,Clock delay="0",data Delay = 3ns,那么數據port的新數據必須在時鐘port的時鐘沿到來之前5ns就得趕到數據port,其中的3ns用來使新數據從數據port趕到觸發(fā)器的D端(由于data Delay ),剩下的2ns用來滿足觸發(fā)器的Tco。 假設3,Clock delay="1ns",data Delay = 3ns,由于時鐘port的時鐘沿推后1ns到達觸發(fā)器的時鐘端,那么數據port的新數據只需在時鐘port的時鐘沿到來之前4ns趕到數據port即可。 假設4,假設時鐘的周期T=4ns,即你的系統(tǒng)需要運行在250M頻率上,那么以上的假設中,假設2顯然是不成立的,也就是說在假設2的情況下,你的系統(tǒng)運行頻率是低于250M的,或者說在250M系統(tǒng)里是有setup time violation的。在假設2的情況下,由于Tco及Tpd均是FPGA的固有特性,要想滿足4ns的T,那么唯一你能做的就是想方設法減小Tdelay,也就是數據路徑的延時。即所謂的找出關鍵路徑,想辦法優(yōu)化之。 總結,在實際的設計中,對于一個給定的IC,其實我們很容易看到T,Tpd,Tsetup,Th都是固定不變的(在跨時鐘域時,Tpd會有不同),那么我們需要關心的參數就是Tdelay,即數據路徑的延時,控制好了這個延時,那我們的設計就不會存在建立時間和保持時間不滿足的情況了! 后記:有個著名的筆試題,這樣說道:時鐘周期為T,觸發(fā)器D1的建立時間最大為T1max,最小為T1min,該觸發(fā)器的數據輸出延時為Tco。組合邏輯電路最大延遲為 T2max,最小為T2min。假設D1在前,D2去采樣D1的數據(實際就是對圖2的文字描述),問,觸發(fā)器D2的建立時間T3和保持時間應滿足什么條件。這里給出一個簡易公式供大家死記一下, 以下兩個公式確定了D2的Tsetup和Thold: 1) D1的Tco + max數據鏈路延時 + D2的Tsetup < T(即T3 < T - Tco - T2max) 2) D1的Tco + min數據鏈路延時 > D2的Thold(即T4< Tco + T2min) 其實上面的式2可以從T3+T4=T推出,不過要注意把1)中的T2max改為T2min即可。 總之,建立時間長了,保持時間就短了。 實際中,某條數據鏈路延時是一個定值,只不過要求它落在區(qū)間{T2min,T2max}。這也是T2min和T2max的實際意義。從現(xiàn)實設計出發(fā),個人覺得這個題改為考T2max和T2min更合適,那是不是有更多人犯暈呢?
假設Tco(觸發(fā)器固有的建立時間)= 2ns
假設1,Clock Delay =0,Data delay="0",那么數據port的新數據必須在時鐘port的時鐘沿到來之前2ns趕到數據port,才能滿足觸發(fā)器的Tco。
評論