利用C语言程序编辑GDSII文件(zz)

上传人:油条 文档编号:20442409 上传时间:2017-09-10 格式:PDF 页数:3 大小:59.71KB
返回 下载 相关 举报
利用C语言程序编辑GDSII文件(zz)_第1页
第1页 / 共3页
利用C语言程序编辑GDSII文件(zz)_第2页
第2页 / 共3页
利用C语言程序编辑GDSII文件(zz)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用C语言程序编辑GDSII文件(zz)》由会员分享,可在线阅读,更多相关《利用C语言程序编辑GDSII文件(zz)(3页珍藏版)》请在金锄头文库上搜索。

1、 http:/ 本文虽说是介绍用C语言程序来编辑GDSII文件,其实用什么程序语言来写 都是可以,只不过选择C语言,有利用大家交流和应用,而且无论你使用的是windows,还是其他操作系统 都可以运行该程序。 从这篇文章中,本人并不希望读者仅看到程序的本身,最终目的是希望大家能够初步了解到GDSII file的格式。 首先,将如图所示的版图,通过工具输出名字m2t.DB GDSII格式的database。 在unix系统用使用 %od -x m2t.DB 查看文件的十六进制格式,显示如下: 0000000 0006 0002 0005 001c 0102 0068 0002 001b 0000

2、020 000b 0015 001b 0068 0002 001b 000b 0026 0000040 0030 0010 0206 464c 4154 3034 4f46 2e44 0000060 4200 0014 0305 3e41 8937 4bc6 a7ef 3944 0000100 b82f a09b 5a51 001c 0502 0046 0001 0001 0000120 0008 0000 0000 0068 0002 0017 000f 001c 0000140 0008 0008 0606 6d32 7400 0004 0800 0006 0000160 0d02 000

3、6 0006 0e02 0000 002c 1003 ffff 0000200 fdf8 ffff fdf8 0000 0208 ffff fdf8 0000 0000220 0208 0000 0208 ffff fdf8 0000 0208 ffff 0000240 fdf8 ffff fdf8 0004 1100 0004 0700 0004 0000260 0400 0000 0000 0000 0000 0000 0000 0000 0000300 0000 0000 0000 0000 0000 0000 0000 0000 显示第一段表明字符的位置,可以忽略,其他将依次向大家解释

4、。 0006 0002 0005 其中0006表示这段所用的字节数为6(0006h)个字节,0002表示一个代码HEADER,常见的如: 0102:BGNLIB,0206:LIBNAME,0900:PATH,0D02:LAYER等共69种,0002中00是HEADER记录类型,02则表示这个记录的类型,此类型称为datatype共有6种: 0:no data present; 1:bit array; 2:two-byte signed integer; 3:four-byte signed integer; 4:four-byte real; 5:eight-byte real; 6:asc

5、ii string 最后两个字节0005表示文件格式的版本5(0005h) 001c 0102 0068 0002 001b 000b 0015 001b 0068 0002 001b 000b 0026 0030 001c表示本段字节数28(001c),0102为BGNLIB,datatype为02。0068-0030表示database最终访问 时间,格式为年、月、日。注意年份要加上1900,如0068h=104,104+1900=2004以此计算时间为 2004.2.27 11:21 27秒到2004.2.27 11:38 48秒。 0010 0206 464c 4154 3034 4f

6、46 2e44 4200 本段字节数16(0010h),0206表示LIBNAME,datatype为06字符型。46h ASCII码为F,以此类推库的名称为 FLAT04OF.DB 0014 0305 3e41 8937 4bc6 a7ef 3944 b82f a09b 5a51 本段字节数20(0014h),0305表示UNITS,datatype为5为八字节实数,3e41-5a51表示1E-3即.001 001c 0502 0046 0001 0001 0008 0000 0000 0068 0002 0017 000f 001c 0008 这段表示库的时间为1970.1.1 8:00

7、0-2004.2.23 15:28 8 0008 0606 6d32 7400 这段字节数8,0606为STRNAME,datatype为06字符型,表示structure name为m2t 0004 0800 本字段4字节,0800为BOUNDARY 0006 0d02 0006 本字段6字节,0d02为LAYER,layer number为6 0006 0e02 0000 本字段6字节,0e02为DATATYPE,datatype为0,即是drawing 002c 1003 ffff fdf8 ffff fdf8 0000 0208 ffff fdf8 0000 0208 0000 020

8、8 ffff fdf8 0000 0208 ffff fdf8 ffff fdf8 本字段44(2ch)字节,1003为XY即是坐标值。图形坐标值见上图 ffff 表示为负数,0000 表示为正数; 0208h=0520, 520/units=0.520 fdf8 求补码即反码+11111 1101 1111 1000取反0000 0010 0000 0111 + 1 0000 0010 0000 1000 = 520 0004 1100 本字段4字节,1100为ENDEL 0004 0700 本字段4字节,0700为ENDSTR 0004 0400 本字段4字节,0400为ENDLIB 在了

9、解了GDSII 格式以后,用C 语言写就简单多了,因为只要利用文件操作函数 就可以搞定了。 下面是个范例,写入HEADER部份到gdsii 文件中 #include FILE *fp; WrHEADER() char strCode6; strCode0=0; strCode1=6; strCode2=0; strCode3=2; strCode4=0; strCode5=5; Wr2GDS(strCode,6); Wr2GDS(wp,n) int n; char *wp; fwrite(wp,1,n,fp); main() fp=fopen(test.gds,wb); WrHEADER(); fclose(fp); 写入到test.c,然后编译出来运行 %cc -o test.exe test.c %test.exe 这样就将HEARDER部分0006 0002 0005写入到test.gds文件中 其他部分依此类推,就可以用c语言创造或编辑GDSII格式的文件了。 当然在细节部分,还需要进行适当改正,以保证程序应付更多的情况。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号