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

靜態(tài)時(shí)序分析與邏輯(華為內(nèi)部培訓(xùn)資料)
手機(jī)數(shù)字基帶處理芯片中的靜態(tài)時(shí)序分析
靜態(tài)時(shí)序分析在IC設(shè)計(jì)中的應(yīng)用

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

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

時(shí)序分析的靜態(tài)分析基礎(chǔ)教程

評(píng)論