光刻版图oasis格式简介

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1 integers类型说明

3.1.1 unsigned-integer

unsigned-integer的长度不确定,是由自己的值来确定的,如果数据长度有N个byte,每个byte的8个bits中只有7bits表示实际数据,最高一个bit表示后面是否还有数据。0表示自己是最后一个byte。最低位byte放在oasis文件的最前面。

举个例子就清楚了。

十进制的16383:

正常的2进制表示是:11,1111,1111,1111,一共14个1。

在oasis文件中,由于只有7位能代表实际的数,所以我们把它写成x111,1111,y111,1111。还是14个1。但中间插入了一个x和y用来表示是否后面还有数据。由于低字节优先,所以我们写成y111,1111,x111,1111。然后将y 变成1,x变成0。所以最后在oasis文件中的表示是1111,1111,0111,

1111。

十进制的16384:

正常的2进制表示是:100,0000,0000,0000,1后面一共14个0。

在oasis文件中,由于只有7位能代表实际的数,所以我们把它写成x000,0001,y000,0000,z000,0000。1后面还是14个0。但中间插入了一个x、y

和z用来表示是否后面还有数据。由于低字节优先,所以我们写成

z000,0000,y000,0000, x000,0001。然后将z变成1,y变成1,x变成1,。所以最后在oasis文件中的表示是1000,0000,1000,0000, 0000,0001。

3.1.2 signed-integer

知道了unsigned-integer以后,再变signed-integer就简单了。还是举两个例子。

十进制的8191,

正常的2进制表示是:1,1111,1111,1111,一共13个1。

在oasis文件中,由于第一个byte只有6位能代表实际的数,后面的byte 有7位能代表实际的数。所以我们把它写成x111,1111,y111,111z。还是13个

1。但中间插入了一个x和y用来表示是否后面还有数据,插入了一个z作为符号位。由于低字节优先,所以我们写成y111,111z,x111,1111。然后将y变成

1,x变成0。由于是正数,所以z为0。所以最后在oasis文件中的表示是

1111,1110,0111,1111。

十进制的-8192,

先表示十进制的8192,正常的2进制表示是:10,0000,0000,0000,1后面一共13个0。

在oasis文件中,由于第一个byte只有6位能代表实际的数,后面的byte 有7位能代表实际的数。所以我们把它写成m000,0001,x000,0000,y000,000z。1后面还是13个0。但中间插入了一个x和y用来表示是否后面还有数据,插入了一个z作为符号位,前面补了一个m。由于低字节优先,所以我们写成

y000,000z,x000,0000,m000,0001。然后将y变成1,x变成1,m变成0。由于是负数,所以z为1。所以最后在oasis文件中的表示是

1000,0001,1000,0000,0000,0001。

3.2 real类型说明

3.3 string类型说明

string数据类型是一个复合的数据类型,它由一个表示字符串长度的unsigned-integer类型数据做为开头,后面加上真正的字符串。

字符串可以分成三种:b-string(binary string),a-string(ascii string)和n-string (name string).

3.4 delta类型说明

delta是代表几何数据。简单来说就是delta类型的数据中存放有长度和方向的信息。其中分成4种:1-delta, 2-delta, 3-delta和g-delta。分别进行说明

3.4.1 1- delta

1-delta是一种signed-integer的数据结构,其中signed-integer中的符号位就用来表示方向了;singed-integer中的表示数值的部分就用来表示长度。

我们举个例子。比如二进制的1111,1001, 0010, 0011。其中第一个方框中的1和singed-integer的含义一样,表示后面还有数据。第二个方框中的1在

signed-integer中表示正负符号,这里就表示方向,1表示向西或者向南(在正

交坐标系中表示x和y轴的负方向,具体是x轴还是y轴由这个值出现的当前的场景来确定)。第三个框中的0表示这是这个signed-integer数据的最后一个

byte。这个数据的长度是二进制的010,0011, 111, 100(去掉框内的数值,然后

前后byte调转位置),这就是十进制的2300。因此这个数值就是表示向西(或者向南)画2300长度的一条线。

3.4.2 2- delta

2-delta是一种unsigned-integer的数据结构,其中unsigned-integer中的最低2bits(在oasis文件中最先出现的byte中的最低2bits)用来表示方向了,其他

部分表示数值的大小,数值的大小就用来表示长度。

我们举个例子。比如二进制的1001,1000, 0010, 1010。其中第一个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-

integer数据。第二个方框中的00这里就表示方向,00表示向东(在正交坐标

系中表示x正方向,01表示向北,10表示向西,11表示向南)。第三个框中

的0表示这是这个unsigned-integer数据的最后一个byte。这个数据的长度是二

进制的010,1010, 001, 10(去掉框内的数值,然后前后byte调转位置),这就

是十进制的1350。因此这个数值就是表示向东(就是从当前位置,向x轴正方

向)画长度1350的一条线。

3.4.3 3- delta

3-delta是一种unsigned-integer的数据结构,其中unsigned-integer中的最低3bits(在oasis文件中最先出现的byte中的最低3bits)用来表示方向了,其他

部分表示数值的大小,数值的大小就用来表示x轴和y轴的偏移长度。

我们举个例子。比如二进制的1100,1101, 0000, 0001。其中第一个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-

integer数据。第二个方框中的101这里就表示方向,101表示西北方向(在正

交坐标系中表示135度角的一条线,000表示向东,001向北,010表示向西,

011表示向南,100表示东北方向,110表示西南方向,111表示东南方向)。

第三个框中的0表示这是这个unsigned-integer数据的最后一个byte。这个数据

的长度是二进制的000,0001, 100, 1(去掉框内的数值,然后前后byte调转位

置),这就是十进制的25。因此这个数值就是表示向西北方向(就是从当前位

置,向135度角方向)画长度为sqrt(25*25+25*25)的一条线(x轴偏移25,y

轴偏移25)。

3.4.4 g- delta

g-delta有两种形式,一种是用一个单一的unsigned-integer的数据来表示;

第二种是用一对unsigned-integer的数据来表示。如果g-delta数据在文件中第一个出现的字节的最低位(bit0)是0,表示第一种类型的g-delta数据;如果是

1,表示第二种类型的g-delta数据。

3.4.4.1 g- delta 第一种类型

如果是第一种类型,只用一个unsigned-integer类型表示g-delta的类型。

unsigned-integer的在文件中出现的第一个字节的倒数第2到第4个bit(bit1到

bit3)一共3个bits用来表示方向,同3-delta的形式。

举个例子,二进制的1110,1100,0000,0101。其中第二个方框中的0表示这是第一种类型的g-delta格式,第一个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-integer数据。划下划线的110这里就表示方向,110表示西南方向(在正交坐标系中表示135度角的一条线,

000表示向东,001向北,010表示向西,011表示向南,100表示东北方向,

相关文档
最新文档