Calma GDS II stream format (GDSII)

B.2 Calma GDS II stream format (GDSII)

This description of GDS II format is taken from Appendix C of Computer Aids for VLSI Design by Steven M. Rubin [204].

In the design of integrated circuits, the most popular format for interchange is the Calma GDS II stream format (GDS II is a trademark of Calma Company, a wholly owned subsidiary of General Electric Company, U.S.A.). For many years, this format was the only one of its kind and many other vendors accepted it in their systems. Although Calma has updated the format as their CAD systems have developed, they have maintained backward compatibility so that no GDS II files become obsolete. This is important because GDS II is a binary format that makes assumptions about integer and floating-point representations. A GDS II circuit description is a collection of cells that may contain geometry or other cell references. These cells, called structures in GDS II parlance, have alphanumeric names up to 32 characters long. A library of these structures is contained in a file that consists of a library header, a sequence of structures, and a library tail. Each structure in the sequence consists of a structure header, a sequence of elements, and a structure tail. There are seven kinds of elements: boundary defines a filled polygon, path defines a wire, structure reference invokes a subcell, array reference invokes an array of subcells, text is for documentation, node defines an electrical path, and box places rectangular geometry.

 

B.2.1 Record Format

In order to understand the precise format of the above GDS II components, it is first necessary to describe the general record format. Each GDS II record has a 4-byte header that specifies the record size and function. The first 2 bytes form a 16-bit integer that contains the record length in bytes. This length includes the 4-byte header and must always be an even number. The end of a record can contain a single null byte if the record contents is an odd number of bytes long. The third byte of the header contains the type of the record and the fourth byte contains the type of the data. Since the data type is constant for each record type, this 2-byte field defines the possible records as shown in Table B.2 and Table B.3.

 

 

Table B.2:  GDS II header record types
File Header Records:Bytes 3 and 4Parameter Type
HEADER00022-byte integer
BGNLIB010212 2-byte integers
LIBNAME0206ASCII string
REFLIBS1F062 45-character ASCII strings
FONTS20064 44-character ASCII strings
ATTRTABLE230644-character ASCII string
GENERATIONS22022-byte integer
FORMAT36022-byte integer
MASK3706ASCII string
ENDMASKS3800No data
UNITS03052 8-byte floats
File Tail Records:Bytes 3 and 4Parameter Type
ENDLIB0400No data
Structure Header Records:Bytes 3 and 4Parameter Type
BGNSTR050212 2-byte integers
STRNAME0606Up to 32-characters ASCII string
Structure Tail Records:Bytes 3 and 4Parameter Type
ENDSTR0700No data

 

 

 

 

Table B.3:  GDS II element record types
Element Header Records:Bytes 3 and 4Parameter Type
BOUNDARY0800No data
PATH0900No data
SREF0A00No data
AREF0B00No data
TEXT0C00No data
NODE1500No data
BOX2D00No data
Element Contents Records:Bytes 3 and 4Parameter Type
ELFLAGS26012-byte integer
PLEX2F034-byte integer
LAYER0D022-byte integers
DATATYPE0E022-byte integer
XY1003Up to 200 4-byte integer pairs
PATHTYPE21022-byte integer
WIDTH0F034-byte integer
SNAME1206Up to 32-character ASCII string
STRANS1A012-byte integer
MAG1B058-byte float
ANGLE1C058-byte float
COLROW13022 2-byte integers
TEXTTYPE16022-byte integer
PRESENTATION17012-byte integer
ASCII STRING1906Up to 512-character string
NODETYPE2A022-byte integer
BOXTYPE2E022-byte integer

 

 

B.2.2 Library Head and Tail

A GDS II file header always begins with a HEADER record the parameter of which contains the GDS II version number used to write the file. For example, the bytes 0, 6, 0, 2, 0, 1 at the start of the file constitute the header record for a version-1 file. Following the HEADER comes a BGNLIB record that contains the date of the last modification and the date of the last access to the file. Dates take six 2-byte integers to store the year, month, day, hour, minute, and second. The third record of a file is the LIBNAME, which identifies the name of this library file. For example, the bytes 0, 8, 2, 6, "C", "H", "I", "P" define a library named "CHIP." Following the LIBNAME record there may be any of the optional header records: REFLIBS to name up to two reference libraries, FONTS to name up to four character fonts, ATTRTABLE to name an attribute file, GENERATIONS to indicate the number of old file copies to keep, and FORMAT to indicate the nature of this file. The strings in the REFLIBS, FONTS, and ATTRTABLE records must be the specified length, padded with zero bytes. The parameter to FORMAT has the value 0 for an archived file and the value 1 for a filtered file. Filtered files contain only a subset of the mask layers and that subset is described with one or more MASK records followed by an ENDMASK record. The string parameter in a MASK record names layers and sequences of layers; for example, "1 3 5-7." The final record of a file header must be the UNITS record. The parameters to this record contain the number of user units per database unit (typically less than 1 to allow granularity of user specification) and the number of meters per database unit (typically much less than 1 for IC specifications). Eight-byte floating-point numbers have a sign at the top of the first byte, a 7-bit exponent in the rest of that byte, and 7 more bytes that compose a mantissa (all to the right of an implied decimal point). The exponent is a factor of 16 in excess-64 notation (that is, the mantissa is multiplied by 16 raised to the true value of the exponent, where the true value is its integer representation minus 64). Following the file header records come the structure records. After the last structure has been defined, the file terminates with a simple ENDLIB record. Note that there is no provision for the specification of a root structure to define a circuit; this must be tracked by the designer.

B.2.3 Structure Head and Tail

Each structure has two header records and one tail record that sandwich an arbitrary list of elements. The first structure header is the BGNSTR record, which contains the creation date and the last modification date. Following that is the STRNAME record, which names the structure using any alphabetic or numeric characters, the dollar sign, or the underscore. The structure is then open and any of the seven elements can be listed. The last record of a structure is the ENDSTR. Following it must be another BGNSTR or the end of the library, ENDLIB.

B.2.4 Boundary Element

The boundary element defines a filled polygon. It begins with a BOUNDARY record, has an optional ELFLAGS and PLEX record, and then has required LAYER, DATATYPE, and XY records. The ELFLAGS record which appears optionally in every element, has two flags in its parameter to indicate template data (if bit 16 is set) or external data (if bit 15 is set). This record should be ignored on input and excluded from output. Note that the GDS II integer has bit 1 in the leftmost or most significant position so these two flags are in the least significant bits. The PLEX record is also optional to every element and defines element structuring by aggregating those that have common plex numbers. Although a 4-byte integer is available for plex numbering, the high byte (first byte) is a flag that indicates the head of the plex if its least significant bit (bit 8) is set. The LAYER record is required to define which layer (numbered 0 to 63) is to be used for this boundary. The meaning of these layers is not defined rigorously and must be determined for each design environment and library. The DATATYPE record contains unimportant information and its argument should be zero. The XY record contains anywhere from four to 200 coordinate pairs that define the outline of the polygon. The number of points in this record is defined by the record length. Note that boundaries must be closed explicitly, so the first and last coordinate values must be the same.

B.2.5 Path Element

A path is an open figure with a nonzero width that is typically used to place wires. This element is initiated with a PATH record followed by the optional ELFLAGS and PLEX records. The LAYER record must follow to identify the desired path material. Also, a DATATYPE record must appear and an XY record to define the coordinates of the path. From two to 200 points may be given in a path. Prior to the XY record of a path specification there may be two optional records called PATHTYPE and WIDTH. The PATHTYPE record describes the nature of the path segment ends, according to its parameter value. If the value is 0, the segments will have square ends that terminate at the path vertices. The value 1 indicates rounded ends and the value 2 indicates square ends that overlap their vertices by one-half of their width. The width of the path is defined by the optional WIDTH record. If the width value is negative, then it will be independent of any structure scaling (from MAG records, see next section).

B.2.6 Structure Reference Element

Hierarchy is achieved by allowing structure references (instances) to appear in other structures. The SREF record indicates a structure reference and is followed by the optional ELFLAGS and PLEX records. The SNAME record then names the desired structure and an XY record contains a single coordinate to place this instance. It is allowed to reference structures that have not yet been defined with STRNAME. Prior to the XY record there may be optional transformation records. The STRANS record must appear first if structure transformations are desired. Its parameter has bit flags that indicate mirroring in x before rotation (if bit 1 is set), the use of absolute magnification (if bit 14 is set), and the use of absolute rotation (if bit 15 is set). The magnification and rotation amounts may then be specified in the optional MAG and ANGLE records. The rotation angle is in counterclockwise degrees.

B.2.7 Array of Structures Element

For convenience, an array of structure instances can be specified with the AREF record. Following the optional ELFLAGS and PLEX records comes the SNAME to identify the structure being arrayed. Next, the optional transformation records STRANS, MAG, and ANGLE give the orientation of the instances. A COLROW record must follow to specify the number of columns and the number of rows in the array. The final record is an XY with three points: the coordinate of the corner instance, the coordinate of the last instance in the columnar direction, and the coordinate of the last instance in the row direction. From this information, the amount of instance overlap or separation can be determined. Note that flipping arrays (in which alternating rows or columns are mirrored to abut along the same side) can be implemented with multiple arrays that are interlaced and spaced apart to describe alternating rows or columns.

B.2.8 Text Element

Messages can be included in a circuit with the TEXT record. The optional ELFLAGS and PLEX follow with the mandatory LAYER record after that. A TEXTTYPE record with a zero argument must then appear. An optional PRESENTATION record specifies the font in bits 11 and 12, the vertical presentation in bits 13 and 14 (0 for top, 1 for middle, 2 for bottom), and the horizontal presentation in bits 15 and 16 (0 for left, 1 for center, 2 for right). Optional PATHTYPE, WIDTH, STRANS, MAG, and ANGLE records may appear to affect the text. The last two records are required: an XY with a single coordinate to locate the text and a STRING record to specify the actual text.

B.2.9 Node Element

Electrical nets may be specified with the NODE record. The optional ELFLAGS and PLEX records follow and the required LAYER record is next. A NODETYPE record must appear with a zero argument, followed by an XY record with one to 50 points that identify coordinates on the electrical net. The information in this element is not graphical and does not affect the manufactured circuit. Rather, it is for other CAD systems that use topological information.

B.2.10 Box Element

The last element of a GDS II file is the box. Following the BOX record are the optional ELFLAGS and PLEX records, a mandatory LAYER record, a BOXTYPE record with a zero argument, and an XY record. The XY must contain five points that describe a closed, four-sided box. Unlike the boundary, this is not a filled figure. Therefore it cannot be used for IC geometry.

 

https://www.iue.tuwien.ac.at/phd/minixhofer/node52.html

### 回答1: GDS (Graphic Data System)格式是一种用于存储和交换集成电路(IC)设计布局数据的标准格式。它是由美国半导体工业协会(Semiconductor Industry Association)和美国电子工业协会(Electronic Industries Association)共同开发的,并且已经成为IC设计行业的一种通用格式。 GDS格式的开源化意味着该格式的规范和工具是公开可用的,任何人都可以自由使用、修改和再分发。这有助于促进IC设计行业的发展和创新。开源GDS格式有以下几个优点: 首先,开源GDS格式可以降低IC设计的成本和门槛。由于规范和工具是公开的,设计师可以使用自己熟悉的软件进行设计和布局,无需购买昂贵的专有软件。这降低了设计过程中的起点成本,使更多的人能够参与到IC设计中来。 其次,开源GDS格式能够促进行业间的合作和共享。不同公司和组织可以基于公共的标准进行数据交换和共同开发,避免了不同系统之间的兼容性问题。这有助于提高IC设计的效率和质量,加快新产品的推出速度。 此外,开源GDS格式还能够激发创新和技术进步。由于格式的开放性,研究人员和工程师可以自由地对其进行改进和扩展,推动新的设计方法和算法的发展。这有助于推动集成电路设计的进步,提供更高性能和更低功耗的芯片解决方案。 总之,开源GDS格式对于IC设计行业来说具有重要的意义。它促进了合作和共享,降低了成本和门槛,并且推动了创新和技术进步。相信随着更多人参与其中,开源GDS格式将继续为集成电路设计带来更大的发展机遇。 ### 回答2: “GDS格式”全称为“图形数据系统”(Graphic Data System),是一种用于存储和交换电子设计自动化(EDA)中的布局和电路信息的开放标准格式。它最初由美国卡迪夫高级技术中心(Calma)在1980年代开发,并在2000年成为了ANSI(美国国家标准协会)和IEEE(电气和电子工程师协会)的标准。 GDS格式的开源主要指的是GDSII文件格式,GDSIIGDS格式的第二版,广泛应用于集成电路设计、半导体加工和光刻制造等领域。开源意味着这种格式的规范和实现代码是公开的,任何人都可以查看、使用和修改。 对于EDA领域的开发者和用户来说,GDS格式的开源具有以下一些优势: 1. 可互操作性:GDS格式的开源使得不同的EDA软件可以共享和交换设计数据,促进了产业链上的合作和创新。 2. 自由定制:开源使得用户可以根据自己的需求对规范和代码进行修改和定制,使其适应特定的设计流程和工具。 3. 知识共享:开放源代码鼓励了开发社区和技术社区的知识共享,可以集思广益,推动技术的进步和发展。 4. 更好的支持和发展:开源使得更多的开发者可以参与到GDS格式的优化和维护中,从而提供更好的支持和演进,保证了格式的持续性和稳定性。 总的来说,GDS格式的开源为EDA行业带来了更大的灵活性、互操作性和创新空间,促进了行业的发展和进步。 ### 回答3: GDS格式是一种用于存储微电子制造过程中的设计布局的文件格式,它是由美国电气和电子工程师学会(IEEE)制定的开放标准。GDS是“Graphic Data System”的缩写,它最初是为了满足电子设计自动化(EDA)行业的需求而开发的。 GDS格式开源意味着它的设计规范和文件格式是公开的,任何人都可以免费使用和修改它。这种开放性带来了许多好处。首先,它可以促进技术创新和发展,因为任何人都可以访问并使用GDS格式的文件,从而推动EDA技术的进步。其次,开源性也促进了行业间的合作与共享,不同公司和组织可以更方便地交换和共享GDS格式的文件,提高工作效率。 另外,GDS格式开源还有助于降低成本。由于GDS格式的开放性,企业可以开发和使用自己的GDS工具,而无需购买昂贵的商业软件。这样可以节省大量资金,并促使市场上出现更多价格合理的GDS工具供选择。 最后,GDS格式的开源也有助于保护知识产权。由于GDS格式的规范是公开的,电子设计的知识和技术可以进行更好的记录和保护。这对于研发团队和企业来说非常重要,可以确保他们的知识能够被持续保护,同时也可以防止他人滥用他们的技术。 总而言之,GDS格式开源具有推动技术创新、促进行业合作与共享、降低成本和保护知识产权等优势。因此,GDS格式的开源对于微电子制造行业的发展具有积极的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值