CIF
CIF (Caltech Intermediate Format) is a human-readable text format for IC layout data, widely used in academic and research environments.
| Property |
Value |
| Extensions |
.cif |
| Encoding |
ASCII |
| Import |
|
| Export |
|
| License |
Basic |
| Hierarchy |
Symbol definitions (DS/DF) with calls (C) |
| Layers |
Named layers (L command) |
Import Options
Units
| Option |
Description |
Default |
| CIF standard |
1/100 microns |
Selected |
| CADENCE |
1/1000 microns |
— |
Text
| Option |
Description |
Default |
| Ignore text |
Skip 94-extension text records |
Off |
| Text size |
Default text height in CIF units |
1000 |
| Vertical alignment |
Top, Middle, Base Line, Bottom |
Middle |
| Horizontal alignment |
Left, Center, Right |
Center |
Export Options
CIF Dialect
LinkCAD can produce CIF output compatible with specific tools:
| Dialect |
Description |
| CADENCE |
CADENCE Virtuoso compatibility |
| Compass |
Compass Design Automation |
| CleWin |
CleWin layout editor (supports donuts/scaling) |
| Electric |
Electric VLSI Design System |
| IE3D |
Zeland IE3D electromagnetic simulator |
| L-Edit |
Tanner L-Edit |
| Custom |
User-defined settings |
Geometry
| Option |
Description |
Default |
| Arc segments |
Segments per 360° for circle approximation |
72 |
| Box records (B) |
Write rectangular shapes as CIF boxes |
On |
| Wire records (W) |
Write polylines as CIF wires |
On |
| Roundflash (R) |
Write circles as roundflash records |
On |
| Vertex limit |
Split polygons exceeding vertex count |
Off |
| Flatten |
Remove symbol hierarchy |
Off |
| Option |
Description |
Default |
| CIF units |
Standard (1/100 µm) or CADENCE (1/1000 µm) |
Standard |
| Line endings |
DOS/Windows or UNIX |
DOS |
| Max layer name length |
Truncate layer names |
Unlimited |
| Header text |
Custom comment in file header |
— |
| Space after DS |
Add space after symbol definition keyword |
Dialect-dependent |
| Space after L |
Add space after layer keyword |
Dialect-dependent |
Common Workflows
GDSII → CIF
Convert binary GDSII to human-readable CIF for academic tool chains or manual inspection.
CIF → GDSII
Convert CIF designs to GDSII for commercial fabrication.
CIF → DXF
Convert CIF layout data to DXF for viewing in general-purpose CAD tools.
Technical Notes
- CIF is a purely text-based format — files can be edited with any text editor
- Coordinates are integers in the chosen unit system
- Symbol hierarchy uses DS (Define Symbol) and DF (End Definition) commands
- Cell references use the C (Call) command with optional transformation
- The 94-extension adds text support (not part of the original CIF specification)
CLI / Command-File Options
These option keys can be used on the command line or in command files.
Import
| Key |
Type |
Description |
CifInUnitsCents |
flag |
Use centimicrons (CADENCE mode) |
CifInIgnoreText |
flag |
Ignore text primitives |
CifInFontSizeUnits |
int |
Font size unit enum (see Units) |
CifInFontSizeValue |
float |
Font size value |
CifInFontAnchorH |
int |
Font horizontal anchor — 0=left, 1=center, 2=right |
CifInFontAnchorV |
int |
Font vertical anchor — 0=top, 1=middle, 2=baseline, 3=bottom |
Export
| Key |
Type |
Description |
CifOutFlavour |
int |
CIF dialect (0=Custom, 1=CADENCE, …) |
CifOutUnitsCents |
flag |
Use centimicrons |
CifOutFlatten |
flag |
Flatten hierarchy |
CifOutCleMode |
flag |
CLE mode output |
CifOutUseBox |
flag |
Use box primitive |
CifOutUseWire |
flag |
Use wire primitive |
CifOutUseRound |
flag |
Use round flash |
CifOutSplitPolygons |
flag |
Split polygons at vertex limit |
CifOutPolygonLimit |
int |
Maximum vertices per polygon |
CifOutNoGlobalCell |
flag |
Do not create global cell |
CifOutLinefeed |
flag |
Add linefeeds to output |
CifOutHeader |
string |
File header comment |
CifOutLayerNameLength |
int |
Max layer name length |
CifOutScaleDS |
flag |
Scale DS command |
CifOutSpaceDS |
flag |
Space after DS command |
CifOutSpaceL |
flag |
Space after L command |