launch edge和latch edge分別是指一條路徑的起點和終點,只是乙個參考時間,本身沒有什麼意義,latch_edge-launch_edge才有意義。
1. 背景
靜態時序分析的前提就是設計者先提出要求,然後時序分析工具才會根據特定的時序模型進行分析,給出正確是時序報告。
進行靜態時序分析,主要目的就是為了提高系統工作主頻以及增加系統的穩定性。對很多數位電路設計來說,提高工作頻率非常重要,因為高工作頻率意味著高處理能力。通過附加約束可以控制邏輯的綜合、對映、布局和佈線,以減小邏輯和佈線延時,從而提高工作頻率。
2. 理論分析
2.1 固定引數launch edge、latch edge、tsu、th、tco概念
2.1.1 launch edge
時序分析起點(launch edge):第一級暫存器資料變化的時鐘邊沿,也是靜態時序分析的起點。
2.1.2 latch edge
時序分析終點(latch edge):資料鎖存的時鐘邊沿,也是靜態時序分析的終點。
2.1.3 clock setup time (tsu)
建立時間(tsu):是指在時鐘沿到來之前資料從不穩定到穩定所需的時間,如果建立的時間不滿足要求那麼資料將不能在這個時鐘上公升沿被穩定的打入觸發器。如圖3.2所示:
圖3.2 建立時間**
2.1.4 clock hold time (th)
保持時間(th):是指資料穩定後保持的時間,如果保持時間不滿足要求那麼資料同樣也不能被穩定的打入觸發器。保持時間示意圖如圖3.3所示:
圖3.3 保持時間**
2.1.5 clock-to-output delay(tco)
資料輸出延時(tco):這個時間指的是當時鐘有效沿變化後,資料從輸入端到輸出端的最小時間間隔。
時鐘偏斜(clock skew):是指乙個時鐘源到達兩個不同暫存器時鐘端的時間偏移,如圖3.4所示:
圖3.4 時鐘偏斜
時鐘偏斜計算公式如下:
tskew = tclk2 - tclk1 (公式2-1)
資料到達時間(data arrival time):輸入資料在有效時鐘沿后到達所需要的時間。主要分為三部分:時鐘到達暫存器時間(tclk1),暫存器輸出延時(tco)和資料傳輸延時(tdata),如圖3.5所示
圖3.5 資料到達時間
資料到達時間計算公式如下:
data arrival time = launch edge + tclk1 +tco + tdata (公式2-2)
時鐘到達時間(clock arrival time):時鐘從latch邊沿到達鎖存暫存器時鐘輸入端所消耗的時間為時鐘到達時間,如圖3.6所示
圖3.6 時鐘到達時間
時鐘到達時間計算公式如下:
clock arrival time = lacth edge + tclk2 (公式2-3)
資料需求時間(data required time):在時鐘鎖存的建立時間和保持時間之間資料必須穩定,從源時鐘起點達到這種穩定狀態需要的時間即為資料需求時間。如圖3.7所示:
圖3.7 資料需求時間
(建立)資料需求時間計算公式如下:
data required time = clock arrival time - tsu (公式2-4)
(保持)資料需求時間計算公式如下:
data required time = clock arrival time + th (公式2-5)
建立時間餘量(setup slack):當資料需求時間大於資料到達時間時,就說時間有餘量,slack是表示設計是否滿足時序的乙個稱謂。
圖3.8 建立時間餘量
如圖3.8所示,建立時間餘量的計算公式如下:
setup slack = data required time - data arrival time (公式2-6)
由公式可知,正的slack表示資料需求時間大於資料到達時間,滿足時序(時序的餘量),負的slack表示資料需求時間小於資料到達時間,不滿足時序(時序的欠缺量)。
時鐘最小週期:系統時鐘能執行的最高頻率。
1. 當資料需求時間大於資料到達時間時,時鐘具有餘量;
2. 當資料需求時間小於資料到達時間時,不滿足時序要求,暫存器經歷亞穩態或者不能正確獲得資料;
3. 當資料需求時間等於資料到達時間時,這是最小時鐘執行頻率,剛好滿足時序。
從以上三點可以得出最小時鐘週期為資料到達時間等於資料需求時間,的運算公式如下:
從上面兩個圖中可以清晰的看出setup與hold slack的定義與計算方法:
setup slack=latch edge+tclk2-tsu-(launch edge+tclk1+tco+tdata)
對於工具預設的單週期來說,latch edge-lanuch edge=t,如果不考慮時鐘的skew,tclk2-tclk1=0,上式可以表達成:
setup slack=t-(tsu+tco+tdata),這就是為什麼說源暫存器與目的暫存器之間延遲不能太長的原因,延遲越長,slack越小。
hold slack=data arrival time – data required time
注意,上式中的launch edge為next launch edge,即為latch edge,所以launch edge – latch edge=0,如果不考慮時鐘的skew,tclk2-tclk1=0,上式可以表達成:
hold slack=tco + tdata – th,這就是為什麼說源暫存器與目的暫存器之間延遲不能太短的原因,時間太短,slack越小。
setup slack 計算
hold slack 計算
**:
靜態時序分析
常用的靜態時序分析結構圖 時序圖如下 紅色虛線之間的是建立時間和保持時間,在這段時間內資料應保持穩定不變。其中clk1是前一級觸發器的時鐘,clk2是後一級觸發器的時鐘。clk2相對於clk1存在一定的偏斜tclk skew。我們在在後一級觸發器的第乙個時鐘上公升沿分析保持時間,在後一級觸發器的第二...
靜態時序分析 Timing borrow
timing borrow技術又稱為cycle stealing技術,主要是利用latch的電平敏感特性,通過有效電平獲取資料,通過無效電平保持被鎖存的資料,主要用於解決路徑時序不滿足電路要求的情況。通過timingborrow可以對電路進行加速,當路徑延遲較大時,可以通過借用latch的部分時間實...
靜態時序分析初步認識
靜態時序分析是學習fpga必須學習的乙個知識點,通過一段時間的學習,先將自己所學到的一點靜態時序分析的基礎稍作總結。這是一張再熟悉不過的圖形,以及兩個基礎公式 tperiod tcko tlogic tnet tsetup tclk skew 1 tcko tlogic tnet thold tcl...