手機數(shù)字基帶處理芯片中的靜態(tài)時序分析
1.引言
隨著深亞微米技術(shù)的發(fā)展,數(shù)字電路的規(guī)模已經(jīng)發(fā)展到上百萬門甚至上千萬門。工藝也從幾十μm提高到65nm甚至45nm。這樣的電路規(guī)模做驗證的時間在整個芯片的開發(fā)周期所占的比例會越來越重。通常,在做驗證的時候,我們都會采用動態(tài)驗證的方法?,F(xiàn)在,用靜態(tài)驗證方法(STA Static Timing Analysis),不僅能夠完成驗證的工作,而且還能大大節(jié)省驗證所需要的時間。靜態(tài)時序分析簡稱它提供了一種針對大規(guī)模門級電路進(jìn)行時序驗證的有效方法。靜態(tài)時序分析是相對于動態(tài)時序分析而言的。動態(tài)時序分析時不可能產(chǎn)生完備的測試向量,覆蓋門級網(wǎng)表中的每一條路徑。因此在動態(tài)時序分析中,無法暴露一些路徑上可能存在的時序問題;而靜態(tài)時序分析,可以方便地顯示出全部路徑的時序關(guān)系,因此逐步成為集成電路設(shè)計簽字認(rèn)可的標(biāo)準(zhǔn)。
2.靜態(tài)時序分析工作原理
本文以Synopsys公司的Prime Time SI作為時序分析的工具,介紹靜態(tài)時序分析的工作原理。Prime Time把整個設(shè)計電路打散成從主要的輸入端口到電路觸發(fā)器、從觸發(fā)器到觸發(fā)器、從觸發(fā)器到主要輸出端口、從主要的輸出端口到主要的輸出端口、四種類型的時序路徑,分析不同路徑的時序信息,得到建立時間(setup time)和保持時間(hold time)的計算結(jié)果。而Prime time SI又在Prime time的基礎(chǔ)上加入串?dāng)_分析(Crosstalk analysis)。串?dāng)_是由兩個或者多個物理相鄰連線之間的容性交叉耦合(capacitive cross-coupling)產(chǎn)生的相互作用。隨著工藝越來越進(jìn)步,在130nm或者90nm的工藝下,串?dāng)_的影響已經(jīng)變得與單元延遲和線延遲一樣重要。
2.1 時序路徑的分析
整個電路的靜態(tài)時序分析都是由時序路徑分析組成。時序路徑分析就是檢查從發(fā)射沿(lunching edge)到捕獲沿(capturing edge)的時間是否滿足設(shè)計的需要。它主要可以分為兩類:
建立時間路徑
這種路徑用于檢查信號在到達(dá)捕獲沿之前的一段穩(wěn)定時間(setup time),也就是確定從發(fā)射沿到捕獲沿的過程是否足夠快。建立路徑包括普通的數(shù)據(jù)到時鐘的建立路徑、數(shù)據(jù)到數(shù)據(jù)以及時鐘門的路徑。如果最晚的一個發(fā)射沿到最早的一個捕獲沿之間的時間滿足時序要求(沒有timing violation),才能確保這條建立路徑都滿足條件。
保持時間路徑
這種路徑用于檢查信號在到達(dá)捕獲沿之后的一段穩(wěn)定時間的(hold time),也就是確定從發(fā)射沿到捕獲沿的時間是否太短。包括普通的數(shù)據(jù)到時鐘的建立路徑、數(shù)據(jù)到數(shù)據(jù)以及時鐘門的路徑、異步信號同步化的檢查。為了正確的分析,我們檢查保持路徑時必須檢查最早的一個發(fā)射沿到最晚的一個捕獲沿之間的時間滿足時序要求。
如圖1中發(fā)射部分由所有的時鐘端口到觸發(fā)器FF2的D端口之間的單元(包括U1、U2、FF1、U4)和線組成;捕獲部分由所有的時鐘端口到觸發(fā)器FF2的時鐘端口之間的單元(U1、U3、FF2)和線組成。其中U1既屬于建立路徑又屬于保持路徑。那么,建立路徑就應(yīng)該結(jié)合到FF2的D端口最慢的路徑和到其時鐘端口最快的路徑來看。保持路徑則相反,我們應(yīng)該找到達(dá)FF2D端口最快的路徑和到其時鐘端口最慢的路徑。對于Setup Time驗證來說:
Slack=Required Time – Arrival Time
對于Hold Time驗證來說:
Slack= Arrival Time –Required Time
Slack為正值,表示滿足時序要求
圖1 建立/保持路徑示意圖
PT工作流程
圖2為PT的工作流程,我們可以看出靜態(tài)時序分析是一個反復(fù)進(jìn)行的過程。直到結(jié)果滿足要求為止。
圖2 PT工作流程
芯片在工作時所處的環(huán)境是不同的,然而環(huán)境的不同導(dǎo)致芯片內(nèi)部的單元和線的延遲不同。為了使芯片在大多數(shù)環(huán)境下都能正常工作,PT中提供了三種分析模式:single、bc_wc、on_chip_variation。我們平時常用的是bc_wc模式,它把環(huán)境用工藝制程(process)、溫度(temperature)、電壓(voltage)分為以下3種情況:
1、best case:工藝制程:1;理想溫度零下40攝氏度;電壓1.32V(此芯片額定電壓為1.2V)
2、typical case:工藝制程:1;室溫環(huán)境25攝氏度;電壓1.2V
3、worst case: 工藝制程:1;125攝氏度;電壓1.08V
為了測試芯片在投片生產(chǎn)和封裝整個制造過程是否出現(xiàn)物理等方面的缺陷導(dǎo)致功能不正確?,F(xiàn)在的超大規(guī)模集成電路的設(shè)計中,都加入了可測性設(shè)計(DFT:Design for Test)電路。當(dāng)芯片工作于測試模式時,時鐘樹的結(jié)構(gòu)與功能模式完全不同。我們必須在測試模式下也要分以上3種情況做靜態(tài)時序分析。
3.靜態(tài)時序分析與門級仿真的關(guān)系
靜態(tài)時序分析也有自己的弱點,它無法驗證電路功能的正確性。值得注意的是,靜態(tài)時序分析只能有效地驗證同步時序的正確性,大部分設(shè)計中可能包含地異步電路的時序驗證,則必須通過門級仿真來保證其時序的正確性。[!--empirenews.page--]
根據(jù)以上對靜態(tài)時序分析的介紹,我們做門級仿真也應(yīng)該分別仿真功能模式和測試模式下的best case、typical case、worst case三種情況,但是側(cè)重點有所不同。功能模式下,大部分電路我們只需要驗證worst case和best case就可以認(rèn)為是正確的,但是在我們芯片的設(shè)計中,曾經(jīng)過出現(xiàn)worst case和best case通過而typical case仿真失敗的情況。這是因為有的電路中寄存器級數(shù)太多,時鐘偏移(clock skew)對電路的影響造成的。雖然這種情況即使在百萬門級以上的設(shè)計中也很少見,但為了提高芯片成功率,對于關(guān)鍵路徑,關(guān)鍵模塊,需要仿真3中情況。測試模式一般工作在室溫環(huán)境,它的仿真我們只需要關(guān)心typical case就可以了。
靜態(tài)時序分析工具無法驗證異步時鐘的電路。然而現(xiàn)在芯片中可能存在異步時鐘電路,如我們的TDS-CDMA數(shù)字基帶處理芯片中,就有二十幾個異步時鐘域。在PT中,所有異步時鐘域的路徑都必須被設(shè)為false_path(表示不關(guān)心該路徑)。由于RTL級功能仿真也不能發(fā)現(xiàn)異步時鐘域之間信號的錯誤,我們在門級仿真時需要特別注意異步時鐘域之間的信號的驗證。
我們還可能遇到門級仿真失敗,但是PT中并沒有報錯的情況。經(jīng)過反復(fù)試驗分析,可能會有以下幾種情況導(dǎo)致它們的結(jié)果不一致:
1、VCS不支持負(fù)的輸入輸出路徑延遲,但是PT是支持的。當(dāng)VCS遇到負(fù)輸入輸出路徑延遲,它就自動認(rèn)為它是0。這樣就導(dǎo)致了錯誤。
2、新版本的PT產(chǎn)生的SDF文件有關(guān)于信號沿的信息。如果我們用老版本的庫或存儲器模型沒有包含這種沿的信息,PT將會認(rèn)為它是一條更長的路徑。而VCS仍然用標(biāo)準(zhǔn)的延遲來計算,就導(dǎo)致結(jié)果不一致??梢姡惶淄晟频腅DA工具很復(fù)雜,不同版本之間的細(xì)微差別也可能導(dǎo)致我們驗證的失敗。
3、最常見的原因是`timescale不同。如果設(shè)計和SDF文件中所設(shè)的`timescale不同,那么SDF文件中的反標(biāo)值可能被舍去。這就導(dǎo)致了靜態(tài)時序分析和動態(tài)仿真的不匹配。所以,保證RTL代碼、庫文件、存儲器模型、SDF文件中的`timescale一致非常重要。
門級仿真是芯片流片前的最后一道驗證。雖然能夠很好的反映芯片工作的真實情況,但是資源占用嚴(yán)重、時間長。只有綜合利用動態(tài)驗證和靜態(tài)驗證的優(yōu)點,才能高效準(zhǔn)確的完成一塊芯片的設(shè)計。
4.TDS-CDMA數(shù)字基帶處理芯片中的應(yīng)用
我們實驗的對象TDS-CDMA數(shù)字基帶處理芯片,是一塊規(guī)模在1000萬門以上,130nm工藝的超大規(guī)模集成電路,其中包含ARM、DSP等硬核。在門級做全功能測試需要大量的人力物力資源,是很不現(xiàn)實的。我們在實際芯片中設(shè)計中采用靜態(tài)時序的分析加門級仿真的方法。
在芯片的設(shè)計過程中,我們在幾個階段做靜態(tài)時序分析。
1)綜合之后先做一次STA。此時主要檢查:
1、電路設(shè)計的時序有沒有問題。如兩個寄存器之間有過多的組合邏輯,使電路不能運行在需要的時鐘頻率上。
2、由于綜合工具(設(shè)計中用Design Complier)的算法限制,每一次綜合出的網(wǎng)表都不同。需要反復(fù)做綜合,直到網(wǎng)表的時序達(dá)到我們的期望。用這一版網(wǎng)表再繼續(xù)往下做。
因為沒有具體的布局布線信息,此時的時序分析建立在線上負(fù)載模型(wire load model)上。線上負(fù)載模型是一種比較悲觀的模型,所以可能出現(xiàn)一些不是很嚴(yán)重的Violation?,F(xiàn)階段我們不需要關(guān)心這些,它們可以在布局布線時得到解決。
2)預(yù)布局之后:
這時候,元件的大概位置關(guān)系已經(jīng)確定??梢酝ㄟ^靜態(tài)時序分析來解決布局中不合理的地方,以便修改。
3)布局布線完成后:
布局布線后可以從版圖中提取精確的器件和網(wǎng)絡(luò)延遲得到SPEF (Standard Parasitic Exchange Format ) 文件,反標(biāo)到Prime Time SI中再做一次時序分析,這時可以得到基于版圖的精確的時序分析結(jié)果。
布局布線的過程中,需要不停的用STA來分析布局布線的結(jié)果。我們的芯片采用SMIC提供的0.13微米工藝的元件庫。他們提供了標(biāo)準(zhǔn)元件庫和HVT元件庫兩種。HVT元件的特點是漏電低,但是延時比較大。所以,剛開始的時候我們用HVT元件,做STA之后發(fā)現(xiàn)有的路徑不能滿足時序要求。我們再用一些標(biāo)準(zhǔn)元件來替代這些HVT元件,反復(fù)不停比較,直到所有路徑都滿足時序要求為止。這樣,既最大程度的實現(xiàn)了低功耗,也滿足了時序要求。
在完成時序分析之后,用PT SI生成SDF(standard delay format)文件反標(biāo)到網(wǎng)表中做門級仿真。
此時的SDF文件不僅包含單元延遲和線延遲,也包含了版圖信息,串?dāng)_信息等。門級仿真可以得到最真實,最接近實際情況的結(jié)果。
5.結(jié)束語
靜態(tài)時序分析以它運行速度很快、占用內(nèi)存較少,可以對芯片設(shè)計進(jìn)行全面的時序功能檢查,并利用時序分析的結(jié)果來優(yōu)化設(shè)計等優(yōu)點,很快地被用到數(shù)字集成電路設(shè)計的驗證中。然而門級仿真也由于它不可取代的地位在ASIC設(shè)計中仍有一席之地。結(jié)合在TDS-CDMA數(shù)字基帶處理芯片設(shè)計中的經(jīng)驗,我們可以得出這樣的結(jié)論:靜態(tài)時序分析和門級時序仿真是從不同的側(cè)重點來分析電路以保證電路的時序正確,它們是相輔相成的。現(xiàn)在,實驗中的TDS-CDMA數(shù)字基帶處理芯片已經(jīng)成功流片。
本文作者創(chuàng)新點:在實踐中尋找到一種STA和門級仿真結(jié)合的新方法。在保證流片成功率的基礎(chǔ)上最大程度的節(jié)省芯片驗證的時間。