来源:IC技能搬运工
后台有人提问:公司设计中不允许有单个contact或者via,可是DRC rule并没有相关检查项,设计者如何能检查出版图中的单个contact或者via呢?
SVRF和TVF
以Calibre工具为例,如何写一条DRC rule呢?首先需要了解一下DRC rule的书写格式。
Standard Verification Rule Format(SVRF)是Calibre接受的规则文件书写格式,大部分DRC rule也是按照此格式书写的。
用户可参考Calibre软件安装目录下docs文件夹,其中有一个Standard Verification Rule Format Manual,里面包含对规则文件的结构、语法、使用条件等十分详细的介绍。
这里只告诉大家SVRF是一种规则文件书写规范的简称,下次再看到这个符号时知道SVRF是什么,以下是SVRF rule文件的构成。
Tcl Verification Rule Format(TVF)是Calibre标准验证规则格式(SVRF)语言的可编程扩展。
TVF在两个不同的环境中使用: compile-time和runtime(具体不懂,自行查阅),TVF使用所有标准的Tcl构造,它提供了统一的编程结构。
实现思路
检查单个contact或者via的DRC rule应该有多种不同的实现方法,下面介绍一个十分简单的实现思路。
搜索版图中连接M1和M2的via或者连接AA、POLY和M1的contact,如果该范围内确实只有一个孔,那么就在DRC中提示出该位置,如果该范围内有一个以上的孔,那么就认为不存在单孔情况。
下面给出以smic 180nm 模拟工艺DRC rule中命名规则为例实现上面思路的DRC rule.
1// added by WeChat Official: ICSkillSharing
2// single contact & via rule for smic18
3
4// design rule for single contact
5single.contact {
6 @added by ICSkillSharing
7 @single contact check, single contact not allowed
8 // replace GTO AAO M1O CTO according to your process
9 POLY_M1 = (GTO AND M1O) INTERACT CTO
10 CTO INSIDE POLY_M1
11 AA_M1 = (AAO AND M1O) INTERACT CTO
12 CTO INSIDE AA_M1
13}
14
15// design rule for single via1
16single.via1{
17 @added by ICSkillSharing
18 @single via1 check, single via1 not allowed
19 // replace M1O M2 V1O according to your process
20 M1_M2 = (M1O AND M2) INTERACT V1O
21 V1O INSIDE M1_M2
22}