GDSII流格式,常见的缩写GDSII,是一个数据库文件格式。它用于集成电路版图的数据转换,并成为事实上的工业标准。GDSII是一个二进制文件,其中含有集成电路版图中的平面的几何形状,文本或标签,以及其他有关信息并可以由层次结构组成。GDSII数据可用于重建所有或部分的版图信息。它可以用作制作光刻掩膜版。
GDSII文件的所有数据都是由一连串的数据块链接组成的。这些数据块大体上可分为文件头,模块结构头,图素头,图素,图素尾,模块结构尾,文件尾这几个部分,每个部分包含若干个模块,有些模块是必须包含的,另外一些则为可选的模块。每模块的前四个字节标志了该部分的元信息,第一二字节描述了该部分的size,第三四字节描述了该部分的type。
文件头
第3、4字节标志位 | 类型 | 数据参数类型 |
---|---|---|
00 02 | HEADER(文件头) | int16 |
01 02 | BGNLIB(库文件头) | 12个int16 |
02 06 | LIBNAME(库文件名) | ASCII字符串 |
1F 06 | REFLIBS(参考文件) | 90个char |
20 06 | FONTS(字体) | 176个char |
23 06 | ATTRTABLE(属性) | 44个char |
22 02 | GENETATIONS(备份文件数) | int16 |
36 02 | FORMAT(格式) | int16 |
37 06 | MASK(掩膜) | ASCII字符串 |
38 00 | ENDMASK(掩膜结束) | 无 |
03 05 | UNITS(单位) | 2个float64 |
首先以HEADER开始,它定义了GDSII的版本;其后是BGNLIB库文件头,它定义了GDSII文件最后一次修改的时间和读取时间,时间用6个int16数字来表示年月日时分秒;随后是LIBNAME,它定义了文件库名;然后是几个可选的参数(REFLIBS、FONTS、ATTRTABLE、GENERATEIONS、FORMAT等,根据需要它们可能出现也可能不出现);最后是单位参数UNITS,它定义了每一内部单位等了多少用户设定单位和每一个用户设定单位等于多少微米,它们分别由两个浮点数表示。
在GDSII中浮点数由8个字节表示,左边的第一个字节的最左边一位表示这个浮点数的数值的符号:0表正,1表负;第一个字节的后7位用以表示指数,指数表示范围为一64~63,由于指数值本身也含正负值,所以指数的阶码