每日學習:靜態時序分析入門面面觀

2021-12-17 大同學吧

關注並標星大同學吧

作者稱謂:Jack xu

個人介紹:不斷學習的數字後端工程師

微信公眾號:志芯

本文詳細講解了時序分析的絕大部分概念,並分析了時序分析的方法和流程。

1.1模擬信號與數位訊號,高電平與低電平

模擬信號:在時間和幅值上是連續變化的電信號。

圖1

數位訊號:在時間和幅值上是離散的電信號。

圖2

數字電路的基本工作信號是二進位的數位訊號,而二進位數只有「0」和「1」兩個基本數字,對應在電路上只需要兩種不同的工作狀態,即高電平和低電平。0和1表示兩種對立的工作狀態,並不表示數量的大小在數字電路中,通常用電位的高低去控制門電路,規定用1表示高電平,用0表示低電平,為正邏輯,若用0表示高電平,用1表示低電平,為負邏輯。

1.2數字電路的表示方法

1.2.1邏輯函數表達式

用邏輯函數表示輸入信號與輸出信號的關係。邏輯表達式中的運算一般為布爾運算,與普通代數不同,布爾代數中的變量是二元值的邏輯變量。

圖3

1.2.2真值表

用表格表示門電路輸入信號與輸出信號對應的邏輯關係。

圖4

1.2.3邏輯電路圖

圖5

1.2.4波形圖

以波的形式表示門電路輸入與輸出的邏輯關係。

圖6

其他表達方法還有:卡諾圖法(一種幾何圖形,可以用來表示和簡化邏輯函數表達式);點陣圖法(是早期可編程邏輯器件中直觀描述邏輯函數的一種方法);硬體設計語言法(是採用計算機高級語言來描述邏輯函數並進行邏輯設計的一種方法,它應用於可編程邏輯器件中,目前採用最廣泛的硬體設計語言有HDL、VHHDL等)。

1.3數字電路中的邏輯關係

數字電路中往往用輸入信號表示「條件」,用輸出信號表示「結果」,條件與結果之間的因果關係稱為邏輯關係。基本的邏輯關係:與邏輯、或邏輯、非邏輯。能實現某種邏輯關係的電路稱為邏輯門電路。基本邏輯門電路:與門、或門、非門。

1.3.1與門電路

與邏輯關係:只有決定某事件的全部條件同時具備時,該事件才發生,邏輯與,或稱邏輯乘。表達式:Y=A·B或Y=AB。邏輯功能:有 0 出 0 ,全 1 出 1 。說明與門定義的電路(圖7)、邏輯符號(圖8)、真值表(圖9)。

圖7

圖8

圖9

1.3.2或門電路

或邏輯關係:決定某事件的幾個條件中,至少有一個條件具備,該事件都會發生,或稱邏輯加。表達式:Y=A+B。邏輯功能:有 1 出 1,全 0 出 0 。說明或門定義的電路(圖10)、邏輯符號(圖11)、真值表(圖12)。

圖10

圖11

圖12

1.3.3非門電路

非邏輯關係:當條件具備時,該事件不發生;而當條件不具備時,該事件反而發生,條件和結果總是呈相反狀態。稱為邏輯非,也稱為邏輯反。表達式: 。邏輯功能:入 0 出 1 ,入 1 出 0 。說明非門定義的電路(圖13)、邏輯符號(圖14)、真值表(圖15)。

圖13

圖14

圖15

1.4脈衝波形和脈衝波形的一些特性參數

獲得脈衝的方法:(1)自激振蕩電路直接產生矩形脈衝。由多諧振蕩器來實現。(2)將已有波形(正弦波、鋸齒波等)整形為矩形脈衝。由施密特觸發器和單穩態觸發器來實現555 定時器是構成多諧振蕩器、施密特觸發器和單穩態觸發器的既經濟又簡單實用的器件。

圖16

矩形脈衝的一些特性參數:

脈衝周期T:周期性重複的脈衝序列中,兩個相鄰脈衝之間的時間間隔。有時也使用頻率(f=1/T)表示單位時間內脈衝重複的次數。

脈衝幅度Vm :脈衝電壓的最大變化幅度。

脈衝寬度tW:從脈衝前沿到達0.5Vm起,到脈衝後沿到達0.5Vm為止的一段時間。

上升時間tr:脈衝上升沿從0.1Vm上升到0.9Vm所需要的時間。

下降時間tf:脈衝下降時間從0.9Vm下降到0.1Vm所需要的時間。

佔空比q:脈衝寬度與脈衝周期的比值,亦即q=tW/T。

此外,在將脈衝波形或者產生電路用於具體的數字系統時,有時還可能有一些特殊的要求,例如脈衝周期和幅度的穩定性等。這時還需要增加一些相應的性能參數來說明。

1.5半導體存儲電路基礎

各種門電路雖然都有兩種不同的輸出狀態(高、低電平,亦即1、0),但是都不能自行保持。在各種複雜的數字電路中不但需要對二值信號進行數值運算和邏輯運算,還經常需要將運算結果保存下來。為此,需要使用具有記憶功能的基本邏輯單元。能夠存儲1位二值信號的基本單元電路統稱為觸發器。

鎖存器和觸發器:鎖存器---不需要觸發信號,由輸入信號直接完成置0或置1操作。

觸發器---需要一個觸發信號(稱為時鐘信號clock),只有觸發信號有效時,才按輸入信號完成置0或置1操作。鎖存器是靜態電路,觸發器是動態電路。

觸發器具有如下特點:有兩個穩定狀態(簡稱穩態),用來表示邏輯 0 和 1。在輸入信號作用下,觸發器的兩個穩定狀態可相互轉換(稱為狀態的翻轉)。 輸入信號消失後,新狀態可長期保持下來,具有記憶功能。

觸發器的分類如下。按觸發方式分:電平觸發、脈衝觸發、邊沿觸發。按邏輯功能分:SR 觸發器、D 觸發器、JK 觸發器、T 觸發器。

下文大致介紹一下SR鎖存器和SR觸發器,其它有興趣的內容可以自行去學習。

1.5.1SR鎖存器

SR鎖存器(兩個Set-Reset Latch)是靜態存儲中當中最基本、也是電路結構最簡單的一種。通常它由兩個或非門或者與非門組成。下文以或非門組成的鎖存器為例說明。

圖17為SR鎖存器電路結構。

圖17

Q和Q′為互補輸出端,正常工作時,它們的輸出狀態相反(規定,兩個埠的輸入狀態一定相反)。通常用Q的狀態表示觸發器的狀態,即: Q = 0,Q′ = 1時,稱為觸發器的「0」態;Q = 1,Q′ = 0時,稱為觸發器的「1」態。SR鎖存器輸出特性表如圖18所示,圖19是其邏輯符號。

圖18

圖19

1.5.2電平觸發的SR觸發器

在數字系統中,為協調各部分的動作,常常要求某些觸發器在同一時刻動作(即改變狀態,也稱為翻轉),這就要求有一個同步信號來控制,這個控制信號叫做時鐘信號(Clock),簡稱時鐘,用CLK表示。具有時鐘脈衝控制的觸發器統稱為時鐘觸發器,又稱鍾控觸發器。 電平觸發器(也稱同步觸發器)是其中最簡單最常見的一種。

圖20是SR觸發器的電路結構和工作原理,圖21是其功能表,圖22是其邏輯符號。

圖20

圖21

圖22

1.6組合邏輯和時序邏輯

組合邏輯的特點是任意時刻的輸出僅僅取決於該時刻的輸入,與電路原本的狀態無關,邏輯中不牽涉跳變沿信號的處理。

時序邏輯是其特點為任意時刻的輸出不僅取決於該時刻的輸入,而且還和電路原來的狀態有關。電路裡面有存儲元件用於記憶信息,從電路行為上講,不管輸入如何變化,僅當時鐘的沿(上升沿或下降沿)到達時,才有可能使輸出發生變化。

2.1 STA(靜態時序分析)

簡介:靜態時序分析是檢查IC系統時序是否滿足要求的主要手段。以往時序的驗證依賴於仿真,採用仿真的方法,覆蓋率跟所施加的激勵有關,有些時序違例會被忽略。此外,仿真方法效率非常的低,會大大延長產品的開發周期。靜態時序分析工具很好地解決了這兩個問題。它不需要激勵向量,可以報出晶片中所有的時序違例,並且速度很快。STA在設計中的位置如下(不止一個環節哦)。

圖23

作用:通過靜態時序分析,可以檢查設計中的關鍵路徑分布;檢查電路中的路徑延時是否會導致setup違例;檢查電路中是否由於時鐘偏移過大導致hold違例;檢查時鐘樹的偏移和延時等情況。此外靜態時序分析工具還可以與信號完整性工具結合在一起分析串擾問題。

常用的靜態時序工具是SYNOPSYS公司的PrimeTime。

圖24

2.2 Timing Arc(時序弧)

簡介:如果兩個pin之間在timing上存在因果關係,我們就把這種時序關係稱為Timing arc,主要分為定義時序延遲,和定義時序檢查兩種。為什麼叫它時序弧?因為時序圖中經常用一條弧形線段來表示它。

如圖25所示,圖中弧線部分都可以表示為時序弧。

圖25

2.2.1時序延遲的Timing Arc

Combinational Timing Arc:最基本的TimingArc。TimingArc 如果不特別指明的話,就是屬於此類。定義了從特定輸入到特定輸出(A到Z)的延遲時間。

Edge Timing Arc:定義時序組件ClockActive Edge 到數據輸出的延遲時間,依據Clock上升或下降分為2類。

Edge Timing Arc:定義時序組件ClockActive Edge 到數據輸出的延遲時間,依據Clock上升或下降分為2類。

Preset and Clear Timing Arc:定義時序組件清除信號(Preset或Clear發生後,數據被清除的速度,依據清除信號上升或下降及是Preset或Clear分為4類。這個TimingArc 通常會被取消掉,因為它會造成信號路徑產生迴路,這對STA而言是不允許的。

Three State Enable & Disable Timing Arc:定義 Tri-State 組件致能信號(Enable)到輸出的延遲時間,依據Enable或Disable分為2類。

2.2.2時序檢查的Timing Arc

Setup Timing Arc:定義時序組件(Sequential Cell,如Flip-Flop、Latch 等)所需的Setup Time。

Hold Timing Arc:定義時序組件所需的 Hold Time,依據Clock 上升或下降分為2類。

Recovery Timing Arc:定義時序組件ClockActive Edge 之前,清除信號不準啟動的時間,依據Clock上升或下降分為2類。

Removal Timing Arc:定義序向組件ClockActive Edge 之後,清除信號不準啟動的時間,依據Clock上升或下降分為2類。

Width Timing Arc:定義信號需維持穩定的最短時間,依據信號維持在0或1的位準分為2類。

2.3 Timing Path(時序路徑)

由startponit和endpoint組成。Startpoint:設計中數據被時鐘沿載入的那個時間點,包括時序單元的input pin、design的input port。Endpoint:數據通過了組合邏輯被另一個時鐘沿載入的時間點,時序元件的數據輸入pin、設計的output port。

Timing Path大致分為以下幾類:IO2REG、REG2REG、REG2IO、IO2IO(「2」表示「to」)。IO2REG:開始於一個input port 且結束於時序元件的數據輸入端。REG2REG:開始於時序元件的時鐘pin且結束於時序元件的數據輸入端。REG2IO:開始於時序元件的時鐘pin且結束在一個output port。IO2IO:開始於input port 且結束於 output port。

2.4 Slack

餘量,就是signal的arrive time和require time的差值(或require time和arrive time的差值);每一個path都有專屬的slack,slack值可以是正,0或者負。

2.5margin

裕量,當時序要求滿足,slack為正時,這個值就是margin。

2.6Critical Path

某一個path擁有最壞的slack的話則稱之為 critical path,若是所有的path都沒有時序違規,則slack都是正數,此時最小的那個slack則是critical path。

2.7group path

路徑可以被分組(group)來得到各自的時序分析,時序報告和優化。

2.8發送時鐘

兩級寄存器中觸發第一級寄存器的時鐘。

2.9捕獲時鐘

兩級寄存器中觸發第二級寄存器的時鐘。

2.10clock skew(時鐘偏移)

同一時鐘源到達不同的寄存器的延時不同。

2.11clock jitter(時鐘抖動)

時鐘頻率和相位會不斷變化,脈衝寬度會發生變化。

2.112clock latency(時鐘延時)

簡介:時鐘從時鐘源(比如說晶振)出發到達觸發器時鐘埠的延時,稱為時鐘的延時,包含時鐘源延遲(source latency)和時鐘網絡的延遲(network latency)。

分類。clock source latency(時鐘源延遲):也稱為插入延遲(insertion delay),是時鐘信號從其實際時鐘原點到設計中時鐘定義點(時鐘的輸入引腳)的傳輸時間。clock network latency(時鐘網絡的延遲):是時鐘信號從其定義的點(埠或引腳)到寄存器時鐘引腳的傳輸,經過緩衝器和連線產生的延遲(latency) 。

2.13transition(時鐘轉換時間)

時鐘的上升沿跳變到下降沿或者時鐘下降沿跳變到上升沿的時間。時鐘的轉換時間與與單元的延時時間(也就是器件特性)還有電容負載有關。

2.14 capacitance

負載電容。

2.15fanout

時鐘扇出。

2.16driving cell

驅動單元。

2.17最快路徑和最慢路徑

簡介。最快路徑:指在信號傳播延時計算中調用最快工藝參數的路徑;根據信號的分類可以分為最快時鐘路徑和最快數據路徑。最慢路徑:指在信號傳播延附計算中調用最慢工藝參數的路徑;分為最慢時鐘路徑和最慢數據路徑。

為什麼存在最快和最慢路徑:在一個庫中,儘管電路器件單元已經被綜合映射,但是工具可以通過改變周圍的環境來得到不同的單元延時,所以即使是同一個庫,調用工藝參數不一樣的情況下,:其單元延時是不同的,因此就有了最快路徑和最慢路徑。

2.18uncertainty

uncertainty,簡稱時鐘不確定性。主要用來定義Clock信號到時序器件的Clock端可能早到或晚到的時間,降低了時鐘抖動jitter對有效時鐘周期的影響。值得注意的是,在setup check中,clock uncertainty是代表著降低了時鐘的有效周期;而在hold check中,clock uncertainty是代表著hold check所需要滿足的額外margin。

2.19SDC(Synopsys design constraints)

簡介:即時序分析的設計約束文件,對電路的時序,面積,功耗進行約束,它是設計的命脈,決定了晶片是否滿足設計要求的規範。

分類。描述晶片的工作速度,即時鐘的頻率:create_clock,create_generated_clock等。描述晶片的邊界約束:set_input_delay, set_output_delay等。描述晶片的一些設計違反rule(DRV):set_max_fanout,set_max_capacitance, set_max_transition等。描述設計中一些特殊的路徑:set_false_path,set_multicycle_path等。描述設計中一些需要禁止的timing arc:set_disable_timing等。

3.1 launch edge

時序分析起點,第一級寄存器數據變化的時鐘邊沿,也是靜態時序分析的起點。

3.2 latch edge

時序分析終點,數據鎖存的時鐘邊沿,也是靜態時序分析的終點。

3.3Setup Time (Tsu)

簡介:建立時間,是指在時鐘沿到來之前數據從不穩定到穩定所需的時間,假設建立的時間不滿足要求那麼數據將不能在這個時鐘上升沿被穩定的打入觸發器。

圖26

3.4 Hold Time (Th)

保持時間,是指數據穩定後保持的時間。假設保持時間不滿足要求那麼數據相同也不能被穩定的打入觸發器。

圖27

3.5 Clock-to-Output Delay(Tco)

數據輸出延時,這個時間指的是當時鐘有效沿變化後,數據從輸入端到輸出端的最小時間間隔。

3.6 Clock skew

時鐘偏斜,是指一個時鐘源到達兩個不同寄存器時鐘端的時間偏移。計算公式:Tskew = Tclk2 - Tclk1。

圖28

3.7Data Arrival Time

輸入數據在有效時鐘沿後到達所須要的時間。主要分為三部分:時鐘到達寄存器時間(Tclk1),寄存器輸出延時(Tco)和傳輸數據延時(Tdata)。計算公式:Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata。

圖29

3.8Clock Arrival Time

時鐘到達時間,時鐘從latch邊沿到達鎖存寄存器時鐘輸入端所消耗的時間為時鐘到達時間。計算公式:Clock Arrival Time = Lacth edge + Tclk2。

圖30

3.9 Data Required Time(setup/hold)

簡介:數據需求時間,在時鐘鎖存的建立時間和保持時間之間數據必須穩定,從源時鐘起點達到這樣的穩定狀態須要的時間即為數據需求時間。(建立時間)數據需求時間:Data Required Time = Clock Arrival Time – Tsu。(保持時間)數據需求時間:Data Required Time = Clock Arrival Time + Th。

圖31

3.10Setup Slack和Hold Slack

建立時間餘量,當數據需求時間大於數據到達時間時,就說時間有餘量,Slack是表示設計是否滿足時序的一個稱謂。計算公式:Setup slack = Data Required Time - Data Arrival Time。由公式可知。正的slack表示數據需求時間大於數據到達時間,滿足時序(時序的餘量)。負的slack表示數據需求時間小於數據到達時間,不滿足時序(時序的欠缺量)。

圖32

Hold slack可根據定義類比。

3.11時鐘最小周期

簡介。系統時鐘能執行的最高頻率。最小時鐘的要求:(1)當數據需求時間大於數據到達時間時,時鐘具有餘量。(2)當數據需求時間小於數據到達時間時,不滿足時序要求,寄存器經歷亞穩態或者不能正確獲得數據。(3)當數據需求時間等於數據到達時間時。這是最小時鐘執行頻率。剛好滿足時序。

計算過程。滿足要求:Data Required Time = Data Arrival Time(滿足建立時間要求)。即:Tmin + Latch edge + Tclk2 - Tsu = Launch edge + Tclk1 + Tco + Tdata。得到:Tmin = Tco + Tdata + Tsu – Tskew。

4.1單一模式

簡介:在該模式下,工具只會在指定的一種工作條件下檢查建立時間和保持時間,該工作條件可能是最好的、典型的、最壞的中的一種,但只能是單一的一種。

建立時間分析。特徵:捕獲時鐘選擇最快路徑,發射時鐘選擇最慢路徑,數據路徑選擇最慢路徑。公式:發送時鐘最慢路徑延時+最慢數據路徑延時≤捕獲時鐘最快路徑延時+時鐘周期-終止點時序單元建立時間。如圖33所示。

圖33

保持時間分析。捕獲時鐘選擇最慢路徑,發射時鐘選擇最快路徑,數據路徑選擇最快路徑。計算公式:發射時鐘最快路徑延時 + 最快數據路徑延時≥捕獲時鐘最慢路徑延時 + 終止點時序單元保持時間。

4.2最好最壞模式

對於最好-最壞分析模式,靜態時序分析工具會同時在PVT環境中的最好的和最壞的工作環境下檢查建立時間和保持時間。也就是說,使用這個方式的時候,至少需要讀入兩個庫(環境),一個用來設置最好的工作環境(或者說延時最小),一個用來設置最壞的工作環境(或者說延時最大)。

建立時間分析。最好-最壞分析模式中建立時間的基本計算公式與單一分析模式下建立時間的基本計算公式一致,不同點在於計算建立時間所使用的工作環境不同,在計算建立時間過程中靜態時序分析工具調用邏輯單元的最大(max)延時時序庫,並用來檢查時序路徑最大延時是否滿足觸發器建立時間。如圖34.

圖34

保持時間分析。同樣,最好-最壞路徑分析模式中保持時間的基本計算公式與單一分析模式下保持時間的基本計算公式一致。不同點在於計算保持時間所使用的工作環境不同。在計算保持時間過程中,靜態時序分析工具調用邏輯單元的最小(min)延時時序庫,並用來檢查時序路徑最小延時是否滿足觸發器保持時間的約束。 即進行保持時間檢查時,始發點觸發器的發射時鐘延時、終止點觸發器捕獲時鐘延時和從始發點到終止點的數據路徑延時都是基於最好工作條件下所計算的路徑延延時。如圖35.

圖35

4.3OCV模式

OCV(on-chip variation)即片上誤差,在晶片變化相關工作模式下,與最好-最壞分析模式一樣,靜態時序分析工具也會同時在PVT境中的最好的和最壞的工作環境下檢查建立時間和保持時間,也就是要讀入兩個庫。

建立時間分析。OCV分析模式中建立時間的基本計算公式與其他分析模式下建立時間的基本計算公式一致,不同點在於計算最快路徑和最慢路徑所使用的工作環境不同,在計算建立時聞過程中靜態時序分析工具調用時序單元的最大延時時序庫來計算最慢路徑的延時,同時調用邏輯單元的最小延時時序庫來計算最快路徑的延時,只檢查時序路徑的延時是否滿足觸發器建立時間的約束。進行建立時間檢查時。始發點觸發器的發射時鐘採用的是最壞條件下最慢時鐘路徑,終止點觸發器的捕獲時鐘採用的是最好條件下最快時鐘路徑,而從始發點到終止點的數據路徑的延時則是在最壞條件下最慢數據路徑延時。如圖36所示。

圖36

保持時間分析。選用的路徑延遲的好壞與建立時間分析相反。

4.4考慮時序減免的OCV模式

考慮時序減免(timing derate)的OCV模式。時序減免(timing derate)的作用是很據減免(derating)係數,靜態時序分析工具會在時序路徑的每級邏輯門、連線和埠上都加上或減去一個原來延時值乘以減免係數值的延時作為最終的延時結果。設置時序減免值的目的是使時序分析結果更加符合實際情況。使用這種方式需要設置derating係數,係數值需要通過實際工程經驗總結出來。

4.5考慮時鐘路徑悲觀移除的OCV模式

考慮時鐘路徑悲觀移除(CPPR)的OCV模式。可以分為不考慮時序減免和考慮時序減免情況。

4.6 PT guide中關於三種模式的描述

建立時間分析如圖37所示。保持時間如圖38所示。

圖37

圖38

4.7其他分析模式

其他先進的分析模式如AOVC、SOCV、POCV等,後面有空再給大家介紹。

5.1準備工作

5.1.1時鐘的非理想性

時鐘對於時序電路至關重要。在進行RTL設計時,可以認為時鐘是理想的,但在靜態時序分析的時候,必須考慮到實際的時鐘情形。時鐘模型的精度直接影響了靜態時序分析的精度。時鐘的非理想性包括:時鐘偏移(clock skew)、時鐘抖動(clock jitter)。實際情況中,振蕩器、互連、電源、負載都會影響到時鐘,導致時鐘出現偏移、抖動。

5.1.2對實際的時鐘進行建模

這些定義都是加在SDC中,先以圖39來為例說明。

圖39

考慮圖中的電路,電路中時鐘源位於晶片外部。我們將時鐘定義在晶片埠上,從時鐘源到達埠需要經過3ns左右的延時(板級走線的延時),從時鐘埠到寄存器要經過1ns左右的延時(時鐘樹的延時),對時鐘樹的延時進行建模可以採取下面的辦法。

先在埠上定義時鐘:create_clock per8.0 [get_ports clk]。

設置從時鐘源到時鐘埠的板級延時:set_clock_latency  source 3 clk。

設置時鐘樹本身的延時。在布局布線之前可以採取下面的方法:set_clock_latency 1 clk。在布局布線之後,可以得到時鐘樹延時的確定值,採用如下的命令:set_propagated_clock clk。

知道時鐘不確定性(例如0.2)時建模,如圖40,此時可以:set_clock_latency 2.8 source early [get_ports clk];set_clock_latency 3.2 source late  [get_ports clk]。

圖40

分頻時鐘的建模。以圖41為例(此例為2分頻時鐘)。在設計中,往往存在分頻時鐘,如果進行靜態時序分析時,直接援用create_clock來設置,則PT會將分頻後的時鐘看做是一個與源時鐘毫無關係的時鐘。這樣在分析源時鐘域與分頻時鐘域之間的信號時,可能會出現問題。正確設置分頻時鐘方法:create_generated_clock  -name divide -source [get  -pins U4/clk] -divide-by 2 [get  -pins U4/Q]。

圖41

5.2主要流程

數據讀入:靜態時序分析工具讀入門級網表、時序約束等信息。

將電路分解為時序路徑:即將電路轉換為時序路徑的集合。時序路徑是一個點到點的數據通路,數據沿著時序路徑進行傳遞。它的起點是輸入埠或者寄存器的時鐘,終點是輸出埠或者一個寄存器的輸入引腳,每個路徑最多只能穿過一個寄存器。這樣時序路徑就可以劃分為:輸入埠到寄存器、寄存器到寄存器、寄存器到輸出埠、輸入埠到輸出埠。如下圖所示,分析其時序路徑。

計算每個路徑上面的延時:在一個路徑上,可能包含這幾類延時:連線延時(布局布線前後的延時計算方法不一樣)、組合邏輯的單位延時(影響因子有輸入信號的轉換時間,該值也決定輸入電晶體的翻轉速度、負載、單元本身的固有延時、製程、電壓、溫度等)、寄存器從clk端到Q端的延時。一個路徑上的延時是該路徑上所有連線的延時與單位延時的綜合。延時一般定義為從輸入跳變的50%時刻到輸出跳變的50%之間的時間。

檢查路徑時序約束是否滿足:路徑約束主要指的是建立時間約束和保持時間約束。在寄存器的綜合庫描述中對寄存器的D端定義了建立時間和保持時間的約束。所謂建立時間約束是指在採樣時鐘到達之前,數據應該穩定的時間;保持時間是指在時鐘到達之後,數據應該保持的時間,這樣才能保證寄存器正確地鎖存數據。對於純組合邏輯,時序分析主要檢查最大延時約束和最小延時路徑。這種情況比較簡單。

5.3構建時序分析腳本的過程、常用命令和腳本實例

5.3.1構建腳本

圖42

如圖42所示。大致過程為:(1)讀入設計的相關信息(連結庫、網表,如果是PR之後的靜態時序分析還需要讀入寄生參數信息);(2)設置驅動及負載。(3)定義時鐘;(4)設置建立時間和保持時間;(5)設置約束(max_load、max_trsition、max_capacitance、max_latency等);(6)分析時序(用report_timing  等檢查時序,用report_constraint 檢查是否有違例)。

5.3.2常用命令

圖43

5.3.3腳本實例

圖44

本文是一個全面的STA入門文章,STA涉及到的大部分概念都涉及到,當然比較淺顯,但是構建了一個系統的認識。後面筆者有空會陸續介紹:RC網絡、PVT、RC corner、delay的計算模型、OCV、AOCV、SOCV、POVC、PT軟體使用等知識。另外,錯漏之處請見諒,歡迎友好提醒和指教。

大同學吧,是全國100+重點高校IT電子類等理工科大學生都在關注的校招、內推、實習的求職服務平臺,提供海量網際網路及半導體行業實習、校招等招聘信息,免費分享面經筆經、求職內推、行業乾貨,助力學子順利拿下理想offer!!我們歡迎任何形式的合作,發布招聘信息,請添加微信號:lgsdt188。

相關焦點

  • FFT處理器寄生參數提取和靜態時序分析
    關鍵詞:FFT處理器;Star_RCXT;寄生參數抽取;Primetime;靜態時序分析引言對於應用0.18mm及以下工藝的設計而言,二維提取進行Sign-off靜態時序分析就顯得有些粗略,而且精度不夠。
  • 靜態時序工程師,面試必知知識點
    關注並標星大同學吧每天1次,打卡閱讀了解崗位職責和必備技能今天是大同學吧崗位專欄第55期職位介紹之靜態時序分析工程師人們常常將工作時鐘頻率作為高性能的集成電路的特性之一。靜態時序分析在電路時序快速、準確的測量中扮演了重要角色,它使用了簡化的模型,而且它有限地考慮了信號之間的邏輯互動,所以靜態時序分析能夠更快速地完成任務。靜態時序分析可以在不進行動態仿真的情況下確定電路是否滿足時序約束。
  • 從靜態時序分析到SDRAM時序收斂(上篇)
    下面我們進入正題,今天我們講時序本文引用地址:http://www.eepw.com.cn/article/278905.htm  一、從靜態時序分析說起  我理解的靜態時序分析,就是我們在不加激勵的情況下,通過對電路進行時序的延遲計算,預計電路的工作流程,對電路提出我們需要的一些約束條件
  • 靜態時序分析聖經翻譯計劃10——第五章:延遲計算 (下)
    取決於所執行的時序分析的類型(最大或最小時序路徑分析),這些壓擺值中的任何一個都可能是正確的。進行最大時序路徑分析時有兩種可能性:● 最差的壓擺傳播(Worst slew propagation):此模式選擇要在合併點傳播最壞的壓擺,這將是圖5-10(a)中的壓擺。
  • 《數字集成電路靜態時序分析基礎》筆記③
    網絡課程《數字集成電路靜態時序分析基礎》的筆記地址:https://www.iccollege.cn/portal/courseDetail/193.moocTCL的應用Synopsys Tcl例如,統計時鐘數量,人數顯然不合理,可以用腳本語言統計,但是可以更加簡單,直接用Synopsys Tcl的拓展命令更加便捷
  • 約束、時序分析的概念介紹
    (註:以下主要設計時序約束)   A 時序約束的概念和基本策略   時序約束主要包括周期約束(FFS到FFS,即觸發器到觸發器)和偏移約束(IPAD到FFS、FFS到OPAD)以及靜態路徑約束(IPAD到OPAD)等3種。通過附加約束條件可以使綜合布線工具調整映射和布局布線過程,使設計達到時序要求。
  • 每日學習:多時鐘域的設計和綜合技巧(一)
    靜態時序分析靜態時序分析是驗證設計中的每個信號路徑是否滿足所需時序要求的過程。靜態時序分析不是用於驗證設計的功能,只驗證設計是否符合時序目標。靜態時序分析與動態時序驗證相比有三個主要優點:(1)靜態時序分析工具可以驗證任何兩個時序器件之間的每條路徑,(2)靜態時序分析不需要生成任何測試向量,(3)靜態時序分析工具比動態時序驗證快幾個數量級。
  • 時序資料庫入門系列: 時序數據的查詢
    上篇文章時序資料庫入門系列:什麼是時序資料庫介紹了時序資料庫的定義和發展趨勢,這次接著分享下時序資料庫的查詢相關的概念。
  • 時序分析的一些基本概念
    時序分析時FPGA設計中永恆的話題,也是FPGA開發人員設計進階的必由之路。慢慢來,先介紹時序分析中的一些基本概念。本文引用地址:http://www.eepw.com.cn/article/201808/385204.htm1.
  • 乾貨| FPGA開發設計必經之路:時序分析
    時序分析是慢慢來,先介紹時序分析中的一些基本概念。時鐘的時序特性主要分為抖動(Jitter)、偏移(Skew)、佔空比失真(Duty Cycle Distortion)3點。對於低速設計,基本不用考慮這些特徵;對於高速設計,由於時鐘本身的原因造成的時序問題很普遍,因此必須關注。
  • 【第三章:標準單元庫 下】靜態時序分析聖經翻譯計劃
    3.6 黑盒的接口時序模型本節將介紹黑盒(任意模塊或塊)的IO接口時序弧,時序模型將捕獲黑盒(black box)IO接口(interface)的時序。黑盒的接口時序模型可以具有組合邏輯弧,也可以有時序邏輯弧。通常,這些時序弧也可能取決於狀態。
  • 時序分析中的一些基本概念
    時序分析時FPGA設計中永恆的話題,也是FPGA開發人員設計進階的必由之路。慢慢來,先介紹時序分析中的一些基本概念。本文引用地址:http://www.eepw.com.cn/article/201710/365595.htm1.
  • 第五章 時序圖網絡建模
    5.1.1 時序圖定義在數時序圖之前,我們先來看看靜態圖結構。要對時序圖網絡進行分析,必須首先對時序圖網絡進行數據模型建模,其常見的數據模型主要有三種,下面分別進行介紹。5.2.3 頂點多副本模型頂點多副本模型是指通過時間為頂點構建副本,將時序圖完全轉換成靜態圖,即在同一時刻的圖中同時存在頂點和頂點的多個副本,通過頂點副本將時序圖轉換成靜態圖。該種數據模型的特點是隨著數據的增多,圖的規模不斷增大,稠密且大規模的圖數據不斷增多,這種方法使圖的規模激增,因此不能很好的應用於大圖數據中。
  • 時序邏輯電路的分析方法
    打開APP 時序邏輯電路的分析方法 佚名 發表於 2009-04-07 23:18:11 時序邏輯電路的分析方法1.
  • LSTM在金融時序分析中的應用
    LSTM(Long Short Term Memory, 長短期記憶網絡)是循環神經網絡(Recurrent Neural Network, RNN)的一種特例,在金融領域多用於時序分析場景
  • 靜態時序分析聖經翻譯計劃9——第五章:延遲計算 (上)
    5.1 概述5.1.1 延遲計算基礎典型的設計中包括各種組合邏輯單元和時序邏輯單元,我們使用如圖5-1中所示的邏輯設計來描述延遲計算的概念:圖5-1庫中為每個單元的每個輸入引腳都指定了電容值,因此,設計中的每個網絡都具有容性負載,該負載是該網絡每個扇出的引腳負載電容再加上互連線的寄生電容之和。
  • 發燒Ke:Kindle之外 小眾電子閱讀器面面觀
    發燒Ke:Kindle之外 小眾電子閱讀器面面觀 僅有黑白灰度,用秒來計算的刷新速度也與普通屏幕完全無法相比,所以智能顯示靜態畫面或者幀數很低的動態畫面。但是,電子墨水提供了一種非常接近傳統紙張的效果,對於長時間的閱讀來說,眼睛會相對舒適一些,同時設備的續航時間也達到了以月計算,這提供了與閱讀紙質書接近的體驗。於是,電子書的時代來臨了。
  • FPGA時序分析—vivado篇
    點擊藍字關注我們FPGA之家-中國最好最大的FPGA純工程師社群最近看了看了一篇《vivado使用誤區與進階》的文章,覺得寫得挺不錯了,看完後自己對時序分析又有了更深一層的理解時序分析的基本步驟:一個合理的時序約束可以分為以下步驟:時序約束整體的思路與之前我說的方法基本一致。整體的思路如下:先是約束時鐘,讓軟體先解決內部時序問題;(在這一步驟中可以適當加入時序例外,以便時序通過)然後再加入IO的延遲約束;最後針對沒有過的時序,添加時序例外。
  • 數據分析中如何進行靜態分類分析
    分類分析是指將不同的數值區間分別定義為不同的指標,例如將利潤運營指標(KPI)定義為高盈利、中盈利虧損三種類型,通過計算公式,將銷售訂單歸類,最終進行求和等分析。分類分析分為兩種:靜態分類分析和動態分類分析。
  • 實例介紹UML時序圖用法
    UML的基本原理UML建模機制描述UML有靜態和動態兩種分析方法和建模機制。靜態建模分析主要通過類圖、對象圖、用例圖等來描述,一般用於系統的核心模塊設計;動態建模通過合作圖、狀態圖、活動圖、UML時序圖來表述,可以用來描述系統對象間的關係模式。