文献标识码:A
DOI:10.16157/j.issn.0258-7998.199808
中文引用格式:张成,谈玲燕,曾令玥. 基于APD的2.5D封装中介层自动化设计[J].电子技术应用,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先进封装具有高带宽、高集成度和低成本的综合优势,开始广泛应用于计算和网络市场。由于HBM的高带宽特性,在2.5D封装中介层(Interposer)设计中存在大量布线工作。并且由于HBM的相对位置在不同的设计中存在差异,因此无法直接复制以前的布线设计。考虑到这些连接非常规则,可以通过软件编程的方式实现自动化,以节省手动布线时间。
本文介绍如何使用SKILL语言在APD中实现HBM接口的自动布线。此方法的核心在于如何获取每个连线上的各点坐标,再通过SKILL调用布线、打孔命令实现自动化布线工作。
1 2.5D先进封装简介
如图1所示,这里的2.5D封装相比普通2D封装主要多了Interposer和HBM。
Interposer主要用于连接专用集成电路(ASIC)和HBM,利用硅工艺实现小尺寸线宽和线间距的高密度布线设计。其他信号通过硅通孔(TSV)技术从顶部芯片直接连接到底下的封装基板。
如图2所示,HBM是多个动态随机存取存储器(Dynamic Random Access Memory,DRAM)的堆叠,以实现高带宽和大容量集成。第二代HBM, 每个IO速率达2 Gb/s,总共1 024个IO,即每个HBM具有2 Tb/s的带宽。
由于HBM的高带宽特性,在Interposer的版图设计过程中,ASIC的HBM接口有大量的网络连接(大于1 700),如图3所示。这些网络除了连线,还要打地孔(VSS Via),加地隔离(VSS Shielding),占用大量的手工布线时间。
2 手工布线过程
第一步导入扇出(Fanout)文件:由于HBM接口的管脚定义和排布都是固定的,因此可以直接复制这部分的Fanout设计。从已有设计中导出子图(Sub-drawing),再在新设计中导入。如图4所示导入HBM的Sub-drawing后,HBM区域的过孔走线已全部扇出。再进行ASIC部分的Sub-drawing导入,因此需要导入两次,总共30 min。
导入完Fanout后进行第二步的连线工作,在APD中将HBM接口的相关网络进行走线连接。
如图5所示,总共有四层(Ia、Ib、Ic、Wi)2 700多个连线,手工布线需要1天的工作量。
第三步在Ib层加VSS Shielding,将所有地线连起来。构成一个地平面,隔离Ic、Ia层的高速走线,如图6中的这些细线。总共有50 000个连线,需要3天工作量。
最后一步加VSS Via。如图7所示,将不同层的地走线用过孔连接起来,为高速信号提供良好的地回流路径,总共有50 000个VSS Via,需要1天的工作量。
综合以上步骤,如表1所示,每个HBM接口采用手工布线至少需要一周时间,在整个Interposer设计过程中是最长的。因此就有了利用自动布线技术替代手工布线,缩短设计周期的需求。
3 自动布线工具的开发
3.1 初步思路
手动布线中的第一步导入Fanout,可以将原有设计的Sub-drawing作为模板做成脚本文件(script),在APD的SKILL程序中进行调用,从而实现自动导入。
第二步连线工作,如图8所示,每个连线过程在APD中可以用四个点的坐标来描述(利用SKILL语言中的axlDBCreatLine命令调用4个点坐标,完成一个连线)。因此各个连线的四个点坐标P1、P2、P3、P4可以构成四个列表P1_list、P2_list、 P3_list、 P4_list。通过四个列表来描述所有的连线,再用For循环调用列表中的每个坐标完成所有连线。
第三步为地线上的每个线段插入VSS Via,连接不同层的地线。如图9所示,只要得到每个线段的端点坐标,并调用SKILL语言中的打孔命令axlDBCreatVia,就可以实现加VSS Via。
最后加VSS Shielding也是调用SKILL中的连线命令axlDBCreatLine在Ib层连接所有地线,如图10所示。
3.2 算法实现
从前面的初步思路看出,实现算法的关键是得到所有点的坐标。其中P1、P4点的坐标可以很容易地在APD中得到。只要用APD中的显示部件(Show Element)功能,并框选这些端点,就可以得到一个报告,里面包含这些端点信息,如图11所示。再通过文本处理提取关键字内容得到需要的点的坐标。
下一步就是利用得到的P1、P4坐标计算出P2、P3的坐标。
如图12所示,每个走线和前一个走线的坐标存在固定的几何关系,因此可以通过公式计算出每个走线的P2、P3坐标。
具体公式如下:
L1:(直接从P1点就开始转折,因此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循环中依次调用,示例如下[2-3]。
连线函数示例:
axlDBCreateLine((list p1_x:p1_y p2_x:p2_y p3_x:p3_y p4_x:p4_y), width,"etch/ic")
打孔函数示例:
axlDBCreateVia( "IC_IB", x1:y1, "VSS", nil, 45.)
为了软件的易用性,在APD界面中增加相应的调用菜单,如图13所示。
3.3 应用实例
典型的2.5D封装Interposer设计一般有两个HBM接口,如图14所示,总共5 400个连线,100 000个VSS Shielding和100 000个VSS Via。
如表2所示,如果采用手工布线需要2周时间,采用自动布线工具只要10分钟,而且各项检查也都能顺利通过。
4 结论
本文详细介绍了2.5D封装Interposer的设计过程,针对手工布线费时费力的痛点,进行逐步分析,开展算法研究,并在APD中利用SKILL语言完成了自动布线工具的开发。
通过在典型Interposer设计(带两个HBM)中试用,可以大大压缩设计周期,将原来的手工布线时间从2周缩短到10分钟,而且各项检查都能顺利通过。因此自动布线工具对压缩设计周期,保障设计一致性十分有效。
参考文献
[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.
作者信息:
张 成,谈玲燕,曾令玥
(格芯开云棋牌官网在线客服上海有限公司 封装设计与算法部,上海201204)