文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.199808
中文引用格式: 張成,談玲燕,曾令玥. 基于APD的2.5D封裝中介層自動化設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(8):68-70,74.
英文引用格式: Zhang Cheng,Tan Lingyan,Zeng Lingyue. 2.5D package interposer automatic design based on Allegro Package Design[J]. Application of Electronic Technique,2019,45(8):68-70,74.
0 引言
集成高帶寬存儲器(High Bandwidth Memory,HBM)的2.5D先進封裝具有高帶寬、高集成度和低成本的綜合優(yōu)勢,開始廣泛應(yīng)用于計算和網(wǎng)絡(luò)市場。由于HBM的高帶寬特性,在2.5D封裝中介層(Interposer)設(shè)計中存在大量布線工作。并且由于HBM的相對位置在不同的設(shè)計中存在差異,因此無法直接復(fù)制以前的布線設(shè)計??紤]到這些連接非常規(guī)則,可以通過軟件編程的方式實現(xiàn)自動化,以節(jié)省手動布線時間。
本文介紹如何使用SKILL語言在APD中實現(xiàn)HBM接口的自動布線。此方法的核心在于如何獲取每個連線上的各點坐標,再通過SKILL調(diào)用布線、打孔命令實現(xiàn)自動化布線工作。
1 2.5D先進封裝簡介
如圖1所示,這里的2.5D封裝相比普通2D封裝主要多了Interposer和HBM。
Interposer主要用于連接專用集成電路(ASIC)和HBM,利用硅工藝實現(xiàn)小尺寸線寬和線間距的高密度布線設(shè)計。其他信號通過硅通孔(TSV)技術(shù)從頂部芯片直接連接到底下的封裝基板。
如圖2所示,HBM是多個動態(tài)隨機存取存儲器(Dynamic Random Access Memory,DRAM)的堆疊,以實現(xiàn)高帶寬和大容量集成。第二代HBM, 每個IO速率達2 Gb/s,總共1 024個IO,即每個HBM具有2 Tb/s的帶寬。
由于HBM的高帶寬特性,在Interposer的版圖設(shè)計過程中,ASIC的HBM接口有大量的網(wǎng)絡(luò)連接(大于1 700),如圖3所示。這些網(wǎng)絡(luò)除了連線,還要打地孔(VSS Via),加地隔離(VSS Shielding),占用大量的手工布線時間。
2 手工布線過程
第一步導(dǎo)入扇出(Fanout)文件:由于HBM接口的管腳定義和排布都是固定的,因此可以直接復(fù)制這部分的Fanout設(shè)計。從已有設(shè)計中導(dǎo)出子圖(Sub-drawing),再在新設(shè)計中導(dǎo)入。如圖4所示導(dǎo)入HBM的Sub-drawing后,HBM區(qū)域的過孔走線已全部扇出。再進行ASIC部分的Sub-drawing導(dǎo)入,因此需要導(dǎo)入兩次,總共30 min。
導(dǎo)入完Fanout后進行第二步的連線工作,在APD中將HBM接口的相關(guān)網(wǎng)絡(luò)進行走線連接。
如圖5所示,總共有四層(Ia、Ib、Ic、Wi)2 700多個連線,手工布線需要1天的工作量。
第三步在Ib層加VSS Shielding,將所有地線連起來。構(gòu)成一個地平面,隔離Ic、Ia層的高速走線,如圖6中的這些細線??偣灿?0 000個連線,需要3天工作量。
最后一步加VSS Via。如圖7所示,將不同層的地走線用過孔連接起來,為高速信號提供良好的地回流路徑,總共有50 000個VSS Via,需要1天的工作量。
綜合以上步驟,如表1所示,每個HBM接口采用手工布線至少需要一周時間,在整個Interposer設(shè)計過程中是最長的。因此就有了利用自動布線技術(shù)替代手工布線,縮短設(shè)計周期的需求。
3 自動布線工具的開發(fā)
3.1 初步思路
手動布線中的第一步導(dǎo)入Fanout,可以將原有設(shè)計的Sub-drawing作為模板做成腳本文件(script),在APD的SKILL程序中進行調(diào)用,從而實現(xiàn)自動導(dǎo)入。
第二步連線工作,如圖8所示,每個連線過程在APD中可以用四個點的坐標來描述(利用SKILL語言中的axlDBCreatLine命令調(diào)用4個點坐標,完成一個連線)。因此各個連線的四個點坐標P1、P2、P3、P4可以構(gòu)成四個列表P1_list、P2_list、 P3_list、 P4_list。通過四個列表來描述所有的連線,再用For循環(huán)調(diào)用列表中的每個坐標完成所有連線。
第三步為地線上的每個線段插入VSS Via,連接不同層的地線。如圖9所示,只要得到每個線段的端點坐標,并調(diào)用SKILL語言中的打孔命令axlDBCreatVia,就可以實現(xiàn)加VSS Via。
最后加VSS Shielding也是調(diào)用SKILL中的連線命令axlDBCreatLine在Ib層連接所有地線,如圖10所示。
3.2 算法實現(xiàn)
從前面的初步思路看出,實現(xiàn)算法的關(guān)鍵是得到所有點的坐標。其中P1、P4點的坐標可以很容易地在APD中得到。只要用APD中的顯示部件(Show Element)功能,并框選這些端點,就可以得到一個報告,里面包含這些端點信息,如圖11所示。再通過文本處理提取關(guān)鍵字內(nèi)容得到需要的點的坐標。
下一步就是利用得到的P1、P4坐標計算出P2、P3的坐標。
如圖12所示,每個走線和前一個走線的坐標存在固定的幾何關(guān)系,因此可以通過公式計算出每個走線的P2、P3坐標。
具體公式如下:
L1:(直接從P1點就開始轉(zhuǎn)折,因此P2就是P1坐標)
p2_x=p1_x
p2_y=p1_y
p3_x=p2_x+(p4_y-p1_y)
p3_y=p4_y
L2:
p2_x=L1_p2_x+(L1_p1_y-L2_p1_y)/tg67.5
p2_y=p1_y
p3_x=p2_x+(p4_y-p1_y)
p3_y=p4_y
Ln:
p2_x=Ln-1_p2_x+(Ln-1_p1_y-Ln_p1_y)/tg67.5
p2_y=p1_y
p3_x=p2_x+(p4_y-p1_y)
p3_y=p4_y
算出所有點坐標后,利用SKILL語言中的連線和打孔命令在For循環(huán)中依次調(diào)用,示例如下[2-3]。
連線函數(shù)示例:
axlDBCreateLine((list p1_x:p1_y p2_x:p2_y p3_x:p3_y p4_x:p4_y), width,"etch/ic")
打孔函數(shù)示例:
axlDBCreateVia( "IC_IB", x1:y1, "VSS", nil, 45.)
為了軟件的易用性,在APD界面中增加相應(yīng)的調(diào)用菜單,如圖13所示。
3.3 應(yīng)用實例
典型的2.5D封裝Interposer設(shè)計一般有兩個HBM接口,如圖14所示,總共5 400個連線,100 000個VSS Shielding和100 000個VSS Via。
如表2所示,如果采用手工布線需要2周時間,采用自動布線工具只要10分鐘,而且各項檢查也都能順利通過。
4 結(jié)論
本文詳細介紹了2.5D封裝Interposer的設(shè)計過程,針對手工布線費時費力的痛點,進行逐步分析,開展算法研究,并在APD中利用SKILL語言完成了自動布線工具的開發(fā)。
通過在典型Interposer設(shè)計(帶兩個HBM)中試用,可以大大壓縮設(shè)計周期,將原來的手工布線時間從2周縮短到10分鐘,而且各項檢查都能順利通過。因此自動布線工具對壓縮設(shè)計周期,保障設(shè)計一致性十分有效。
參考文獻
[1] KIM J Y,KIM Y S.HBM:memory solution for bandwidth-hungry processors[C].2014 IEEE Hot Chips 26 Symposium(HCS).Cupertino,CA,USA.2014.
[2] Cadence SKILL language user guide(Version 6.1.6)[Z].2014.
[3] Cadence SKILL language reference[M].Version 6.1.6.2014.
作者信息:
張 成,談玲燕,曾令玥
(格芯半導(dǎo)體上海有限公司 封裝設(shè)計與算法部,上海201204)