王秋實,孟少鵬,吳宏強
(安徽芯紀元科技有限公司,安徽 合肥 230031)
冗余金屬填充是一種可制造性設計(Design For Manufacturing,DFM)手段,目的是為了減小芯片制造過程中化學機械拋光(Chemical Mechanical Polishing,CMP)帶來的工藝偏差,提高芯片的成品率[1-2]。在金屬互連線平坦化過程中,同時包含了化學作用和機械作用[3],金屬和介質(zhì)材料本身的研磨速率不同以及金屬密度的不均勻就會造成金屬層的高低起伏,可能導致互連線短路、斷路等異常結(jié)果,從而導致整個芯片失效[4]。由于CMP 工藝對圖形密度極為敏感,業(yè)界通過添加冗余金屬圖形使芯片各個位置的金屬密度均勻分布,以改善平坦化效果[5]。
在先進工藝中,版圖的密度梯度對芯片可制造性的影響越來越突出,因此在冗余金屬填充過程中不僅需要考慮密度約束,也需要同時考慮密度梯度以及密度均勻性問題[6]。在工藝進入FinFET 時代后,冗余金屬填充還需要滿足雙曝光工藝的特點,即所有的冗余金屬圖形需要均勻地被拆分到兩張不同的掩膜版上[7-8]。
在完成設計的時序、功耗和功能收斂后,芯片的物理設計流程進入DFM 階段[9]。此時的版圖中不論金屬密度還是圖形線寬都不均勻,無法保證晶圓表面的平坦性。此時,可以通過自動布局布線工具、物理驗證工具以及工程師手工添加等手段實現(xiàn)冗余金屬的填充。填充有兩種形式:浮空填充和接地填充。大部分設計采用的都是浮空填充,只在金屬低密度區(qū)填充冗余金屬,不連接地,不占用布線資源,相對接地填充,有易實現(xiàn)的優(yōu)點[10]。
冗余金屬在改善芯片良率的同時,也會惡化已經(jīng)收斂的時序結(jié)果。互連線和填充的冗余金屬之間相互耦合,產(chǎn)生額外的寄生電容,增大信號線的延遲[11]。由于此時的版圖已接近固化,為了保證整體的設計周期,完成投片,必須有一種行之有效的時序修復方法。本文從工程實踐的角度出發(fā),以本公司中一款使用12 nm 工藝設計的工業(yè)級DSP 芯片(芯片代號WhiteWhale01)為實例,系統(tǒng)地分析12 nm 工藝下冗余金屬對時序結(jié)果產(chǎn)生影響的原因,并提出了一種時序偏差修復方法。
在12 nm 工藝的后端物理設計流程中,通過自動布局布線工具填充的冗余金屬無法通過設計規(guī)則的檢查,必須使用代工廠提供的自動填充包(Auto-fill utilities)結(jié)合物理驗證工具填充冗余金屬。填充過程將整個設計分成一個個窗格(如50 μm×50 μm),然后計算每個窗格中圖形密度,最后根據(jù)相鄰窗格的圖形密度決定冗余金屬的填充量[12]。窗格式的填充,通過循環(huán)算法來使得填充的冗余金屬量最小,同時各個相鄰窗格之間的密度梯度差也最小[13]。
12 nm 工藝的冗余金屬包括不需要光學鄰近效應修正(Optical Proximity Correction,OPC)[14-15]修正的DMn(n代表不同的金屬層)以及需要OPC 修正的DMn_O。對于需要雙曝光的金屬層,DMn 和DMn_O 還需要區(qū)分成不同的color。與此同時,該工藝也要求必須插入冗余的通孔DVIAn(n 代表不同的通孔層),以連接上下相鄰的冗余金屬層。
使用物理驗證工具PVS 對WhiteWhale01 芯片完后自動填充后,冗余金屬類型如表1 所示。每種冗余金屬包含6 個參數(shù):Width/Length 是指冗余金屬的長度和寬度;Run/End Space 分別指在寬度方向和長度方向冗余金屬圖形的間距;Run/End Offset 分別指在寬度方向和長度方向相鄰冗余金屬圖形之間的偏移量。
表1 WhiteWhale01 芯片中的填充的冗余金屬(μm)
填充的冗余通孔類型如表2 所示,每種冗余通孔只包含寬度和間距兩個參數(shù)。
表2 WhiteWhale01 芯片中的填充的冗余通孔(μm)
對完成冗余金屬填充的WhiteWhale01 芯片重新進行完整的寄生參數(shù)提取,再讀入新的寄生參數(shù)進行靜態(tài)時序分析,對比時序報告發(fā)現(xiàn)內(nèi)核主頻從1.5 GHz 退化到1.2 GHz,性能下降20%,這個時序偏差顯然無法接受。
本節(jié)從填充冗余金屬前后寄生參數(shù)的變化和路徑延遲的變化兩個方面,分析WhiteWhale01 芯片發(fā)生時序偏差的原因。
在溫度125℃、RC Corner 為cworst_CCworst_T條件下,使用QRC 工具分別對填充冗余金屬前后的全芯片進行寄生參數(shù)提取,使用Ostrich 工具對全芯片中約302萬條互連線的寄生參數(shù)進行對比。
互連線寄生電容的變化結(jié)果如圖1 所示。圖1中,大部分互連線處于中心斜線的上方,說明其寄生電容都有一定程度的增大?;ミB線的寄生電容增大的比例越大,在圖1 中越是遠離中心斜線。統(tǒng)計發(fā)現(xiàn),總體的寄生電容增加在3%,部分互連線寄生電容的增加甚至會達到70%~100%。
圖1 WhiteWhale01 芯片寄生電容的變化
互連線寄生電阻的變化結(jié)果如圖2 所示。圖2中,互連線基本分布在中心斜線的附近,說明其寄生電阻的變化很小,統(tǒng)計發(fā)現(xiàn),總體的平均偏差在0.2%以內(nèi),標準偏差在0.7%以內(nèi)。
圖2 WhiteWhale01 芯片寄生電阻的變化
寄生參數(shù)對比的結(jié)果表明,WhiteWhale01 芯片中填充的浮空冗余金屬對信號線的電阻沒有影響,只會惡化寄生電容。
在Library PVT 為SSGNP/0.72v/125C 條件下,使用Tempus 工具對建立時間slack 變化較大的5 000 條時序路徑逐條對比分析發(fā)現(xiàn),路徑延遲的變化主要集中在兩個方面:
(1)串擾延時增大,體現(xiàn)在時序報告中Incr Delay 增大。圖3 為填充冗余金屬前后時序報告中34 413 條數(shù)據(jù)信號線Incr Delay 數(shù)值對比,20.3%的信號線串擾延時明顯增大。分析表明,由于浮空填充的冗余金屬使不同信號線之間的耦合電容增大,加劇了串擾,導致信號完整性問題。
圖3 時序路徑中Incr Delay 的變化
(2)信號轉(zhuǎn)換時間增大,體現(xiàn)在時序報告中Slew 增大。圖4 為填充冗余金屬前后數(shù)據(jù)信號線Slew Time 數(shù)值對比,745 條信號線甚至出現(xiàn)了max transition(350 ps)違例。分析表明,由于寄生電容增加使標準單元的負載增大,導致信號的轉(zhuǎn)換時間增大,進一步導致路徑中下一級標準單元的延遲增大。
圖4 時序路徑中Slew Time 的變化
路徑延遲分析的結(jié)果表明,串擾延時和單元新增延遲相互疊加,在時序路徑上產(chǎn)生時序違例,嚴重破壞WhiteWhale01 芯片的時序性能。
基于以上的分析,本文提出一種基于Innovus 平臺的時序偏差修復方法,該修復方法不需要對設計進行功能上的改動,只對添加的冗余金屬進行修剪,拉大關(guān)鍵路徑上信號線與冗余金屬的緩沖距離,減小相應的寄生電容。具體分為5 個步驟:
(1)在完成功能設計及時序收斂的database 基礎上,使用Innovus 調(diào)用PVS 引擎,進行signoff 級別的冗余金屬填充。
(2)分析冗余金屬對時序結(jié)果的影響,修剪時序發(fā)生變化的互連線周圍的冗余金屬??梢酝ㄟ^參數(shù)控制修剪互連線同層、上層或者下層的冗余金屬,也可以控制修剪的間距范圍。
(3)查看修復效果。如果時序結(jié)果無法接受,改變相應參數(shù)并重復步驟(2)。
(4)調(diào)用PVS 引擎進行增量冗余金屬填充。
(5)進行最終的物理驗證及簽核驗證。
該修復方法的流程及所用到的命令如圖5 所示。
圖5 時序偏差修復流程圖及所用命令
WhiteWhale01 芯片使用該修復方法不同階段的時序結(jié)果對比如表3 所示(注:MF=metal fill)。從表中可以看出,使用該修復方法后,全新的時序結(jié)果基本恢復到未填充冗余金屬的狀態(tài)。
表3 WhiteWhale01 芯片不同階段的時序結(jié)果對比
先進工藝芯片填充冗余金屬后引起時序偏差是物理設計流程中不可避免的難題。本文通過對12 nm 工藝填充的冗余金屬進行研究分析,發(fā)現(xiàn)串擾延時和信號轉(zhuǎn)換時間增大是惡化時序的關(guān)鍵原因;并提出一種快速高效的時序偏差修復方法,時序結(jié)果對比證明了該方法的有效性。
本文提出的時序修復方法在單獨的Innovus 平臺即可實現(xiàn),迭代速度快,時間開銷小,能夠很方便地應用到其它芯片設計項目當中。