Calibre 技能

本连载文章首次于2023年11月,发布于个人微信公众号(LSTK_LAY)上,现于2024年5月搬于个人博客上。同样以连载的方式持续更新文章内容,主要是以Calibre配合Virtuoso讲解在版图中使用Calibre的相关操作技巧和注意事项。


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

连载中…

发表评论