光刻版图oasis格式简介_第1页
光刻版图oasis格式简介_第2页
光刻版图oasis格式简介_第3页
光刻版图oasis格式简介_第4页
光刻版图oasis格式简介_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Chapter 1  oasis文件简介oasis是用来表示光刻版图的一种文件格式,上面记录了光刻图案。作为gdsii文件的替代格式,和gdsii类似是一种流格式的文件。一般性的介绍可以google到。这里就不再累述。这篇文档,是对参考文献【1】的注释和部分翻译。第一为了方便阅读,对文献【1】中的一些概念和例子进行了解读说明;第二对文献【1】中容易忽略和混淆的地方进行了强调,对没有明确的但可以从其他地方推断出来的一些内容进行了明确。Chapter 2  oasis文件格式是一种二进制流的文件格式。它采用变形的BNF语法来描述文件格式,BNF语法见参考文献

2、【1】中36.1节,oasis文件格式的描述见参考文献【1】中36.2节。这里不对那些内容进行重复叙述,只对文件进行部分说明强调。1.  <magic-bytes> 按照标准是"%SEMI-OASIS<CR><NL>",但是各个厂商可能会有不同,可能厂商会加上自己的log。程序中出现了"BROA"作为oasis文件格式的开头字段。2.  特别注意<geometry>、<element>和<name>字段中的大括号中的域是不能重复出现的,而<

3、;cell>和<oasis-file>中的大括号中的字段是可以重复出现的。在解析的时候要特别注意这点。3.  注意到<oasis-file>中,除了自己的关键字START、CBLOCK、PAD和PROPERTY以外,还有两个内嵌的结构,就是<cell>和<name>。其中<cell>中,第一个出现的字段是CELL,每一个<cell>中CELL会且仅会出现一次。因此可以把CELL作为第二层解析的入口。而<name>中,由于这些关键字跟其他部分都不重复,而且在一个<name>中

4、仅都只能出现一次,所以可以直接放在第一层解析。具体可以参见第五章。Chapter 3  oasis数据类型不同于普通的计算机编程语言的数据格式,oasis作为一种流格式文件,有自己的数据类型表示方法。这些在参考文献【1】中的第七章进行了说明。这里对其中内容进行部分说明,以便方便查阅。一共有下面几种类型的数据格式:Table 1 oasis数据格式    类型长度其他说明bytes8bit最低位bit放在最右边integersunsigned-integer不定,N个byte,8个bits中只有7bits表示实际数据

5、,每个byte最高一个bit表示后面是否还有数据。0表示自己是最后一个byte。最低位byte放在oasis文件的最前面signed-integer不定,N个byte,8个bits中只有7bits表示实际数据,每个byte最高一个bit表示后面是否还有数据。0表示自己是最后一个byte。符号位放在最低位byte(文件中最先出现的byte)的最后一位(bit):0表示正,1表示负。最低位byte放在oasis文件的最前面real不定。有8种表示方式。由一个unsigned-integer的数据来表示采用何种表达方式。表示数据表达方式的unsigned-integer数据出现在文件的最前面。接着它

6、后面才是实际要表达的数值。string由一个unsigned-integer的数据来表示string的长度unsigned-integer数据出现在文件最前面。string可以分成b-string, a-string和n-string三类deltasdelta是用来表示方向和长度的一种数据类型。分成4类。各类长度不一样。在oasis文件中,这种数据的第一个出现的字节的最后几个bit是表示方向。后面具体描述。repetitions用来表示重复出现的各个图形的位置的一种数据类型。也分成多类,各类长度不一。在后面具体说明point lists利用这个数据结构就可以画出图形。但这个数据结构本身不包括画

7、图的起始位置信息。而在其他地方确定。是一串delta信息,用来表示各条边的长度和方向。图形的顶点越多,长度越长。在后面具体说明。property value由一个unsigned-integer表示类型,加上后面的property value 值构成。各种类型的属性,value值不一样,但都比较简单。可以参看参考文献的7.8节table9。3.1  integers类型说明3.1.1  unsigned-integerunsigned-integer的长度不确定,是由自己的值来确定的,如果数据长度有N个byte,每个byte的8个bits中只有7bits

8、表示实际数据,最高一个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进制表示

9、是: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-intege

10、r以后,再变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。十进制的-81

11、92,先表示十进制的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

12、,0000,0000,0001。3.2   real类型说明real的数据类型是一个复合的数据类型,它由一个unsigned-integer的类型做为开头,后面加上若干个unsigned-integer或者1个ieee4 float或者1个ieee8 float的数据类型来组成。目前,它只定义了8种类型格式,从0到7。Table 2 real数据类型说明  类型格式含义0+unsigned-integer是一个正的实数,实数的值就等于后面unsigned-integer1+unsigned-integer是一个负的实数,实数

13、的绝对值就等于后面unsigned-integer2+unsigned-integer是一个正的实数,实数的值就等于后面unsigned-integer的倒数。3+unsigned-integer是一个负的实数,实数的绝对值就等于后面unsigned-integer的倒数。4+unsigned-integer1+ unsigned-integer2是一个正的实数,实数的值就等于(unsigned-integer1/ unsigned-integer2)。(做除数)5+unsigned-integer1+ unsigned-integer2是一个负的实数,实数的绝对值等于(unsigned-in

14、teger1/ unsigned-integer2)。(做除数)6+IEEE-4-byte-float表示后面是IEEE-4-byte-float的数据格式7+IEEE-8-byte-float表示后面是IEEE-8-byte-float的数据格式在参考文献【1】中的第7.3.2节的table 4中,各个数值的计算就可以根据上表中的说明计算出来。3.3   string类型说明string数据类型是一个复合的数据类型,它由一个表示字符串长度的unsigned-integer类型数据做为开头,后面加上真正的字符串。字符串可以分成三种:b-string(binary

15、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- delta1-delta是一种signed-integer的数据结构,其中signed-integer中的符号位就用来表示方向了;singed-integer中的表示数值的部分就用来表示长度。我们举

16、个例子。比如二进制的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长度的

17、一条线。3.4.2   2- delta2-delta是一种unsigned-integer的数据结构,其中unsigned-integer中的最低2bits(在oasis文件中最先出现的byte中的最低2bits)用来表示方向了,其他部分表示数值的大小,数值的大小就用来表示长度。我们举个例子。比如二进制的1001,1000, 0010, 1010。其中第一个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-integer数据。第二个方框中的00这里就表示方向,00表示向东(在正交坐标系中表示x正方向

18、,01表示向北,10表示向西,11表示向南)。第三个框中的0表示这是这个unsigned-integer数据的最后一个byte。这个数据的长度是二进制的010,1010, 001, 10(去掉框内的数值,然后前后byte调转位置),这就是十进制的1350。因此这个数值就是表示向东(就是从当前位置,向x轴正方向)画长度1350的一条线。3.4.3   3- delta3-delta是一种unsigned-integer的数据结构,其中unsigned-integer中的最低3bits(在oasis文件中最先出现的byte中的最低3bits)用来表示方向了,其他部分表

19、示数值的大小,数值的大小就用来表示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,

20、0001, 100, 1(去掉框内的数值,然后前后byte调转位置),这就是十进制的25。因此这个数值就是表示向西北方向(就是从当前位置,向135度角方向)画长度为sqrt(25*25+25*25)的一条线(x轴偏移25,y轴偏移25)。3.4.4   g- deltag-delta有两种形式,一种是用一个单一的unsigned-integer的数据来表示;第二种是用一对unsigned-integer的数据来表示。如果g-delta数据在文件中第一个出现的字节的最低位(bit0)是0,表示第一种类型的g-delta数据;如果是1,表示第二种类型的g-delta数

21、据。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这里就表

22、示方向,110表示西南方向(在正交坐标系中表示135度角的一条线,000表示向东,001向北,010表示向西,011表示向南,100表示东北方向,101表示西北方向,110表示西南方向,111表示东南方向)。第三个框中的0表示这是这个unsigned-integer数据的最后一个byte。这个数据的长度是二进制的000,0101, 110(去掉打框的和加下划线的数值,然后前后byte调转位置),就是十进制的46。整个数据的含义就是沿西南方向画一条长度为sqrt(46×46+46×46)的线(也是就是将x轴坐标减少46,y坐标减少46,将这个点作为顶点,和原来坐标点相连画一条

23、直线)。3.4.4.2   g- delta 第二种类型如果是第二种类型,则用两个unsigned-integer的数据来表示。第一个unsigned-integer在文件中的第一个byte的最低bit(bit0)必须为1,第一个byte的倒数第二个bit(bit1)表示x轴的方向,其它bit表示长度。第二个unsigned-integer在文件中的第一个byte的最低bit(bit0)表示y轴的方向,其它bit表示长度。因此,它能够表示任何方向的线段。只有这种数据能够表示任何方向任何角度的线段,其它delta的类型都只能表示45度或者90度方向的线段。举个例子,

24、二进制的1011,1011,0000,0001,1011,0111,0000,1111。其中第二个方框中的1表示这是第二种类型的g-delta格式,第一个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-integer数据。划下划线的1这里就表示方向,1表示向西(x轴负方向,0表示向东)。第三个框中的0表示这是第一个unsigned-integer数据的最后一个byte。这个数据的长度是二进制的000,0001, 011,10(去掉打框的和加下划线的数值,然后前后byte调转位置),就是十进制的46。整个数据的含义就是x轴沿负方向减少长度4

25、6,取一条和y轴平行的直线。后面y轴也取一条和x轴平行直线,两者相交得到一个点。整个delta就是从当前位置到这个点画一条直线。第四个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-integer数据。第六个框中的0表示这是第二个unsigned-integer数据的最后一个byte。第五个框中的 1就表示方向,1表示向南(y轴负方向,0表示向北)。整个数据的含义就是y轴沿负方向减少长度46,取一条和x轴平行的直线。3.5   repetitions类型说明在光刻版图中,一个相同的图形常常在多个位置

26、重复出现。repetition就用来表示图形重复出现的位置。repetitions其本质是分成三部分,第一部分表示类型,用一个unsigned-integer的数据来表示,一共有12种类型;第二部分表示维数,就是参考文献【1】中7.6节中table6中的dimension,它表示了这个图形重复出现的次数;第三部分是表示位置,就是各个重复出现的图形应该出现在版图中的哪个位置,就是参考文献【1】中7.6节中table6中的space和displacement。这里先对modal variable进行说明。modal variable类似于文件中的内置的全局变量,存储着比如element的放置位置、

27、间隔等信息。当解析一个新的element的时候,element的相关值会存在这些变量里面,后面的element如果不明确指定这些值,就用前面element的值来作为自己的值。由于文件中很多数据是相同的,所以后面的记录(record)中的参数,可能跟前面的一样,所以它就可以省略这些参数,直接将前面record的参数作为自己的参数,从而提高文件的压缩性。Table 3 repetitions类型说明   类型format位置坐标0见文献【1】中7.6节中table6重复上一次repetition的数据。根据上一次repetition的类型和数据来重

28、复本图形的计算。比如上次是类型1的repetition,那么现在也是类型1的repetition,并且dimension和space参数也相同1同上x-dimension=N-2, y-dimension=M-2.生成一个N列M行的矩阵,矩阵中每个元素表示一个重复的图案。元素element(i , j )(i=0 , . , N-1, j= 0, ., M-1)的位置为(i*x-space, j*y-space)。用来生成x轴和y轴平行的重复图案。2同上x-dimension=N-2,生成一个N列1行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(i)(i=0 , . , N-1

29、)的位置为(i*x-space, 0)。用来生成和x轴平行的重复图案。3同上y-dimension=M-2,生成一个1列M行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(j)(j=0 , . , M-1)的位置为(0, j*y-space)。用来生成和y轴平行的重复图案。4同上x-dimension=N-2,生成一个N列1行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(i)(i=0 , . , N-1)的位置为(x-space0+ x-space1+.+ x-spacei, 0),其中x-space0=0。用来生成和x轴平行的重复图案。5同上跟类型4类似,x-d

30、imension=N-2,生成一个N列1行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(i)(i=0 , . , N-1)的位置为(grid*(x-space0+ x-space1+.+ x-spacei), 0),其中x-space0=0。用来生成和x轴平行的重复图案。6同上y-dimension=M-2,生成一个1列M行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(j )(j=0 , . , M-1)的位置为(0, y-space0+ y-space1+.+ y-spacej),其中y-space0=0。用来生成和y轴平行的重复图案。7同上跟类型6类似,y-

31、dimension=M-2,生成一个1列M行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(j )(j=0 , . , M-1)的位置为(0, gird*(y-space0+ y-space1+.+ y-spacej) ),其中y-space0=0。用来生成和y轴平行的重复图案。8同上n-dimension=N-2, m-dimension=M-2.n-displacement(m-displacement类似这样处理)是g-delta类型的数据,含有长度和方向信息,可以把g-delta数据分成两部分nx-space和ny-space,分表表示x轴方向的偏移和y轴方向的偏移。g-

32、delta可以表示任意角度的方向。整个数据生成一个N列M行的矩阵,矩阵中每个元素表示一个重复的图案。元素element(i , j )(i=0 , . , N-1, j= 0, ., M-1)的位置为(i*nx-space+j*mx-space, i*ny-space+j*my-space)。用来生成沿对角方向(不一定是45度角)的重复图案。9同上dimension=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0 , . , P-1)的位置为(k*x-space, k*y-space),用来生成沿对角方向的P维重复图形的图案。10同上dimens

33、ion=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0 , . , P-1)的位置为(x-space0+x-space1+.+x-spacek, y-space0+y-space1+.+y-spacek),它可以用来生成沿任何方向任何位置的P维重复图形的图案。11同上跟类型10类似,dimension=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0 , . , P-1)的位置为(grid*(x-space0+x-space1+.+x-spacek),grid*( y-space0+y-space1+.+y-spacek),它可以用来生成沿任何方向任何位置的P维重复图形的图案。  3.6   point lists类型说明point list数据类型是用来画图形的,他可以画出边为直线的任意多边形的图形。point lists有五种类型。其结构可以分成三部分:第一部分表示类型,就是point list 类型;第二部分表示顶点的个数,用一个unsigned-integer类型表示;第三部分用delta表示多边形的边长度以及方向,由一串delta构成,每一个delta表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论