什么是 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 检查是版图设计的关键步骤,建议:
- 定期运行 DRC,尽早发现问题
- 理解工艺规则文档
- 建立自己的规则检查库