在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2319|回复: 1

[原创] 三维晶圆级堆叠的网表自动合并

[复制链接]
发表于 2021-7-8 16:47:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
背景
  在晶圆级堆叠设计中,每个独立的芯片都有一个独立的网表,这些独立的网表需要连接成一个总的网表来进行仿真或者做LVS检查。如下图所示:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F8206ceb4p00qve0ei0014c000ll00e1c.jpg

  上图中,chip1与chip2之间通过Micro bumps连接,在chip1中,连接处的节点是某个具体的信号名,在chip2中,对应连接处的节点是某个具体的信号名。由于不同芯片之间的设计可能是独立完成的,2个信号的命名不一定完全一致,需要工具自动把这2个信号名做连接,保证连接后的总的网表是正确的。
  如何自动完成2个芯片的网表连接,保证连接的正确性呢?
  除了上述3D 形式的堆叠,还有2.5D形式的连接,如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Ff3464b01p00qve0ei0010c000kq007vc.jpg

  可以把上述电路看成3个独立的网表,chip1, chip2, link网表,这3个网表需要在pin的位置做连接,形成一个完整网表。
  由于不同芯片之间的设计可能是独立完成的,信号的命名不一定完全一致,需要工具自动把这3个网表做连接,保证连接后的总的网表是正确的。
  网表自动连接的方式
  一般情况下,网表的pin对外连接有2种连接方式:通过pin name的名字寻找连接关系和通过pin的坐标寻找连接关系。
  Pin name的名字连接方式是指:2个芯片的pin在连接处的pin name是完全相同的名字,工具依靠pin name的名字来自动把2个芯片做连接,不需要考虑坐标对应关系。
  坐标连接方式是指:2个芯片的pin在连接处没有指定pin name,只有内部节点号。在此条件下,工具通过2个芯片的坐标对应关系来实现自动连接。其坐标和节点的对应关系需要通过网表提取的内部数据接口来实现,用户在运行网表提取或者寄生参数提取时需要提供有节点及坐标数据生成的数据接口。例如,晶体管级提取可能需要通过带有坐标接口的数据来自动寻找坐标关系,单元级提取可能需要LEF/DEF的接口来自动寻找坐标关系。
  基于pin name的连接
  首先定义芯片的自定向下堆叠关系如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F5aa73f34p00qve0ei0008c000dw008fc.jpg

  它定义了3个Chip,从上到下的连接顺序是:Circuit1,Circuit2, Circuit3。
  然后分别给出了3个电路的网表和top cell。
  在该目录下,有2个子目录分别是:fullchip, link。
  fullchip的版图如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Fa05a5e45p00qve0ei000bc000kk00dkc.jpg

  运行该例子步骤如下:
  首先进入fullchip目录,自动调用寄生参数提取全芯片的寄生参数,得到RC.spf。
  Link电路的版图如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F79a5a6c9p00qve0ei0009c000jn00bac.jpg

  运行该例子步骤如下:
  进入link目录,调用寄生参数提取工具得到RC.spf。
  上述2个目录提取运行结束后,进入它的上层主目录,运行自动合并命令,该命令自动运行基于线网名的网表合并,把3个电路的网表自动合并,合并结果是内容如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Fa5c88cd9p00qve0ei0005c0009d00h9c.jpg

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Fca33d0a9p00qve0ei0004c0007t00fwc.jpg

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F27e0dc02p00qve0ei0003c0007o00a8c.jpg

  可以看到,该合并模式是基于线网名字的合并,针对2个上下相邻的电路,如果pin 的名字一致,则工具自动把相同pin的名字合并连接成一个节点。
  基于坐标的自动连接
  针对上述用例,还可以通过坐标查找的方式来实现自动连接。其配置文件如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F81f7ac68p00qve0ei0005c0008o00i7c.jpg

  该文件中增加了COORDINATE的数据文件指定,其中COORDINATE top layer的含义是:该chip的最上方与其它芯片连接时用这个layer图形的坐标来判断与其它chip图形的坐标是否有overlap,如果有overlap,就把这2个图形的节点连接成一个节点。
  COORDINATE top device的含义是:如果一个很长的线网被切割成很多个子节点,要找距离top_device最近的子节点来连接到另外一个chip的对应节点。
  进入它的上层主目录,运行自动合并命令,该命令自动运行基于COORDINATE的坐标计算网表合并,把3个电路的网表自动合并,合并结果内容如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F4fc1a9d6p00qve0ei0004c0009r00dac.jpg

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F601fbf1ap00qve0ei0007c0008b00jdc.jpg

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F9fd5d0dap00qve0ei0008c0008c00jbc.jpg

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F1b08bd8dp00qve0ej0007c0008b00i3c.jpg

  可以看到,它的合并结果与基于线网名的合并结果是不一样的,原因是:fullchip中有10个图形是有线网名的,还有16个图形是没有线网名字的。如下图:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F79690f33p00qve0ej0009c000jq00bbc.jpg

  基于线网名的合并方法只能把有线网名的图形做合并,不能把没有线网名的图形做合并。而基于COORDINATE的坐标查找方式可以把不带线网名的图形按照坐标对应关系去做合并,能满足更多的应用场景。
  例如,Circuit1_26:A__Circuit2_1__Circuit3_0:A 这个节点,它的含义是: circuit1的26:A号节点与Circuit2的1号节点连接,Circuit2的1号节点与circuit1的0:A号节点连接。这些节点都没有线网名字,是工具内部对节点进行了编号。工具通过COORDINATE的坐标信息可以自动把这些节点连接起来。
  其中circuit1的26:A的节点信息如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F8310d932p00qve0ej0004c0007z00g9c.jpg

  可以看到,线网1号节点被拆分成了8个节点,其中26:A是bot_device对应的子节点,它距离与它下相邻的chip最近,因此选择26:A作为连接节点。
  运行结束后,可以打开 log文件,它显示了每个chip的pin连接信息,如下:
  | Circuit1 |
  | Circuit2 |
  | Circuit3 |
  Circuit1-Circuit2 connect pin
  26:A - 1
  27:A - 2
  28:A - 3
  29:A - 4
  30:A - 5
  31:A - 6
  B6 - B6
  B4 - B4
  B1 - B1
  35:A - 10
  36:A - 11
  B7 - B7
  A - A
  B2 - B2
  40:A - 15
  41:A - 16
  B8 - B8
  B5 - B5
  B3 - B3
  45:A - 20
  46:A - 21
  47:A - 22
  48:A - 23
  49:A - 24
  50:A - 25
  single - single
  Circuit2-Circuit3 connect pin
  1 - 0:A
  2 - 1:A
  3 - 2:A
  4 - 3:A
  5 - 4:A
  6 - 5:A
  B6 - B6
  B4 - B4
  B1 - B1
  10 - 9:A
  11 - 10:A
  B7 - B7
  A - A
  B2 - B2
  15 - 14:A
  16 - 15:A
  B8 - B8
  B5 - B5
  B3 - B3
  20 - 19:A
  21 - 20:A
  22 - 21:A
  23 - 22:A
  24 - 23:A
  25 - 24:A
  single - single
  2.5D的自动连接
  该例子是一个2.5D + 3D连接的例子,图示如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F0eee33bbp00qve0ej0007c000kx0071c.jpg

  上述连接的描述如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F690ca105p00qve0ej0004c0009100hxc.jpg

  上面的描述对应的图示如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F56b85b9bp00qve0ej000ec000gi007oc.jpg

  共有3个 chip stack,每个chip stack的坐标是相对link1的坐标。
  Link1的版图如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F76ec1471p00qve0ej000bc000kd00dqc.jpg

  Chip1, chip3, chip5的版图如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Fbb7bf9abp00qve0ej000bc000kk00d1c.jpg

  Chip2, chip4的版图如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2F826ade59p00qve0ej0009c000jd00a4c.jpg

  运行自动连接命令,它是基于COORDINATE模式的节点合并。运行结果内容如下:

   ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0628%2Fed2ec20ap00qve0ej0006c000gn00jkc.jpg

  同样可以打开log文件查看具体的连接信息,如下:
  chip1-link1 connect pin
  1 - 1
  2 - 2
  3 - 3
  4 - 4
  5 - 5
  6 - 6
  B6 - B6
  B4 - B4
  B1 - B1
  10 - 10
  11 - 11
  B7 - B7
  A - A
  B2 - B2
  15 - 15
  16 - 16
  B8 - B8
  B5 - B5
  B3 - B3
  20 - 20
  21 - 21
  22 - 22
  23 - 23
  24 – 24
  25 - 25
  single - single
  可以看到,工具自动把带有数字的节点连接关系通过坐标对应关系找到,自动形成连接,从而保证网表连接的正确性。
发表于 2021-12-18 21:12:26 | 显示全部楼层
谢谢分享,老师在2.5D或3D封装设计方面有了解吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-30 00:52 , Processed in 0.036577 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表