semi合集-English.pdf - 第5909页

SEMI P39-0304 E2 © SEMI 2004 12 Table 10 Modal Variables Modal Variables Related Records repetition PLACEMENT, TEXT, P OLYGON, PATH, RECTANGLE, TRAPEZOID, CTRAPEZOID, CIRCLE, XGEOMETRY placement-x, placem ent-y, placemen…

100%1 / 7923
SEMI P39-0304
E2
© SEMI 2004 11
7.7.8 EXCEPTION HANDLING — A point-list type outside the range of 0 to 5 should be treated as a fatal error.
For point-list types 0-1, successive coincident points and/or adjacent colinear edges are not permitted. A non-
manhattan implicit closing vector for a polygon using point-list type 2, or a non-octangular implicit closing vector
for a polygon using point-list type 3 should be treated as a fatal error. For polygons using point-list types 0-1, a
vertex count which is odd or less than 2 should be treated as a fatal error.
7.8 Property Values
7.8.1 A property-value stores one element of a property value list. It consists of an unsigned-integer which encodes
its type, followed by either the value itself or a reference number. Types 0-7 are reals which conform to the scheme
described in Table 3 on page 5.
Table 9 Property Value Types
Type Format
0-7 real (see Table 3)
8
unsigned-integer
9
signed-integer
10
a-string
11
b-string
12
n-string
13 propstring-reference-number (implied a-string)
14 propstring-reference-number (implied b-string)
15 propstring-reference-number (implied n-string)
7.8.2 EXCEPTION HANDLING
— A property-value type outside the range of 0 to 15 should be treated as a fatal
error. Use of a propstring-reference-number for which there is no corresponding PROPSTRING record within
the same OASIS file should be treated as a fatal error.
8 CELL Referencing
8.1 As in GDSII Stream, cells in OASIS are identified by name
. The CELL record not only introduces a cell
definition but also defines its name. PLACEMENT records refer by name to the cell being placed. As in GDSII
Stream, there are no “anonymous” cells in OASIS.
9 Layers, Datatypes, and Texttypes
9.1 As in GDSII Stream, every <geometry> has associated with it a layer number and a datatype number and every
text element has associated with it a textlayer number and a texttype number.
10 Modal Variables
10.1 For compaction purposes, selected data elements in many OASIS records may be implicitly specified through
the use of modal variables or stored state. At the beginning of the file, and whenever a CELL or <name> record is
encountered, all modal variables with the exception of placement-x, placement-y, geometry-x, geometry-y, text-x,
and text-y, are set to a state of undefined; the exceptions just mentioned are set to 0. As various elements appear in
the cell’s description, modal variables related to those elements are set from the elements’ definitions. These modal
variables can then be used implicitly by successive elements. A modal variable may hold a single value such as
geometry-w, or a multi-variable structure such as a repetition.
SEMI P39-0304
E2
© SEMI 2004 12
Table 10 Modal Variables
Modal Variables Related Records
repetition
PLACEMENT, TEXT, POLYGON, PATH,
RECTANGLE, TRAPEZOID, CTRAPEZOID,
CIRCLE, XGEOMETRY
placement-x, placement-y, placement-cell
PLACEMENT
layer, datatype POLYGON, PATH, RECTANGLE, TRAPEZOID,
CTRAPEZOID, CIRCLE, XGEOMETRY
textlayer, texttype, text-x, text-y, text-string
TEXT
geometry-x, geometry-y
POLYGON, PATH, RECTANGLE, TRAPEZOID
CTRAPEZOID, CIRCLE, XGEOMETRY
xy-mode
PLACEMENT, TEXT, POLYGON, PATH,
RECTANGLE, TRAPEZOID, CTRAPEZOID,
CIRCLE, XGEOMETRY, XYABSOLUTE,
XYRELATIVE
geometry-w, geometry-h
RECTANGLE, TRAPEZOID, CTRAPEZOID
polygon-point-list
POLYGON
path-halfwidth, path-point-list, path-start-extension,
path-end-extension
PATH
ctrapezoid-type
CTRAPEZOID
circle-radius
CIRCLE
last-property-name, last-value-list
PROPERTY
10.2 Modal variable xy-mode governs the interpretation of the x and y fields for those related record types indicated
in Table 10. Two interpretation modes are provided: absolute and relative. See Section 21 on page 17 for a
discussion of how these two modes work.
10.3 EXCEPTION HANDLING
— An OASIS record which implicitly references a modal variable which is in the
undefined state should be treated as a fatal error.
11 Records
11.1 The basic unit of information in an OASIS file is a record. A record consists of a single unsigned-integer
which encodes the record-ID, followed by the remainder of the record’s descriptive data. In this specification,
record-ID values are displayed as decimal numbers enclosed in apostrophes.
11.2 The CBLOCK record is a special case since it encapsulates a series of ordinary records in byte-compressed
form. When a CBLOCK record is encountered while reading an OASIS file, it is first necessary to decompress its
data, which will produce one or more ordinary records, which can in turn be decoded. For more information on
CBLOCK records refer to Section 35 on page 26.
11.3 Most records have an implicit length—the record must be parsed and decoded in order to determine its length.
The XNAME, XELEMENT, and XGEOMETRY records are exceptions to this. They encapsulate all of their user-
defined data in a single variable-length b-string, so they can be used for prototyping new record types, hiding
embedded proprietary data, supporting local non-interoperable extensions, etc. without rendering an OASIS file
illegible to older readers, which can simply note the string length and skip over the record.
11.4 EXCEPTION HANDLING
— OASIS processors should treat the nesting of a CBLOCK record within another
CBLOCK record as a fatal error.
12 PAD Record
12.1 A PAD record provides a simple way to reserve space within an OASIS file. It has the following format:
‘0’
SEMI P39-0304
E2
© SEMI 2004 13
12.2 PAD records may be inserted between any other two records.
12.3 EXCEPTION HANDLING
— The presence of a PAD record before the START record or after the END
record should be treated as a fatal error.
13 START Record
13.1 A START record identifies the beginning of an OASIS file, and immediately follows the <magic-bytes>
sequence described in Section 6.4 on page 3. It has the following format:
‘1’ version-string unit offset-flag [ table-offsets ]
13.2 The version-string is an a-string whose value is “1.0” for this version of the OASIS specification. Version
“1.0” corresponds to the OASIS format as described in this document.
13.3 The unit declaration is a positive
real number which specifies the global precision of the OASIS file’s
coordinate system in grid steps per micron. The OASIS unit value is essentially the reciprocal of the first value in
the GDSII Stream UNITS record.
13.4 offset-flag (an unsigned-integer) is 0 when the table-offsets structure is stored in the START record; offset-
flag is 1 when the table-offsets structure is instead stored in the END record. The option of storing table-offsets in
the END record is provided to make it possible to write an OASIS file sequentially, with no seek-and-update access
required, while still providing cell-level random-access capability for subsequent readers of that OASIS file.
13.5 The table-offsets structure consists of 6 pairs of unsigned-integers. Each pair consists of a flag field, and a
corresponding byte-offset field, in the following order:
Table 11 Table Offset Order
Flag Byte-Offset
cellname-flag cellname-offset
textstring-flag textstring-offset
propname-flag propname-offset
propstring-flag propstring-offset
layername-flag layername-offset
xname-flag xname-offset
13.6 Each of the flag fields is either 1, indicating strict mode, or 0, indicating non-strict mode, for its respective
table. The corresponding byte-offset field indicates the position of the first record of its respective table relative to
the first byte (byte 0) of the OASIS file. A byte-offset of 0 indicates the absence of that particular table.
13.7 In non-strict mode, records of the corresponding type may occur anywhere in the file, even if some of them
have been gathered into a table pointed to by the corresponding byte-offset.
13.8 In strict mode, all
records of the corresponding type (plus any associated PROPERTY records) have been
gathered into a single contiguous table pointed to by the corresponding byte-offset. PAD records are also permitted
in strict mode tables. In addition, strict mode guarantees
that all references to the corresponding class of objects
(names, strings, or cells) are made exclusively by reference-number.
13.9 When a given strict mode table has been encapsulated within one or more CBLOCK records, the
corresponding byte-offset should point to the first byte of the first CBLOCK record containing that table, and the
first record of the table must be the first record which appears after decompression of the CBLOCK record.
Adherence to this requirement means that it is not permissible to encapsulate more than one strict mode table within
a single CBLOCK record, nor is it permissible to begin a strict mode table in the middle of a CBLOCK record.
13.10 EXCEPTION HANDLING
— The absence of a START record as the first record in an OASIS file should be
treated as a fatal error. A value of unit which is NaN, Inf, or non-positive, should also be treated as a fatal error.
When a given table offset is nonzero and the table is flagged as strict, the presence of a “stray” record of that type