设计应用

基于APD的2.5D封装中介层自动化设计

作者:张 成,谈玲燕,曾令玥
发布日期:2019-08-14
来源:2019年电子技术应用第8期

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。

wdz5-t1.gif

    Interposer主要用于连接专用集成电路(ASIC)和HBM,利用硅工艺实现小尺寸线宽和线间距的高密度布线设计。其他信号通过硅通孔(TSV)技术从顶部芯片直接连接到底下的封装基板。

    如图2所示,HBM是多个动态随机存取存储器(Dynamic Random Access Memory,DRAM)的堆叠,以实现高带宽和大容量集成。第二代HBM, 每个IO速率达2 Gb/s,总共1 024个IO,即每个HBM具有2 Tb/s的带宽。

wdz5-t2.gif

    由于HBM的高带宽特性,在Interposer的版图设计过程中,ASIC的HBM接口有大量的网络连接(大于1 700),如图3所示。这些网络除了连线,还要打地孔(VSS Via),加地隔离(VSS Shielding),占用大量的手工布线时间。

wdz5-t3.gif

2 手工布线过程

    第一步导入扇出(Fanout)文件:由于HBM接口的管脚定义和排布都是固定的,因此可以直接复制这部分的Fanout设计。从已有设计中导出子图(Sub-drawing),再在新设计中导入。如图4所示导入HBM的Sub-drawing后,HBM区域的过孔走线已全部扇出。再进行ASIC部分的Sub-drawing导入,因此需要导入两次,总共30 min。

wdz5-t4.gif

    导入完Fanout后进行第二步的连线工作,在APD中将HBM接口的相关网络进行走线连接。

    如图5所示,总共有四层(Ia、Ib、Ic、Wi)2 700多个连线,手工布线需要1天的工作量。

wdz5-t5.gif

    第三步在Ib层加VSS Shielding,将所有地线连起来。构成一个地平面,隔离Ic、Ia层的高速走线,如图6中的这些细线。总共有50 000个连线,需要3天工作量。

wdz5-t6.gif

    最后一步加VSS Via。如图7所示,将不同层的地走线用过孔连接起来,为高速信号提供良好的地回流路径,总共有50 000个VSS Via,需要1天的工作量。

wdz5-t7.gif

    综合以上步骤,如表1所示,每个HBM接口采用手工布线至少需要一周时间,在整个Interposer设计过程中是最长的。因此就有了利用自动布线技术替代手工布线,缩短设计周期的需求。

wdz5-b1.gif

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循环调用列表中的每个坐标完成所有连线。

wdz5-t8.gif

    第三步为地线上的每个线段插入VSS Via,连接不同层的地线。如图9所示,只要得到每个线段的端点坐标,并调用SKILL语言中的打孔命令axlDBCreatVia,就可以实现加VSS Via。

wdz5-t9.gif

    最后加VSS Shielding也是调用SKILL中的连线命令axlDBCreatLine在Ib层连接所有地线,如图10所示。

wdz5-t10.gif

3.2 算法实现

    从前面的初步思路看出,实现算法的关键是得到所有点的坐标。其中P1、P4点的坐标可以很容易地在APD中得到。只要用APD中的显示部件(Show Element)功能,并框选这些端点,就可以得到一个报告,里面包含这些端点信息,如图11所示。再通过文本处理提取关键字内容得到需要的点的坐标。

wdz5-t11.gif

    下一步就是利用得到的P1、P4坐标计算出P2、P3的坐标。

    如图12所示,每个走线和前一个走线的坐标存在固定的几何关系,因此可以通过公式计算出每个走线的P2、P3坐标。

wdz5-t12.gif

    具体公式如下:

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所示。

wdz5-t13.gif

3.3 应用实例

    典型的2.5D封装Interposer设计一般有两个HBM接口,如图14所示,总共5 400个连线,100 000个VSS Shielding和100 000个VSS Via。

wdz5-t14.gif

    如表2所示,如果采用手工布线需要2周时间,采用自动布线工具只要10分钟,而且各项检查也都能顺利通过。

wdz5-b2.gif

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)

此内容为AET网站原创,未经授权禁止转载。
2.5D先进封装 高带宽存储器 SKILL语言 Allegro封装设计工具 自动布线
Baidu
map