CIF (Caltech Intermediate Format) は、IC レイアウトデータ用の人間が読めるテキスト形式で、学術および研究環境で広く使用されています。
形式の概要
| プロパティ | 値 |
|---|
| 拡張子 | .cif |
| エンコーディング | ASCII |
| インポート | ✓ |
| エクスポート | ✓ |
| ライセンス | Basic |
| 階層 | 呼び出し (C) を持つシンボル定義 (DS/DF) |
| レイヤー | 名前付きレイヤー(L コマンド) |
インポートオプション
単位
| オプション | 説明 | デフォルト |
|---|
| CIF 標準 | 1/100 ミクロン | 選択 |
| CADENCE | 1/1000 ミクロン | — |
テキスト
| オプション | 説明 | デフォルト |
|---|
| テキストを無視 | 94-extension テキストレコードをスキップ | オフ |
| テキストサイズ | CIF 単位でのデフォルトテキスト高さ | 1000 |
| 垂直揃え | 上、中央、ベースライン、下 | 中央 |
| 水平揃え | 左、中央、右 | 中央 |
エクスポートオプション
CIF 方言
LinkCAD は、特定のツールと互換性のある CIF 出力を生成できます。
| 方言 | 説明 |
|---|
| CADENCE | CADENCE Virtuoso 互換性 |
| Compass | Compass Design Automation |
| CleWin | CleWin レイアウトエディター(ドーナツ/スケーリングをサポート) |
| Electric | Electric VLSI Design System |
| IE3D | Zeland IE3D 電磁シミュレーター |
| L-Edit | Tanner L-Edit |
| Custom | ユーザー定義設定 |
ジオメトリ
| オプション | 説明 | デフォルト |
|---|
| 円弧セグメント | 円近似用の 360° あたりのセグメント数 | 72 |
| Box レコード (B) | 長方形形状を CIF box として書き込み | オン |
| Wire レコード (W) | ポリラインを CIF ワイヤーとして書き込み | オン |
| Roundflash (R) | 円を roundflash レコードとして書き込み | オン |
| 頂点制限 | 頂点数を超えるポリゴンを分割 | オフ |
| フラット化 | シンボル階層を削除 | オフ |
形式
| オプション | 説明 | デフォルト |
|---|
| CIF 単位 | 標準 (1/100 µm) または CADENCE (1/1000 µm) | 標準 |
| 行末 | DOS/Windows または UNIX | DOS |
| 最大レイヤー名長 | レイヤー名を切り詰め | 無制限 |
| ヘッダーテキスト | ファイルヘッダー内のカスタムコメント | — |
| DS 後のスペース | シンボル定義キーワード後にスペースを追加 | 方言依存 |
| L 後のスペース | レイヤーキーワード後にスペースを追加 | 方言依存 |
一般的なワークフロー
GDSII → CIF
バイナリ GDSII を人間が読める CIF に変換し、学術ツールチェーンや手動検査に使用します。
CIF → GDSII
商用製造用に CIF 設計を GDSII に変換します。
CIF → DXF
CIF レイアウトデータを DXF に変換し、汎用 CAD ツールで表示します。
技術メモ
- CIF は純粋なテキストベース形式です。任意のテキストエディターで編集できます
- 座標は選択した単位系での整数です
- シンボル階層は DS(Define Symbol)および DF(End Definition)コマンドを使用します
- セル参照は、オプションの変換を伴う C(Call)コマンドを使用します
- 94-extension はテキストサポートを追加します(元の CIF 仕様には含まれません)
CLI / コマンドファイルオプション
これらのオプションキーは、コマンドラインまたはコマンドファイルで使用できます。
インポート
| キー | 型 | 説明 |
|---|
CifInUnitsCents | flag | centimicrons を使用(CADENCE モード) |
CifInIgnoreText | flag | テキストプリミティブを無視 |
CifInFontSizeUnits | int | フォントサイズ単位列挙値(単位を参照) |
CifInFontSizeValue | float | フォントサイズ値 |
CifInFontAnchorH | int | フォント水平アンカー — 0=左、1=中央、2=右 |
CifInFontAnchorV | int | フォント垂直アンカー — 0=上、1=中央、2=ベースライン、3=下 |
エクスポート
| キー | 型 | 説明 |
|---|
CifOutFlavour | int | CIF 方言(0=Custom、1=CADENCE、…) |
CifOutUnitsCents | flag | centimicrons を使用 |
CifOutFlatten | flag | 階層をフラット化 |
CifOutCleMode | flag | CLE モード出力 |
CifOutUseBox | flag | box プリミティブを使用 |
CifOutUseWire | flag | wire プリミティブを使用 |
CifOutUseRound | flag | round flash を使用 |
CifOutSplitPolygons | flag | 頂点制限でポリゴンを分割 |
CifOutPolygonLimit | int | ポリゴンあたりの最大頂点数 |
CifOutNoGlobalCell | flag | グローバルセルを作成しない |
CifOutLinefeed | flag | 出力に改行を追加 |
CifOutHeader | string | ファイルヘッダーコメント |
CifOutLayerNameLength | int | 最大レイヤー名長 |
CifOutScaleDS | flag | DS コマンドをスケーリング |
CifOutSpaceDS | flag | DS コマンド後にスペース |
CifOutSpaceL | flag | L コマンド後にスペース |