【学术论文】基于APD的2.5D封装中介层自动化设计

摘要:

由于高带宽存储器(High Bandwidth Memory,HBM)的高带宽特性,在2.5D封装中介层(Interposer)的版图设计过程中存在大量HBM接口的连线需要手动完成。介绍了如何使用SKILL语言在Allegro封装设计工具 (Allegro Package Design,APD) 中实现HBM接口的自动布线,将原来的手动布线时间从2周缩短到10 min,大大压缩设计周期。

中文引用格式: 张成,谈玲燕,曾令玥. 基于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)

 

(0)

相关推荐