马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
有兴趣的读者可联系使用软件。
背景 在晶圆级堆叠设计中,每个独立的芯片都有一个独立的网表,这些独立的网表需要连接成一个总的网表来进行仿真或者做LVS检查。如下图所示:
上图中,chip1与chip2之间通过Micro bumps连接,在chip1中,连接处的节点是某个具体的信号名,在chip2中,对应连接处的节点是某个具体的信号名。由于不同芯片之间的设计可能是独立完成的,2个信号的命名不一定完全一致,需要工具自动把这2个信号名做连接,保证连接后的总的网表是正确的。 如何自动完成2个芯片的网表连接,保证连接的正确性呢? 除了上述3D 形式的堆叠,还有2.5D形式的连接,如下:
可以把上述电路看成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的连接 首先定义芯片的自定向下堆叠关系如下:
它定义了3个Chip,从上到下的连接顺序是:Circuit1,Circuit2, Circuit3。 然后分别给出了3个电路的网表和top cell。 在该目录下,有2个子目录分别是:fullchip, link。 fullchip的版图如下:
运行该例子步骤如下: 首先进入fullchip目录,自动调用寄生参数提取全芯片的寄生参数,得到RC.spf。 Link电路的版图如下:
运行该例子步骤如下: 进入link目录,调用寄生参数提取工具得到RC.spf。 上述2个目录提取运行结束后,进入它的上层主目录,运行自动合并命令,该命令自动运行基于线网名的网表合并,把3个电路的网表自动合并,合并结果是内容如下:
可以看到,该合并模式是基于线网名字的合并,针对2个上下相邻的电路,如果pin 的名字一致,则工具自动把相同pin的名字合并连接成一个节点。 基于坐标的自动连接 针对上述用例,还可以通过坐标查找的方式来实现自动连接。其配置文件如下:
该文件中增加了COORDINATE的数据文件指定,其中COORDINATE top layer的含义是:该chip的最上方与其它芯片连接时用这个layer图形的坐标来判断与其它chip图形的坐标是否有overlap,如果有overlap,就把这2个图形的节点连接成一个节点。 COORDINATE top device的含义是:如果一个很长的线网被切割成很多个子节点,要找距离top_device最近的子节点来连接到另外一个chip的对应节点。 进入它的上层主目录,运行自动合并命令,该命令自动运行基于COORDINATE的坐标计算网表合并,把3个电路的网表自动合并,合并结果内容如下:
可以看到,它的合并结果与基于线网名的合并结果是不一样的,原因是:fullchip中有10个图形是有线网名的,还有16个图形是没有线网名字的。如下图:
基于线网名的合并方法只能把有线网名的图形做合并,不能把没有线网名的图形做合并。而基于COORDINATE的坐标查找方式可以把不带线网名的图形按照坐标对应关系去做合并,能满足更多的应用场景。 例如,Circuit1_26:A__Circuit2_1__Circuit3_0:A 这个节点,它的含义是: circuit1的26:A号节点与Circuit2的1号节点连接,Circuit2的1号节点与circuit1的0:A号节点连接。这些节点都没有线网名字,是工具内部对节点进行了编号。工具通过COORDINATE的坐标信息可以自动把这些节点连接起来。 其中circuit1的26:A的节点信息如下:
可以看到,线网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连接的例子,图示如下:
上述连接的描述如下:
上面的描述对应的图示如下:
共有3个 chip stack,每个chip stack的坐标是相对link1的坐标。 Link1的版图如下:
Chip1, chip3, chip5的版图如下:
Chip2, chip4的版图如下:
运行自动连接命令,它是基于COORDINATE模式的节点合并。运行结果内容如下:
同样可以打开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 可以看到,工具自动把带有数字的节点连接关系通过坐标对应关系找到,自动形成连接,从而保证网表连接的正确性。 |