1涉及的數(shù)字電路基礎(chǔ)知識
模擬信號:在時間和幅值上是連續(xù)變化的電信號。
圖1
數(shù)字信號:在時間和幅值上是離散的電信號。
圖2
數(shù)字電路的基本工作信號是二進制的數(shù)字信號,而二進制數(shù)只有“0”和“1”兩個基本數(shù)字,對應(yīng)在電路上只需要兩種不同的工作狀態(tài),即高電平和低電平。0和1表示兩種對立的工作狀態(tài),并不表示數(shù)量的大小在數(shù)字電路中,通常用電位的高低去控制門電路,規(guī)定用1表示高電平,用0表示低電平,為正邏輯,若用0表示高電平,用1表示低電平,為負(fù)邏輯。
1.2數(shù)字電路的表示方法
1.2.1邏輯函數(shù)表達(dá)式
用邏輯函數(shù)表示輸入信號與輸出信號的關(guān)系。邏輯表達(dá)式中的運算一般為布爾運算,與普通代數(shù)不同,布爾代數(shù)中的變量是二元值的邏輯變量。
圖3
1.2.2真值表
用表格表示門電路輸入信號與輸出信號對應(yīng)的邏輯關(guān)系。
圖4
1.2.3邏輯電路圖
圖5
1.2.4波形圖
以波的形式表示門電路輸入與輸出的邏輯關(guān)系。
圖6
其他表達(dá)方法還有:卡諾圖法(一種幾何圖形,可以用來表示和簡化邏輯函數(shù)表達(dá)式);點陣圖法(是早期可編程邏輯器件中直觀描述邏輯函數(shù)的一種方法);硬件設(shè)計語言法(是采用計算機高級語言來描述邏輯函數(shù)并進行邏輯設(shè)計的一種方法,它應(yīng)用于可編程邏輯器件中,目前采用最廣泛的硬件設(shè)計語言有HDL、VHHDL等)。
1.3數(shù)字電路中的邏輯關(guān)系
數(shù)字電路中往往用輸入信號表示“條件”,用輸出信號表示“結(jié)果”,條件與結(jié)果之間的因果關(guān)系稱為邏輯關(guān)系。基本的邏輯關(guān)系:與邏輯、或邏輯、非邏輯。能實現(xiàn)某種邏輯關(guān)系的電路稱為邏輯門電路。基本邏輯門電路:與門、或門、非門。
1.3.1與門電路
與邏輯關(guān)系:只有決定某事件的全部條件同時具備時,該事件才發(fā)生,邏輯與,或稱邏輯乘。表達(dá)式:Y=A·B或Y=AB。邏輯功能:有 0 出 0 ,全 1 出 1 。說明與門定義的電路(圖7)、邏輯符號(圖8)、真值表(圖9)。
圖7
圖8
圖9
1.3.2或門電路
或邏輯關(guān)系:決定某事件的幾個條件中,至少有一個條件具備,該事件都會發(fā)生,或稱邏輯加。表達(dá)式:Y=A+B。邏輯功能:有 1 出 1,全 0 出 0 。說明或門定義的電路(圖10)、邏輯符號(圖11)、真值表(圖12)。
圖10
圖11
圖12
1.3.3非門電路
非邏輯關(guān)系:當(dāng)條件具備時,該事件不發(fā)生;而當(dāng)條件不具備時,該事件反而發(fā)生,條件和結(jié)果總是呈相反狀態(tài)。稱為邏輯非,也稱為邏輯反。表達(dá)式: 。邏輯功能:入 0 出 1 ,入 1 出 0 。說明非門定義的電路(圖13)、邏輯符號(圖14)、真值表(圖15)。
圖13
圖14
圖15
1.4脈沖波形和脈沖波形的一些特性參數(shù)
獲得脈沖的方法:(1)自激振蕩電路直接產(chǎn)生矩形脈沖。由多諧振蕩器來實現(xiàn)。(2)將已有波形(正弦波、鋸齒波等)整形為矩形脈沖。由施密特觸發(fā)器和單穩(wěn)態(tài)觸發(fā)器來實現(xiàn)555 定時器是構(gòu)成多諧振蕩器、施密特觸發(fā)器和單穩(wěn)態(tài)觸發(fā)器的既經(jīng)濟又簡單實用的器件。
圖16
矩形脈沖的一些特性參數(shù):
脈沖周期T:周期性重復(fù)的脈沖序列中,兩個相鄰脈沖之間的時間間隔。有時也使用頻率(f=1/T)表示單位時間內(nèi)脈沖重復(fù)的次數(shù)。
脈沖幅度Vm :脈沖電壓的最大變化幅度。
脈沖寬度tW:從脈沖前沿到達(dá)0.5Vm起,到脈沖后沿到達(dá)0.5Vm為止的一段時間。
上升時間tr:脈沖上升沿從0.1Vm上升到0.9Vm所需要的時間。
下降時間tf:脈沖下降時間從0.9Vm下降到0.1Vm所需要的時間。
占空比q:脈沖寬度與脈沖周期的比值,亦即q=tW/T。
此外,在將脈沖波形或者產(chǎn)生電路用于具體的數(shù)字系統(tǒng)時,有時還可能有一些特殊的要求,例如脈沖周期和幅度的穩(wěn)定性等。這時還需要增加一些相應(yīng)的性能參數(shù)來說明。
1.5半導(dǎo)體存儲電路基礎(chǔ)
各種門電路雖然都有兩種不同的輸出狀態(tài)(高、低電平,亦即1、0),但是都不能自行保持。在各種復(fù)雜的數(shù)字電路中不但需要對二值信號進行數(shù)值運算和邏輯運算,還經(jīng)常需要將運算結(jié)果保存下來。為此,需要使用具有記憶功能的基本邏輯單元。能夠存儲1位二值信號的基本單元電路統(tǒng)稱為觸發(fā)器。
鎖存器和觸發(fā)器:鎖存器---不需要觸發(fā)信號,由輸入信號直接完成置0或置1操作。
觸發(fā)器---需要一個觸發(fā)信號(稱為時鐘信號clock),只有觸發(fā)信號有效時,才按輸入信號完成置0或置1操作。鎖存器是靜態(tài)電路,觸發(fā)器是動態(tài)電路。
觸發(fā)器具有如下特點:有兩個穩(wěn)定狀態(tài)(簡稱穩(wěn)態(tài)),用來表示邏輯 0 和 1。在輸入信號作用下,觸發(fā)器的兩個穩(wěn)定狀態(tài)可相互轉(zhuǎn)換(稱為狀態(tài)的翻轉(zhuǎn))。 輸入信號消失后,新狀態(tài)可長期保持下來,具有記憶功能。
觸發(fā)器的分類如下。按觸發(fā)方式分:電平觸發(fā)、脈沖觸發(fā)、邊沿觸發(fā)。按邏輯功能分:SR 觸發(fā)器、D 觸發(fā)器、JK 觸發(fā)器、T 觸發(fā)器。
下文大致介紹一下SR鎖存器和SR觸發(fā)器,其它有興趣的內(nèi)容可以自行去學(xué)習(xí)。
1.5.1SR鎖存器
SR鎖存器(兩個Set-Reset Latch)是靜態(tài)存儲中當(dāng)中最基本、也是電路結(jié)構(gòu)最簡單的一種。通常它由兩個或非門或者與非門組成。下文以或非門組成的鎖存器為例說明。
圖17為SR鎖存器電路結(jié)構(gòu)。
圖17
Q和Q′為互補輸出端,正常工作時,它們的輸出狀態(tài)相反(規(guī)定,兩個端口的輸入狀態(tài)一定相反)。通常用Q的狀態(tài)表示觸發(fā)器的狀態(tài),即: Q = 0,Q′ = 1時,稱為觸發(fā)器的“0”態(tài);Q = 1,Q′ = 0時,稱為觸發(fā)器的“1”態(tài)。SR鎖存器輸出特性表如圖18所示,圖19是其邏輯符號。
圖18
圖19
1.5.2電平觸發(fā)的SR觸發(fā)器
在數(shù)字系統(tǒng)中,為協(xié)調(diào)各部分的動作,常常要求某些觸發(fā)器在同一時刻動作(即改變狀態(tài),也稱為翻轉(zhuǎn)),這就要求有一個同步信號來控制,這個控制信號叫做時鐘信號(Clock),簡稱時鐘,用CLK表示。具有時鐘脈沖控制的觸發(fā)器統(tǒng)稱為時鐘觸發(fā)器,又稱鐘控觸發(fā)器。 電平觸發(fā)器(也稱同步觸發(fā)器)是其中最簡單最常見的一種。
圖20是SR觸發(fā)器的電路結(jié)構(gòu)和工作原理,圖21是其功能表,圖22是其邏輯符號。
圖20
圖21
圖22
1.6組合邏輯和時序邏輯
組合邏輯的特點是任意時刻的輸出僅僅取決于該時刻的輸入,與電路原本的狀態(tài)無關(guān),邏輯中不牽涉跳變沿信號的處理。
時序邏輯是其特點為任意時刻的輸出不僅取決于該時刻的輸入,而且還和電路原來的狀態(tài)有關(guān)。電路里面有存儲元件用于記憶信息,從電路行為上講,不管輸入如何變化,僅當(dāng)時鐘的沿(上升沿或下降沿)到達(dá)時,才有可能使輸出發(fā)生變化。
2時序分析基礎(chǔ)概念
2.1 STA(靜態(tài)時序分析)
簡介:靜態(tài)時序分析是檢查IC系統(tǒng)時序是否滿足要求的主要手段。以往時序的驗證依賴于仿真,采用仿真的方法,覆蓋率跟所施加的激勵有關(guān),有些時序違例會被忽略。此外,仿真方法效率非常的低,會大大延長產(chǎn)品的開發(fā)周期。靜態(tài)時序分析工具很好地解決了這兩個問題。它不需要激勵向量,可以報出芯片中所有的時序違例,并且速度很快。STA在設(shè)計中的位置如下(不止一個環(huán)節(jié)哦)。
圖23
作用:通過靜態(tài)時序分析,可以檢查設(shè)計中的關(guān)鍵路徑分布;檢查電路中的路徑延時是否會導(dǎo)致setup違例;檢查電路中是否由于時鐘偏移過大導(dǎo)致hold違例;檢查時鐘樹的偏移和延時等情況。此外靜態(tài)時序分析工具還可以與信號完整性工具結(jié)合在一起分析串?dāng)_問題。
常用的靜態(tài)時序工具是SYNOPSYS公司的PrimeTime。
圖24
2.2 Timing Arc(時序弧)
簡介:如果兩個pin之間在timing上存在因果關(guān)系,我們就把這種時序關(guān)系稱為Timing arc,主要分為定義時序延遲,和定義時序檢查兩種。為什么叫它時序???因為時序圖中經(jīng)常用一條弧形線段來表示它。
如圖25所示,圖中弧線部分都可以表示為時序弧。
圖25
2.2.1時序延遲的Timing Arc
Combinational Timing Arc:最基本的TimingArc。TimingArc 如果不特別指明的話,就是屬于此類。定義了從特定輸入到特定輸出(A到Z)的延遲時間。
Edge Timing Arc:定義時序組件ClockActive Edge 到數(shù)據(jù)輸出的延遲時間,依據(jù)Clock上升或下降分為2類。
Edge Timing Arc:定義時序組件ClockActive Edge 到數(shù)據(jù)輸出的延遲時間,依據(jù)Clock上升或下降分為2類。
Preset and Clear Timing Arc:定義時序組件清除信號(Preset或Clear發(fā)生后,數(shù)據(jù)被清除的速度,依據(jù)清除信號上升或下降及是Preset或Clear分為4類。這個TimingArc 通常會被取消掉,因為它會造成信號路徑產(chǎn)生回路,這對STA而言是不允許的。
Three State Enable & Disable Timing Arc:定義 Tri-State 組件致能信號(Enable)到輸出的延遲時間,依據(jù)Enable或Disable分為2類。
2.2.2時序檢查的Timing Arc
Setup Timing Arc:定義時序組件(Sequential Cell,如Flip-Flop、Latch 等)所需的Setup Time。
Hold Timing Arc:定義時序組件所需的 Hold Time,依據(jù)Clock 上升或下降分為2類。
Recovery Timing Arc:定義時序組件ClockActive Edge 之前,清除信號不準(zhǔn)啟動的時間,依據(jù)Clock上升或下降分為2類。
Removal Timing Arc:定義序向組件ClockActive Edge 之后,清除信號不準(zhǔn)啟動的時間,依據(jù)Clock上升或下降分為2類。
Width Timing Arc:定義信號需維持穩(wěn)定的最短時間,依據(jù)信號維持在0或1的位準(zhǔn)分為2類。
2.3 Timing Path(時序路徑)
由startponit和endpoint組成。Startpoint:設(shè)計中數(shù)據(jù)被時鐘沿載入的那個時間點,包括時序單元的input pin、design的input port。Endpoint:數(shù)據(jù)通過了組合邏輯被另一個時鐘沿載入的時間點,時序元件的數(shù)據(jù)輸入pin、設(shè)計的output port。
Timing Path大致分為以下幾類:IO2REG、REG2REG、REG2IO、IO2IO(“2”表示“to”)。IO2REG:開始于一個input port 且結(jié)束于時序元件的數(shù)據(jù)輸入端。REG2REG:開始于時序元件的時鐘pin且結(jié)束于時序元件的數(shù)據(jù)輸入端。REG2IO:開始于時序元件的時鐘pin且結(jié)束在一個output port。IO2IO:開始于input port 且結(jié)束于 output port。
2.4 Slack
余量,就是signal的arrive time和require time的差值(或require time和arrive time的差值);每一個path都有專屬的slack,slack值可以是正,0或者負(fù)。
2.5margin
裕量,當(dāng)時序要求滿足,slack為正時,這個值就是margin。
2.6Critical Path
某一個path擁有最壞的slack的話則稱之為 critical path,若是所有的path都沒有時序違規(guī),則slack都是正數(shù),此時最小的那個slack則是critical path。
2.7group path
路徑可以被分組(group)來得到各自的時序分析,時序報告和優(yōu)化。
2.8發(fā)送時鐘
兩級寄存器中觸發(fā)第一級寄存器的時鐘。
2.9捕獲時鐘
兩級寄存器中觸發(fā)第二級寄存器的時鐘。
2.10clock skew(時鐘偏移)
同一時鐘源到達(dá)不同的寄存器的延時不同。
2.11clock jitter(時鐘抖動)
時鐘頻率和相位會不斷變化,脈沖寬度會發(fā)生變化。
2.112clock latency(時鐘延時)
簡介:時鐘從時鐘源(比如說晶振)出發(fā)到達(dá)觸發(fā)器時鐘端口的延時,稱為時鐘的延時,包含時鐘源延遲(source latency)和時鐘網(wǎng)絡(luò)的延遲(network latency)。
分類。clock source latency(時鐘源延遲):也稱為插入延遲(insertion delay),是時鐘信號從其實際時鐘原點到設(shè)計中時鐘定義點(時鐘的輸入引腳)的傳輸時間。clock network latency(時鐘網(wǎng)絡(luò)的延遲):是時鐘信號從其定義的點(端口或引腳)到寄存器時鐘引腳的傳輸,經(jīng)過緩沖器和連線產(chǎn)生的延遲(latency) 。
2.13transition(時鐘轉(zhuǎn)換時間)
時鐘的上升沿跳變到下降沿或者時鐘下降沿跳變到上升沿的時間。時鐘的轉(zhuǎn)換時間與與單元的延時時間(也就是器件特性)還有電容負(fù)載有關(guān)。
2.14 capacitance
負(fù)載電容。
2.15fanout
時鐘扇出。
2.16driving cell
驅(qū)動單元。
2.17最快路徑和最慢路徑
簡介。最快路徑:指在信號傳播延時計算中調(diào)用最快工藝參數(shù)的路徑;根據(jù)信號的分類可以分為最快時鐘路徑和最快數(shù)據(jù)路徑。最慢路徑:指在信號傳播延附計算中調(diào)用最慢工藝參數(shù)的路徑;分為最慢時鐘路徑和最慢數(shù)據(jù)路徑。
為什么存在最快和最慢路徑:在一個庫中,盡管電路器件單元已經(jīng)被綜合映射,但是工具可以通過改變周圍的環(huán)境來得到不同的單元延時,所以即使是同一個庫,調(diào)用工藝參數(shù)不一樣的情況下,:其單元延時是不同的,因此就有了最快路徑和最慢路徑。
2.18uncertainty
uncertainty,簡稱時鐘不確定性。主要用來定義Clock信號到時序器件的Clock端可能早到或晚到的時間,降低了時鐘抖動jitter對有效時鐘周期的影響。值得注意的是,在setup check中,clock uncertainty是代表著降低了時鐘的有效周期;而在hold check中,clock uncertainty是代表著hold check所需要滿足的額外margin。
2.19SDC(Synopsys design constraints)
簡介:即時序分析的設(shè)計約束文件,對電路的時序,面積,功耗進行約束,它是設(shè)計的命脈,決定了芯片是否滿足設(shè)計要求的規(guī)范。
分類。描述芯片的工作速度,即時鐘的頻率:create_clock,create_generated_clock等。描述芯片的邊界約束:set_input_delay, set_output_delay等。描述芯片的一些設(shè)計違反rule(DRV):set_max_fanout,set_max_capacitance, set_max_transition等。描述設(shè)計中一些特殊的路徑:set_false_path,set_multicycle_path等。描述設(shè)計中一些需要禁止的timing arc:set_disable_timing等。
3時序分析的常用概念
3.1 launch edge
時序分析起點,第一級寄存器數(shù)據(jù)變化的時鐘邊沿,也是靜態(tài)時序分析的起點。
3.2 latch edge
時序分析終點,數(shù)據(jù)鎖存的時鐘邊沿,也是靜態(tài)時序分析的終點。
3.3Setup Time (Tsu)
簡介:建立時間,是指在時鐘沿到來之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時間,假設(shè)建立的時間不滿足要求那么數(shù)據(jù)將不能在這個時鐘上升沿被穩(wěn)定的打入觸發(fā)器。
圖26
3.4 Hold Time (Th)
保持時間,是指數(shù)據(jù)穩(wěn)定后保持的時間。假設(shè)保持時間不滿足要求那么數(shù)據(jù)相同也不能被穩(wěn)定的打入觸發(fā)器。
圖27
3.5 Clock-to-Output Delay(Tco)
數(shù)據(jù)輸出延時,這個時間指的是當(dāng)時鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時間間隔。
3.6 Clock skew
時鐘偏斜,是指一個時鐘源到達(dá)兩個不同寄存器時鐘端的時間偏移。計算公式:Tskew = Tclk2 - Tclk1。
圖28
3.7Data Arrival Time
輸入數(shù)據(jù)在有效時鐘沿后到達(dá)所須要的時間。主要分為三部分:時鐘到達(dá)寄存器時間(Tclk1),寄存器輸出延時(Tco)和傳輸數(shù)據(jù)延時(Tdata)。計算公式:Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata。
圖29
3.8Clock Arrival Time
時鐘到達(dá)時間,時鐘從latch邊沿到達(dá)鎖存寄存器時鐘輸入端所消耗的時間為時鐘到達(dá)時間。計算公式:Clock Arrival Time = Lacth edge + Tclk2。
圖30
3.9 Data Required Time(setup/hold)
簡介:數(shù)據(jù)需求時間,在時鐘鎖存的建立時間和保持時間之間數(shù)據(jù)必須穩(wěn)定,從源時鐘起點達(dá)到這樣的穩(wěn)定狀態(tài)須要的時間即為數(shù)據(jù)需求時間。(建立時間)數(shù)據(jù)需求時間:Data Required Time = Clock Arrival Time – Tsu。(保持時間)數(shù)據(jù)需求時間:Data Required Time = Clock Arrival Time + Th。
圖31
3.10Setup Slack和Hold Slack
建立時間余量,當(dāng)數(shù)據(jù)需求時間大于數(shù)據(jù)到達(dá)時間時,就說時間有余量,Slack是表示設(shè)計是否滿足時序的一個稱謂。計算公式:Setup slack = Data Required Time - Data Arrival Time。由公式可知。正的slack表示數(shù)據(jù)需求時間大于數(shù)據(jù)到達(dá)時間,滿足時序(時序的余量)。負(fù)的slack表示數(shù)據(jù)需求時間小于數(shù)據(jù)到達(dá)時間,不滿足時序(時序的欠缺量)。
圖32
Hold slack可根據(jù)定義類比。
3.11時鐘最小周期
簡介。系統(tǒng)時鐘能執(zhí)行的最高頻率。最小時鐘的要求:(1)當(dāng)數(shù)據(jù)需求時間大于數(shù)據(jù)到達(dá)時間時,時鐘具有余量。(2)當(dāng)數(shù)據(jù)需求時間小于數(shù)據(jù)到達(dá)時間時,不滿足時序要求,寄存器經(jīng)歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù)。(3)當(dāng)數(shù)據(jù)需求時間等于數(shù)據(jù)到達(dá)時間時。這是最小時鐘執(zhí)行頻率。剛好滿足時序。
計算過程。滿足要求:Data Required Time = Data Arrival Time(滿足建立時間要求)。即:Tmin + Latch edge + Tclk2 - Tsu = Launch edge + Tclk1 + Tco + Tdata。得到:Tmin = Tco + Tdata + Tsu – Tskew。
4時序分析的三種模式
4.1單一模式
簡介:在該模式下,工具只會在指定的一種工作條件下檢查建立時間和保持時間,該工作條件可能是最好的、典型的、最壞的中的一種,但只能是單一的一種。
建立時間分析。特征:捕獲時鐘選擇最快路徑,發(fā)射時鐘選擇最慢路徑,數(shù)據(jù)路徑選擇最慢路徑。公式:發(fā)送時鐘最慢路徑延時+最慢數(shù)據(jù)路徑延時≤捕獲時鐘最快路徑延時+時鐘周期-終止點時序單元建立時間。如圖33所示。
圖33
保持時間分析。捕獲時鐘選擇最慢路徑,發(fā)射時鐘選擇最快路徑,數(shù)據(jù)路徑選擇最快路徑。計算公式:發(fā)射時鐘最快路徑延時 + 最快數(shù)據(jù)路徑延時≥捕獲時鐘最慢路徑延時 + 終止點時序單元保持時間。
4.2最好最壞模式
對于最好-最壞分析模式,靜態(tài)時序分析工具會同時在PVT環(huán)境中的最好的和最壞的工作環(huán)境下檢查建立時間和保持時間。也就是說,使用這個方式的時候,至少需要讀入兩個庫(環(huán)境),一個用來設(shè)置最好的工作環(huán)境(或者說延時最?。?,一個用來設(shè)置最壞的工作環(huán)境(或者說延時最大)。
建立時間分析。最好-最壞分析模式中建立時間的基本計算公式與單一分析模式下建立時間的基本計算公式一致,不同點在于計算建立時間所使用的工作環(huán)境不同,在計算建立時間過程中靜態(tài)時序分析工具調(diào)用邏輯單元的最大(max)延時時序庫,并用來檢查時序路徑最大延時是否滿足觸發(fā)器建立時間。如圖34.
圖34
保持時間分析。同樣,最好-最壞路徑分析模式中保持時間的基本計算公式與單一分析模式下保持時間的基本計算公式一致。不同點在于計算保持時間所使用的工作環(huán)境不同。在計算保持時間過程中,靜態(tài)時序分析工具調(diào)用邏輯單元的最小(min)延時時序庫,并用來檢查時序路徑最小延時是否滿足觸發(fā)器保持時間的約束。 即進行保持時間檢查時,始發(fā)點觸發(fā)器的發(fā)射時鐘延時、終止點觸發(fā)器捕獲時鐘延時和從始發(fā)點到終止點的數(shù)據(jù)路徑延時都是基于最好工作條件下所計算的路徑延延時。如圖35.
圖35
4.3OCV模式
OCV(on-chip variation)即片上誤差,在芯片變化相關(guān)工作模式下,與最好-最壞分析模式一樣,靜態(tài)時序分析工具也會同時在PVT境中的最好的和最壞的工作環(huán)境下檢查建立時間和保持時間,也就是要讀入兩個庫。
建立時間分析。OCV分析模式中建立時間的基本計算公式與其他分析模式下建立時間的基本計算公式一致,不同點在于計算最快路徑和最慢路徑所使用的工作環(huán)境不同,在計算建立時聞過程中靜態(tài)時序分析工具調(diào)用時序單元的最大延時時序庫來計算最慢路徑的延時,同時調(diào)用邏輯單元的最小延時時序庫來計算最快路徑的延時,只檢查時序路徑的延時是否滿足觸發(fā)器建立時間的約束。進行建立時間檢查時。始發(fā)點觸發(fā)器的發(fā)射時鐘采用的是最壞條件下最慢時鐘路徑,終止點觸發(fā)器的捕獲時鐘采用的是最好條件下最快時鐘路徑,而從始發(fā)點到終止點的數(shù)據(jù)路徑的延時則是在最壞條件下最慢數(shù)據(jù)路徑延時。如圖36所示。
圖36
保持時間分析。選用的路徑延遲的好壞與建立時間分析相反。
4.4考慮時序減免的OCV模式
考慮時序減免(timing derate)的OCV模式。時序減免(timing derate)的作用是很據(jù)減免(derating)系數(shù),靜態(tài)時序分析工具會在時序路徑的每級邏輯門、連線和端口上都加上或減去一個原來延時值乘以減免系數(shù)值的延時作為最終的延時結(jié)果。設(shè)置時序減免值的目的是使時序分析結(jié)果更加符合實際情況。使用這種方式需要設(shè)置derating系數(shù),系數(shù)值需要通過實際工程經(jīng)驗總結(jié)出來。
4.5考慮時鐘路徑悲觀移除的OCV模式
考慮時鐘路徑悲觀移除(CPPR)的OCV模式??梢苑譃椴豢紤]時序減免和考慮時序減免情況。
4.6 PT guide中關(guān)于三種模式的描述
建立時間分析如圖37所示。保持時間如圖38所示。
圖37
圖38
4.7其他分析模式
其他先進的分析模式如AOVC、SOCV、POCV等,后面有空再給大家介紹。
5時序分析步驟
5.1準(zhǔn)備工作
5.1.1時鐘的非理想性
時鐘對于時序電路至關(guān)重要。在進行RTL設(shè)計時,可以認(rèn)為時鐘是理想的,但在靜態(tài)時序分析的時候,必須考慮到實際的時鐘情形。時鐘模型的精度直接影響了靜態(tài)時序分析的精度。時鐘的非理想性包括:時鐘偏移(clock skew)、時鐘抖動(clock jitter)。實際情況中,振蕩器、互連、電源、負(fù)載都會影響到時鐘,導(dǎo)致時鐘出現(xiàn)偏移、抖動。
5.1.2對實際的時鐘進行建模
這些定義都是加在SDC中,先以圖39來為例說明。
圖39
考慮圖中的電路,電路中時鐘源位于芯片外部。我們將時鐘定義在芯片端口上,從時鐘源到達(dá)端口需要經(jīng)過3ns左右的延時(板級走線的延時),從時鐘端口到寄存器要經(jīng)過1ns左右的延時(時鐘樹的延時),對時鐘樹的延時進行建??梢圆扇∠旅娴霓k法。
先在端口上定義時鐘:create_clock per8.0 [get_ports clk]。
設(shè)置從時鐘源到時鐘端口的板級延時:set_clock_latency source 3 clk。
設(shè)置時鐘樹本身的延時。在布局布線之前可以采取下面的方法: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分頻時鐘)。在設(shè)計中,往往存在分頻時鐘,如果進行靜態(tài)時序分析時,直接援用create_clock來設(shè)置,則PT會將分頻后的時鐘看做是一個與源時鐘毫無關(guān)系的時鐘。這樣在分析源時鐘域與分頻時鐘域之間的信號時,可能會出現(xiàn)問題。正確設(shè)置分頻時鐘方法:create_generated_clock -name divide -source [get -pins U4/clk] -divide-by 2 [get -pins U4/Q]。
圖41
5.2主要流程
數(shù)據(jù)讀入:靜態(tài)時序分析工具讀入門級網(wǎng)表、時序約束等信息。
將電路分解為時序路徑:即將電路轉(zhuǎn)換為時序路徑的集合。時序路徑是一個點到點的數(shù)據(jù)通路,數(shù)據(jù)沿著時序路徑進行傳遞。它的起點是輸入端口或者寄存器的時鐘,終點是輸出端口或者一個寄存器的輸入引腳,每個路徑最多只能穿過一個寄存器。這樣時序路徑就可以劃分為:輸入端口到寄存器、寄存器到寄存器、寄存器到輸出端口、輸入端口到輸出端口。如下圖所示,分析其時序路徑。
計算每個路徑上面的延時:在一個路徑上,可能包含這幾類延時:連線延時(布局布線前后的延時計算方法不一樣)、組合邏輯的單位延時(影響因子有輸入信號的轉(zhuǎn)換時間,該值也決定輸入晶體管的翻轉(zhuǎn)速度、負(fù)載、單元本身的固有延時、制程、電壓、溫度等)、寄存器從clk端到Q端的延時。一個路徑上的延時是該路徑上所有連線的延時與單位延時的綜合。延時一般定義為從輸入跳變的50%時刻到輸出跳變的50%之間的時間。
檢查路徑時序約束是否滿足:路徑約束主要指的是建立時間約束和保持時間約束。在寄存器的綜合庫描述中對寄存器的D端定義了建立時間和保持時間的約束。所謂建立時間約束是指在采樣時鐘到達(dá)之前,數(shù)據(jù)應(yīng)該穩(wěn)定的時間;保持時間是指在時鐘到達(dá)之后,數(shù)據(jù)應(yīng)該保持的時間,這樣才能保證寄存器正確地鎖存數(shù)據(jù)。對于純組合邏輯,時序分析主要檢查最大延時約束和最小延時路徑。這種情況比較簡單。
5.3構(gòu)建時序分析腳本的過程、常用命令和腳本實例
5.3.1構(gòu)建腳本
圖42
如圖42所示。大致過程為:(1)讀入設(shè)計的相關(guān)信息(鏈接庫、網(wǎng)表,如果是PR之后的靜態(tài)時序分析還需要讀入寄生參數(shù)信息);(2)設(shè)置驅(qū)動及負(fù)載。(3)定義時鐘;(4)設(shè)置建立時間和保持時間;(5)設(shè)置約束(max_load、max_trsition、max_capacitance、max_latency等);(6)分析時序(用report_timing 等檢查時序,用report_constraint 檢查是否有違例)。
5.3.2常用命令
圖43
5.3.3腳本實例
圖44
6總結(jié)
本文是一個全面的STA入門文章,STA涉及到的大部分概念都涉及到,當(dāng)然比較淺顯,但是構(gòu)建了一個系統(tǒng)的認(rèn)識。后面筆者有空會陸續(xù)介紹:RC網(wǎng)絡(luò)、PVT、RC corner、delay的計算模型、OCV、AOCV、SOCV、POVC、PT軟件使用等知識。
-
鎖存器
+關(guān)注
關(guān)注
8文章
926瀏覽量
42387 -
門電路
+關(guān)注
關(guān)注
7文章
201瀏覽量
40740 -
施密特觸發(fā)器
+關(guān)注
關(guān)注
3文章
259瀏覽量
26415 -
555定時器
+關(guān)注
關(guān)注
41文章
317瀏覽量
69041 -
靜態(tài)時序
+關(guān)注
關(guān)注
0文章
20瀏覽量
7016
發(fā)布評論請先 登錄
靜態(tài)時序分析與邏輯(華為內(nèi)部培訓(xùn)資料)
手機數(shù)字基帶處理芯片中的靜態(tài)時序分析
靜態(tài)時序分析在IC設(shè)計中的應(yīng)用

靜態(tài)時序分析基礎(chǔ)及應(yīng)用
靜態(tài)時序分析:如何編寫有效地時序約束(三)
靜態(tài)時序分析:如何編寫有效地時序約束(二)
靜態(tài)時序分析:如何編寫有效地時序約束(一)
正點原子FPGA靜態(tài)時序分析與時序約束教程

華為FPGA硬件的靜態(tài)時序分析與邏輯設(shè)計

評論