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 命令后加空格 |