返回文章列表
版图验证DRC版图验证Calibre

DRC 验证:常见问题与解决方案

2024-06-058 min

什么是 DRC

DRC(Design Rule Check)是芯片版图验证的第一步,用于检查版图是否符合制造工艺的设计规则。

常见 DRC 错误

1. 间距违规(Spacing Violation)

金属线之间的距离小于工艺允许的最小间距:

# Calibre DRC 规则示例
DRC CHECKS {
  METAL1_SPACE = 0.1um
  METAL2_SPACE = 0.1um
  METAL3_SPACE = 0.15um
}

修复方法:

  • 调整金属线位置
  • 增加金属线之间的间距
  • 使用次层金属连接

2. 宽度违规(Width Violation)

金属线的宽度小于工艺允许的最小宽度:

# 最小宽度规则
METAL1_WIDTH = 0.1um
METAL2_WIDTH = 0.1um
VIA_SIZE = 0.1um

修复方法:

  • 加宽金属线
  • 使用多层金属叠加

3. 覆盖违规(Enclosure Violation)

VIA 和金属的覆盖不符合规则:

# VIA 覆盖规则
VIA1_ENC_METAL1 = 0.05um
VIA1_ENC_METAL2 = 0.05um

调试技巧

使用 Calibre RVE

# 启动 Calibre RVE
calibre -rve -drc design.drc

批量修复

对于间距违规,可以使用以下脚本批量修复:

#!/usr/bin/env python3
import re

def fix_spacing_violations(layout_file):
    """修复间距违规"""
    with open(layout_file, 'r') as f:
        content = f.read()

    # 查找所有金属间距
    pattern = r'METAL\d+_SPACE\s*=\s*([\d.]+)'
    matches = re.findall(pattern, content)

    for match in matches:
        spacing = float(match)
        if spacing < 0.15:
            print(f"Found spacing violation: {spacing} < 0.15")

if __name__ == "__main__":
    fix_spacing_violations("design.gds")

总结

DRC 检查是版图设计的关键步骤,建议:

  1. 定期运行 DRC,尽早发现问题
  2. 理解工艺规则文档
  3. 建立自己的规则检查库