来源:IC技能搬运工
以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 < 2
10 CTO INSIDE POLY_M1
11 AA_M1 = (AAO AND M1O) INTERACT CTO < 2
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 < 2
21 V1O INSIDE M1_M2
22}
以上DRC rule基本实现了上述的功能,只需要把上面内容添加到DRC rule文件中或者将原本DRC rule文件用INCLUDE语句添加到末尾即可。
为了保持原来DRC文件的完整性,也可以在Calibre软件中设置相应内容,在运行DRC时直接INCLUDE用户添加的DRC语句。
有一项需要注意,上面DRC语句检查时需要使用Flat模式,否则Pcell中的违反项无法检查出来。
检查结束可以在DRC报告中查看相应的结果,以上内容只针对smic 180nm 模拟工艺,对于其它工艺需要用户根据工艺中层的命名修改文件中相应的内容,具体参考上述DRC语句中的注释内容。
当然,除了使用DRC rule进行检查,也可以在版图中使用搜索工具进行单孔检查,需要通过设置搜索条件实现功能,这种方法不再详细说明,感兴趣的同学自行学习。
关注创芯人才网,搜索职位