孫佳佳,趙慶哲
(中國電子科技集團(tuán)公司第四十七研究所,沈陽110032)
在IC設(shè)計(jì)中應(yīng)用STA處理時(shí)序問題的方法
孫佳佳,趙慶哲
(中國電子科技集團(tuán)公司第四十七研究所,沈陽110032)
當(dāng)代數(shù)字IC的設(shè)計(jì)規(guī)模和復(fù)雜性在不斷增加,驗(yàn)證工作也越來越困難,特別是靜態(tài)時(shí)序分析在此背景下變得尤為重要。目前業(yè)界普遍采用自動(dòng)化的設(shè)計(jì)方式,通過應(yīng)用工具軟件,來對(duì)設(shè)計(jì)時(shí)序進(jìn)行分析。主要探討了在IC設(shè)計(jì)當(dāng)中對(duì)于時(shí)序違例的一些處理方法。
數(shù)字IC;靜態(tài)時(shí)序分析;建立時(shí)間;保持時(shí)間
當(dāng)代數(shù)字IC的設(shè)計(jì)規(guī)模和復(fù)雜性在不斷增加,設(shè)計(jì)的時(shí)序驗(yàn)證已經(jīng)成為制約成品率的一個(gè)重要因素。是否能夠全面分析設(shè)計(jì)時(shí)序關(guān)系到產(chǎn)品的成敗。然而,設(shè)計(jì)過程中不可避免地會(huì)出現(xiàn)一些與要求時(shí)序相違背的情況,怎樣處理這些問題是靜態(tài)時(shí)序分析的一個(gè)重要方面。本文主要闡述了在設(shè)計(jì)中對(duì)靜態(tài)時(shí)序分析時(shí)序違例的處理方法。
在靜態(tài)時(shí)序分析中,時(shí)序分析工作主要檢查設(shè)計(jì)的建立時(shí)間和保持時(shí)間,即setup timing和hold timing。關(guān)于以上檢查目標(biāo)的概念,這里就不再贅述。設(shè)計(jì)的時(shí)序違背主要體現(xiàn)在這兩個(gè)時(shí)序目標(biāo)的違背。圖1是保持時(shí)間違背的情況,圖2是建立時(shí)間違背的情況。
從圖1可以知道,保持時(shí)間的違背在電路上是相鄰兩個(gè)寄存器之間的組合邏輯路徑延遲過小,導(dǎo)致前一個(gè)寄存器的數(shù)據(jù)在時(shí)鐘邊沿有效期的后段存入了后一個(gè)寄存器中,從而導(dǎo)致邏輯混亂。也即由于寄存器之間的延遲較小,導(dǎo)致后一個(gè)數(shù)據(jù)追趕上了前一個(gè)數(shù)據(jù),從而將前一個(gè)數(shù)據(jù)沖掉,導(dǎo)致邏輯錯(cuò)誤。而建立時(shí)間的違背則是相鄰的兩個(gè)寄存器之間組合邏輯路徑的延遲較大,導(dǎo)致在時(shí)鐘上升邊沿到來的時(shí)候,有效數(shù)據(jù)還沒有到達(dá),此時(shí)寄存器存儲(chǔ)的是有效數(shù)據(jù)之前的數(shù)據(jù),從而引起數(shù)據(jù)發(fā)生錯(cuò)誤。這兩種時(shí)序違背的情況都會(huì)導(dǎo)致邏輯錯(cuò)誤,是比較典型的違背情況,也是靜態(tài)時(shí)序分析的重點(diǎn),關(guān)系到整個(gè)系統(tǒng)的功能正確性,因此,我們著重探討如何分析并處理這兩種時(shí)序問題。當(dāng)然,對(duì)于靜態(tài)時(shí)序分析而言,其本身并不改變?cè)O(shè)計(jì)的邏輯功能,而是通過一些手段方式來檢查導(dǎo)致時(shí)序問題的原因并提供給后端設(shè)計(jì)者作為時(shí)序修正參考。
這是本文論述的重點(diǎn)。作者在實(shí)際工作中,總結(jié)出了靜態(tài)時(shí)序分析中對(duì)于時(shí)序問題的方式方法:對(duì)于保持時(shí)間的違背,其實(shí)質(zhì)是相鄰寄存器之間的組合路徑延遲不夠,因此,我們可以試著從增加組合邏輯的延遲入手來解決這個(gè)問題,常用的辦法是在邏輯路徑中插入buffer或delay元件。但是究竟插入什么元件還需視電路情況而定。對(duì)于圖1的情況,我們可以利用靜態(tài)時(shí)序分析工具軟件在c1/U36/Y(NAND2X2M)與c1/data_clr_1_reg/D(DFFRHQX8M)之間插入一個(gè)delay元件,這個(gè)元件的作用是增加相關(guān)邏輯路徑上的延遲,從而解決保持時(shí)間的問題,但是這樣做的一個(gè)不良影響就是如果加入的延遲過大,可能導(dǎo)致建立時(shí)間的違背或者設(shè)計(jì)規(guī)則比如最大轉(zhuǎn)換時(shí)間的違背,因此每增加一個(gè)delay,都要評(píng)估其對(duì)整體時(shí)序的影響。對(duì)于delay和buffer兩種元件,我們應(yīng)當(dāng)如何選擇插入路徑呢?一個(gè)基本原則就是如果保持時(shí)間的違背情況比較嚴(yán)重,可以考慮加入delay,如果不十分嚴(yán)重,可以考慮插入buffer。同時(shí)還要兼顧上下級(jí)電路的驅(qū)動(dòng)能力情況。
圖1 保持時(shí)間違背情況
圖2 建立時(shí)間違背情況
對(duì)于建立時(shí)間的違背,本質(zhì)上與保持時(shí)間的情況正好相反,寄存器之間組合邏輯的延遲過大導(dǎo)致數(shù)據(jù)不能及時(shí)向下傳遞,因此,提出的解決辦法是減少組合邏輯的延遲。此時(shí)可以觀察電路的延遲情況,找出制約建立時(shí)間的原件,用其它延遲小的同類器件來替代本元件從而達(dá)到減少電路延遲的目的。在圖2中,觀察電路延遲,發(fā)現(xiàn)在數(shù)據(jù)路徑的末端,c1/U5/Y單元,也就是BUFFERX4的延遲為0.70ns,因此,可以減少此元件的延遲。通常,對(duì)于BUFFER器件,驅(qū)動(dòng)能力越大延遲越小,因此,我們可以將BUFFERX4替換為BUFFERX12,重新進(jìn)行分析,觀察分析結(jié)果。如果還是達(dá)不到要求,那么采用再增大驅(qū)動(dòng)能力的方法來解決。
圖3是在實(shí)際工作中分析的某型芯片的時(shí)序分析報(bào)告,將它作為一個(gè)典型案例來講解具體的時(shí)序問題解決方法。
圖3 實(shí)際的建立時(shí)間違背情況
報(bào)告分析的是setup timing的結(jié)果,最后部分提示有-0.02納秒的時(shí)序違背,仔細(xì)觀察該報(bào)告體現(xiàn)的時(shí)序路徑,其中FE_OCP_RBC13199_uCORE_ DAreg_28_,也即INVX12的延遲為0.07納秒,其本身延遲并不大,但是下級(jí)電路的延遲有進(jìn)一步縮小的空間,因此,我們用INVX16來代替INVX12,以增大驅(qū)動(dòng)的方式來減少下級(jí)電路的延遲時(shí)間,修正后的報(bào)告如圖4所示。
圖4 修正后的建立時(shí)間狀況
從報(bào)告中可以看到,由于INVX12變?yōu)榱薎NVX16,因此下級(jí)電路的延遲時(shí)間由0.17納秒變?yōu)?.15納秒,整個(gè)路徑的setup timing時(shí)序滿足了既定要求。
對(duì)于hold timing的修正,也以一個(gè)例子來闡述,圖5是在實(shí)際工作中分析過的某型芯片的保持時(shí)間時(shí)序報(bào)告。
該報(bào)告提示路徑存在著-0.01納秒的時(shí)序違背情況,仔細(xì)觀察路徑,在uCORE_Pipe_5_/Y后面增加一個(gè)緩沖元件來增大路徑延遲,從而修正hold timing的違背。修正后的報(bào)告如圖6所示。
經(jīng)過修正,hold timing變?yōu)?.08納秒,滿足了時(shí)序要求。
以上是在實(shí)際工作中總結(jié)出的對(duì)時(shí)序違背的處理方式,這是一種普遍方法。在實(shí)際工作中,如果后端對(duì)電路處理比較合理,那么在時(shí)序分析的時(shí)候處理的空間就很小,這時(shí)候就需要通過修改設(shè)計(jì)結(jié)構(gòu)來改善時(shí)序。
應(yīng)該注意,在修正建立時(shí)間違背的時(shí)候,由于邏輯電路延遲的減少,可能帶來保持時(shí)間的違背,因此,設(shè)計(jì)者對(duì)器件的選取應(yīng)該有一個(gè)大致的印象,不要盲目選擇延遲大的器件,而是應(yīng)該有目的地遵循由小到大的順序來進(jìn)行,之所以這樣做是為了防止由于驅(qū)動(dòng)過大而導(dǎo)致電流增大從而導(dǎo)致電遷移現(xiàn)象,這一點(diǎn)在深亞微米設(shè)計(jì)中尤為突出。
圖5 實(shí)際的保持時(shí)間違背情況
圖6 修正后的保持時(shí)間狀況
靜態(tài)時(shí)序分析是一個(gè)時(shí)序分析工具,它不能對(duì)設(shè)計(jì)進(jìn)行改變,因此,上述方法旨在考察修正時(shí)序的切入點(diǎn),而不是真正的修正設(shè)計(jì)時(shí)序。它提供了一種對(duì)設(shè)計(jì)的修改意見,反饋給P&R人員,由其來對(duì)設(shè)計(jì)進(jìn)行修正,再將其修正結(jié)果回饋到靜態(tài)時(shí)序分析工具來進(jìn)行分析。由于不同的工具處理時(shí)序的算法可能有差別,因此,一般要經(jīng)過反復(fù)迭代之后,最終才能得到符合要求的設(shè)計(jì)時(shí)序。
應(yīng)該說,靜態(tài)時(shí)序分析不光能分析設(shè)計(jì)的時(shí)序,還能分析設(shè)計(jì)規(guī)則如最大轉(zhuǎn)換時(shí)間和電容等參數(shù),同樣是將分析結(jié)果反饋給P&R人員,修正后再反饋回來直到符合設(shè)計(jì)要求為止。
靜態(tài)時(shí)序分析要求分析人員對(duì)邏輯電路時(shí)序有一個(gè)準(zhǔn)確的把握,能找到影響時(shí)序的關(guān)鍵點(diǎn),并能對(duì)此點(diǎn)進(jìn)行有效處理。因此,分析人員要仔細(xì)對(duì)時(shí)序報(bào)告進(jìn)行觀察,找到合適的電路節(jié)點(diǎn),采取有效的插入或替換方式,這樣,才能對(duì)設(shè)計(jì)的時(shí)序全方位分析,提出一個(gè)正確的修正方法,從而減少設(shè)計(jì)的迭代時(shí)間。
[1]Himanshu Bhatnagar.高級(jí)ASIC芯片綜合[M].張文俊,譯.北京:清華大學(xué)出版社,2007.
[2]Zainalabedin Navabi.Verilog數(shù)字系統(tǒng)設(shè)計(jì)[M].李廣軍,陳亦歐,李林,竇恒,等譯.北京:電子工業(yè)出版社,2007.
[3]Weste,Harris.CMOS超大規(guī)模集成電路設(shè)計(jì)[M].汪東,李振濤,李寶鋒,等譯.北京:中國電力出版社,2005.
Process Way for Tim ing Violation by STA in IC Design
SUN Jia-jia,ZHAO Qing-zhe
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
With increasing in scale and complication of the digital IC design,the verification becomesmore difficulty,especially the STA is getting extremely important under this background.Now the CAD is used in the IC design to analysis timing.This papermainly discusses the solution of timing violation in IC design.
Digital IC;Static Timing Analysis;Setup timing;Hold Timing
10.3969/j.issn.1002-2279.2014.04.005
TN492
:B
:1002-2279(2014)04-0015-04
孫佳佳(1980-),女,遼寧沈陽人,工程師,主研方向:集成電路設(shè)計(jì)。
2013-12-27