首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种在spare cell上加入spare via的方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:杭州宙其科技有限公司

摘要:一种在spare cell上加入spare via的方法,包括如下步骤:1芯片整体的电源网络规划时需采用顶层金属,以power、ground为一组做水平方向的powerground stripe,将spare cell加入每组powerground stripe之间的core row;2提取所有spare cell输入、输出端口的位置坐标,版图结构信息,根据所选择的spare via结构,在端口上生成相应的via region;3根据各端口的via region,选择各端口生成spare via的相应位置坐标,结合EDA工具,生成spare via;4将spare via通过顶层金属连接到与其相邻的一组顶层powerground stripe上。本发明能减少应用spare cell进行ECO调整时所产生的需重新制版的金属层及通孔层的数量,降低ECO调整的费用及成本。

主权项:一种在spare cell上加入spare via的方法,其特征在于:所述方法包括如下步骤:1芯片整体的电源网络规划时需采用顶层金属,以power、ground为一组做水平方向的powerground stripe,两根stripe之间的间距要大于标准单元所定义的core site的高度,但要小于这一高度的两倍。每组powerground stripe加入的位置要保证两根stripe之间能够容下一条完整的标准单元的core row;之后,将spare cell加入每组powerground stripe之间的core row;2提取所有spare cell输入、输出端口的位置坐标,版图结构信息,根据所选择的spare via结构,在端口上生成相应的via region;3根据各端口的via region,选择各端口生成spare via的相应位置坐标,坐标的选择要确保各端口的spare via在垂直方向,结合EDA工具,生成spare via;4将spare via通过顶层金属连接到与其相邻的一组顶层powerground stripe上。

全文数据:_种在sparecelI上加入sparevia的方法技术领域[0001]本发明涉及芯片设计数据调整ECO、聚焦离子束微调FIB、可靠性设计等领域。背景技术[0002]随着集成工艺的发展,CMOS管及金属布线的尺寸越来越小,芯片规模及集成密度越来越高,芯片制造过程中工艺的可靠性及可控性随之降低,在芯片设计过程中通过对设计的改良而提升芯片制造过程中的可靠性的设计方法成为芯片设计领域内一个不可忽视的重要环节。另一方面,芯片流片的费用及成本,也随着集成度的提高而快速增长,对成本因素的考量也必须贯穿芯片设计领域的各个方面。而可靠性设计常常是通过在电路中引入冗余设计而提高可靠性,而冗余设计的代价则是成本的提高。兼顾成本因素的可靠性设计逐渐成为这一领域的热点。[0003]在电路中加入冗余单元(sparecell是提高设计可靠性的一种有效手段。Sparecell的原理,就是在电路的各个区域加入冗余的标准单元,这些单元本身具有一些简单的逻辑功能或是存储功能。当芯片的初始设计在流片完成后的验证中发现问题时这种问题可能是多方面的,有可能是工艺问题,有可能是版图结构问题,也有可能是由于前期功能验证的不充分而导致的功能问题),需要通过更改或调整电路某一部分的结构来修正这些问题,这些改动便可以通过设计阶段预先加入的sparecel1来完成,并且仅仅只需通过修改sparecell相应管脚的金属连接便可实现。制版时,只需要代工厂Foundry替换掉需进行修改的几层金属的mask,便可以方便的修正掉芯片初始流片中所发现的各种问题。相比于重新设计、重新流片,这种方法设计周期大大减少,其设计的成本也显著降低。[0004]由于需要对修改的金属层的掩膜mask进行替换,所以其所涉及到的mask的层数,直接决定了这一修改的成本。如何获得最小的金属层数改动,是利用sparecell进行ECO调整所面临的核心问题。[0005]目前关于sparecell的处理方式,一般是将sparecell的输入、输出端与电源或地端相连,然后利用EDA工具完成这一连接的布线。EDA工具的处理方式,通常都是将输入、输出端与其附近的电源轨powerrail或地线轨groundrail相连。由于powerrail或groundrai1—般由底层金属实现,所以这一连接布线,通常只涉及底层金属的少量布线。当芯片需要ECO调整时,需首先将这一连接切断,然后选择合适的金属层,以及合适的走线位置,将sparecell的端口与目标端口相连。这一方式存在的问题是,由于EDA工具对于sparecell端口与powergroundrail之间的布线采用了很底层的金属走线完成,那么当此处的sparecell需要进行ECO调整时,这一调整很有可能需要从顶层金属一路向下跳到底层金属才能完成从sparecel1端口到目标端口的走线,这将涉及到大量的金属及通孔层重新制版的工作,所付出的费用和成本是巨大的。[0006]两方面的因素造成了这一问题:其一,sparecell本质上就是标准单元,一般标准单元都由最底层金属即Ml实现的,其所有输入、输出端口以及powergroundrail都是采用Ml走线的,并且powergroundrail—般处于标准单元版图结构的上下两边,所有输入、输出端口处于powergroundrai1之间,所以从输入、输出端口到powergroundrai1的布线距离是很小的,一般情况下M2以下的走线即可完成这一连接,这也是计算机自动化设计EDA工具的普遍处理方方式;其二,布线密度从底层到顶层依次减小,所以当布线需要ECO调整时,顶层由于布线密度低,存在可调整的空间,越往底层,其可调整的空间越小。以上这两个因素,导致了多数利用sparecell进行的ECO布线调整都需要走线从顶层一路通过通孔跳到底层才能实现。很多情况下,为了实现某一ECO调整,可能需要从Ml开始直至顶层所有的金属及通孔的mask都重新制版才能实现,成本巨大。发明内容[0007]为了克服已有应用sparecell进行ECO调整时所产生的需重新制版的金属层及通孔层的数量较大、ECO调整的费用及成本较高的不足,本发明提供一种减少应用sparecell进行ECO调整时所产生的需重新制版的金属层及通孔层的数量,降低ECO调整的费用及成本的在sparecell上加入sparevia的方法。[0008]本发明解决其技术问题所采用的技术方案是:[0009]一种在sparecell上加入sparevia的方法,包括以下环节:[00Ί0]1芯片整体的电源网络规划时需采用顶层金属,以p〇wer、gr〇und为一组做水平方向的电源、地线网格powergroundstripe,两根stripe之间的间距要大于标准单元所定义的标准单元最小位移coresite的高度,但要小于这一高度的两倍。每组powergroundstripe加入的位置要保证两根stripe之间能够容下一条完整的标准单元的行corerow。[0011]之后,将sparecell加入每组powergroundstripe之间的corerow;[0012]2提取所有sparecell输入、输出端口的位置坐标,版图结构信息,根据所选择的冗余通孔sparevia结构,在端口上生成相应的通孔区域viaregion;[0013]3根据各端口的viaregion,选择各端口生成sparevia的相应位置坐标,坐标的选择要确保各端口的sparevia在垂直方向,结合EDA工具,生成sparevia;[0014]4将sparevia通过顶层金属连接到与其相邻的一组顶层powergroundstripe上。[0015]进一步,所述步骤2中,首先找到全设计里所有的sparecell4pattern变量定义了sparecell名称中的关键字,并以此关键字作为通配符来对全电路里的sparecell进行筛选,进而获得每一个spare〇611的位置坐标;[118让00及尺寸坐标;[1181:06110;[111,之后代码对每一个sparecell的端口信息进行提取,通过dbForEachFTermLefPort和dbForEachLefPortLayerShape,获得每一个端口的版图结构信息,由于在标准单元中很多端口的版图为不规则多边形,dbForEachLayerShapeShape命令能够将不规则多边形拆分为一组等价的矩形坐标数组,至此所有端口的版图形状及位置信息全部获得。[0016]再进一步,所述步骤2中,Viaregion的生成通过对sparecell各端口的Ml的版图进行提取、分析、处理得到,包括如下过程:2.1,需对Ml的GDS层号进行定义,将sparecell的Ml的版图信息按照GDS层号进行抽取,并依据图论对抽取的数据进行映射,建立数学模型;2.2,对映射后的数据进行遍历,生成能够容纳via的边界特征点,由此特征点构建viaregion区域;2.3,将viaregion的坐标信息输出。[0017]更进一步,所述步骤3中,坐标位置的选择过程为:[0018]3.1对sparecell所有的端口的viaregion按照权值大小进行排序,权值的选择为viaregion面积的大小与viaregion垂直方向交叠次数的比例加权,面积越小,交叠次数越高的viaregion其优先级越高;[0019]3.2设置已产生sparevia的区域集合为空;[0020]3.3按照优先级的高低,依次对相应的viaregion区域进行扫描遍历,如发现遍历区域与已产生spareVia的区域集合中的区域在垂直方向有交叠,则跳过该区域继续遍历,直至发现未产生交叠的viaregion区域为止;如不存在这样的区域,则选择交叠区域作为sparevia的生成区域,将得到的sparevia的位置区域追加入已产生sparevia的区域集合,继续重复3.3的步骤。[0021]本发明的技术构思为:在sparecell的输入、输出端口上加入从底层至顶层的sparevia,并连接至顶层powergroundstripe。所有sparecell被布局在一组顶层金属的powergroundstripe之间,确保从sparecell的输入、输出端口到power、ground的连接距离最短,占用最少的布线资源。[0022]本发明的有益效果主要表现在:极大的减少了利用sparecell进行ECO调整时所产生的需重新制版的mask数量,降低了芯片制造的成本。附图说明[0023]图1是加入sparecell的芯片规划(fIoorplan示意图,其中数字1代表groundstripe;数字2代表powerstripe;数字3代表corerow;数字4代表sparecell。[0024]图2是viaregion不意图。[0025]图3是sparevia在viaregion区域内位置分布产生交叠的示意图。[0026]图4是在sparecell上生成sparevia的版图示意图。[0027]图5是在sparecell上生成sparevia的纵切面示意图。具体实施方式[0028]下面结合附图对本发明作进一步描述。[0029]参照图1〜图5,一种在sparecell上加入sparevia的方法,所述方法包括如下步骤:[0030]1加入sparecell的电源网格规划示意图如图1所示。其中水平的powergroundstripe采用顶层金属走线,两根stripe之间的间距恰好可以完整的容纳一条corerow,sparecell放入该corerow中。这样做的目的在于:首先,由于sparecell的输入、输出端口既有可能与power端相连,也有可能与ground端相连,所以显而易见,将sparecel1放入一组powergroundstripe之间是最节省布线资源的解决方案;其次,所述方法的sparecell的输入、输出端口并不是与标准单元的powergroundrail相连,而是与顶层金属的powergroundstripe相连,如果sparece11与其相邻的顶层金属的stripe相距过远,贝Ij会导致布线过程中额外的布线资源的消耗,所以两根stripe之间的间距选择为大于1倍的corerow高度而小于或等于2倍的corerow高度,亦即刚好可以容纳一条corerow;最后,关于stripe的走线方向,如果将顶层金属的powergroundstripe改为垂直方向走线,则放入两根stripe之间的sparece11的输入、输出端口有可能被其相邻的powergroundstripe遮蔽掉,需要通过低层金属的跳层走线才能连接到顶层金属,产生额外的布线资源消耗。而如果要所有端口完全无遮蔽,则需加大两根stripe之间的间距,而这本身又会导致端口与stripe之间的间距增大,产生额外的布线资源消耗。[0031]sparecell的加入,可以在芯片布局阶段完成,只是加入的位置局限在每组顶层金属powergroundstripe之间。[0032]2因为需要在sparecell端口生成sparevia,所以首先需提取所有sparecell输入、输出端口的位置坐标,版图结构信息。[0033]采用TCLTK这一标准接口,TCLTK语言是当前被业界广泛采用的工具控制语言,被应用于各种脚本及高级应用程序的开发,是各种EDA工具间的数据交换标准接口。上述方法是首先找到全设计里所有的sparecell4pattern变量定义了sparecell名称中的关键字,并以此关键字作为通配符来对全电路里的sparecell进行筛选,进而获得每一个spare〇〇11的位置坐标;[118让03及尺寸坐标;[1181:06110;[111,之后代码对每一个sparece11的端口信息进行提取,通过dbForEachFTermLefPort和dbForEachLefPortLayerShape,获得每一个端口的版图结构信息,由于在标准单元中很多端口的版图为不规则多边形,dbForEachLayerShapeShape命令能够将不规则多边形拆分为一组等价的矩形坐标数组,至此所有端口的版图形状及位置信息全部获得。[0034]在获得端口的版图形状及位置信息之后,需要根据这一信息,确定每一端口可生成sparevia的区域,亦即viaregion。图2所示即为viaregion示意图。图中黑色粗实线框内区域为sparecell某一端口的Ml版图结构,sparevia可实现的区域为图中黑色虚线所划定的多边形以内。viaregion生成的原则是:如果定义sparecell端口的Ml版图区域为Gi,sparevia的Ml的版图区域为G2,那么,当在端口上生成sparevia时,需满足[0035]Viaregion的生成可以通过对sparecell各端口的Ml的版图进行提取、分析、处理得到。这一过程主要包含三个方面内容:其一,需对Ml的⑶S层号进行定义,将sparecel1的Ml的版图信息按照GDS层号进行抽取,并依据图论对抽取的数据进行映射,建立数学模型;其二,对映射后的数据进行遍历,生成能够容纳via的边界特征点,由此特征点构建viaregion区域;其三,将viaregion的坐标信息输出。[0036]3获得了viaregion之后,并不意味着sparevia可以在viaregion以内的任意地方实现。图3中展示了一个viaregion交叠所产生的sparevia布线的问题。图3中,viaregion的区域共有3个,对应于不同的三个端口,sparevia如果在viaregion的区域以内任意选择的话,那么有可能会出现三个sparevia在垂直方向产生交叠的状况,正如图3中,sparevia1,sparevia2,sparevia3的情况。由于sparevia要通过顶层金属连接到与其相邻的powergroundstripe上,所以当sparevia在垂直方向产生交叠时,会导致这一连接走线产生交叉短路,为避免交叉,交叠的sparevia的连接必须通过跳层或是同层金属的跳线(jogging来实现。这会产生额外的布线资源的消耗,为避免这一问题,sparevia在viaregion区域内的位置选择,应尽量避免产生垂直方向的交叠。所述方法中用如下算法避免sparevia的垂直交叠:[0037]3.1对sparecell所有的端口的viaregion按照权值大小进行排序,权值的选择为viaregion面积的大小与viaregion垂直方向交叠次数的比例加权。面积越小,交叠次数越高的viaregion其优先级越高。[0038]3.2设置已产生sparevia的区域集合为空;[0039]3.3按照优先级的高低,依次对相应的viaregion区域进行扫描遍历,如发现遍历区域与已产生spareVia的区域集合中的区域在垂直方向有交叠,则跳过该区域继续遍历,直至发现未产生交叠的viaregion区域为止。如不存在这样的区域,则选择交叠区域作为sparevia的生成区域。将得到的sparevia的位置区域追加入已产生sparevia的区域集合。继续重复3的步骤。[0040]选定位置之后,Sparevia的生成,生成sparevia的TCLTK描述如下:[0041]setviaCelI[dbCreateRestrictedViaCelllayeredullxulIyuurxuuryIllxlilyIurxIurycut_llxcut_lIycut_urxcut_urycut_widthcut_heightxtimesytimesxpitchypitch][0042]dbCreateVianet$viaCellxyFILLffIRE[0043]113〇6七61^81:1';[^61\^06117用来完成¥1单元的170111:结构定义,111]^11117uurxuury四个变量,定义via单元上层金属左下角与右上角坐标;IlxIllyIurxIury定义via单元下层金属的左下角与右上角坐标;cut_llxcut_llycut_urxcut_ury定义contactlayer左下角与右上角的坐标;cut_width,cut_height分别定义contactlayer的宽度与高度;xtimes与ytimes分别定义via阵列行与列的个数;xpitch与ypitch分别定义via阵列的行间距与列间距。dbCreateVia命令将自定义的sparevia放入指定的坐标位置,FILLWIRE表征sparevia的布线属性。[0044]4在生成sparevia之后,需将sparevia与其相邻的powergroundstripe进行顶层布线连接,其相应的TCLTK描述如下:[0045]dbCreateffirenetlxIyhxhyIayerIdI[0046]上述代码中,最后的数字I表示该布线的方向为垂直方向。[0047]图4中展示了一个应用所述方法在sparecell上生成sparevia的实例。图5展示了这一sparevia结构的纵切面示意图。从图中可以看到sparecell端口所属的底层金属,通过sparevia连接到顶层金属,再通过顶层的金属布线与顶层的power或groundstripe相连接。传统方法中,sparevia是与底层金属的power或groundrail相连的,ECO调整很可能需要将从底层到顶层所有的mask都做修正才能实现目标连接,其所修改的mask数量是巨大的。而采用所述方法,sparevia与顶层金属相连,当芯片需要ECO调整时,只需将顶层金属断开,然后选择相应的金属层布线与目标端口相连即可,在很多情况下,由于顶层金属剩余的布线资源较多,所以所有的ECO调整很可能将全部局限于顶层金属,其所涉及的需要改动的mask数量仅有1层,相比传统方案大大减少,其成本大大降低。

权利要求:1.一种在冗余单元上加入冗余通孔的方法,其特征在于:所述方法包括如下步骤:1芯片整体的电源网络规划时需采用顶层金属,以电源、地为一组做水平方向的电源、地布线,两根走线之间的间距要大于标准单元所定义的标准单元最小位移的高度,但要小于这一高度的两倍,每组电源、地布线加入的位置要保证两根走线之间能够容下一条完整的标准单元行;之后,将冗余单元加入每组电源、地布线之间的标准单元行;2提取所有冗余单元输入、输出端口的位置坐标,版图结构信息,根据所选择的冗余通孔结构,在端口上生成相应的通孔区域;3根据各端口的通孔区域,选择各端口生成冗余通孔的相应位置坐标,坐标的选择要确保各端口的冗余通孔在垂直方向,结合EDA工具,生成冗余通孔;4将冗余通孔通过顶层金属连接到与其相邻的一组顶层电源、地布线上。2.如权利要求1所述的一种在冗余单元上加入冗余通孔的方法,其特征在于:所述步骤2中,首先找到全设计里所有的冗余单元4pattern变量定义了冗余单元名称中的关键字,并以此关键字作为通配符来对全电路里的冗余单元进行筛选,进而获得每一个冗余单元的位置坐标instLoc及尺寸坐标instCelIDim,之后代码对每一个冗余单元的端口信息进行提取,通过dbForEachFTermLefPort和dbForEachLefPortLayerShape,获得每一个端口的版图结构信息,由于在标准单元中很多端口的版图为不规则多边形,dbForEachLayerShapeShape命令能够将不规则多边形拆分为一组等价的矩形坐标数组,至此所有端口的版图形状及位置信息全部获得。3.如权利要求1或2所述的一种在冗余单元上加入冗余通孔的方法,其特征在于:所述步骤2中,通孔区域的生成通过对冗余单元各端口的第一金属层Ml的版图进行提取、分析、处理得到,包括如下过程:2.1,需对第一金属层Ml的GDS层号进行定义,将冗余单元的金属层的版图信息按照GDS层号进行抽取,并依据图论对抽取的数据进行映射,建立数学模型;2.2,对映射后的数据进行遍历,生成能够容纳通孔的边界特征点,由此特征点构建通孔区域;2.3,将通孔区域的坐标信息输出。4.如权利要求1或2所述的一种在冗余单元上加入冗余通孔的方法,其特征在于:所述步骤3中,坐标位置的选择过程为:3.1对冗余单元所有的端口的通孔区域按照权值大小进行排序,权值定义为通孔区域面积的大小与该通孔区域垂直方向交叠次数的比例,根据得到的权重进行后续的加权计算,面积越小,交叠次数越高的通孔区域其优先级越高;3.2设置已产生冗余通孔的区域集合为空;3.3按照优先级的高低,依次对相应的通孔区域进行扫描遍历,如发现遍历区域与已产生冗余通孔的区域集合中的区域在垂直方向有交叠,则跳过该区域继续遍历,直至发现未产生交叠的通孔区域区域为止;如不存在这样的区域,则选择交叠区域作为冗余通孔的生成区域,将得到的冗余通孔的位置区域追加入已产生冗余通孔的区域集合,继续重复3.3的步骤。

百度查询: 杭州宙其科技有限公司 一种在spare cell上加入spare via的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。