本连载文章首次于2023年11月,发布于个人微信公众号(LSTK_LAY)上,现于2024年5月搬于个人博客上。同样以连载的方式持续更新文章内容,主要是以Calibre配合Virtuoso讲解在版图中使用Calibre的相关操作技巧和注意事项。
2025年11月
2025年06月
2025年05月
2023年11月
1. 删除多余的runset文件
如下图,有时候我们会建立多个runset文件,以适应不同的要求,当验证过后的runset文件我们希望从列表中删除。

解决方法:回到个人home目录下,找到如下图的几个文件(隐藏文件),打开文件然后删除你不要的runset文件即可。

2. 自动加载runset文件
需要在.cshrc文件中添加如下相关代码:
setenv MGC_CALIBRE_PEX_RUNSET_FILE /XXX/XXX/XXX/XXX/...
setenv MGC_CALIBRE_LVS_RUNSET_FILE /XXX/XXX/XXX/XXX/...
setenv MGC_CALIBRE_DRC_RUNSET_FILE /XXX/XXX/XXX/XXX/...
“/xxx/xxx/xxx/xxx/…”表示本地保存runset 文件的相关路径。
3. 设置PEX抽寄生参数网表 pin顺序与原理图一致,避免后防手动修改
Calibre PEX Options选项卡中,按如下图示设置即可;

4. 当进行DRC、LVS、PEX时,自动创建对应cell name 对应的文件夹
打开对应保存的Runset文件,在文件中加入下面语句即可:
*cmnTemplate_RN:/xxx/xxx/xxx/xxx/%l
说明:“/xxx/xxx/xxx/xxx/” 代表相关要生成DRC/LVS/PEX结果的路径。

5. 在Virtuoso界面调出Calibre Real Time DRC 工具栏
需要在.cshrc文件中添加如下三行代码:
setenv MGC_CALIBRE_REALTIME_VIRTUOSO_ENABLED 1
setenv 0A_PLUGIN_PATH ${MGC_HOME}/shared/pkgs/icv/tools/queryskl
setenv LD_LIBRARY_PATH $MGC_HOME/shared/pkgs/icv/tools/calibre_client/lib/64:${LD_LIBRARY_PATH}
效果图如下:

首次使用需要先设置相关的DRC rule文件:如下图片。


6. 设置使用Hierarchical模式跑DRC或LVS后,Highlight错误时,显示在top_level
在calibre-RVE界面,菜单栏Highlight-Highlight in Context,不勾选。如下图;

7. 指定运行部分drc rules 或 自定义执行哪些drc rules
Calibre 中Rules 选项,Check Selection Recipe 栏Edit,在对应对话框中进行设置。同时也支持你自定义要执行哪些drc rules。

8. Calibre 在导入netlist时,出现不明文件
当导入的netlist name中有空格时,会出现不明文件,并显示为红色。 请将name中的空格删除即可。如下图所示:

9. Calibre Run DRC 检查版图中的“毛刺”
在 drc rule 文件中添加如下相关代码:
M2_SPIKE{
@ Check convex edges with one convex endpoints shorter than 0.05um ###该条规则的说明;
M2_SPIKE_EDGE = CONVEX EDGE M2 ==1 WITH LENGTH < 0.05 ###找到 M2 层所有只有一个凸角端点(endpoint == 1) 的边,并且这些边的长度小于 0.05 μm;
COPY M2_SPIKE_EDGE ###检测到的那些边输出为结果层,以便在 Calibre RVE 或结果 GDS 中看到。
}
M3_SPIKE{
@ Check convex edges with one convex endpoints shorter than 0.05um ###该条规则的说明;
M3_SPIKE_EDGE = CONVEX EDGE M3 ==1 WITH LENGTH < 0.05 ###找到 M3 层所有只有一个凸角端点(endpoint == 1) 的边,并且这些边的长度小于 0.05 μm;
COPY M3_SPIKE_EDGE ###检测到的那些边输出为结果层,以便在 Calibre RVE 或结果 GDS 中看到。
📌 “M2” 或 “M3” 的名称可能需根据不同 drc rule 下的定义进行对应更改;0.05 也可根据自己需求更改。

📝 原理简述:
基本语法如下:
CONVEX EDGE layer endpoint_constraint [WITH LENGTH edge_length_conshraint
分别检查一条边的两端与相邻边形成的内夹角是否超过180度;
- Convex corner(凸角):内部夹角 < 180°(向外突起的角);
- Concave corner(凹角):内部夹角 > 180°(向内凹的角)
| 条件写法 (endpoint_constraint) | 意义说明 | 图形理解 |
| == 2 | 两端都是凸角(convex corners) | 例如一个完全凸出的边,左右两端都外凸。 |
| == 1 | 只有一端是凸角,另一端不是(如毛刺边) | 一边外凸,一边平滑或内凹。 |
| == 0 | 两端都不是凸角(均为凹角 concave) | 例如内槽或凹陷形边。 |
| > 0 | 至少有一端是凸角(即 1 或 2 ) | 一般用于筛选“有凸特征”的边。 |
| < 2 | 不是两个端点都凸(即 0 或 1) | 用于排除完全凸出的边。 |

💡 Convex Edge 还能设置角度的检查,更多 Convex Edge 用法,请参考文档 svrf.pdf
连载中…
*以上内容仅供个人学习,切勿用于商业!!!