VLSI 与制造

GDSII(版图交换格式)

GDSII 就是你真正交给晶圆代工厂的那个文件——它是你这颗芯片最终、最完整的画像,全部写成纯粹的几何图形。想象把完成的版图一层层揭开,摊成一叠透明胶片,每张对应一个制造层(这层金属、那个过孔、多晶硅、各种注入),然后在每张胶片上把每一个图形的精确轮廓都描下来:这里一个矩形,那里一根 L 形导线,一个做接触孔的小方块。GDSII 就是装着所有这些描好的多边形的二进制「模板册」。上游的一切——布图规划、布局、时钟树、布线、时序签核、DRC 和 LVS——存在的意义就是产出这一个干净的文件。它一旦离手,设计就算完成了;晶圆厂除了这些图形,再不需要你提供任何东西。

从机制上看,GDSII(即 GDS II Stream Format,一种诞生于 1980 年代初的二进制格式)保存的是一个单元(cell)的层级结构:一个单元里既可以装裸的多边形和路径,每个都标上层号(layer number)和数据类型(datatype),也可以引用其他单元,按位置、旋转、镜像把它们摆进来,甚至摆成重复的阵列。正是这种层级结构,才让一块含有数百万个相同位单元的存储器仍然是个大小可控的文件——你只定义一次单元,然后到处实例化(instance),而不必把每一个副本都重画一遍。关键在于,GDSII 只携带几何图形加上那些层号;它不记录网络(net)、时序,也不记录任何规则意图。晶圆厂通过一张层映射表来读它——比如「31 层、数据类型 0 是 Metal-1」——再用每一层上的图形去制作该工艺步骤所用的光掩模。

因为这个格式已经有几十年历史,它也带着种种局限——停留在 16 位时代的设定、建立在数据库栅格(database grid,常见为 1 纳米甚至更细)上的整数坐标,以及在先进节点上动辄膨胀的文件体积。它的现代继任者 OASIS(Open Artwork System Interchange Standard)用紧凑得多的方式编码同样的内容,如今在最先进的流片中已相当常见;不过日常说到「要交出去的那份版图」,大家用的词依旧是「GDSII」。

BOUNDARY; LAYER 31; DATATYPE 0; XY 0,0 0,200 400,200 400,0 0,0; ENDEL

31 层(比如 Metal-1)上的一个矩形,正是 GDSII 所保存的那种记录——一个多边形轮廓,标上层号和数据类型。

GDSII 里只有几何图形——你之所以敢相信这些图形既合法、又确实对得上你的网表,靠的是流程更早阶段通过的 DRC 和 LVS;GDS 文件本身并不能告诉你这些。

又称
GDS IIGDS2GDSStream formatCalma GDSII版图流格式佈局串流格式