semi合集-English.pdf - 第5912页

SEMI P39-0304 E2 © SEMI 2004 15 15 CELLNAME Record 15.1 A CELLNAME record associates the name of a cell w ith a unique refere nce number. This allows CELL and PLACEMENT records , if desired, to avoid redundantl y storing…

100%1 / 7923
SEMI P39-0304
E2
© SEMI 2004 14
located discontiguously from its tabular group should be treated as a fatal error, and any records which fail to use
reference-number access for that class of objects should be treated as a fatal error. An OASIS reader which does not
rely on any of the record grouping, reference-number, and byte-offset guarantees provided by strict mode is not
required to detect and report any exceptions related to strict mode.
14 END Record
14.1 An END record identifies the end of the OASIS file. The END record must be the last record in the file; no
trailing bytes are permitted. It has the following format:
‘2’ [ table-offsets ] padding-string validation-scheme [ validation-signature ]
14.2 The presence of the table-offsets structure is governed by offset-flag in the START record (see Section 13 on
page 13). The padding-string (a b-string) must be sized and inserted by the OASIS writer so that the total byte
length of the END record, including the record-ID, is exactly 256 bytes. This makes it possible for an OASIS reader
to find the END record (and any table-offsets and validation-signature) using a relative seek from the logical end-
of-file, avoiding the need to store a forward pointer in the START record. The contents of padding-string should
be initialized to NUL characters.
14.3 validation-scheme is an unsigned-integer which selects the validation scheme used, and validation-signature
is an optional scheme-dependent group of bytes used for validating the integrity of the OASIS file. The following
validation schemes are defined:
Table 12 END Record Validation Schemes
Scheme Description Validation Signature Length
0 No Validation 0
1 CRC32 4
2 CHECKSUM32 4
14.4 CRC32 Validation
14.4.1 The CRC32 polynomial is specified in ISO 3309:
x
32
+ x
26
+ x
23
+ x
22
+ x
16
+ x
12
+ x
11
+ x
10
+ x
8
+ x
7
+ x
5
+ x
4
+ x
2
+ x
1
+ x
0
With the left-most bit representing the most significant bit, this corresponds to a value of:
binary 1 0000 0100 1100 0001 0001 1101 1011 0111
hexadecimal 104c11db7
14.4.2 The CRC32 value is computed using all of the bytes in the OASIS file from the first byte of the START
record to the END record’s validation-scheme integer. It is byte-order dependent. The resulting 32-bit word is
stored in the last 4 bytes of the file, with the least significant byte first. This calculation is usually implemented
using a table-lookup shift/XOR method. See Appendix 1 for sample C-language source code.
14.5 CHECKSUM32 Validation
14.5.1 The CHECKSUM32 validation signature is computed as a simple unsigned arithmetic summation of all of
the bytes in the OASIS file from the first byte of the START record to the END record’s validation-scheme
integer. This value is then truncated to its least significant 32 bits and stored in the last 4 bytes of the file, with the
least significant byte first. It is not byte-order dependent, and this characteristic makes it somewhat easier to
calculate if the file is not written sequentially. It is, however, far less effective than CRC32 for detecting errors. See
Appendix 1 for sample C-language source code.
14.6 EXCEPTION HANDLING
— OASIS processors should treat the absence of an END record in an OASIS file
as a fatal error.
SEMI P39-0304
E2
© SEMI 2004 15
15 CELLNAME Record
15.1 A CELLNAME record associates the name of a cell with a unique reference number. This allows CELL and
PLACEMENT records, if desired, to avoid redundantly storing the actual text of the cell name and instead refer to
the cell by its assigned reference number. It has the following format:
‘3’ cellname-string
‘4’ cellname-string reference-number
15.2 cellname-string is an n-string which holds the cell name. The reference-number is an unsigned-integer
which is either implicitly or explicitly assigned to the cell. Implicit assignment occurs in record type ‘3’, by
assigning sequential reference numbers beginning with 0 as each successive CELLNAME record is encountered.
Explicit assignment occurs in record type ‘4’.
15.3 Two standard properties, S_BOUNDING_BOX and S_CELL_OFFSET (described in Section A2-2 on page
36), may be associated with each CELLNAME record. When all CELLNAME records have been grouped into a
single contiguous table in strict mode (as described in Section 13 on page 13), with an S_CELL_OFFSET property
for every CELLNAME record, the table forms a complete index of all cells in the OASIS file, suitable for random
access.
15.4 Record types ‘3’ and ‘4’ may not both be used in the same OASIS file.
15.5 EXCEPTION HANDLING
— The appearance of two CELLNAME records in the same file with the same
number but different names, or two CELLNAME records in the same file with the same name but different
numbers, should be treated as a fatal error. The appearance of both record types ‘3’ and ‘4’ in the same OASIS file
should be treated as a fatal error. The presence of more than one S_CELL_OFFSET or S_BOUNDING_BOX
property after a given CELLNAME record should be treated as a fatal error.
16 TEXTSTRING Record
16.1 A TEXTSTRING record associates a text string with a unique reference number. This allows TEXT records,
if desired, to avoid redundantly storing the actual text of the string and instead refer to the string by its assigned
reference number. It has the following format:
‘5’ text-string
‘6’ text-string reference-number
16.2 text-string is an a-string which holds the text string. The reference-number is an unsigned-integer which is
either implicitly or explicitly assigned to the text string. Implicit assignment occurs in record type ‘5’, by assigning
sequential reference numbers beginning with 0 as each successive TEXTSTRING record is encountered. Explicit
assignment occurs in record type ‘6’.
16.3 Record types ‘5’ and ‘6’ may not both be used in the same OASIS file.
16.4 EXCEPTION HANDLING
— The appearance of two TEXTSTRING records in the same file with the same
number but different names, or two TEXTSTRING records in the same file with the same name but different
numbers, should be treated as a fatal error. The appearance of both record types ‘5’ and ‘6’ in the same OASIS file
should be treated as a fatal error.
17 PROPNAME Record
17.1 A PROPNAME record associates the name of a property with a unique reference number. This allows
PROPERTY records, if desired, to avoid redundantly storing the actual text of the property name and instead refer
to the property name by its assigned reference number. It has the following format:
‘7’ propname-string
‘8’ propname-string reference-number
SEMI P39-0304
E2
© SEMI 2004 16
17.2 propname-string is an n-string which holds the property name. The reference-number is an unsigned-
integer which is either implicitly or explicitly assigned to the property name. Implicit assignment occurs in record
type ‘7’, by assigning sequential reference numbers beginning with 0 as each successive PROPNAME record is
encountered. Explicit assignment occurs in record type ‘8’.
17.3 Record types ‘7’ and ‘8’ may not both be used in the same OASIS file.
17.4 EXCEPTION HANDLING
— The appearance of two PROPNAME records in the same file with the same
number but different names, or two PROPNAME records in the same file with the same name but different
numbers, should be treated as a fatal error. The appearance of both record types ‘7’ and ‘8’ in the same OASIS file
should be treated as a fatal error.
18 PROPSTRING Record
18.1 A PROPSTRING record associates a property string with a unique reference number. This allows
PROPERTY records, if desired, to avoid redundantly storing the actual text of the property string and instead refer
to the property string by its assigned reference number. It has the following format:
‘9’ prop-string
‘10’ prop-string reference-number
18.2 prop-string is an a-string, b-string , or n-string which holds the property string, depending on the referencing
PROPERTY record. The reference-number is an unsigned-integer which is either implicitly or explicitly assigned
to the property string. Implicit assignment occurs in record type ‘9’, by assigning sequential reference numbers
beginning with 0 as each successive PROPSTRING record is encountered. Explicit assignment occurs in record
type ‘10’.
18.3 Record types ‘9’ and ‘10’ may not both be used in the same OASIS file.
18.4 EXCEPTION HANDLING
— The appearance of two PROPSTRING records in the same file with the same
number but different names should be treated as a fatal error. The appearance of both record types ‘9’ and ‘10’ in the
same OASIS file should be treated as a fatal error.
19 LAYERNAME Record
19.1 A LAYERNAME record provides a means of mapping numeric (layer,datatype) and (layer,texttype)
combinations to layer names. It has the following format:
‘11’ layername-string layer-interval datatype-interval
‘12’ layername-string textlayer-interval texttype-interval
19.2 Record type ‘11’ maps a range of (layer,datatype) numbers to a layer name, and record type ‘12’ maps a range
of (textlayer,texttype) numbers to a layer name.
19.3 layername-string is an n-string containing the layer name.
19.4 Each of the interval fields consists of an unsigned-integer denoting the interval type, followed by 0, 1, or 2
unsigned-integers representing the bounds of that interval as follows:
Table 13 LAYERNAME Interval Types
Type Bounds Implied Range
0
0 to
1
bound-a
0 to bound-a
2
bound-a
bound-a to
3
bound-a bound-a
4
bound-a bound-b
bound-a to bound-b