首页 光刻版图oasis格式简介

光刻版图oasis格式简介

举报
开通vip

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

光刻版图oasis格式简介
Chapter1 oasis文件简介oasis是用来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示光刻版图的一种文件格式,上面记录了光刻图案。作为gdsii文件的替代格式,和gdsii类似是一种流格式的文件。一般性的介绍可以google到。这里就不再累述。这篇文档,是对参考文献【1】的注释和部分翻译。第一为了方便阅读,对文献【1】中的一些概念和例子进行了解读说明;第二对文献【1】中容易忽略和混淆的地方进行了强调,对没有明确的但可以从其他地方推断出来的一些 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 进行了明确。Chapter2 oasis文件格式是一种二进制流的文件格式。它采用变形的BNF语法来描述文件格式,BNF语法见参考文献【1】中36.1节,oasis文件格式的描述见参考文献【1】中36.2节。这里不对那些内容进行重复叙述,只对文件进行部分说明强调。1. 按照标准是"%SEMI-OASIS",但是各个厂商可能会有不同,可能厂商会加上自己的log。程序中出现了"BROA"作为oasis文件格式的开头字段。2. 特别注意字段中的大括号中的域是不能重复出现的,而中的大括号中的字段是可以重复出现的。在解析的时候要特别注意这点。3. 注意到中,除了自己的关键字START、CBLOCK、PAD和PROPERTY以外,还有两个内嵌的结构,就是。其中中,第一个出现的字段是CELL,每一个中CELL会且仅会出现一次。因此可以把CELL作为第二层解析的入口。而中,由于这些关键字跟其他部分都不重复,而且在一个中仅都只能出现一次,所以可以直接放在第一层解析。具体可以参见第五章。Chapter3 oasis数据类型不同于普通的计算机编程语言的数据格式,oasis作为一种流格式文件,有自己的数据类型表示方法。这些在参考文献【1】中的第七章进行了说明。这里对其中内容进行部分说明,以便方便查阅。一共有下面几种类型的数据格式:Table 1 oasis数据格式类型长度其他说明bytes8bit最低位bit放在最右边integersunsigned-integer不定,N个byte,8个bits中只有7bits表示实际数据,每个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数据出现在文件的最前面。接着它后面才是实际要表达的数值。string由一个unsigned-integer的数据来表示string的长度unsigned-integer数据出现在文件最前面。string可以分成b-string,a-string和n-string三类deltasdelta是用来表示方向和长度的一种数据类型。分成4类。各类长度不一样。在oasis文件中,这种数据的第一个出现的字节的最后几个bit是表示方向。后面具体描述。repetitions用来表示重复出现的各个图形的位置的一种数据类型。也分成多类,各类长度不一。在后面具体说明pointlists利用这个数据结构就可以画出图形。但这个数据结构本身不包括画图的起始位置信息。而在其他地方确定。是一串delta信息,用来表示各条边的长度和方向。图形的顶点越多,长度越长。在后面具体说明。propertyvalue由一个unsigned-integer表示类型,加上后面的propertyvalue值构成。各种类型的属性,value值不一样,但都比较简单。可以参看参考文献的7.8节table9。3.1 integers类型说明3.1.1 unsigned-integerunsigned-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类型说明real的数据类型是一个复合的数据类型,它由一个unsigned-integer的类型做为开头,后面加上若干个unsigned-integer或者1个ieee4float或者1个ieee8float的数据类型来组成。目前,它只定义了8种类型格式,从0到7。Table 2 real数据类型说明类型格式含义0unsigned-integer是一个正的实数,实数的值就等于后面unsigned-integer1unsigned-integer是一个负的实数,实数的绝对值就等于后面unsigned-integer2unsigned-integer是一个正的实数,实数的值就等于后面unsigned-integer的倒数。3unsigned-integer是一个负的实数,实数的绝对值就等于后面unsigned-integer的倒数。4unsigned-integer1unsigned-integer2是一个正的实数,实数的值就等于(unsigned-integer1/unsigned-integer2)。(做除数)5unsigned-integer1unsigned-integer2是一个负的实数,实数的绝对值等于(unsigned-integer1/unsigned-integer2)。(做除数)6IEEE-4-byte-float表示后面是IEEE-4-byte-float的数据格式7IEEE-8-byte-float表示后面是IEEE-8-byte-float的数据格式在参考文献【1】中的第7.3.2节的table4中,各个数值的计算就可以根据上表中的说明计算出来。3.3  string类型说明string数据类型是一个复合的数据类型,它由一个表示字符串长度的unsigned-integer类型数据做为开头,后面加上真正的字符串。字符串可以分成三种:b-string(binarystring),a-string(asciistring)和n-string(namestring).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中的表示数值的部分就用来表示长度。我们举个例子。比如二进制的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-delta2-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-delta3-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*2525*25)的一条线(x轴偏移25,y轴偏移25)。3.4.4  g-deltag-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表示东北方向,101表示西北方向,110表示西南方向,111表示东南方向)。第三个框中的0表示这是这个unsigned-integer数据的最后一个byte。这个数据的长度是二进制的000,0101,110(去掉打框的和加下划线的数值,然后前后byte调转位置),就是十进制的46。整个数据的含义就是沿西南方向画一条长度为sqrt(46×4646×46)的线(也是就是将x轴坐标减少46,y坐标减少46,将这个点作为顶点,和原来坐标点相连画一条直线)。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度方向的线段。举个例子,二进制的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轴沿负方向减少长度46,取一条和y轴平行的直线。后面y轴也取一条和x轴平行直线,两者相交得到一个点。整个delta就是从当前位置到这个点画一条直线。第四个方框中的1和unsinged-integer的含义一样,表示后面还有byte表示同一个unsigned-integer数据。第六个框中的0表示这是第二个unsigned-integer数据的最后一个byte。第五个框中的 1就表示方向,1表示向南(y轴负方向,0表示向北)。整个数据的含义就是y轴沿负方向减少长度46,取一条和x轴平行的直线。3.5  repetitions类型说明在光刻版图中,一个相同的图形常常在多个位置重复出现。repetition就用来表示图形重复出现的位置。repetitions其本质是分成三部分,第一部分表示类型,用一个unsigned-integer的数据来表示,一共有12种类型;第二部分表示维数,就是参考文献【1】中7.6节中table6中的dimension,它表示了这个图形重复出现的次数;第三部分是表示位置,就是各个重复出现的图形应该出现在版图中的哪个位置,就是参考文献【1】中7.6节中table6中的space和displacement。这里先对modalvariable进行说明。modalvariable类似于文件中的内置的全局变量,存储着比如element的放置位置、间隔等信息。当解析一个新的element的时候,element的相关值会存在这些变量里面,后面的element如果不明确指定这些值,就用前面element的值来作为自己的值。由于文件中很多数据是相同的,所以后面的记录(record)中的参数,可能跟前面的一样,所以它就可以省略这些参数,直接将前面record的参数作为自己的参数,从而提高文件的压缩性。Table 3 repetitions类型说明类型format位置坐标0见文献【1】中7.6节中table6重复上一次repetition的数据。根据上一次repetition的类型和数据来重复本图形的计算。比如上次是类型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)的位置为(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-space0x-space1...x-spacei,0),其中x-space0=0。用来生成和x轴平行的重复图案。5同上跟类型4类似,x-dimension=N-2,生成一个N列1行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(i)(i=0,...,N-1)的位置为(grid*(x-space0x-space1...x-spacei),0),其中x-space0=0。用来生成和x轴平行的重复图案。6同上y-dimension=M-2,生成一个1列M行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(j)(j=0,...,M-1)的位置为(0,y-space0y-space1...y-spacej),其中y-space0=0。用来生成和y轴平行的重复图案。7同上跟类型6类似,y-dimension=M-2,生成一个1列M行的矩阵。矩阵中每个元素表示一个重复的图案。元素element(j)(j=0,...,M-1)的位置为(0,gird*(y-space0y-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-delta可以表示任意角度的方向。整个数据生成一个N列M行的矩阵,矩阵中每个元素表示一个重复的图案。元素element(i,j)(i=0,...,N-1,j=0,...,M-1)的位置为(i*nx-spacej*mx-space,i*ny-spacej*my-space)。用来生成沿对角方向(不一定是45度角)的重复图案。9同上dimension=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0,...,P-1)的位置为(k*x-space,k*y-space),用来生成沿对角方向的P维重复图形的图案。10同上dimension=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0,...,P-1)的位置为(x-space0x-space1...x-spacek,y-space0y-space1...y-spacek),它可以用来生成沿任何方向任何位置的P维重复图形的图案。11同上跟类型10类似,dimension=P-2,生成一个P维的向量。向量中每个元素表示一个重复的图案。元素element(k)(k=0,...,P-1)的位置为(grid*(x-space0x-space1...x-spacek),grid*(y-space0y-space1...y-spacek)),它可以用来生成沿任何方向任何位置的P维重复图形的图案。3.6  pointlists类型说明pointlist数据类型是用来画图形的,他可以画出边为直线的任意多边形的图形。pointlists有五种类型。其结构可以分成三部分:第一部分表示类型,就是pointlist类型;第二部分表示顶点的个数,用一个unsigned-integer类型表示;第三部分用delta表示多边形的边长度以及方向,由一串delta构成,每一个delta表示了多边形的一条边。图形的起始位置并不包含在pointlists数据结构中,图形的起始位置由POLYGON记录和PATH记录中的相关信息给出。这里不对pointlist五种类型的数据格式进行具体说明,可以参考参考文献【1】中的7.7.1节中的table7。这里只对表中特别容易混淆或者不清楚的地方进行一些说明。(1) 表中的vertex-count并不是表示顶点的个数,而是表示后面delta类型的数据的个数。有些多边形的边并不需要用delta来表示,比如最后一条边,总可以将起始顶点和最后顶点直接相连来得到。(2) 表中所谓manhattan就是指多边形图形的边只平行x轴或者y轴方向,而不会沿其他方向。(3) 所谓octangular是指多边形的边只平行x轴或者y轴方向,或者与他们形成45度角方向,而不会沿其他方向。如果不是沿45度角认为出错。(4) all-angle则表示多边形的边可能沿任何角度任何方向。我们可以看几个例子,就拿参考文献【1】中的7.7.7中table8和figure6为例子。figure6和table8是对应的。我们拿type3为例,其他类似就不重复了。在Figure6中,(x,y)是表示画图的起始位置,虚线表示缺省暗示的线,不会在delta数据中体现出来。。type3中,对应table8中的bitpattern为00000011,00000100,00010101,00100001,00110000,00010011。首先第一个byte为00000011值为3表示类型3,对应文献【1】中的7.7.1的table7,可以看到后面是3-delta类型的数据。第二个byte为00000100值为4,表示后面有4个3-delta的数据。第三个byte为00010101,对照3-delta的数据格式,可以看到这是一个沿西北方向的线,长度为二进制的1010,也就是十进制的10。第三个byte为00010101,对照3-delta的数据格式,可以看到这是一个沿西北方向的线,这个3-delta数值大小为二进制的10,也就是十进制的2,所以线的长度为sqrt(2×22×2)。第四个byte为00100001,对照3-delta的数据格式,可以看到这是一个向北方向的线,这个3-delta数值大小为二进制的100,也就是十进制的4,所以线的长度为sqrt(4×44×4)。以此类推,最后一条线是缺省暗示的,将最后的一个点和起始点相连即可得到最后的一条直线(图上的虚线)
本文档为【光刻版图oasis格式简介】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_654168
暂无简介~
格式:doc
大小:71KB
软件:Word
页数:16
分类:
上传时间:2022-08-05
浏览量:0