罗风 · 2021年01月19日

研发分享:标准芯片单元可连通性的检测方法

作者简介: 刘淼,男,1979年出生,现供职于上海Cadence电子科技公司数字电路布局布线中心,担任产品工程高级总监,主要研究方向为先进数字电路布局布线的产品定义和验证。

在市场需求的驱动下,近40年来,芯片的设计和制造技术得到了突飞猛进的发展。从45nm 到 28nm,从16nm到10nm,芯片制造技术一路高歌猛进,每隔一到两年时间,芯片的设计和制造技术就会被推进到下一个技术节点。在人们津津乐道享受着芯片性能提升带来的便利的同时,芯片的设计和制造正在面临着巨大的挑战。

基于物理学定律,工程师通过缩小芯片尺寸来提升其性能。作为一个实际问题,把芯片变得越来越小是非常困难的。现在芯片设计已经将芯片各个组成部分之间的空间缩小到了十几纳米,但逻辑芯片的管脚数量不会因为芯片尺寸的缩小而减少,如何把百万数量级的管脚按照逻辑关系连接好,是不得不面对的技术问题。随着制造工艺越来越复杂,设计规则也越来越复杂。工艺每推进一个技术节点,后端布局布线的设计规则都会有两到三倍增加,这给芯片设计和制造带来很大的挑战。

标准芯片单元作为最小的逻辑单元,在整个芯片上会被大量重复使用,所以标准芯片单元的设计显得尤为重要。如果标准芯片单元的可连通性出现问题,将会导致布局布线无法满足设计规则要求,甚至造成芯片断路失效。本文介绍一种标准芯片单元可连通性的检测方法,可以实现标准芯片单元库的全覆盖检测,并模拟实际布局布线中的随机场景来预测可能出现的问题,在实际应用中,取得了很好的效果。

一、 影响标准芯片单元连通性的主要因素

标准芯片单元的管脚形状和排列布局会影响芯片的可连通性。在标准芯片单元库中,与门是一种使用最频繁的标准单元。图1-a是与门的逻辑电路图,有两个输入管脚和一个输出管脚。在标准芯片单元的版图上,对应的也有两块金属用于输入端的连接, 一块金属用于输出端的连接,如图1-b。

WeChat Image_20210119094513.jpg

在进行版图设计时,版图工程师会对版图本身的设计规则进行检查,同时预留管脚的外连空间。管脚的外联方法一般有两种, 一种是在管脚上打过孔,然后再用金属层接出;另一种方法是把管脚做金属层延伸,然后在通过跳层方法接出。不管采用哪种方法把管脚引出,在进行标准芯片单元版图设计时,这些引出的金属层都是不存在的,版图工程师只能预估可能的接线方法来预留空间。

影响管脚接线的设计规则主要有: 金属线与金属线之间的距离,金属端头之间的距离,过孔被金属层覆盖的面积,跨层金属之间的距离,等等。图2a\~c是一些常见的设计规则。

WeChat Image_20210119094520.png

设计规则比较复杂,有些场景需要考虑多个金属之间的相互影响。如果版图工程师没有能充分考虑到这些可能存在的场景,或者对设计规则的理解不充分,就有可能在实际连线中出现管脚不能被引出,或者管脚能够被引出,但引线违反了设计规则。

在实际应用中,标准芯片单元有可能是紧挨着放在一起,这时候两个单元的管脚就会相互影响。版图工程师很能考虑这种情形,因为很难预测到那些标准芯片单元会被放在一起。图3是两个标准芯片单元放在一起的场景。两个输入端管脚离得很近,而且都需要引出,引出线之间很容易触发设计规则,如果预留的空间不足,就有可能造成管脚无法引出的情况。

WeChat Image_20210119094523.jpg

二、 标准芯片单元连通性检测的思路

标准芯片单元是孤立的元器件,为了检测芯片管脚的可连通性,需要把标准芯片单元连接一起,通过实际布局布线来检测管脚设计的合理性。在标准单元设计初期,标准芯片的单元的功能可能还没有完善,数量也不足以组成一个真正的逻辑芯片。同时做一个真正的逻辑网表和完成完整的数字后端,需要的时间也比较长,版图工程师可能没有经验和时间来做这种测试。如果能够简单地把这些标准芯片单元连接起来,并做快速的布局布线,将会帮助工程师快速的检测芯片管脚的连通性。

基于以上需求,我们用脚本产生一个网表,然后使用Innovus的布局布线工具来模拟标准芯片单元的管脚连接情况。图4是本方法的流程图。

从标准芯片单元库中任选两个驱动单元和接收单元,用驱动单元来连接单元库的标准单元,所有标准单元的管脚连接到接受单元。使用这种方法来产生随机网表,其目的是遍历标准单元库的所有标准单元,保证每个标准单元的管脚都被连接。

WeChat Image_20210119094527.png

使用这个随机网表,在Innovus平台进行布局,通常布局的密度从小到大。先使用较小的布局密度,这时标准单元放在一起的几率不大,可以检查标准单元本身的连通性。然后逐步增加布局密度,这时标准单元放在一起的几率增大,可以检查标准单元之间的相互影响。

在布线阶段,通过参数设置,来限制管脚连接的方向和位置,可以实现特定目的的测试。也可以通过设置参数来模拟实际芯片设计时的场景,比如,增大连接线的宽度,增加过孔的数量,添加静电隔离线,等等,从而尽可能再现实际应用场景。

如果标准芯片单元的管脚连通性出现问题,Innovus会在管脚处留下违规标记。我们可以根据违规标记找到对应的设计规则,对管脚的形状进行分析,研究如何改进管脚的形状来避免管脚引线触发设计规则。如果芯片单元的管脚受空间限制,不能够进行更改,则研究是否可能通过增加布局布线的约束条件来避免出现这些场景。

三、 随机网表的产生

随机网表使用verilog语言描述,下面是一段连接关系的例子。

supply0 VSS ;

supply1 VDD ;

NR 01 ( .A1(41), .A2(VSS), .ZN(01), .A3(86) ) ;

AD 02 ( .S(02), .A(47), .CO(03), .B(44) ) ;

QD 03 ( .CP(50), .Q(04), .D(71), .DN(VDD) ) ;

ND 04 ( .DN(83), .CP(clk), .Q(05),  .D(38), .SDN(58) ) ;

RD 05 ( .A1(72), .A2(56), .A4(12), .ZN(06), .A3(56) ) ;

用驱动单元的驱动端作为起点, 遍历标准芯片单元库里的标准单元,连接到驱动单元的驱动管脚上。当驱动单元驱动能力达到上限时,停止遍历标准单元库,把被驱动单元的管脚连接到接收单元上。再使用驱动单元作为新的起点,重复上面的步骤,生成新的连接关系。由于管脚之间的连接关系是随机选取的,遍历单元库的次数越多,标准芯片单元被俩俩互联的几率越大。

WeChat Image_20210119094535.jpg

在随机网表中,驱动单元驱动多个标准芯片单元,这些连接没有实际意义的逻辑关系,只是为了为芯片的管脚连接在一起。图5是一个驱动单元驱动多个标准单元的例子。在布局后,这些标准芯片单元分布在芯片的各个角落,在布线后,被实体金属线连接在一起。

四、 重点芯片单元的选取

如果标准芯片单元的管脚设计对布局布线不友好,布线工具会把管脚连接上,同时留下违规标记;或者让管脚悬空,同时留下管脚悬空标记。在布局布线后,通过布线工具留下的违规标记,可以找到有问题的标准芯片单元。

有些管脚的连接性问题是受它的周边环境的影响,也就是说,这些管脚随着它的周边环境变化,有的时候出现连通性问题,有的时候又可以正常引出。Innovus平台提供了一个功能来统计标准芯片单元在芯片中出现的次数和出现连通性问题的频率。下面是一个Innovus报告的例子,报告中列举了设计规则违规的标准单元的出现次数和违规频率。违规频率越高,表明这个标准单元越容易出错。

WeChat Image_20210119094538.png

由于标准芯片的组合非常多,穷举所有的组合进行测试显示不大现实。假如一个标准芯片单元库有300个标准单元,每个标准单元在布局有四种翻转状态,也就是有1200种芯片单元放置状态。考虑两个标准单元俩俩相邻的情况,这些场景就有P(1200,2)超过100万,而实际上每个标准单元周边可以摆放8个标准单元, 那么就是P(1200,8)。所以我们需要选取重点的标准芯片单元来进行测试。

在选取重点标准芯片单元时,设计规则和设计规则违规频率是两个重要的考虑因素。我们赋予设计规则类型不同的权重。

WeChat Image_20210119094541.png

根据设计规则违规出现的频率,来进行权重的修正。

WeChat Image_20210119094544.png

根据重点芯片的权重,我们把权重大于0.1的标准芯片单元选取出来,生出更多的随机网表来增加布局布线的场景覆盖率。对于权重大于0.5的标准芯片单元,我们会生成特定的场景来检测芯片单元放在一起时的连通性。

五、 重点芯片连通性的检测方法

对于重点芯片,我们通过遍历芯片的摆放位置, 来检测芯片周边环境的影响。图6所示,标准芯片单元绕Y轴翻转,有两个摆放状态。如果俩俩相邻的话,共有四种组合。

WeChat Image_20210119094603.jpg

本方法遍历所有的重点芯片单元,每种组合生成一个网表。在布局时,标准芯片单元俩俩相邻。布线后检查芯片管脚的连通性,如果Innovus检查出有设计规则违规,则输出设计规则违规报告文件,自动保存布线后的数据以备进一步分析使用。

六、 芯片联通性问题的处理

连通性问题通常是由不合理的管脚形状引起。如图7-a所示, 在使用过孔连接中间位置的管脚时,过孔会触发过孔和相邻金属之间的设计规则。在使用金属线连接中间位置的管脚时, 如图7-b所示,则会触发金属线和金属线之间的设计规则。

WeChat Image_20210119094608.jpg

对上面这个管脚设计,有两种改进方案,一种是把中间的这个管脚往下移动,或者增大管脚面积,这样在用过孔连接管脚的时候,可以把过孔向下方挪动一些,以避免触发过孔和金属线之间的设计规则,如果8-a所示。或者如图8-b所示,把相邻的管脚剪除一些,这个管脚往下引线的时候,可以避开金属线端头和金属线之间的设计规则,同时这条引线可以和相邻的金属线保持一点距离,允许使用过孔往高层跳线。

WeChat Image_20210119094612.jpg

如果管脚的连通性问题是由于两个标准单元摆放在一起引起的,同时受限于版图空间的限制,管脚的形状无法改变。这时我们采用增加布局布线约束的方法来阻止这种场景出现。如图9-a所示,两个标准芯片单元相邻放在一起,中间两个短的管脚无法被连接。通过增加布局布线的约束,在标准单元的边界上增加约束条件,在布局的时候,不允许这两个标准单元的边界放在一起,从而留出大的空间来连接这两个短的管脚。

WeChat Image_20210119094615.png

七、本方法的优缺点和可能改进的方面

本方法可以快速的生成随机网表,在标准芯片单元开发的早期阶段,使用Innovus平台对标准单元的连通性进行检测分析。本方法的优点在于简单易用,标准芯片单元的连通性问题比较直观,方便统计分析;缺点在于运算量比较大,无法实现场景全覆盖测试,随机网表比较大时,会出现无法布局布线的情况。可能改进的两个方面: 一是在产生随机网表时,尽可能模拟实际的逻辑电路,避免出现不能布局布线的情形;而是优化实验设计,在尽可能减少运算量的情况下,增加场景的覆盖率。

八、结语

本文介绍了一种标准芯片单元可连通性的检测方法,可以实现标准芯片单元库的全覆盖检测,通过优化算法,可以在减少芯片测试工作量的前提下,实现90%以上的随机场景再现。在标准芯片单元检测中的实际应用中,有效地捕获了标准芯片单元连通性的问题,通过和标准芯片单元库厂商合作,改进了标准的单元版图设计,从而提高的芯片设计的效率和芯片的制造良率。

作者:刘淼
来源:https://mp.weixin.qq.com/s/NTd4pe4xqn9LF9ieczbfDg
微信公众号
Capture.PNG

相关文章推荐

论功耗|测不准的功耗之反思
大牛访谈:纯粹的技术控——旭姐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
20201
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息