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 |