GDSIIファイル解析① [レコードタイプ一覧]
概要
本ドキュメントは、GDSIIフォーマットを実践的に説明していきます。GDSIIフォーマットの基本構造、概念、歴史的な話は、以下のサイトで詳しく説明していますのでご覧ください。ここで、より具体的なフォーマットの理解を進めていきます。
では早速GDSIIのデータフォーマットを見ていきましょう。
レコードタイプ(Record Type)とは?
GDSIIファイルはバイナリ形式で構成されており、その形式は決まっています。
最初の2バイトは、レコード長です。バイナリ形式は数字の羅列で文章のように区切りがないため、最初にレコード長という終わりを指定しないと、どこからどこまでを一区切りとすればいいのか分かりません。次の1バイトはレコードタイプです。レコードタイプはGDSIIの規格で今回まとめる内容です。続く1バイトはデータ型で、以降は可変長です。
| バイト位置 | バイト数 | 内容 | 例 | 意味 |
|---|---|---|---|---|
| 0-1 | 2 | レコード長 | 0x0006 | このレコード全体が6バイト |
| 2 | 1 | レコードタイプ | 0x00 | HEADERレコード |
| 3 | 1 | データ型 | 0x02 | INT16形式のデータ |
| 4~ | 可変 | ペイロード | 0x0258 | 実際のデータ内容 |
GDSIIはこのように4バイトの固定長と、以降の可変長を一つとして羅列したデータをしています。
レコードタイプは以下のような種類があります。ここで内容をまとめました。
レコードタイプ一覧
ライブラリレベルのレコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 0 | 0x00 | HEADER | 2バイト符号付き整数 | バージョン番号。GDSIIストリームフォーマットのバージョンを示す。 |
| 1 | 0x01 | BGNLIB | 2バイト符号付き整数 | ライブラリ開始。最終修正日時と最終アクセス日時を含む(年月日時分秒 × 2)。 |
| 2 | 0x02 | LIBNAME | ASCII文字列 | ライブラリ名。ライブラリの識別に使用。最大44バイト。 |
| 3 | 0x03 | UNITS | 8バイト実数 | ユーザー単位とデータベース単位の定義。2つの8バイト実数で構成。座標値の物理的スケーリングに使用。 |
| 4 | 0x04 | ENDLIB | データなし | ライブラリ終了。GDSIIファイル全体の終了を示す。 |
構造(セル)レベルのレコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 5 | 0x05 | BGNSTR | 2バイト符号付き整数 | 構造定義開始。生成日時と最終修正日時を含む(年月日時分秒 × 2)。 |
| 6 | 0x06 | STRNAME | ASCII文字列 | 構造名。セルの識別に使用。最大32文字。A-Z、a-z、0-9、_、$、?が使用可能。 |
| 7 | 0x07 | ENDSTR | データなし | 構造定義終了。構造内のすべての要素の終了を示す。 |
要素(エレメント)タイプ
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 8 | 0x08 | BOUNDARY | データなし | ポリゴン要素開始。塗りつぶされた図形を定義する要素の開始マーカー。 |
| 9 | 0x09 | PATH | データなし | パス要素開始。一定幅の線分集合を定義する要素の開始マーカー。 |
| 10 | 0x0A | SREF | データなし | 単一構造参照開始。他の構造をこの位置に1度だけ配置する要素。 |
| 11 | 0x0B | AREF | データなし | 構造配列参照開始。他の構造をM×N配列で規則的に配置する要素。 |
| 12 | 0x0C | TEXT | データなし | テキスト要素開始。テキスト文字列を表示する要素。 |
| 21 | 0x15 | NODE | データなし | ノード要素開始。電気的接続情報を格納する要素(グラフィカル表示なし)。 |
| 45 | 0x2D | BOX | データなし | ボックス要素開始。枠線のみの矩形要素(塗りつぶしなし)。 |
属性指定レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 13 | 0x0D | LAYER | 2バイト符号付き整数 | レイヤー番号。製造プロセスの層を指定(0~63、または拡張で0~255)。 |
| 14 | 0x0E | DATATYPE | 2バイト符号付き整数 | データ型(用途分類)。レイヤー内での細分類(0~63、または拡張で0~255)。 |
| 15 | 0x0F | WIDTH | 4バイト符号付き整数 | 線幅。パス要素の幅をデータベース単位で指定。負の値は絶対線幅を示す。 |
| 16 | 0x10 | XY | 4バイト符号付き整数 | 座標配列。複数の(x,y)座標ペア。各値はデータベース単位の整数。 |
| 22 | 0x16 | TEXTTYPE | 2バイト符号付き整数 | テキスト型。テキスト要素のカテゴリー分類(0~63、または拡張で0~255)。 |
| 42 | 0x2A | NODETYPE | 2バイト符号付き整数 | ノード型。ノード要素の意味分類。 |
| 46 | 0x2E | BOXTYPE | 2バイト符号付き整数 | ボックス型。ボックス要素の分類。 |
要素終了レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 17 | 0x11 | ENDEL | データなし | 要素終了。BOUNDARY、PATH、SREF、AREF、TEXT、NODE、BOXなどの要素の終了を示す。 |
参照要素用レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 18 | 0x12 | SNAME | ASCII文字列 | 参照構造名。SREFやAREFで参照される構造の名前を指定。 |
| 19 | 0x13 | COLROW | 2バイト符号付き整数 | 列数と行数。AREF用。2つの2バイト整数(列数、行数)。最大値は32,767。 |
変換・倍率・回転レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 26 | 0x1A | STRANS | ビット配列 | 変換フラグ。SREF、AREF、TEXT用。ビット15:反転フラグ、ビット14:絶対倍率、ビット1:絶対角度。 |
| 27 | 0x1B | MAG | 8バイト実数 | 倍率(スケール)。デフォルト1.0。セルの拡大・縮小に使用。 |
| 28 | 0x1C | ANGLE | 8バイト実数 | 回転角度。度単位で反時計方向。デフォルト0。 |
テキスト関連レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 23 | 0x17 | PRESENTATION | ビット配列 | テキスト配置。ビット0-1:水平配置(00:左、01:中央、10:右)、ビット2-3:垂直配置(00:上、01:中央、10:下)、ビット4-5:フォント。 |
| 25 | 0x19 | STRING | ASCII文字列 | テキスト内容。テキスト要素の実際の文字列。最大512文字。 |
| 33 | 0x21 | PATHTYPE | 2バイト符号付き整数 | パスタイプ。PATH要素の端部形状(丸型、四角型など)。 |
ライブラリ管理レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 31 | 0x1F | REFLIBS | ASCII文字列 | 参照ライブラリ名。外部ライブラリの参照。各44バイト。 |
| 32 | 0x20 | FONTS | ASCII文字列 | フォント定義ファイル名。テキスト用フォントの定義。各44バイト。 |
| 34 | 0x22 | GENERATIONS | 2バイト符号付き整数 | 世代数。保持する旧ファイルコピーの数。 |
| 35 | 0x23 | ATTRTABLE | ASCII文字列 | 属性テーブル。要素プロパティと組み合わせて使用。 |
| 50 | 0x32 | TAPENUM | 2バイト符号付き整数 | テープ番号。元々はテープ出力用。 |
| 51 | 0x33 | TAPECODE | 2バイト符号付き整数 | テープコード。元々はテープ出力用。 |
| 54 | 0x36 | FORMAT | 2バイト符号付い整数 | フォーマットタイプ。ファイルフォーマットの種類。 |
マスク・フォーマット関連レコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 55 | 0x37 | MASK | ASCII文字列 | マスクレイヤーリスト。フィルタードストリームファイルで使用。 |
| 56 | 0x38 | ENDMASKS | データなし | マスク記述終了。MASK レコードの最後に必ず出現。 |
プロパティ・フラグレコード
| コード | 16進 | ニモニック | データ型 | 説明 |
|---|---|---|---|---|
| 38 | 0x26 | ELFLAGS | 2バイト符号付き整数 | 要素フラグ。ビット15:テンプレートデータ、ビット14:外部データ。 |
| 43 | 0x2B | PROPATTR | 2バイト符号付き整数 | プロパティ属性番号。カスタムプロパティの属性ID(1~127)。 |
| 44 | 0x2C | PROPVALUE | ASCII文字列 | プロパティ値。PROPATTR で指定された属性の値。 |
| 47 | 0x2F | PLEX | 4バイト符号付き整数 | プレックス番号。複雑な要素グループの識別。 |
レコードタイプの解説
レコード長は必ず偶数バイト長と決まっています。固定の4バイトはレコードヘッダーと呼び、もしも奇数バイトになった場合でもデータはヌル文字で埋められて偶数バイトに調整します。それでは順番に書くレコードの記載方法を見ていきましょう。
0 - HEADER(ファイルバージョン)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x00 |
| ニモニック | HEADER |
| データ型 | 2バイト符号付き整数 |
| 説明 | GDSIIファイルの最初に出現するレコード。ストリームフォーマットのバージョン番号を含みます。 |
詳細説明:
GDSIIファイルは必ずHEADERレコードで開始します。このレコードはファイルが従うGDSII仕様のバージョンを示します。
ペイロード内容:
- バージョン番号(2バイト)
-
0x0000= v3.0 -
0x0003= v4.0 -
0x0004= v5.0 -
0x0005= v6.0 -
0x0258= v600(最も一般的な値)
-
使用例:
ファイルの先頭6バイト:
00 06 00 02 02 58
解析:
バイト0-1: 0x0006 = 6バイト(レコード全体の長さ)
バイト2: 0x00 = HEADER
バイト3: 0x02 = INT16型データ
バイト4-5: 0x0258 = バージョン v600
1 - BGNLIB(ライブラリ開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x01 |
| ニモニック | BGNLIB |
| データ型 | 2バイト符号付き整数(12個) |
| 説明 | ライブラリの開始を示す。ライブラリの作成日時と最終アクセス日時を含みます。 |
詳細説明:
HEADERの次に出現するレコード。ライブラリセクションの開始と、そのライブラリが作成・修正された日時情報を記録します。
ペイロード内容:
| 順序 | 内容 | 単位 | 説明 |
|---|---|---|---|
| 1 | 年(最終修正) | 2バイト | 西暦(例:2024) |
| 2 | 月(最終修正) | 2バイト | 1~12 |
| 3 | 日(最終修正) | 2バイト | 1~31 |
| 4 | 時(最終修正) | 2バイト | 0~23 |
| 5 | 分(最終修正) | 2バイト | 0~59 |
| 6 | 秒(最終修正) | 2バイト | 0~59 |
| 7 | 年(最終アクセス) | 2バイト | 西暦 |
| 8 | 月(最終アクセス) | 2バイト | 1~12 |
| 9 | 日(最終アクセス) | 2バイト | 1~31 |
| 10 | 時(最終アクセス) | 2バイト | 0~23 |
| 11 | 分(最終アクセス) | 2バイト | 0~59 |
| 12 | 秒(最終アクセス) | 2バイト | 0~59 |
合計: 24バイト(12個 × 2バイト)
レコード全体: 28バイト(ヘッダ4バイト + ペイロード24バイト)
使用例:
レコード例:
00 1C 01 02 ... (12個の2バイト整数)
解析:
バイト0-1: 0x001C = 28バイト
バイト2: 0x01 = BGNLIB
バイト3: 0x02 = INT16型データ
バイト4-5: 2024(年・最終修正)
バイト6-7: 1(月)
バイト8-9: 15(日)
...
2 - LIBNAME(ライブラリ名)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x02 |
| ニモニック | LIBNAME |
| データ型 | ASCII文字列 |
| 説明 | ライブラリの名前を格納するレコード。UNIX ファイル命名規約に従う必要があります。 |
詳細説明:
ライブラリの識別名を格納します。これはファイル名と異なり、GDSIIファイル内に埋め込まれるメタデータです。
制約事項:
- UNIX ファイル命名規約に従う必要がある
- 拡張子を含む(通常は
.sfまたは.db) - 最大44バイト
使用例:
レコード例:
00 0C 02 06 47 43 44 00
解析:
バイト0-1: 0x000C = 12バイト
バイト2: 0x02 = LIBNAME
バイト3: 0x06 = ASCII文字列型
バイト4-11: "GCD" + NULL(パディング)
実際の文字列:"GCD_DESIGN.db"
3 - UNITS(座標単位定義)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x03 |
| ニモニック | UNITS |
| データ型 | 8バイト実数(2個) |
| 説明 | ユーザー単位とデータベース単位の対応関係を定義します。座標スケーリングの基準。 |
詳細説明:
GDSIIファイル内のすべての座標値はデータベース単位(database units)で格納されます。UNITSレコードはこれらの座標値を物理的な寸法に変換するための定義です。
ペイロード内容:
| 順序 | 名前 | データ型 | 説明 |
|---|---|---|---|
| 1 | ユーザー単位のサイズ | 8バイト実数 | データベース単位における1ユーザー単位のサイズ |
| 2 | メートル単位での値 | 8バイト実数 | データベース単位における実際のメートル単位での値 |
計算方法:
1ユーザー単位のメートル値 = 第2値 ÷ 第1値
使用例1(マイクロメートル単位):
第1値: 0.001 (1ユーザー単位 = 0.001マイクロメートル)
第2値: 1e-9 (1ユーザー単位 = 1ナノメートル)
計算: 1e-9 ÷ 0.001 = 1e-6 = 1マイクロメートル
→ 1ユーザー単位 = 1マイクロメートル
使用例2(ナノメートル単位):
第1値: 1.0 (1ユーザー単位 = 1ナノメートル)
第2値: 1e-9 (メートル単位)
計算: 1e-9 ÷ 1.0 = 1e-9 = 1ナノメートル
→ 1ユーザー単位 = 1ナノメートル
レコード全体: 20バイト(ヘッダ4バイト + ペイロード16バイト)
4 - ENDLIB(ライブラリ終了)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x04 |
| ニモニック | ENDLIB |
| データ型 | データなし |
| 説明 | ライブラリセクションの終了を示す。GDSIIファイルの最後を示すマーカー。 |
詳細説明:
GDSIIファイル全体の終了を示します。このレコード以降は通常、ファイルの内容はありません。
ペイロード内容:
- なし(ヘッダのみ)
レコード全体: 4バイト(ヘッダのみ)
使用例:
ファイルの末尾:
00 04 04 00
解析:
バイト0-1: 0x0004 = 4バイト
バイト2: 0x04 = ENDLIB
バイト3: 0x00 = データなし
構造(セル)レベルのレコード
5 - BGNSTR(構造定義開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x05 |
| ニモニック | BGNSTR |
| データ型 | 2バイト符号付き整数(12個) |
| 説明 | 構造(セル)定義の開始を示す。BGNLIB と同じ形式で生成日時と修正日時を含む。 |
詳細説明:
構造(セル)は、複数の要素(ポリゴン、パス、参照など)をグループ化した単位です。BGNSTRはその構造の開始を示し、生成日時と修正日時を記録します。
ペイロード内容:
BGNLIBと同じ形式で、以下の12個の2バイト整数を含みます:
| 順序 | 内容 | 値の範囲 |
|---|---|---|
| 1-6 | 生成日時(年月日時分秒) | 各項目参照 |
| 7-12 | 最終修正日時(年月日時分秒) | 各項目参照 |
合計: 24バイト
レコード全体: 28バイト
使用例:
レコード例:
00 1C 05 02 07 E8 01 0F 0A 1E 32 07 E8 01 0F 0A 23 3C
解析:
バイト0-1: 0x001C = 28バイト
バイト2: 0x05 = BGNSTR
バイト3: 0x02 = INT16型データ
バイト4以降: 日時情報(12個の2バイト整数)
6 - STRNAME(構造名)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x06 |
| ニモニック | STRNAME |
| データ型 | ASCII文字列 |
| 説明 | 構造(セル)の名前を格納するレコード。構造の識別に使用。 |
詳細説明:
構造の名前をASCII文字列で格納します。この名前は、他の構造から参照する際に使用されます。
命名規則:
- 最大32文字
- 使用可能な文字:
- A~Z
- a~z
- 0~9
- アンダースコア (
_) - クエスチョンマーク (
?) - ドルサイン (
$)
使用例:
有効な名前:
- INVERTER
- AND2_X1
- BUFFER_1
- cell_001
無効な名前:
- INVERTER-1(ハイフン不可)
- cell@1(@ 記号不可)
- INVERTER BUFFER(スペース不可)
レコード例:
00 0E 06 06 49 4E 56 45 52 54 45 52 00
解析:
バイト0-1: 0x000E = 14バイト
バイト2: 0x06 = STRNAME
バイト3: 0x06 = ASCII文字列型
バイト4-13: "INVERTER" + NULL(パディング)
7 - ENDSTR(構造定義終了)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x07 |
| ニモニック | ENDSTR |
| データ型 | データなし |
| 説明 | 構造定義の終了を示す。この構造内のすべての要素定義が完了したことを示す。 |
詳細説明:
BGNSTRで開始した構造定義を終了します。ENDSTRの次には、別の構造定義(BGNSTR)またはENDLIBが続きます。
ペイロード内容:
- なし(ヘッダのみ)
レコード全体: 4バイト
要素(エレメント)タイプレコード
8 - BOUNDARY(ポリゴン要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x08 |
| ニモニック | BOUNDARY |
| データ型 | データなし |
| 説明 | ポリゴン(塗りつぶし図形)要素の開始マーカー。 |
詳細説明:
BOUNDARY要素は、塗りつぶされた多角形領域を定義します。集積回路の金属配線、トランジスタゲート、拡散領域などを表現するために使用されます。
続く必須レコード:
- LAYER(レイヤー番号)
- DATATYPE(データ型)
- XY(座標配列)
- ENDEL(要素終了)
座標の制約:
- 最小: 4つの座標ペア(四角形)
- 最大: 200つの座標ペア
- 最初と最後の座標は同じ(閉じた多角形)
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY -1000 -1000 1000 -1000 1000 1000 -1000 1000 -1000 -1000
ENDEL
9 - PATH(パス要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x09 |
| ニモニック | PATH |
| データ型 | データなし |
| 説明 | パス(ポリライン)要素の開始マーカー。一定幅の線分集合。 |
詳細説明:
PATH要素は、一定の幅を持つ線分の経路を定義します。配線やVIAの描画に使用されます。
続く必須レコード:
- LAYER(レイヤー番号)
- DATATYPE(データ型)
- XY(座標配列)
- ENDEL(要素終了)
オプションレコード:
- PATHTYPE(端部形状)
- WIDTH(線幅)
座標の制約:
- 最小: 2つの座標ペア(開始点と終了点)
- 最大: 200つの座標ペア
10 - SREF(単一構造参照要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0A |
| ニモニック | SREF |
| データ型 | データなし |
| 説明 | 単一構造参照要素の開始マーカー。他の構造(セル)をこの位置に1度だけ配置。 |
詳細説明:
SREF要素により、別の構造を参照・配置できます。これにより、設計の再利用性が向上し、ファイルサイズが削減されます。同じセルを複数の場所で使用する場合に有効です。
続く必須レコード:
- SNAME(参照構造の名前)
- XY(配置位置)
- ENDEL(要素終了)
オプションレコード:
- STRANS(変換フラグ)
- MAG(倍率)
- ANGLE(回転角)
使用例:
SREF
SNAME "INVERTER"
STRANS 0
MAG 1.0
ANGLE 0
XY 5000 3000
ENDEL
11 - AREF(構造配列参照要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0B |
| ニモニック | AREF |
| データ型 | データなし |
| 説明 | 構造配列参照要素の開始マーカー。他の構造をM×N配列で規則的に配置。 |
詳細説明:
AREF要素により、同じ構造を複数の行と列の配列で規則的に配置できます。メモリセルアレイなど、大量の同一要素の配置に非常に効果的です。ファイルサイズを大幅に削減できます。
続く必須レコード:
- SNAME(参照構造の名前)
- COLROW(列数と行数)
- XY(3つの座標ペア)
- ENDEL(要素終了)
オプションレコード:
- STRANS(変換フラグ)
- MAG(倍率)
- ANGLE(回転角)
XY座標の意味:
- 第1座標: 配列の原点(基準点)
- 第2座標: 列方向の最後のセル位置
- 第3座標: 行方向の最後のセル位置
使用例:
AREF
SNAME "BITCELL"
COLROW 64 32
XY 0 0 512000 0 0 256000
ENDEL
(64列 × 32行のセルアレイ)
12 - TEXT(テキスト要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0C |
| ニモニック | TEXT |
| データ型 | データなし |
| 説明 | テキスト要素の開始マーカー。文字列を配置するために使用。 |
詳細説明:
テキスト要素により、設計図面にラベルやアノテーション(注釈)を追加できます。
続く必須レコード:
- LAYER(レイヤー番号)
- TEXTTYPE(テキスト型)
- XY(テキスト位置・1つの座標ペアのみ)
- STRING(テキスト内容)
- ENDEL(要素終了)
オプションレコード:
- PRESENTATION(配置・フォント指定)
- PATHTYPE
- WIDTH
- STRANS(変換フラグ)
- MAG(倍率)
- ANGLE(回転角)
使用例:
TEXT
LAYER 100
TEXTTYPE 0
PRESENTATION 0
XY 5000 3000
STRING "Signal_A"
ENDEL
21 - NODE(ノード要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x15 |
| ニモニック | NODE |
| データ型 | データなし |
| 説明 | ノード要素の開始マーカー。電気的接続情報を格納(グラフィカル表示なし)。 |
詳細説明:
ノード要素は、レイアウト検証(LVS: Layout vs Schematic)時の接続情報を格納します。視覚的には表示されませんが、回路情報として重要です。
続く必須レコード:
- LAYER(レイヤー番号)
- NODETYPE(ノード型)
- XY(ノード位置・1~50つの座標ペア)
- ENDEL(要素終了)
45 - BOX(ボックス要素開始)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2D |
| ニモニック | BOX |
| データ型 | データなし |
| 説明 | ボックス要素の開始マーカー。枠線のみの矩形(塗りつぶしなし)。 |
詳細説明:
BOX要素はBOUNDARYとは異なり、枠線のみで塗りつぶされません。製造工程では出力されず、設計情報のみです。
続く必須レコード:
- LAYER(レイヤー番号)
- BOXTYPE(ボックス型)
- XY(5つの座標ペア・最初と最後が同じ矩形)
- ENDEL(要素終了)
属性指定レコード
13 - LAYER(レイヤー番号)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0D |
| ニモニック | LAYER |
| データ型 | 2バイト符号付き整数 |
| 説明 | 要素が配置されるレイヤー番号を指定。製造プロセスの各層に対応。 |
詳細説明:
レイヤーは、集積回路の製造プロセスにおける各々の層を表します。例えば、Metal1層、Poly層、Via層など。
値の範囲:
- 標準: 0~255
- 通常は0~63が使用される
一般的なレイヤー番号:
| レイヤー番号 | 用途 | 説明 |
|---|---|---|
| 0 | Poly | ゲート多層膜 |
| 1 | Metal1 | 第1層配線 |
| 2 | Metal2 | 第2層配線 |
| 10 | Via1 | Metal1-Metal2間のVIA |
| 50 | N-Well | N型ウェル |
| 51 | P-Substrate | P型基板 |
使用例:
BOUNDARY
LAYER 1 ← Metal1層に配置
DATATYPE 0
XY ...
ENDEL
14 - DATATYPE(データ型)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0E |
| ニモニック | DATATYPE |
| データ型 | 2バイト符号付き整数 |
| 説明 | レイヤー内での用途分類。同じレイヤーでも複数の用途を区別。 |
詳細説明:
DATATYPEにより、同じレイヤーでも異なる用途の要素を区別できます。例えば、Metal1層内でも、標準配線と特殊配線を分類できます。
値の範囲:
- 標準: 0~255
- 通常は0が使用される
一般的な使用例:
| DATATYPE | 用途 |
|---|---|
| 0 | 標準配線 |
| 1 | 特殊配線(シールド等) |
| 2 | 配線接続部 |
| 10 | マスク領域 |
使用例:
BOUNDARY
LAYER 1
DATATYPE 0 ← Metal1層の標準配線
XY ...
ENDEL
BOUNDARY
LAYER 1
DATATYPE 2 ← Metal1層の接続部
XY ...
ENDEL
15 - WIDTH(線幅)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x0F |
| ニモニック | WIDTH |
| データ型 | 4バイト符号付き整数 |
| 説明 | パス要素やテキスト線の幅をデータベース単位で指定。 |
詳細説明:
PATH要素の線幅を指定します。負の値は特殊な意味を持ちます。
値の意味:
- 正の値: 相対幅。倍率(MAG)の影響を受ける。
- 負の値: 絶対幅。倍率の影響を受けない。
使用例:
PATH
LAYER 6
DATATYPE 0
WIDTH 1000 ← 線幅1000単位(通常10nm = 100nm幅)
XY ...
ENDEL
PATH
LAYER 6
DATATYPE 0
WIDTH -500 ← 絶対幅500単位(常に500単位)
XY ...
ENDEL
未指定時: 0が仮定される
16 - XY(座標配列)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x10 |
| ニモニック | XY |
| データ型 | 4バイト符号付き整数の配列 |
| 説明 | 要素の座標データ。複数の(x,y)座標ペアで構成。 |
詳細説明:
XY座標配列は、各要素タイプごとに異なる座標ペア数が必要です。すべての座標値はデータベース単位で表現されます。
要素タイプごとの座標ペア数:
| 要素タイプ | 座標ペア数 | 説明 |
|---|---|---|
| BOUNDARY | 4~200 | 最小4ペア(四角形)、最初と最後は同一 |
| PATH | 2~200 | 開始点と終了点 |
| SREF | 1 | 配置位置(1つの座標のみ) |
| AREF | 3 | 原点、列方向最後、行方向最後 |
| TEXT | 1 | テキスト位置(1つの座標のみ) |
| NODE | 1~50 | ノード位置 |
| BOX | 5 | 矩形(最初と最後は同一) |
データ形式:
各座標ペア = X座標(4バイト整数)+ Y座標(4バイト整数)
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY
0 0
10000 0
10000 10000
0 10000
0 0
ENDEL
22 - TEXTTYPE(テキスト型)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x16 |
| ニモニック | TEXTTYPE |
| データ型 | 2バイト符号付き整数 |
| 説明 | テキスト要素の分類。テキストの用途を区別。 |
詳細説明:
TEXT要素の種類を分類します。例えば、異なるフォントやサイズが必要なテキストを区別できます。
値の範囲: 0~255
一般的な使用例:
| TEXTTYPE | 用途 |
|---|---|
| 0 | ラベル |
| 1 | 注釈 |
| 2 | スペシャルラベル |
42 - NODETYPE(ノード型)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2A |
| ニモニック | NODETYPE |
| データ型 | 2バイト符号付き整数 |
| 説明 | ノード要素の種類を分類。電気的接続の意味を示す。 |
詳細説明:
ノード要素の意味をLVS検証時に区別するために使用されます。
値の範囲: 0~255
一般的な使用例:
| NODETYPE | 意味 |
|---|---|
| 0 | Power(電源) |
| 1 | Ground(グラウンド) |
| 2 | Signal(信号) |
46 - BOXTYPE(ボックス型)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2E |
| ニモニック | BOXTYPE |
| データ型 | 2バイト符号付き整数 |
| 説明 | ボックス要素の分類。ボックスの用途を区別。 |
詳細説明:
ボックス要素の種類を分類します。
値の範囲: 0~255
要素終了レコード
17 - ENDEL(要素終了)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x11 |
| ニモニック | ENDEL |
| データ型 | データなし |
| 説明 | 要素定義の終了を示すマーカー。 |
詳細説明:
すべての要素(BOUNDARY、PATH、SREF、AREF、TEXT、NODE、BOX)は、ENDELレコードで終了します。
ペイロード内容: なし(ヘッダのみ)
レコード全体: 4バイト
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY ...
ENDEL ← BOUNDARY要素の終了
PATH
LAYER 6
DATATYPE 0
WIDTH 100
XY ...
ENDEL ← PATH要素の終了
参照要素用レコード
18 - SNAME(参照構造名)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x12 |
| ニモニック | SNAME |
| データ型 | ASCII文字列 |
| 説明 | SREF/AREFで参照される構造の名前を指定。 |
詳細説明:
SREF またはAREF要素で「どの構造を参照するか」を指定します。この名前は、STRNAMEで定義された構造名と一致する必要があります。
命名規則: STRNAMEと同じ(A-Z、a-z、0-9、_、?、$、最大32文字)
使用例:
SREF
SNAME "INVERTER" ← "INVERTER"という名前の構造を参照
XY 5000 3000
ENDEL
AREF
SNAME "BITCELL" ← "BITCELL"という名前の構造を配列参照
COLROW 64 32
XY ...
ENDEL
19 - COLROW(列数と行数)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x13 |
| ニモニック | COLROW |
| データ型 | 2バイト符号付き整数(2個) |
| 説明 | AREF配列の列数と行数を指定。 |
詳細説明:
AREF要素がM×Nの配列の場合、その配列のサイズを定義します。
ペイロード内容:
| 順序 | 内容 | データ型 | 値の範囲 |
|---|---|---|---|
| 1 | 列数 | 2バイト整数 | 1~32,767 |
| 2 | 行数 | 2バイト整数 | 1~32,767 |
使用例:
AREF
SNAME "MEMORY_CELL"
COLROW 8 4 ← 8列 × 4行のアレイ
XY 0 0 8000 0 0 4000
ENDEL
変換・倍率・回転レコード
26 - STRANS(変換フラグ)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x1A |
| ニモニック | STRANS |
| データ型 | ビット配列(2バイト) |
| 説明 | SREF、AREF、TEXTの変換操作を制御するフラグ。 |
詳細説明:
複数の変換操作を1バイト内の複数ビットで制御します。
ビット配置:
| ビット位置 | 名称 | 説明 |
|---|---|---|
| 0(左端) | 反転フラグ | 設定時、X軸について反転してから回転 |
| 13 | 絶対倍率 | 設定時、倍率が親のMAGの影響を受けない |
| 14 | 絶対角度 | 設定時、角度が親のANGLEの影響を受けない |
| その他 | 予約 | 将来使用予定。0にクリアすること |
使用例:
SREF
SNAME "INVERTER"
STRANS 0x0001 ← ビット0が設定:X軸反転
MAG 1.0
ANGLE 45
XY 5000 5000
ENDEL
SREF
SNAME "BUFFER"
STRANS 0x6000 ← ビット13、14設定:絶対倍率・絶対角度
MAG 0.5
ANGLE 90
XY 10000 5000
ENDEL
27 - MAG(倍率)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x1B |
| ニモニック | MAG |
| データ型 | 8バイト実数 |
| 説明 | 構造またはテキストの拡大・縮小倍率。 |
詳細説明:
SREF、AREF、TEXT要素を拡大・縮小する際に使用します。
値の例:
| 値 | 説明 |
|---|---|
| 1.0 | デフォルト(縮小・拡大なし) |
| 2.0 | 2倍に拡大 |
| 0.5 | 半分に縮小 |
| 0.8 | 80%に縮小 |
未指定時: 1.0が仮定される
使用例:
SREF
SNAME "INVERTER"
MAG 1.5 ← 1.5倍に拡大
ANGLE 0
XY 5000 5000
ENDEL
28 - ANGLE(回転角度)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x1C |
| ニモニック | ANGLE |
| データ型 | 8バイト実数 |
| 説明 | 構造またはテキストの回転角度(度、反時計方向)。 |
詳細説明:
SREF、AREF、TEXT要素の回転角度を指定します。角度は反時計方向(CCW: Counter-ClockWise)で計測されます。
値の例:
| 値 | 説明 |
|---|---|
| 0 | 回転なし(デフォルト) |
| 90 | 90度反時計方向回転 |
| 180 | 180度反時計方向回転 |
| 270 | 270度反時計方向回転(=90度時計方向) |
| 45 | 45度反時計方向回転 |
未指定時: 0が仮定される
使用例:
SREF
SNAME "BUFFER"
STRANS 0
MAG 1.0
ANGLE 45 ← 45度反時計方向回転
XY 5000 5000
ENDEL
テキスト関連レコード
23 - PRESENTATION(テキスト配置・フォント)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x17 |
| ニモニック | PRESENTATION |
| データ型 | ビット配列(2バイト) |
| 説明 | テキストの配置(左右中央、上中下)とフォントを指定。 |
詳細説明:
テキストの表示位置とフォント選択をビットフラグで制御します。
ビット配置:
| ビット範囲 | 名称 | 値 | 説明 |
|---|---|---|---|
| 10-11 | フォント番号 | 00 | フォント0 |
| 01 | フォント1 | ||
| 10 | フォント2 | ||
| 11 | フォント3 | ||
| 12-13 | 垂直配置 | 00 | 上(top) |
| 01 | 中央(middle) | ||
| 10 | 下(bottom) | ||
| 14-15 | 水平配置 | 00 | 左(left) |
| 01 | 中央(center) | ||
| 10 | 右(right) | ||
| 0-9 | 予約 | 0 | 将来使用予定 |
未指定時: 左上配置、フォント0が仮定される
使用例:
TEXT
LAYER 100
TEXTTYPE 0
PRESENTATION 0x4800 ← 中央配置・下・フォント2
XY 5000 3000
STRING "Signal_A"
ENDEL
25 - STRING(テキスト内容)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x19 |
| ニモニック | STRING |
| データ型 | ASCII文字列 |
| 説明 | テキスト要素の実際の文字列内容。 |
詳細説明:
TEXT要素に表示される文字列を指定します。
制約事項:
- 最大512文字
- ASCII文字のみ
- 奇数文字の場合、NULL文字でパディング
使用例:
TEXT
LAYER 100
TEXTTYPE 0
XY 5000 3000
STRING "POWER_SUPPLY"
ENDEL
33 - PATHTYPE(パス端部形状)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x21 |
| ニモニック | PATHTYPE |
| データ型 | 2バイト符号付き整数 |
| 説明 | PATH要素の端部形状を指定。 |
詳細説明:
PATH要素の両端の形状を制御します。
値と対応する形状:
| 値 | 名称 | 説明 |
|---|---|---|
| 0 | Square(デフォルト) | 四角い端部。端点の座標で終わる。 |
| 1 | Round | 丸い端部。端点を中心とする半円。 |
| 2 | Extended | 拡張端部。端点から線幅の半分だけ延長。 |
未指定時: 0(Square)が仮定される
使用例:
PATH
LAYER 6
DATATYPE 0
PATHTYPE 1 ← 丸い端部
WIDTH 1000
XY ...
ENDEL
ライブラリ管理レコード
31 - REFLIBS(参照ライブラリ)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x1F |
| ニモニック | REFLIBS |
| データ型 | ASCII文字列 |
| 説明 | 参照ライブラリの名前を指定。最大15個のライブラリ。 |
詳細説明:
このファイルから外部ライブラリを参照する場合に、その外部ライブラリの名前を指定します。
制約事項:
- 最大15個のライブラリを指定可能
- 各ライブラリ名は44バイト
- ディレクトリ指定可能("/" で区切る)
- 拡張子指定可能("." で区切る)
使用例:
REFLIBS "standard_cell.db" "analog_lib.db"
32 - FONTS(フォント定義ファイル)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x20 |
| ニモニック | FONTS |
| データ型 | ASCII文字列 |
| 説明 | テキスト用フォント定義ファイルの名前。 |
詳細説明:
テキスト表示用のフォント定義ファイルを4つまで指定できます。
構成:
- フォント0定義(44バイト)
- フォント1定義(44バイト)
- フォント2定義(44バイト)
- フォント3定義(44バイト)
使用例:
FONTS "font0.def" "font1.def" "font2.def" "font3.def"
34 - GENERATIONS(世代数)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x22 |
| ニモニック | GENERATIONS |
| データ型 | 2バイト符号付き整数 |
| 説明 | 削除または バックアップ構造を保持する世代数。 |
詳細説明:
構造を削除した際に、その削除されたコピーを何世代分保持するかを指定します。
制約事項:
- 最小: 2
- 最大: 99
- 未指定時: 3が仮定される
35 - ATTRTABLE(属性定義テーブル)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x23 |
| ニモニック | ATTRTABLE |
| データ型 | ASCII文字列 |
| 説明 | 属性定義ファイルの名前。ライブラリに属性が定義されている場合のみ。 |
詳細説明:
要素プロパティ(カスタム属性)の定義をファイルで管理する場合に指定します。
制約事項:
- 最大44バイト
- ディレクトリ・拡張子指定可能
プロパティ・フラグレコード
38 - ELFLAGS(要素フラグ)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x26 |
| ニモニック | ELFLAGS |
| データ型 | ビット配列(2バイト) |
| 説明 | 要素の特殊フラグ。テンプレート・外部データを指定。 |
詳細説明:
要素の属性を制御するビットフラグです。
ビット配置:
| ビット位置 | 名称 | 説明 |
|---|---|---|
| 14 | 外部データ(External) | 設定時、この要素は外部ライブラリのもの |
| 15 | テンプレートデータ | 設定時、この要素はテンプレート |
| その他 | 予約 | 将来使用予定。0にクリア |
未指定時: すべてのビットが0と仮定される
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
ELFLAGS 0x8000 ← ビット15設定:テンプレートデータ
XY ...
ENDEL
43 - PROPATTR(プロパティ属性番号)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2B |
| ニモニック | PROPATTR |
| データ型 | 2バイト符号付き整数 |
| 説明 | カスタムプロパティの属性ID。 |
詳細説明:
要素に付与するカスタムプロパティの属性番号を指定します。次のPROPVALUEレコードでその値を指定します。
値の範囲: 1~127
予約番号:
- 126, 127: Release 3.0以前の旧仕様(ユーザー整数・文字列)
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY ...
PROPATTR 2 ← 属性ID 2
PROPVALUE "metal" ← その値は"metal"
ENDEL
44 - PROPVALUE(プロパティ値)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2C |
| ニモニック | PROPVALUE |
| データ型 | ASCII文字列 |
| 説明 | PROPATTR で指定された属性の値。 |
詳細説明:
PROPATTRで指定した属性番号に対応する値を文字列で指定します。
制約事項:
- 最大126文字
- 複数のプロパティを付与可能
- 各プロパティは異なる属性番号である必要がある
データ量制限:
合計データサイズ = (文字列サイズ+パディング) の合計 + (属性数 × 2)
通常要素: ≤ 128バイト
SREF/AREF/NODE: ≤ 512バイト
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY ...
PROPATTR 2
PROPVALUE "metal" ← 合計6バイト(パディングで8バイト)
PROPATTR 10
PROPVALUE "property" ← 合計8バイト
ENDEL
47 - PLEX(プレックス番号)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x2F |
| ニモニック | PLEX |
| データ型 | 4バイト符号付き整数 |
| 説明 | 複雑な要素グループの識別番号。関連する複数要素を1つのグループに分類。 |
詳細説明:
複数の要素が1つの論理的なグループを構成する場合、それらに共通のプレックス番号を付与します。
値の範囲: 正の整数(24ビット以下に収まる範囲)
特別な値:
- ビット7を設定すると、その要素がプレックスの先頭(head)として標記される
使用例:
BOUNDARY
LAYER 1
DATATYPE 0
XY ...
PLEX 1000 ← プレックスグループID 1000
ENDEL
BOUNDARY
LAYER 2
DATATYPE 0
XY ...
PLEX 1000 ← 同じグループに属する
ENDEL
テープ・フォーマット関連レコード
50 - TAPENUM(テープ番号)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x32 |
| ニモニック | TAPENUM |
| データ型 | 2バイト符号付き整数 |
| 説明 | マルチリールテープファイルの現在のリール番号。 |
詳細説明:
昔のテープメディア出力の名残。マルチリール構成の場合、各リールに番号を付与します。
値の例:
- 最初のテープ: 1
- 2番目のテープ: 2
- n番目のテープ: n
51 - TAPECODE(テープコード)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x33 |
| ニモニック | TAPECODE |
| データ型 | 2バイト符号付き整数 |
| 説明 | マルチリール共通のコード。正しいリール順序の検証用。 |
詳細説明:
マルチリール構成の全テープに共通する6整数のコードを含みます。これにより、正しい順序でリールが読み込まれているかを検証します。
フォーマット指定レコード
54 - FORMAT(ストリームフォーマットタイプ)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x36 |
| ニモニック | FORMAT |
| データ型 | 2バイト符号付き整数 |
| 説明 | ストリームファイルのフォーマットタイプ。 |
詳細説明:
ファイルが「アーカイブ形式」か「フィルタ形式」かを指定します。
値と対応:
| 値 | フォーマット | 説明 |
|---|---|---|
| (レコード無し) | Archive | すべてのレイヤー・データ型を含む。デフォルト。 |
| 0 | GDSII Archive | GDSII形式アーカイブ |
| 1 | GDSII Filtered | GDSII形式フィルタ。指定レイヤーのみ含む。 |
| 2 | EDSM Archive | EDSM形式アーカイブ |
| 3 | EDSM Filtered | EDSM形式フィルタ |
Archive形式:
- すべてのレイヤー・データ型を含む
- FORMATレコードの後、直接UNITSレコードが続く
- MASKレコード不要
Filtered形式:
- ユーザーが指定したレイヤー・データ型のみを含む
- FORMATレコード直後に、1つ以上のMASKレコードが必須
- MASKレコードの最後はENDMASKSで終わる
- ENDMASKS の後にUNITSが続く
55 - MASK(フィルタレイヤー・データ型)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x37 |
| ニモニック | MASK |
| データ型 | ASCII文字列 |
| 説明 | フィルタ対象のレイヤー・データ型を指定。Filtered形式のみ使用。 |
詳細説明:
Filtered形式のファイルで、どのレイヤー・データ型を含めるかを指定します。
構文:
LAYER_LIST ; DATATYPE_LIST
LAYER_LIST = 空間で区切ったレイヤー番号(範囲はハイフンで指定)
DATATYPE_LIST = 空間で区切ったデータ型番号(範囲はハイフンで指定)
使用例:
MASK "1 5-7 10 ; 0-255"
意味:
レイヤー: 1, 5, 6, 7, 10
データ型: 0~255(すべて)
MASK "1 2 ; 0 2"
意味:
レイヤー: 1, 2
データ型: 0, 2
制約事項:
- FORMAT レコードで Filtered 形式指定後、最低1つのMASK必須
- 複数のMASKレコード可能
- 最後のMASKの後はENDMASKS
56 - ENDMASKS(マスク定義終了)
| 項目 | 内容 |
|---|---|
| レコードコード | 0x38 |
| ニモニック | ENDMASKS |
| データ型 | データなし |
| 説明 | MASKレコード群の終了。Filtered形式のみ。 |
詳細説明:
最後のMASKレコードの直後に出現し、マスク定義セクション全体の終了を示します。
ペイロード内容: なし(ヘッダのみ)
レコード全体: 4バイト
Filtered形式の構造:
FORMAT
MASK ...
MASK ...
ENDMASKS ← ここで終了
UNITS ← その後UNITS
...
GDSIIファイル構造(BNF記法)
GDSIIファイルのレコード順序を、BNF(バッカス・ナウア記法)で示します。
BNFはプログラミング言語やファイル形式の構造を記述するための標準的な記法です。GDSIIのようにレコードの出現順序や省略可否が厳密に決まっている形式を、簡潔かつ正確に表現できます。
BNF記法の読み方
| 記号 | 意味 | 例 |
|---|---|---|
::= |
「〜は〜として定義される」 |
<A> ::= B C → 「AはBの次にCが来る」 |
[ ] |
省略可能(0回または1回) |
[ELFLAGS] → 「ELFLAGSはあってもなくてもよい」 |
{ }* |
0回以上の繰り返し |
{<Element>}* → 「Elementが0個以上並ぶ」 |
| |
選択(どれか1つ) |
(A | B) → 「AまたはBのどちらか」 |
GDSIIファイルのBNF定義
<GDSIIFile> ::= HEADER
BGNLIB
LIBNAME
UNITS
{<Structure>}*
ENDLIB
<Structure> ::= BGNSTR
STRNAME
{<Element>}*
ENDSTR
<Element> ::= (<Boundary> | <Path> | <SRef> | <ARef> | <Text> | <Node> | <Box>)
{<Property>}*
ENDEL
<Boundary> ::= BOUNDARY
[ELFLAGS]
[PLEX]
LAYER
DATATYPE
XY
<Path> ::= PATH
[ELFLAGS]
[PLEX]
LAYER
DATATYPE
[PATHTYPE]
[WIDTH]
XY
<SRef> ::= SREF
[ELFLAGS]
[PLEX]
SNAME
[STRANS [MAG] [ANGLE]]
XY
<ARef> ::= AREF
[ELFLAGS]
[PLEX]
SNAME
[STRANS [MAG] [ANGLE]]
COLROW
XY
<Text> ::= TEXT
[ELFLAGS]
[PLEX]
LAYER
TEXTTYPE
[PRESENTATION]
[PATHTYPE]
[WIDTH]
[STRANS [MAG] [ANGLE]]
XY
STRING
<Node> ::= NODE
[ELFLAGS]
[PLEX]
LAYER
NODETYPE
XY
<Box> ::= BOX
[ELFLAGS]
[PLEX]
LAYER
BOXTYPE
XY
<Property> ::= PROPATTR
PROPVALUE
まとめ
| 用途 | レコードコード | ニモニック | 説明 |
|---|---|---|---|
| ファイル開始 | 0x00 | HEADER | バージョン情報 |
| ライブラリ開始 | 0x01 | BGNLIB | 作成日時 |
| ライブラリ名 | 0x02 | LIBNAME | ライブラリ識別名 |
| 座標単位 | 0x03 | UNITS | スケーリング定義 |
| ファイル終了 | 0x04 | ENDLIB | ライブラリ終了 |
| 構造開始 | 0x05 | BGNSTR | セル生成日時 |
| 構造名 | 0x06 | STRNAME | セル識別名 |
| 構造終了 | 0x07 | ENDSTR | セル終了 |
| ポリゴン | 0x08 | BOUNDARY | 塗りつぶし図形 |
| パス | 0x09 | PATH | 線分 |
| セル参照 | 0x0A | SREF | インスタンス配置 |
| 配列参照 | 0x0B | AREF | 配列配置 |
| レイヤー | 0x0D | LAYER | 層番号 |
| データ型 | 0x0E | DATATYPE | 用途分類 |
| 座標 | 0x10 | XY | 座標データ |
| 要素終了 | 0x11 | ENDEL | 要素終了 |
| 参照名 | 0x12 | SNAME | 参照構造名 |
| 配列サイズ | 0x13 | COLROW | 列数・行数 |
| テキスト | 0x0C | TEXT | テキスト要素 |
| 文字列内容 | 0x19 | STRING | テキスト中身 |
| 倍率 | 0x1B | MAG | 拡大・縮小 |
| 回転角 | 0x1C | ANGLE | 回転度数 |
参考資料
Discussion