常用的靜態時序分析結構圖:
時序圖如下:
紅色虛線之間的是建立時間和保持時間,在這段時間內資料應保持穩定不變。
其中clk1是前一級觸發器的時鐘,clk2是後一級觸發器的時鐘。clk2相對於clk1存在一定的偏斜tclk_skew。
我們在在後一級觸發器的第乙個時鐘上公升沿分析保持時間,在後一級觸發器的第二個時鐘上公升沿分析建立時間。首先來分析建立時間。
事件1到事件2之間的時間為tcko,即d觸發器開始取樣瞬間到d觸發器取樣的資料開始輸出的時間。
事件2到事件3之間的時間為tlogic,即兩級觸發器之間組合邏輯的延時。
事件3到事件4之間的時間為tnet,即走線的延時。
事件5到事件6即clk2的第二個時鐘上公升沿之間的時間為tsetup,即觸發器的建立時間。
事件1到事件6之間的時間為乙個時鐘週期tperiod+兩級時鐘之間的偏斜tclk_skew。
事件1到事件6之間剩下的時間即事件4到事件5之間的時間為建立時間餘量tslack,setup。
事件4其實就是資料改變所發生的時刻。
因而暫存器建立時間餘量公式為:tslack,setup = tperiod - (tcko + tlogic + tnet + tsetup - tclk_skew)。
當建立時間餘量小於零時,說明資料的改變會發生在建立時間之後,可能會導致亞穩態現象。當然如果延遲特別大,發生在保持時間之後,則會漏採資料。
接下來分析保持時間。
由上分析,資料會在事件4發生改變,因而,事件7到事件4之間的時間即為保持時間餘量tslack,hold。
暫存器保持時間餘量公式為:tslack,hold = tcko + tlogic + tnet - thold - tclk_skew。
當保持時間餘量小於零時,說明資料的改變會發生在保持時間之前,可能會導致亞穩態現象。(有時候我們會看到保持時間餘量小於零是正常現象的情況,那是因為分析的東西不同,把其他一些東西也包含進去了)。
將建立時間餘量和保持時間餘量公式作個轉換,如下:
tperiod > tcko + tlogic + tnet + tsetup - tclk_skew
tcko + tlogic + tnet > thold + tclk_skew
以上兩個公式是比較全面的公式。由於tnet和tclk_skew通常較小,可以暫且忽略,如下為簡化的公式:
tperiod > tcko + tlogic + tsetup
tcko + tlogic > thold
第乙個公式可以理解為,資料從第乙個觸發器取樣時刻傳到第二個觸發器取樣時刻,不能超過乙個時鐘週期,假如資料傳輸超過乙個時鐘週期,那麼就會導致第二個觸發器開始取樣的時候,想要的資料還沒有傳過來。對於第二個公式,我們可以在不等式兩邊同時加上tsetup,如下:
tcko + tlogic + tsetup > thold + tsetup
再結合之前的公式:
thold + tsetup < tcko + tlogic + tsetup < tperiod
tcko + tlogic + tsetup是指資料從第一級觸發器取樣瞬間開始,傳輸到第二級觸發器並被取樣的傳輸延時。我們簡稱為資料傳輸延時。
tcko + tlogic + tsetup < tperiod :約定資料傳輸延時不能太大,如果太大(超過乙個時鐘週期),那麼第二級觸發器就會在取樣的時刻發現資料還沒有到來。
thold + tsetup < tcko + tlogic + tsetup:約定資料傳輸延時不能太小。thold+tsetup是乙個觸發器的取樣視窗時間,我們知道,d觸發器並不是絕對的瞬間取樣,它不可能那麼理想。在d觸發器取樣的瞬間,在這瞬間之前tsetup時間之內,或者這瞬間之後thold時間之內,如果輸入埠發生變化,那麼d觸發器就會處於亞穩態。所以取樣是有視窗的,我們把thold + tsetup的時間寬度叫做觸發器的取樣視窗,在視窗期內,d觸發器是脆弱的,對毛刺沒有免疫力的。假如資料傳輸延時特別小,那麼就會發現,當第二級觸發器開始取樣的時候,第一級觸發器的視窗期還沒有結束!也就是說,如果這個時候輸入端資料有變化,那麼不僅第一級觸發器處於亞穩態,第二級觸發器也將處於亞穩態!(即第二級觸發器的第乙個沿就採第一級觸發器第乙個沿產生的資料)
綜上,我們就可以知道,資料傳輸延時既不能太大以至於超過乙個時鐘週期,也不能太小以至於小於觸發器取樣視窗的寬度。這就是靜態時序分析的終極內涵。
參考:
靜態時序分析 Timing borrow
timing borrow技術又稱為cycle stealing技術,主要是利用latch的電平敏感特性,通過有效電平獲取資料,通過無效電平保持被鎖存的資料,主要用於解決路徑時序不滿足電路要求的情況。通過timingborrow可以對電路進行加速,當路徑延遲較大時,可以通過借用latch的部分時間實...
靜態時序分析SAT
launch edge和latch edge分別是指一條路徑的起點和終點,只是乙個參考時間,本身沒有什麼意義,latch edge launch edge才有意義。1.背景 靜態時序分析的前提就是設計者先提出要求,然後時序分析工具才會根據特定的時序模型進行分析,給出正確是時序報告。進行靜態時序分析,...
靜態時序分析初步認識
靜態時序分析是學習fpga必須學習的乙個知識點,通過一段時間的學習,先將自己所學到的一點靜態時序分析的基礎稍作總結。這是一張再熟悉不過的圖形,以及兩個基礎公式 tperiod tcko tlogic tnet tsetup tclk skew 1 tcko tlogic tnet thold tcl...