时序分析基本概念(一)——建立时间
目錄
- 1. 概念的理解
- 2. 簡單的實例
- 3. 時序計算公式
- 4. 后續
1. 概念的理解
以上升沿鎖存為例,建立時間(Tsu)是指在時鐘翻轉之前輸入的數據D必須保持穩定的時間。如下圖所示,一個數據要在上升沿被鎖存,那么這個數據就要在時鐘上升沿的建立時間內保持穩定。
建立時間是對觸發器而言,以能夠穩定準確的鎖存或者觸發為目的,對其輸入數據信號保持穩定的時間要求。
2. 簡單的實例
以兩個級聯寄存器為例。
時鐘通過CLK PIN管腳輸入,到達第一個寄存器的時鐘端口經歷的時延為Tclk1,到達第二個寄存器的線上時延為Tclk2。
第一個寄存器從時鐘進入時鐘端口驅動寄存器到寄存器輸出數據的延時為Tco,Tco為寄存器內部的時延。
數據從第一個寄存器Q端口輸出,經歷Tdata延時到達第二個寄存器的數據輸入端。Tdata可能包含路徑上的延時以及引入的組合邏輯電路導致的延時。
時序圖如下圖所示:
圖中,紫色區域為Tsu需要的時間,藍色的區域為富余的建立時間(Tsu slack)。
如果由于Tdata時間較長,使得Tsu slack為0,但Reg2的D輸入口數據仍然比下個時鐘上升沿提前Tsu時間到達,則Reg2 寄存器仍然能穩定的采集到輸入數據“1”,如下圖所示。
如果由于組合邏輯過于復雜使得Tdata時間過長,使得Tsu slack為負值,Reg2的D輸入口數據比下個時鐘上升沿提前到達的時間不足Tsu時長,則Reg2 寄存器不能穩定的采集到輸入數據“1”,而是個亞穩態,如下圖所示。
3. 時序計算公式
由以下時序圖,我們可以得到建立時間的計算公式:
Tsu_slack = Tcycle + Tclk2 - Tsu - (Tclk1 + Tco + Tdata);
其中Tcycle為CLK一個時鐘周期的時間。
例:如果已知Tcycle為10ns(即工作時鐘100MHz)、Tclk1為3ns、Tclk2為2ns、Tdata為3ns、Tsu為0.5ns、Tco為1ns,則求Tcu_slack為多少?并計算該電路最高能工作的時鐘頻率是多少?
答:通過套用上面的公式可得
Tsu_slack = 10 + 2 - 0.5 - (3 + 1 + 3) = 4.5 ns
如果想計算該電路最高能工作的時鐘頻率,則可以將Tsu_slack設為0,反求下Tcycle:
Tcycle = 0 - 2 + 0.5 + (3 + 1 + 3) = 5.5 ns (即181.8 MHz)
4. 后續
后面我們還會通過vivado工程實例來介紹如何查看建立時間的時序報告,感興趣的伙伴請關注我們公眾號 “FpgaHome” 吧。
總結
以上是生活随笔為你收集整理的时序分析基本概念(一)——建立时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当金融风控遇上人工智能,众安金融的实时特
- 下一篇: 程序链接之符号解析和重定位