semi合集-English.pdf - 第5933页

SEMI P39-0304 E2 © SEMI 2004 36 APPENDIX 2 OASIS Standard Properties NOTICE : The material in this appendix is an official part of SEMI P39 and was approved by full letter ballot procedures on July 12, 200 3. A2-1 File-L…

100%1 / 7923
SEMI P39-0304
E2
© SEMI 2004 35
{
case 1 :
path = "<stdin>";
fptr = stdin; /* read from standard input */
break;
case 2 :
/* open input file (use the ’b’ flag to read as binary rather than text) */
path = argv[1];
if ( (fptr = fopen(path, "rb") ) == NULL)
{
fprintf(stderr, "\nerror opening %s (%s)\n", path, strerror(errno) );
exit(1);
}
break;
default :
fprintf(stderr, "\nusage: %s pathname\n", argv[0]);
fprintf(stderr, " -or-");
fprintf(stderr, "\n %s < pathname\n", argv[0]);
exit(1);
}
/* initialize */
checksum_init(&chksum);
/* calculate checksum for all data in file */
while (len = (fread(buf, 1, BUFFER_SZ, fptr) ) )
checksum_add(&chksum, buf, len);
if (!feof(fptr) )
{
fprintf(stderr, "\nerror reading %s (%s)\n", path, strerror(errno) );
if (fptr != stdin)
fclose(fptr);
exit(1);
}
if (fptr != stdin)
fclose(fptr);
chksum_to_file = chksum;
/* ensure CHECKSUM32 is written to OASIS file in LITTLE_ENDIAN byte order */
#ifdef BIG_ENDIAN_MACHINE
CHG_ENDIAN(chksum_to_file);
#endif
/* this is the checksum value that should be the last 4 bytes in the file */
printf("chksum_to_file = 0x%08x\n", chksum_to_file);
exit(0);
}
SEMI P39-0304
E2
© SEMI 2004 36
APPENDIX 2
OASIS Standard Properties
NOTICE: The material in this appendix is an official part of SEMI P39 and was approved by full letter ballot
procedures on July 12, 2003.
A2-1 File-Level Standard Properties
A2-1.1 Any file-level standard properties must appear immediately after the START record in an OASIS file. Use
of file-level standard properties is optional—OASIS processors may omit/ignore any or all of them.
A2-1.2 S_MAX_SIGNED_INTEGER_WIDTH
A2-1.2.1 This property declares the maximum number of bytes required to represent any signed-integer in the file,
after all continuation bits have been removed and the integer has been expressed in twos-complement form. Its value
list consists of a single unsigned-integer.
A2-1.3 S_MAX_UNSIGNED_INTEGER_WIDTH
A2-1.3.1 This property declares the maximum number of bytes required to represent any unsigned-integer in the
file, after all continuation bits have been removed. Its value list consists of a single unsigned-integer.
A2-1.4 S_MAX_STRING_LENGTH
A2-1.4.1 This property declares the maximum number of bytes permitted in any string within the file. Its value list
consists of a single unsigned-integer.
A2-1.5 S_POLYGON_MAX_VERTICES
A2-1.5.1 This property declares the maximum number of vertices permitted in any polygon within the file,
including any implicit vertices, but counting the initial vertex only once. Its value list consists of a single unsigned-
integer.
A2-1.6 S_PATH_MAX_VERTICES
A2-1.6.1 This property declares the maximum number of vertices permitted in any path within the file. Its value list
consists of a single unsigned-integer.
A2-1.7 S_TOP_CELL
A2-1.7.1 This property is used to declare the name of the “top cell” of a cell hierarchy. Its value list consists of a
single n-string. It may be repeated if more than one distinct cell hierarchy exists within the OASIS file in which it
appears.
A2-1.8 S_BOUNDING_BOXES_AVAILABLE
A2-1.8.1 This property indicates whether or not S_BOUNDING_BOX properties appear in CELLNAME records.
Its value list consists of a single unsigned-integer. A value of 0 means that S_BOUNDING_BOX properties are not
provided. A value of 1 means that at least some S_BOUNDING_BOX properties are provided. A value of 2 means
that an S_BOUNDING_BOX property is provided for every CELLNAME record.
A2-2 Cell-Level Standard Properties
A2-2.1 Any cell-level standard properties must appear immediately after the corresponding CELLNAME record in
an OASIS file. Use of cell-level standard properties is optional—OASIS processors may omit/ignore any or all of
them.
A2-2.2 S_BOUNDING_BOX
A2-2.2.1 This property may occur once after each CELLNAME record, and declares the bounding box of that cell.
Its value list consists of the following 5 fields: <flags> <lower-left-x> <lower-left-y> <width> <height>. The lower-
left-x and lower-left-y fields are signed-integers representing the lower-left corner of the cell’s bounding box. The
width and height fields are unsigned-integers representing the width and height of the cell’s bounding box. The
SEMI P39-0304
E2
© SEMI 2004 37
bounding box should be calculated to cover the full extent of all geometric figures and text element (x,y) points
within that cell and all of its subcells after a full expansion of any hierarchy beneath the cell.
A2-2.2.2 The flags field is an unsigned-integer. Only the least-significant 3 bits are presently defined, and have the
following meanings:
flags.bit.0: 0 = bounding box is known
1 = bounding box is unknown
flags.bit.1: 0 = bounding box is non-empty
1 = bounding box is empty
flags.bit.2: 0 = bounding box depends on no external cells
1 = bounding box depends on one or more external cells
A2-2.3 S_CELL_OFFSET
A2-2.3.1 This property may occur once after each CELLNAME record. Its value list consists of a single unsigned-
integer which declares the byte offset from the beginning of the file (byte 0) to where the corresponding CELL
record appears in the file. An offset value of 0 denotes an external cell, with no corresponding CELL record in the
same OASIS file.
A2-3 Element-Level Properties
A2-3.1 S_GDS_PROPERTY
A2-3.1.1 This property is intended exclusively for compatibility with GDSII Stream properties. It may occur one or
more times after any element within a CELL definition. Its value list contains exactly two values in sequence:
<attribute>, an unsigned-integer, and <propvalue-string>, a b-string. These values correspond to GDSII Stream
PROPATTR and PROPVALUE records, respectively.
NOTICE: SEMI makes no warranties or representations as to the suitability of the standards set forth herein for any
particular application. The determination of the suitability of the standard is solely the responsibility of the user.
Users are cautioned to refer to manufacturer's instructions, product labels, product data sheets, and other relevant
literature, respecting any materials or equipment mentioned herein. These standards are subject to change without
notice.
By publication of this standard, Semiconductor Equipment and Materials International (SEMI) takes no position
respecting the validity of any patent rights or copyrights asserted in connection with any items mentioned in this
standard. Users of this standard are expressly advised that determination of any such patent rights or copyrights, and
the risk of infringement of such rights are entirely their own responsibility.
Copyright by SEMI® (Semiconductor Equipment and Materials
International), 3081 Zanker Road, San Jose, CA 95134. Reproduction of
the contents in whole or in part is forbidden without express written
consent of SEMI.