您当前的位置:检测资讯 > 科研开发

芯片设计规则检查(DRC)文件基本框架解析

嘉峪检测网        2024-10-06 10:56

1. 环境设定

 

撰写一份DRC则首先需要进行基础环境设置,以calibre为例,这一基础环境的设置如图1所示,主要包括以下几个方面:

 

Layout path:指定输入版图数据;

 

Layout primary:指定输入版图需要检查的cell名称;

 

Layout system:指定输入版图格式,一般为GDSII或OASIS两种,要与Layout path输入的数据格式保持一致;

 

Precision:指定DRC计算精度;

 

Layout precision:指定版图文件的精度;

 

Resolution:指定格点分辨率;

 

DRC results database:指定DRC结果输出文件,以ASCII形式记录了各种层的报错位置坐标信息;

 

DRC summary report:指定DRC结果统计信息文件,主要包括版图中每个原始层的数量,每条规则检查结果数量,run time等信息。

 

2. 层的定义

 

层的定义可以将输入的GDS或者OASIS中的图层号、DATATYPE属性一一映射到DRC文件中使用的图层中,如图2所示,在DRC中通过LAYER MAP和LAYER的组合使用,可以对图层进行编号及分配,保证每个图层编号的唯一性,避免出现检查错误。

 

 

3. 连接关系的建立

 

一个功能完善的芯片,需要按照设计要求和工艺要求通过metal连线将各种器件正确的连接起来,来实现设定的功能。在DRC中的一部分规则需要通过获取特定层之间实际的连接关系才能实现检查效果,这就需要依据设计规则中连接关系的定义,通过CONNECT命令来实现图层之间的连接。

 

为了检查实际layout中器件和金属的连接关系,需要在DRC中通过CONNECT关键词建立起相应的连接,如图3所示,可以通过via将两个metal进行连接,也可以通过cnt将metal与nsd进行连接,从而实现后续电位相关设计规则的检查。

 

 

 

4. 变量定义

 

随着工艺节点的逐步缩小,关键尺寸缩小,并且相关层种类大量增加,这就导致DRC code数量和复杂程度急剧增加,但通常设计规则每一章节都会有相似的设计要求,差别仅在于尺寸的不同,或者涉及的层有所区别。通常对于这种相似的情况,可以通过在DRC文件靠前部分或者各个章节前进行全局变量定义,后续DRC code中就可以直接调用该变量,不需要在具体的DRC规则中进行重复定义,这样既降低了DRC code出错的概率,也简化了具体的DRC code。在code中全局变量又可以分成功能性和描述性变量两种类型:

    (1) 功能性变量,如图4所示,通过逻辑计算来定义某一个代表特定功能的变量;

    (2) 描述性变量,这种变量的定义主要是为了在后续DRC code撰写过程中提供方便,将某一些逻辑操作定义为一个变量,但并不一定代表特定功能,通常是在每一章节进行定义描述。

 

5. 检查规则的编写

 

通过以上几个部分的定义,DRC大厦的地基就建立完毕,之后就可以一层一层的往上搭建主体部分,即依据设计规则的要求进行DRC的撰写,同时搭建过程中需要及时利用test pattern进行测试,保证所撰写的DRC code符合DRM的要求。

 

 

图5所示为一条完整的DRC code示例,包含了对应设计规则的检查名称(M1_1)、设计规则描述(@min width...)以及检查代码(INT...),其中检查名称可以帮助工程师快速定位检查代码,设计规则描述可以帮助工程师更好的理解检查内容,而检查语法便是实现该条规则检查的核心内容。针对不同的设计规则,DRC code难易复杂程度各有不同,比如device、ESD、latch up、电压识别等部分相对会更加复杂。

 

以上是一份DRC code的基础框架概览,环境设定、层定义、连接关系建立、变量定义、检查规则编写这五部分,如同精密机械中的齿轮,环环相扣,紧密相连,共同构建了一个严谨又灵活的体系,确保在复杂电路设计过程中,能够高效地发现并纠正潜在的设计违例。

分享到:

来源:且听芯说