3、DRC工具介绍:主流DRC工具(Calibre、ICV、Assura等)、工具界面与操作流程、如何选择适合的工具
做芯片设计这些年,我换过好几家EDA工具。说实话,DRC工具这东西,就像工程师手里的螺丝刀——用顺手了,效率翻倍;用不惯,天天想骂人。今天我就把几个主流工具掰开揉碎了讲讲,顺便聊聊我踩过的坑。
3.1 三大主流DRC工具概览
目前市面上用得最多的,就是这三家:Mentor(现属Siemens)的Calibre、Synopsys的ICV、Cadence的Assura。嗯,还有个PVS,但咱们先聊这三个。
| 工具名称 | 开发商 | 核心特点 | 常见应用场景 |
|---|---|---|---|
| Calibre | Siemens EDA (原Mentor) | 速度快、规则支持全面、业界标杆 | 先进工艺节点、大规模SoC |
| ICV (IC Validator) | Synopsys | 与Synopsys工具链集成好、支持并行 | 数字后端、综合后验证 |
| Assura | Cadence | 与Virtuoso深度集成、交互式操作 | 模拟/混合信号设计、版图编辑 |
你可能会问:「到底选哪个?」我的回答是:看你的流片厂要求。很多Foundry只认Calibre的结果。我在一个28nm项目里就吃过这个亏——用ICV跑全过了,结果Foundry要求必须用Calibre重新跑一遍,白白浪费两天。
3.2 Calibre:业界老大哥
Calibre是我用得最多的工具。说白了,它就是DRC界的「标准答案」。几乎所有Foundry都会提供Calibre的rule deck。
3.2.1 界面与操作流程
Calibre有两种运行方式:命令行和图形界面。我个人习惯用命令行,但调试的时候还是得开GUI。
典型的Calibre DRC流程是这样的:
- 准备文件:GDS版图文件 + DRC rule deck(.rul文件)
- 运行DRC:调用calibre -drc命令
- 查看结果:打开RVE(Results Viewing Environment)
- 修复错误:在版图中高亮标记,逐一修改
举个简单的命令行例子:
# 运行Calibre DRC
calibre -drc -hier -turbo 4 my_design.gds my_rules.rul
# 参数说明:
# -hier :层次化检查,速度快
# -turbo 4:开启4核并行
# 输出文件:my_design.drc.report(文本报告)
# my_design.drc.db(数据库,供RVE查看)
这里有个坑要提醒你:-turbo参数不是越大越好。我曾经在一个项目里开了16核,结果内存爆了,机器直接卡死。后来发现,对于小规模设计,4核就够了;超过8核,收益递减明显。
3.2.2 RVE界面使用
RVE是Calibre的结果查看器。说实话,第一次用的时候我也懵——满屏的红色标记,根本不知道从哪下手。
后来我总结了一套流程:
- 按错误类型分组:RVE会把相同类型的错误归到一起,先修数量多的
- 双击错误条目:自动跳转到版图中对应的位置
- 使用「Next」按钮:逐个检查,别跳着看,容易漏
3.3 ICV:Synopsys的利器
ICV,全称IC Validator。如果你用的是Synopsys的全流程工具(比如ICC2、PrimeTime),那ICV会是你的好搭档。
ICV最大的优势是并行处理能力。我记得有个项目,用Calibre跑DRC要12小时,换成ICV只用了6小时——当然,前提是你得有足够的license。
ICV的操作流程和Calibre类似,但命令不同:
# 运行ICV DRC
icv -drc -rule my_rules.icv -design my_design.gds -report my_report.txt
# ICV的特色参数:
# -cells :指定检查的cell层级
# -threads:线程数,ICV对多线程支持很好
这里要提一句:ICV的rule deck语法和Calibre不太一样。如果你从Calibre转过来,需要花点时间适应。我刚开始用ICV时,就因为写错了一个关键字,跑了半天才发现rule没生效。
3.4 Assura:模拟设计师的伙伴
Assura是Cadence家的工具,和Virtuoso版图编辑器是「亲兄弟」。如果你做模拟IC设计,大概率会用到它。
Assura最大的特点是交互式操作。你可以在Virtuoso里直接启动Assura,边改版图边跑DRC,非常方便。
操作流程:
- 在Virtuoso中打开版图
- 菜单栏选择:Assura → Run DRC
- 选择rule deck和运行模式
- 查看结果:错误会直接在版图上高亮
不过Assura也有短板——速度慢。对于大规模数字设计,它跑起来比Calibre慢不少。我一般只在模拟模块的局部检查时用Assura,全芯片还是交给Calibre。
3.5 如何选择适合的工具?
这个问题没有标准答案。我根据经验,给你几个判断维度:
| 考虑因素 | 推荐工具 | 原因 |
|---|---|---|
| Foundry指定 | Calibre | 大多数Foundry只认Calibre结果 |
| 全Synopsys流程 | ICV | 与ICC2、PrimeTime无缝集成 |
| 模拟/混合信号 | Assura | Virtuoso集成度高,交互方便 |
| 大规模数字芯片 | Calibre或ICV | 并行能力强,支持层次化检查 |
| 预算有限 | ICV | 同等性能下,license成本可能更低 |
我个人建议:团队至少掌握两种工具。为什么?因为有时候Foundry会更新rule deck,只支持某一种工具。我经历过一次,项目做到一半,Foundry说「我们只提供Calibre的rule了」,结果整个团队连夜学Calibre——那滋味,不想再体验第二次。
3.6 工具对比总结
最后,我用一张图来总结这三个工具的核心差异。这张图是我自己画的,希望能帮你快速建立认知。
嗯,以上就是我对主流DRC工具的理解。说白了,工具只是手段,关键还是你对规则的理解和排查问题的能力。下一节,我们会深入DRC rule deck的语法,到时候我会拿几个真实案例来讲——那些年我写错的rule,够写一本「反面教材」了。
可可精品资料库