建立時間:數據至少需要提前于clk跳變沿多長時間到來,數據的采集才不會出錯。
保持時間:數據在clk跳變沿之后,要維持多長時間不變才可以保證數據有效傳輸。
輸出響應時間(輸出延遲時間):從clk跳變沿到來之后,到輸出端數據發生改變并穩定下來需要的時間
以上都由器件本身決定,之所以存在這些要求,也是由器件內部電路決定的。比如建立時間,通常是因為觸發器內部電路要求數據必須在跳變沿到達前已經送到輸入端的某一級電路,才可以繼續往下傳輸。
一個時序邏輯電路,如下圖所示:
觸發器D1的數據從Q端輸出后,經過組合邏輯,傳送到下一級觸發器D2。
設:建立時間Tset,保持時間Th,輸出延遲Tcq,經過組合邏輯時間為Tlogic。
對于D1,時鐘跳變沿來之后,數據經過時間Tcq才從Q端輸出,再經過組合邏輯。
如上圖,數據出組合邏輯以后,到下一個時鐘跳變沿到來之前,這段時間長度為:Tcycle-Tcq-Tlogic。這段時間必須要>=Tset,這樣D2才可以正常工作。則:
Tcycle-Tcq-Tlogic-Tset>=0
稱Tcycle-Tcq-Tlogic-Tset為建立時間裕量(建立時間容限),這個值必須不能小于0.
如果再考慮時鐘延遲,比如時鐘正延遲,即clk到達D2的時間比到D1的時間延遲,延遲量設為:Tdelay
則建立時間裕量可以再加上Tdelay,這對D2的建立時間是有好處的。反之,若時鐘反向延遲,即延遲方向與數據方向相反,則對D2建立時間有害,會縮短建立時間裕量。
再看保持時間裕量
D1的輸出經過Tcq+Tlogic后就會到達D2的輸入D端,也就說時鐘跳變沿到達以后,D2維持數據的時間是Tcq+Tlogic,過了這個時間,新的數據就又出現在輸入D端,那D端的數據就無法保持不變了,如果這個時候上一個數據的保持時間還沒結束,那這個數據可能就無法正常傳輸了。
Tcq+Tlogic-Th為保持時間裕量(容限),顯然這個值也是需要>=0的。
若時鐘延遲,正向延遲,則D1的跳變沿先到,那數據就會提前到達D2的輸入端,保持時間裕量變成Tcq+Tlogic-Th-Tdelay,顯然這對D2的保持時間是不利的。
反之,若反向延遲,則對D2的保持時間有利。
綜上,會發現同樣的時鐘延遲下,建立時間裕量和保持時間裕量是矛盾的,所以在實際中,要平衡考慮二者,讓二者都符合時序約束。
作者: 狂野的牛哥, 來源:面包板社區
鏈接: https://www.mianbaoban.cn/blog/uid-me-3867932.html
版權聲明:本文為博主原創,未經本人允許,禁止轉載!
點擊 “閱讀原文”參加