CIF (Caltech Intermediate Format) ist ein menschenlesbares Textformat für IC-Layoutdaten, das in akademischen und Forschungsumgebungen weit verbreitet ist.
| Eigenschaft | Wert |
|---|
| Dateiendungen | .cif |
| Kodierung | ASCII |
| Import | ✓ |
| Export | ✓ |
| Lizenz | Basic |
| Hierarchie | Symboldefinitionen (DS/DF) mit Aufrufen (C) |
| Ebenen | Benannte Ebenen (L-Befehl) |
Importoptionen
Einheiten
| Option | Beschreibung | Standard |
|---|
| CIF-Standard | 1/100 Mikrometer | Ausgewählt |
| CADENCE | 1/1000 Mikrometer | — |
Text
| Option | Beschreibung | Standard |
|---|
| Text ignorieren | 94-Erweiterungs-Textdatensätze überspringen | Aus |
| Textgröße | Standard-Textgröße in CIF-Einheiten | 1000 |
| Vertikale Ausrichtung | Oben, Mitte, Grundlinie, Unten | Mitte |
| Horizontale Ausrichtung | Links, Zentriert, Rechts | Zentriert |
Exportoptionen
CIF-Dialekt
LinkCAD kann CIF-Ausgabe erzeugen, die mit bestimmten Werkzeugen kompatibel ist:
| Dialekt | Beschreibung |
|---|
| CADENCE | CADENCE Virtuoso-Kompatibilität |
| Compass | Compass Design Automation |
| CleWin | CleWin-Layouteditor (unterstützt Ringe/Skalierung) |
| Electric | Electric VLSI Design System |
| IE3D | Elektromagnetischer Simulator Zeland IE3D |
| L-Edit | Tanner L-Edit |
| Benutzerdefiniert | Benutzerdefinierte Einstellungen |
Geometrie
| Option | Beschreibung | Standard |
|---|
| Bogensegmente | Segmente pro 360° für die Kreisapproximation | 72 |
| Box-Datensätze (B) | Rechteckige Formen als CIF-Boxen schreiben | Ein |
| Wire-Datensätze (W) | Polylinien als CIF-Wires schreiben | Ein |
| Roundflash (R) | Kreise als Roundflash-Datensätze schreiben | Ein |
| Stützpunktlimit | Polygone aufteilen, die die Stützpunktanzahl überschreiten | Aus |
| Reduzieren | Symbolhierarchie entfernen | Aus |
| Option | Beschreibung | Standard |
|---|
| CIF-Einheiten | Standard (1/100 µm) oder CADENCE (1/1000 µm) | Standard |
| Zeilenenden | DOS/Windows oder UNIX | DOS |
| Maximale Ebenennamenlänge | Ebenennamen kürzen | Unbegrenzt |
| Kopftext | Benutzerdefinierter Kommentar im Dateikopf | — |
| Leerzeichen nach DS | Leerzeichen nach dem Schlüsselwort für Symboldefinition hinzufügen | Dialektabhängig |
| Leerzeichen nach L | Leerzeichen nach dem Ebenenschlüsselwort hinzufügen | Dialektabhängig |
Typische Workflows
GDSII → CIF
Binäres GDSII in menschenlesbares CIF für akademische Werkzeugketten oder manuelle Prüfung konvertieren.
CIF → GDSII
CIF-Entwürfe für die kommerzielle Fertigung in GDSII konvertieren.
CIF → DXF
CIF-Layoutdaten zur Anzeige in allgemeinen CAD-Werkzeugen in DXF konvertieren.
Technische Hinweise
- CIF ist ein reines textbasiertes Format — Dateien können mit jedem Texteditor bearbeitet werden
- Koordinaten sind Ganzzahlen im gewählten Einheitensystem
- Die Symbolhierarchie verwendet DS- (Define Symbol) und DF-Befehle (End Definition)
- Zellenreferenzen verwenden den C-Befehl (Call) mit optionaler Transformation
- Die 94-Erweiterung fügt Textunterstützung hinzu (nicht Teil der ursprünglichen CIF-Spezifikation)
CLI- / Befehlsdateioptionen
Diese Optionsschlüssel können in der Befehlszeile oder in Befehlsdateien verwendet werden.
Import
| Schlüssel | Typ | Beschreibung |
|---|
CifInUnitsCents | flag | Zentimikrometer verwenden (CADENCE-Modus) |
CifInIgnoreText | flag | Textprimitive ignorieren |
CifInFontSizeUnits | int | Schriftgrößen-Einheiten-Enum (siehe Einheiten) |
CifInFontSizeValue | float | Schriftgrößenwert |
CifInFontAnchorH | int | Horizontaler Schriftanker — 0=links, 1=zentriert, 2=rechts |
CifInFontAnchorV | int | Vertikaler Schriftanker — 0=oben, 1=Mitte, 2=Grundlinie, 3=unten |
Export
| Schlüssel | Typ | Beschreibung |
|---|
CifOutFlavour | int | CIF-Dialekt (0=Benutzerdefiniert, 1=CADENCE, …) |
CifOutUnitsCents | flag | Zentimikrometer verwenden |
CifOutFlatten | flag | Hierarchie reduzieren |
CifOutCleMode | flag | CLE-Modus-Ausgabe |
CifOutUseBox | flag | Box-Primitiv verwenden |
CifOutUseWire | flag | Wire-Primitiv verwenden |
CifOutUseRound | flag | Roundflash verwenden |
CifOutSplitPolygons | flag | Polygone am Stützpunktlimit aufteilen |
CifOutPolygonLimit | int | Maximale Stützpunkte pro Polygon |
CifOutNoGlobalCell | flag | Keine globale Zelle erstellen |
CifOutLinefeed | flag | Zeilenvorschübe zur Ausgabe hinzufügen |
CifOutHeader | string | Dateikopf-Kommentar |
CifOutLayerNameLength | int | Maximale Ebenennamenlänge |
CifOutScaleDS | flag | DS-Befehl skalieren |
CifOutSpaceDS | flag | Leerzeichen nach DS-Befehl |
CifOutSpaceL | flag | Leerzeichen nach L-Befehl |