3、DRC工具介绍:主流DRC工具的特点、命令行与GUI运行方式

做芯片后端设计,DRC工具就是咱们的“质检员”。

说实话,我入行那会儿,用的还是老掉牙的版本。那时候跑一次DRC,得等上大半天。现在工具进步太多了,但核心逻辑没变——就是拿你的版图去跟设计规则硬碰硬。

今天咱们聊聊三款主流工具:Calibre、ICV、Assura。这三家各有各的脾气,我一个个说。

3.1 Calibre——行业老大哥

Calibre是Mentor(现在叫Siemens EDA)家的产品。圈子里有句话:“流片不用Calibre,就像开车没刹车。”虽然夸张了点,但足以说明它的地位。

特点:

  • 速度快:Calibre的层次化处理能力很强。我做过一个7nm的项目,版图数据量巨大,Calibre跑一次DRC只要4小时,换别的工具可能要翻倍。
  • 规则卡得准:它支持最复杂的规则写法,比如一些“if-then-else”的条件规则,Calibre处理起来很顺手。
  • 生态好:几乎所有Foundry都优先提供Calibre的DRC rule deck。你拿到PDK,里面肯定有Calibre的版本。

命令行运行方式:

我个人习惯用命令行,因为可以写脚本批量跑。Calibre的命令行叫calibre -drc,用法很简单:

calibre -drc -hier -turbo 4 my_drc_rule.rule -layout my_layout.gds -o drc_results.db

解释一下:-hier是层次化模式,-turbo 4开4个线程并行。我建议你至少开4个,不然CPU闲着也是闲着。

GUI运行方式:

Calibre的GUI叫Calibre Interactive,集成在Virtuoso里。你点一下菜单栏的“Calibre → Run DRC”,弹出一个窗口,选好rule deck和layout就能跑。跑完还能直接高亮错误,挺直观的。

我的小技巧: 调试新rule deck时,先用GUI跑一次。因为GUI能实时显示错误位置,方便你确认规则有没有写对。等规则稳定了,再切回命令行批量跑。

3.2 ICV——Synopsys家的“快枪手”

ICV全称IC Validator,是Synopsys的产品。它最大的卖点就是快。

特点:

  • 分布式处理:ICV天生支持分布式计算。你可以把任务拆成小块,扔到服务器集群上跑。我有个项目用了32核的机器,ICV跑DRC比Calibre快了将近一倍。
  • 内存优化好:ICV对内存的管理很聪明。遇到超大版图,它不会一下子把数据全塞进内存,而是按需加载。这一点在跑顶层DRC时特别有用。
  • 与ICC2集成深:如果你用Synopsys的ICC2做布局布线,那ICV就是最佳搭档。它俩之间可以直接传数据,省去很多中间步骤。

命令行运行方式:

ICV的命令行是icv -drc,参数跟Calibre有点像:

icv -drc -rule my_icv_rule.rule -layout my_layout.gds -o drc_results.icvdb -threads 8

注意:ICV的rule deck后缀通常是.rule或.icv,跟Calibre不通用。你拿到PDK后,得确认Foundry提供了ICV版本的rule deck。

GUI运行方式:

ICV的GUI叫ICV Workbench。它是个独立的窗口,不是嵌在Virtuoso里的。你可以加载版图、跑DRC、看结果,还能做图形化的错误分析。

注意: ICV的GUI启动比较慢,而且对显卡有要求。我曾经在一台老服务器上开ICV Workbench,卡得鼠标都动不了。所以,日常调试我建议用命令行,只有需要仔细看错误图形时才开GUI。

3.3 Assura——Cadence家的“老将”

Assura是Cadence的产品。说实话,现在用Assura的人越来越少了,但老项目里还能见到它。

特点:

  • 与Virtuoso无缝集成:Assura直接嵌在Virtuoso里,点一下就能跑。对于小规模模块,用Assura很方便。
  • 交互式调试强:Assura的DRC结果可以直接在版图编辑器里高亮,你双击错误,版图自动缩放到那个位置。这个体验比Calibre和ICV都好。
  • 速度一般:Assura的速度是硬伤。跑同样的规则,Assura通常比Calibre慢30%到50%。大项目基本没人用Assura跑全芯片。

命令行运行方式:

Assura的命令行是assura -drc:

assura -drc -rule my_assura_rule.rule -layout my_layout.gds -o drc_results.assura

嗯,这里要注意:Assura的rule deck格式跟Calibre、ICV都不一样。它用的是Cadence自己的语法,如果你从Calibre转过来,得花点时间适应。

GUI运行方式:

Assura的GUI就是Virtuoso菜单里的“Assura → Run DRC”。你选好rule deck,点OK就开跑。跑完后,错误列表会出现在Virtuoso的CIW窗口里。

一句话总结: 大项目用Calibre,追求速度用ICV,小模块调试用Assura。我个人建议你至少熟练掌握Calibre和ICV,因为这两家占了90%以上的市场份额。

3.4 三款工具对比一览

特性 Calibre ICV Assura
厂商 Siemens EDA Synopsys Cadence
速度 快 非常快 一般
内存效率 中等 优秀 中等
分布式支持 有限 原生支持 不支持
GUI集成 Virtuoso插件 独立Workbench Virtuoso原生
市场占有率 最高 快速增长 逐渐减少

3.5 知识体系图

下面这张图帮你理清三款工具的核心逻辑:

主流DRC工具知识体系 DRC工具 Calibre (Siemens) ICV (Synopsys) Assura (Cadence) 层次化快 生态最好 GUI集成 分布式快 内存优化 ICC2集成 Virtuoso原生 交互调试强 速度一般 大项目用Calibre,追求速度用ICV,小模块调试用Assura

你看,这三款工具各有侧重。选哪个,取决于你的项目规模、团队习惯,还有Foundry的支持情况。

避坑指南: 我曾经在一个项目里,因为Foundry只提供了Calibre的rule deck,但团队里有人非要用ICV跑。结果呢?规则不兼容,跑出来的结果全是假错。折腾了两天才发现是rule deck版本不对。所以,一定要确认你用的rule deck跟工具匹配。

好了,关于DRC工具的介绍就到这里。记住,工具只是手段,理解规则才是根本。下一节咱们聊聊怎么读懂DRC报告里的那些“天书”。

可可精品资料库