Open Artwork System Interchange Standard

Last updated
OASIS
Developed by SEMI
Initial releaseSeptember 2002;
20 years ago
 (2002-09) [1]
Standards SEMI P39-0416 [2]
Open format?Yes
Free format?No
Website SEMI SEMI P39 - Specification for OASIS (P39-0416)

Open Artwork System Interchange Standard (OASIS [3] ) is a binary file format used for specification of data structures for photomask production. [4] It's used to represent a pattern an interchange and encapsulation format for hierarchical integrated circuit mask layout information produced during integrated circuit design that is further used for manufacturing of a photomask. The standard is developed by SEMI. [2] [1] The language defines the code required for geometric shapes such as rectangles, trapezoids, and polygons. It defines the type of properties each can have, how they can be organized into cells containing patterns made by these shapes and defines how each can be placed relative to each other. It is similar to GDSII.

Contents

As of 2023 the cost of the standard for members of SEMI was set to $252 and non-members: US$335. [5]

Introduction

OASIS is the purported commercial successor to the integrated circuit design and manufacturing electronic pattern layout language, GDSII.

GDSII was created in the 1970s when integrated circuit designs had a few hundred thousand geometric shapes, properties and placements to manage. Today, there can be billions of shapes, properties, and placements to manage. File sizes of GDSII format often takes tens gigabytes of storage and are difficult to store and process. [6] OASIS creators and users claimed that the growth of workstations' data storage and handling capabilities was far outpaced by the growth of Integrated Circuit layout complexity. [7] Therefore, OASIS tries to solve the purported problem of the large size of the GDSII files by introducing complicated types of the geometric shapes (25 types of trapezoids only) to reduce the data size. Also, variable-length numeric format (similar to Run-length encoding) for coordinates was implemented. Finally, each cell in the OASIS file can be independently compressed by the gzip-like algorithm.

The effort to create the OASIS format started in June 2001. The release of version 1.0 took place in March 2004. Its use required the development of new OASIS readers and writers that could be coupled to design and manufacturing equipment already equipped with GDSII readers and writers. Its adoption was born of a concerted effort by integrated circuit design, equipment, photomask, fabless, 3rd party Intellectual Property (IP) and manufacturing companies from the United States, Japan, Taiwan, Korea and Europe.

A constrained version of OASIS, called OASIS.MASK, addresses the unique needs of semiconductor photomask manufacturing equipment such as pattern generators and inspection systems. Both OASIS and OASIS.MASK are industry standards.

Example datafile

This view is called a cell view. A cell can be a collection of placed geometric shapes. It also can be a collection of cells; each containing other cells and/or geometric shapes. Each cell must have at least one layer. In this view, each color represents a different layer within the cell. An integrated circuit can contain tens of thousands of unique cells and repeated instances of the same cell. Wikipediaoasisimage 2.png
This view is called a cell view. A cell can be a collection of placed geometric shapes. It also can be a collection of cells; each containing other cells and/or geometric shapes. Each cell must have at least one layer. In this view, each color represents a different layer within the cell. An integrated circuit can contain tens of thousands of unique cells and repeated instances of the same cell.

Below is a human-readable text representation of the OASIS binary file that allowed the expression of the above "top" cell view called "Placed_shapes_and_cells_within_an_IC_cell". The top cell is defined by a file-level standard PROPERTY record named S_TOP_CELL. The PROPERTY record below references a PROPNAME record (refNum=0) that has a propname-string called S_TOP_CELL. The top cell contains the placement of three cells called "bottom cells". Bottom cells contain geometric shapes only.

Each line of the OASIS representation below contains (from the left) a record number and a record type followed by a set of values that define that record type. For instance, the first RECTANGLE record below defines the following type of rectangle shape, its size and its absolute location:

Absent in this RECTANGLE record is an option to describe the locations of repeated instances of the rectangle. Also, this record type allows the description of a square by defining the value for the width only. To enable these descriptions, one must set what is referred to as the bit pattern for the RECTANGLE record. For a RECTANGLE record, the bit pattern (either a 1 (enabled) or a 0 (disabled)) is:

SWHXYRDL (Square,Width,Height,X-coordinate,Y-coordinate,Repetition,Datatype,Layer-number).

For this RECTANGLE record, the bit pattern is set to 0WHXY0DL (Not a square,Width,Height,X-coordinate,Y-coordinate,Not repetitive,Datatype,Layer-number). The first and second RECTANGLE records in cell "Cell_Placed_Shapes_2" (CELL refNum=1)" define repeated instances of a rectangle. The first RECTANGLE record (SW0XYRDL) uses a type 10 repetition (rep=rep10). The second RECTANGLE record (0WHXYR0L) uses a type 11 repetition (rep=Rep11). There are a total of eleven repetition types (Rep1-Rep11). In the second RECTANGLE record bit pattern, the datatype(D) was set to '0' because the same datatype used in the first RECTANGLE record applies to the second RECTANGLE record. Other OASIS-supported geometric shapes having the record types POLYGON, TRAPEZOID, CTRAPEZOID, CIRCLE and PATH are defined by different bit patterns.

According to the CELLNAME records below, the bottom cells have the following cellname-strings "Cell_Placed_Shapes_1, . . . _2 and . . . _3". Each layer-number that had been assigned to a geometric shape has an association with a LAYERNAME record that defines a layer-interval and a layername-string. In this view, the layername-string, "Layer_Color_Mapping", defines the layer intervals used in a layer color table "layercolormap.data".

The example below was not meant to be an exhaustive description of the OASIS language. The objective was to give the interested reader a general understanding of the scope of the OASIS language and how it applies to the representation and the expression of the electronic layout patterns that define an integrated circuit.

- MAGIC "%SEMI-OASIS\015\012 1 START version="1.0" unit=real0(1000) offsetFlag=0 offsets=[(0,0) (0,0) (0,0) (0,0) (0,0) (0,0)] 28 PROPERTY 00010CNS refNum=0 count=(1) string12("Placed_shapes_and_cells_within_an_IC_cell") 7 PROPNAME name="S_TOP_CELL" refNum=(0) 3 CELLNAME name="Cell_Placed_Shapes_1" refNum=(0) 3 CELLNAME name="Cell_Placed_Shapes_2" refNum=(1) 3 CELLNAME name="Cell_Placed_Shapes_3" refNum=(2) 3 CELLNAME name="Placed_shapes_and_cells_within_an_IC_cell" refNum=(3) 11 LAYERNAME name="Layer_Color_Mapping" layers=3(25:25) datatypes=1(0:0) 11 LAYERNAME name="Layer_Color_Mapping" layers=4(41:46) datatypes=1(0:0) 11 LAYERNAME name="Layer_Color_Mapping" layers=3(49:49) datatypes=1(0:0) 11 LAYERNAME name="Layer_Color_Mapping" layers=3(63:63) datatypes=1(0:0) 13 CELL refNum=3 17 PLACEMENT CNXY0000 refNum=0 x=0 y=0 17 PLACEMENT CNXY0000 refNum=1 x=0 y=0 17 PLACEMENT CNXY0000 refNum=2 x=0 y=0 13 CELL refNum=0 20 RECTANGLE 0WHXY0DL layer=41 datatype=1 width=3960 height=1980 x=-440 y=-220 20 RECTANGLE 00H0Y00L layer=42 height=2420 y=1760 20 RECTANGLE 0WHXY00L layer=63 width=3080 height=3960 x=0 y=0 20 RECTANGLE 0WHXY00L layer=43 width=2255 height=55 x=110 y=605 20 RECTANGLE 0WH0Y000 width=2860 height=330 y=660 20 RECTANGLE 00H0Y000 height=110 y=2530 20 RECTANGLE 0WH0Y000 width=2750 height=220 y=2640 20 RECTANGLE 0WH0Y000 width=2255 height=550 y=2860 20 RECTANGLE 0WHXY000 width=330 height=440 x=2035 y=165 20 RECTANGLE 0WH0Y000 width=935 height=220 y=2310 20 RECTANGLE 0WH0Y000 width=330 height=385 y=3410 20 RECTANGLE S00XY000 x=2585 y=3465 20 RECTANGLE 0WHXY00L layer=44 width=3330 height=1665 x=-125 y=1760 20 RECTANGLE 0WH0Y000 width=2670 height=410 y=3425 20 RECTANGLE 0WH0Y000 width=3330 height=250 y=3835 20 RECTANGLE 0WHXY000 width=250 height=410 x=2955 y=3425 20 RECTANGLE 0WHXY00L layer=45 width=3330 height=1885 x=-125 y=-125 20 RECTANGLE SW0XY000 width=410 x=2545 y=3425 13 CELL refNum=1 20 RECTANGLE SW0XYRDL layer=25 datatype=0 width=160 x=195 y=690 rep=rep10[dim=15 disp=(g(0,1430) g(0,1045) g(550,-1375) g(220,-550) g(165,-495) g(0,1870) g(165,-495) g(825,-1870) g(0,3300) g(275,-1980) g(165,1540) g(110,440) g(55,-2805) g(0,1650))] 20 RECTANGLE 0WHXYR0L layer=46 width=340 height=220 x=105 y=2030 rep=rep11[dim=3 grid=10 disp=(g(55,-21) g(165,-22))] 20 RECTANGLE 0WH0YR00 width=505 height=120 y=2250 rep=rep10[dim=3 disp=(g(2365,-1100) g(0,880))] 20 RECTANGLE 0W0XY000 width=285 x=325 y=1370 20 RECTANGLE 0WH0Y000 width=120 height=540 y=1490 20 RECTANGLE 00HXY000 height=1045 x=490 y=325 20 RECTANGLE 00H0YR00 height=1320 y=2370 rep=rep2[xdim=2 dx=935] 20 RECTANGLE 0WHXY000 width=890 height=120 x=655 y=1700 20 RECTANGLE 0WHXY000 width=120 height=825 x=875 y=325 20 RECTANGLE SW00YR00 width=340 y=1150 rep=rep10[dim=3 disp=(g(330,880) g(1265,990))] 2 END

Industry standard

OASIS and OASIS.MASK are now formal industry standards. Both are owned and maintained by the trade and standards organization SEMI. SEMI serves the semiconductor materials and equipment industries worldwide.

The fee-based specifications for SEMI P39 OASIS and SEMI P44 OASIS.MASK can be downloaded from SEMI's web-site.

See also

Footnotes

  1. 1 2 "About OASIS SEMI P39". www.yottadatasciences.com. Retrieved 2022-05-26.
  2. 1 2 "OASIS". www.layouteditor.org. Retrieved 2022-05-26.
  3. The trade name OASIS is a registered trademark in the USA of Thomas J. Grebinski, Alamo, California and licensed for use exclusively by SEMI.
  4. "SEMI P39 : 2016 SPECIFICATION FOR OASIS - OPEN ARTWORK SYSTEM INT". infostore.saiglobal.com. Retrieved 2023-05-23.
  5. "P03800 - SEMI P39 - Specification for OASIS® – Open Artwork System Interchange Standard". semi.org. Retrieved 2023-05-23.
  6. "OASIS Format". www.wrcad.com. Retrieved 2023-05-23.
  7. "Going from GDSII to OASIS". EETimes. 2022-08-30. Retrieved 2022-09-11.

Related Research Articles

The aspect ratio of a geometric shape is the ratio of its sizes in different dimensions. For example, the aspect ratio of a rectangle is the ratio of its longer side to its shorter side—the ratio of width to height, when the rectangle is oriented as a "landscape".

<span class="mw-page-title-main">Area</span> Size of a two-dimensional surface

Area is the measure of a region's size on a surface. The area of a plane region or plane area refers to the area of a shape or planar lamina, while surface area refers to the area of an open surface or the boundary of a three-dimensional object. Area can be understood as the amount of material with a given thickness that would be necessary to fashion a model of the shape, or the amount of paint necessary to cover the surface with a single coat. It is the two-dimensional analogue of the length of a curve or the volume of a solid . Two different regions may have the same area ; by synecdoche, "area" sometimes is used to refer to the region, as in a "polygonal area".

<span class="mw-page-title-main">ISO 216</span> International standard for paper sizes, including A4

ISO 216 is an international standard for paper sizes, used around the world except in North America and parts of Latin America. The standard defines the "A", "B" and "C" series of paper sizes, including A4, the most commonly available paper size worldwide. Two supplementary standards, ISO 217 and ISO 269, define related paper sizes; the ISO 269 "C" series is commonly listed alongside the A and B sizes.

Standard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of theorem provers.

In software engineering, the delegation pattern is an object-oriented design pattern that allows object composition to achieve the same code reuse as inheritance.

<span class="mw-page-title-main">Riemann sum</span> Approximation technique in integral calculus

In mathematics, a Riemann sum is a certain kind of approximation of an integral by a finite sum. It is named after nineteenth century German mathematician Bernhard Riemann. One very common application is approximating the area of functions or lines on a graph, but also the length of curves and other approximations.

In knowledge representation and ontology components, including for object-oriented programming and design, is-a is a subsumption relationship between abstractions, wherein one class A is a subclass of another class B . In other words, type A is a subtype of type B when A's specification implies B's specification. That is, any object that satisfies A's specification also satisfies B's specification, because B's specification is weaker.

In computer science, a tagged union, also called a variant, variant record, choice type, discriminated union, disjoint union, sum type or coproduct, is a data structure used to hold a value that could take on several different, but fixed, types. Only one of the types can be in use at any one time, and a tag field explicitly indicates which one is in use. It can be thought of as a type that has several "cases", each of which should be handled correctly when that type is manipulated. This is critical in defining recursive datatypes, in which some component of a value may have the same type as that value, for example in defining a type for representing trees, where it is necessary to distinguish multi-node subtrees and leaves. Like ordinary unions, tagged unions can save storage by overlapping storage areas for each type, since only one is in use at a time.

In computer science, a union is a value that may have any of several representations or formats within the same position in memory; that consists of a variable that may hold such a data structure. Some programming languages support special data types, called union types, to describe such values and variables. In other words, a union type definition will specify which of a number of permitted primitive types may be stored in its instances, e.g., "float or long integer". In contrast with a record, which could be defined to contain both a float and an integer; in a union, there is only one value at any given time.

<span class="mw-page-title-main">Photomask</span> Photolithographic Tool

A photomask is an opaque plate with transparent areas that allow light to shine through in a defined pattern. Photomasks are commonly used in photolithography for the production of integrated circuits to produce a pattern on a thin wafer of material. Several masks are used in turn, each one reproducing a layer of the completed design, and together known as a mask set.

<span class="mw-page-title-main">GDSII</span> Database file format for data exchange of integrated circuit layout artwork

GDSII stream format (GDSII), is a binary database file format which is the de facto industry standard for Electronic Design Automation data exchange of integrated circuit or IC layout artwork. It is a binary file format representing planar geometric shapes, text labels, and other information about the layout in hierarchical form. The data can be used to reconstruct all or part of the artwork to be used in sharing layouts, transferring artwork between different tools, or creating photomasks.

<span class="mw-page-title-main">Optical proximity correction</span> Photolithography enhancement technique

Optical proximity correction (OPC) is a photolithography enhancement technique commonly used to compensate for image errors due to diffraction or process effects. The need for OPC is seen mainly in the making of semiconductor devices and is due to the limitations of light to maintain the edge placement integrity of the original design, after processing, into the etched image on the silicon wafer. These projected images appear with irregularities such as line widths that are narrower or wider than designed, these are amenable to compensation by changing the pattern on the photomask used for imaging. Other distortions such as rounded corners are driven by the resolution of the optical imaging tool and are harder to compensate for. Such distortions, if not corrected for, may significantly alter the electrical properties of what was being fabricated. Optical proximity correction corrects these errors by moving edges or adding extra polygons to the pattern written on the photomask. This may be driven by pre-computed look-up tables based on width and spacing between features or by using compact models to dynamically simulate the final pattern and thereby drive the movement of edges, typically broken into sections, to find the best solution,. The objective is to reproduce the original layout drawn by the designer on the semiconductor wafer as well as possible.

Mask data preparation (MDP), also known as layout post processing, is the procedure of translating a file containing the intended set of polygons from an integrated circuit layout into set of instructions that a photomask writer can use to generate a physical mask. Typically, amendments and additions to the chip layout are performed in order to convert the physical layout into data for mask production.

Caltech Intermediate Form (CIF) is a file format for describing integrated circuits. CIF provides a limited set of graphics primitives that are useful for describing the two-dimensional shapes on the different layers of a chip. The format allows hierarchical description, which makes the representation concise. In addition, it is a terse but human-readable text format.

<span class="mw-page-title-main">Multiple patterning</span> Technique used to increase the number of structures a microchip may contain

Multiple patterning is a class of technologies for manufacturing integrated circuits (ICs), developed for photolithography to enhance the feature density. It is expected to be necessary for the 10 nm and 7 nm node semiconductor processes and beyond. The premise is that a single lithographic exposure may not be enough to provide sufficient resolution. Hence additional exposures would be needed, or else positioning patterns using etched feature sidewalls would be necessary.

<span class="mw-page-title-main">Domino tiling</span> Geometric construct

In geometry, a domino tiling of a region in the Euclidean plane is a tessellation of the region by dominoes, shapes formed by the union of two unit squares meeting edge-to-edge. Equivalently, it is a perfect matching in the grid graph formed by placing a vertex at the center of each square of the region and connecting two vertices when they correspond to adjacent squares.

<span class="mw-page-title-main">Cavalieri's principle</span> Geometry concept

In geometry, Cavalieri's principle, a modern implementation of the method of indivisibles, named after Bonaventura Cavalieri, is as follows:

<span class="mw-page-title-main">Barnsley fern</span> Fractal which resembles a plant

The Barnsley fern is a fractal named after the British mathematician Michael Barnsley who first described it in his book Fractals Everywhere. He made it to resemble the black spleenwort, Asplenium adiantum-nigrum.

QML is a user interface markup language. It is a declarative language for designing user interface–centric applications. Inline JavaScript code handles imperative aspects. It is associated with Qt Quick, the UI creation kit originally developed by Nokia within the Qt framework. Qt Quick is used for mobile applications where touch input, fluid animations and user experience are crucial. QML is also used with Qt3D to describe a 3D scene and a "frame graph" rendering methodology. A QML document describes a hierarchical object tree. QML modules shipped with Qt include primitive graphical building blocks, modeling components, behavioral components, and more complex controls. These elements can be combined to build components ranging in complexity from simple buttons and sliders, to complete internet-enabled programs.

In computer graphics programming, hit-testing is the process of determining whether a user-controlled cursor intersects a given graphical object drawn on the screen. Hit-testing may be performed on the movement or activation of a mouse or other pointing device.