介绍了一种标准芯片单元可连通性的检测方法,可以有效检测标准芯片单元的可连通性,在布局布线阶段之前,改进标准单元的版图,或者增加布局布线的约束条件,从而保证标准芯片单元的设计对布局布线的友好性。通过对标准芯片单元的检测和改进,可以有效提高芯片的整体可连通性,从而节约布局布线阶段的工作时间,减少开发周期,提高芯片良率。本方法可以实现标准芯片单元库的全覆盖检测,通过优化算法,可以在尽可能减少芯片测试工作量的前提下,实现90%以上的随机场景再现。通过在不同技术节点标准芯片单元检测中的应用,有效地捕获了标准芯片单元连通性的问题,在数字后端布局布线之前,改进或阻止了可能出现的不友好场景,提升了芯片后端设计的效率。
在市场需求的驱动下,近40年来,芯片的设计和制造技术得到了突飞猛进的发展。从45nm到28nm,从16nm到10nm,芯片制造技术一路高歌猛进,每隔一到两年时间,芯片的设计和制造技术就会被推进到下一个技术节点。在人们津津乐道享受着芯片性能提升带来便利的同时,芯片的设计和制造正在面临着巨大的挑战。
基于物理学定律,工程师通过缩小芯片尺寸来提升其性能。作为一个实际问题,把芯片变得越来越小是非常困难的。现在芯片设计已经将芯片各个组成部分之间的空间缩小到了十几纳米,但逻辑芯片的管脚数量不会因为芯片尺寸的缩小而减少,如何把百万数量级的管脚按照逻辑关系连接好,是不得不面对的技术问题。随着制造工艺越来越复杂,设计规则也越来越复杂。工艺每推进一个技术节点,后端布局布线的设计规则都会有两到三倍增加,这给芯片设计和制造带来很大的挑战。标准芯片单元作为最小的逻辑单元,在整个芯片上会被大量重复使用,所以标准芯片单元的设计显得尤为重要。如果标准芯片单元的可连通性出现问题,将会导致布局布线无法满足设计规则要求,甚至造成芯片断路失效。本文介绍一种标准芯片单元可连通性的检测方法,可以实现标准芯片单元库的全覆盖检测,并模拟实际布局布线中的随机场景来预测可能出现的问题,在实际应用中,取得了很好的效果。
1影响标准芯片单元连通性的主要因素
标准芯片单元的管脚形状和排列布局会影响芯片的可连通性。在标准芯片单元库中,与门是一种使用最频繁的标准单元。图1(a)是与门的逻辑电路图,有两个输入管脚和一个输出管脚。在标准芯片单元的版图上,对应的也有两块金属用于输入端的连接,一块金属用于输出端的连接,如图1(b)。
在进行版图设计时,版图工程师会对版图本身的设计规则进行检查,同时预留管脚的外连空间。管脚的外连方法一般有两种,一种是在管脚上打过孔,然后再用金属层接出;另一种方法是把管脚做金属层延伸,然后在通过跳层方法接出。不管采用哪种方法把管脚引出,在进行标准芯片单元版图设计时,这些引出的金属层都是不存在的,版图工程师只能预估可能的接线方法来预留空间。
影响管脚接线的设计规则主要有:金属线与金属线之间的距离、金属端头之间的距离、过孔被金属层覆盖的面积、跨层金属之间的距离等。图2(a)~图2(c)是一些常见的设计规则。
设计规则比较复杂,有些场景需要考虑多个金属之间的相互影响。如果版图工程师没有能充分考虑到这些可能存在的场景,或者对设计规则的理解不充分,就有可能在实际连线中出现管脚不能被引出,或者管脚能够被引出,但引线违反了设计规则。
在实际应用中,标准芯片单元有可能是紧挨着放在一起,这时候两个单元的管脚就会相互影响。版图工程师很能考虑这种情形,因为很难预测到哪些标准芯片单元会被放在一起。图3是两个标准芯片单元放在一起的场景。两个输入端管脚离得很近,而且都需要引出,引出线之间很容易触发设计规则,如果预留的空间不足,就有可能造成管脚无法引出的情况。
2 标准芯片单元连通性检测的思路
标准芯片单元是孤立的元器件,为了检测芯片管脚的可连通性,需要把标准芯片单元连接一起,通过实际布局布线来检测管脚设计的合理性。在标准单元设计初期,标准芯片单元的功能可能还没有完善,数量也不足以组成一个真正的逻辑芯片[10]。同时做一个真正的逻辑网表和完成完整的数字后端,需要的时间也比较长,版图工程师可能没有经验和时间来做这种测试。如果能够简单地把这些标准芯片单元连接起来,并做快速的布局布线,将会帮助工程师快速地检测芯片管脚的连通性。
基于以上需求,本文用脚本产生一个网表,然后使用innovus的布局布线工具来模拟标准芯片单元的管脚连接情况。图4是本方法的流程图。
从标准芯片单元库中任选两个驱动单元和接收单元,用驱动单元来连接单元库的标准单元,所有标准单元的管脚连接到接受单元。使用这种方法来产生随机网表,其目的是遍历标准单元库的所有标准单元,保证每个标准单元的管脚都被连接。
使用这个随机网表,在innovus平台进行布局,通常布局的密度从小到大。先使用较小的布局密度,这时标准单元放在一起的几率不大,可以检查标准单元本身的连通性。然后逐步增加布局密度,这时标准单元放在一起的几率增大,可以检查标准单元之间的相互影响。
在布线阶段,通过参数设置,来限制管脚连接的方向和位置,可以实现特定目的的测试。也可以通过设置参数来模拟实际芯片设计时的场景,比如,增大连接线的宽度,增加过孔的数量,添加静电隔离线,等等,从而尽可能再现实际应用场景。
如果标准芯片单元的管脚连通性出现问题,innovus会在管脚处留下违规标记。我们可以根据违规标记找到对应的设计规则,对管脚的形状进行分析,研究如何改进管脚的形状来避免管脚引线触发设计规则。如果芯片单元的管脚受空间限制,不能够进行更改,则研究是否可能通过增加布局布线的约束条件来避免出现这些场景。
3 随机网表的产生
随机网表使用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) );
用驱动单元的驱动端作为起点, 遍历标准芯片单元库里的标准单元,连接到驱动单元的驱动管脚上。当驱动单元驱动能力达到上限时,停止遍历标准单元库,把被驱动单元的管脚连接到接收单元上。再使用驱动单元作为新的起点,重复上面的步骤,生成新的连接关系。由于管脚之间的连接关系是随机选取的,遍历单元库的次数越多,标准芯片单元被两两互联的几率越大。
在随机网表中,驱动单元驱动多个标准芯片单元,这些连接没有实际意义的逻辑关系,只是为了把芯片的管脚连接在一起。图5是一个驱动单元驱动多个标准单元的例子。在布局后,这些标准芯片单元分布在芯片的各个角落,在布线后,被实体金属线连接在一起。
4 重点芯片单元的选取
如果标准芯片单元的管脚设计对布局布线不友好,布线工具会把管脚连接上,同时留下违规标记;或者让管脚悬空,同时留下管脚悬空标记。在布局布线后,通过布线工具留下的违规标记,可以找到有问题的标准芯片单元。
有些管脚的连接性问题是受它的周边环境的影响,也就是说,这些管脚随着它的周边环境变化,有的时候出现连通性问题,有的时候又可以正常引出。innovus平台提供了一个功能来统计标准芯片单元在芯片中出现的次数和出现连通性问题的频率。表1是一个innovus报告的例子,报告中列举了设计规则违规的标准单元的出现次数和违规频率。违规频率越高,表明这个标准单元越容易出错。
由于标准芯片的组合非常多,穷举所有的组合进行测试显示不大现实。假如一个标准芯片单元库有300个标准单元,每个标准单元在布局有4种翻转状态,也就是有1 200种芯片单元放置状态。考虑两个标准单元两两相邻的情况,这些场景就有超过100万,而实际上每个标准单元周边可以摆放8个标准单元, 那么就是所以需要选取重点的标准芯片单元来进行测试。
在选取重点标准芯片单元时,设计规则和设计规则违规频率是两个重要的考虑因素。我们赋予设计规则类型不同的权重,如表2所示。
根据设计规则违规出现的频率,来进行权重的修正。
根据重点芯片的权重,我们把权重大于0.1的标准芯片单元选取出来,生出更多的随机网表来增加布局布线的场景覆盖率。对于权重大于0.5的标准芯片单元,我们会生成特定的场景来检测芯片单元放在一起时的连通性。
5 重点芯片连通性的检测方法
对于重点芯片,我们通过遍历芯片的摆放位置, 来检测芯片周边环境的影响。图6所示,标准芯片单元绕Y轴翻转,有两个摆放状态。如果两两相邻的话,共有4种组合。
本方法遍历所有的重点芯片单元,每种组合生成一个网表。在布局时,标准芯片单元两两相邻。布线后检查芯片管脚的连通性,如果Innovus检查出有设计规则违规,则输出设计规则违规报告文件,自动保存布线后的数据以备进一步分析使用。
6 芯片联通性问题的处理
连通性问题通常是由不合理的管脚形状引起。如图7(a)所示,在使用过孔连接中间位置的管脚时,过孔会触发过孔和相邻金属之间的设计规则。在使用金属线连接中间位置的管脚时,如图7(b)所示,则会触发金属线和金属线之间的设计规则。
对上面这个管脚设计,有两种改进方案,一种是把中间的这个管脚往下移动,或者增大管脚面积,这样在用过孔连接管脚的时候,可以把过孔向下方挪动一些,以避免触发过孔和金属线之间的设计规则,如图8(a)所示。或者如图8(b)所示,把相邻的管脚剪除一些,这个管脚往下引线的时候,可以避开金属线端头和金属线之间的设计规则,同时这条引线可以和相邻的金属线保持一点距离,允许使用过孔往高层跳线。
如果管脚的连通性问题是由于两个标准单元摆放在一起引起的,同时受限于版图空间的限制,管脚的形状无法改变。这时我们采用增加布局布线约束的方法来阻止这种场景出现。如图9(a)所示,两个标准芯片单元相邻放在一起,中间两个短的管脚无法被连接。通过增加布局布线的约束,在标准单元的边界上增加约束条件,在布局的时候,不允许这两个标准单元的边界放在一起,从而留出大的空间来连接这两个短的管脚。
7 本方法的优缺点和可能改进的方面
本方法可以快速地生成随机网表,在标准芯片单元开发的早期阶段,使用innovus平台对标准单元的连通性进行检测分析。本方法的优点在于简单易用,标准芯片单元的连通性问题比较直观,方便统计分析;缺点在于运算量比较大,无法实现场景全覆盖测试,随机网表比较大时,会出现无法布局布线的情况。可能改进的两个方面:一是在产生随机网表时,尽可能模拟实际的逻辑电路,避免出现不能布局布线的情形。二是优化实验设计,在尽可能减少运算量的情况下,增加场景的覆盖率。
8 结语
本文介绍了一种标准芯片单元可连通性的检测方法,可以实现标准芯片单元库的全覆盖检测,通过优化算法,可以在减少芯片测试工作量的前提下,实现90%以上的随机场景再现。在标准芯片单元检测中的实际应用中,有效地捕获了标准芯片单元连通性的问题,通过和标准芯片单元库厂商合作,改进了标准的单元版图设计,从而提高的芯片设计的效率和芯片的制造良率。
评论
查看更多